0x01 前言
安全态势日益严峻,各大组织普遍采用了综合的安全产品,如态势感知系统、WAF和硬件防火墙等,这些措施加大了渗透测试和攻防演练的难度。即使是一些基本的漏洞验证、端口扫描,也可能导致测试IP被限制,从而阻碍了测试工作。更进一步,通过IP追踪,测试者可能会被追溯到其真实身份。在某些情况下,测试过程中可能会接到来自XXX省应急响应中心的电话,或者收到某些云服务供应商的警告通知甚至封号。本文将从实战的角度,介绍如何在渗透、攻防中通过各种方式绕过安全产品拦截以及避免安全人员溯源。
0x02 匿名绕过场景
- 态势感知系统实时监测
- 防火墙封禁绕过
- CC拦截绕过
- 攻击溯源隐藏身份
- 漏洞扫描隐藏IP
- 端口扫描隐藏IP
- C2回连隐藏IP
- ......
0x03 现状分析
从防守和运维的角度来看,使用安全设备来监测并响应告警是安全运营人员日常操作的一部分。一旦发生端口扫描、漏洞探测、Web攻击等告警时运营人员会第一时间封锁攻击源IP,以终止潜在威胁,这种快速响应有助于阻止潜在攻击者的进一步行动。鉴于运营人员会根据安全设备(如探针、态势感知和WAF等)上的告警信息来采取封禁、溯源或者上报网警等一系列措施,安全测试人员需要采取一些策略来减轻封禁、溯源对测试的影响。一种方法是更改测试IP,人工慢速测试,减缓IP被封锁速度。另一种方法是实现快速扫描,每次请求后更换IP,这样即使运营人员封锁了某个IP,对渗透测试的影响也会降到最低。此外,为避免被运营人员、蓝队成员溯源,测试人员所使用的服务器、流量卡等设备也应保证匿名性,避免被溯源导致的失分。
0x04 奇淫巧计
1. 物联网卡+移动WIFI设备
在手工测试场景中,使用物联网卡并将其安装在USB移动WiFi设备上,是一种用于红队测试的常见方法。当进行攻击测试时,如果安全设备检测到了攻击性payload并封禁了相关测试IP,红队成员可以通过简单地插拔USB设备来重启,从而切换到新的IP地址。
这种方法的优势在于,通过物联网卡和USB移动WiFi设备,红队成员可以维护匿名性。此外,当IP被封禁时,可以通过重新启动来迅速更换IP地址,以继续测试工作,而无需等待封禁解除。
2. 云函数
云函数(SCF)是云服务供应商提供的无服务器执行环境,能对外发送数据包。它可通过 API 网关触发器进行触发,先接受来自客户端的数据,再利用其多IP出口的特性将请求随机转发出去,这样一来就达到了代理的效果。
实战中可利用云服务供应商如阿里云、腾讯云和AWS等提供的云函数服务,通过在线编辑服务器端的代码以及配置API网关触发器,从而轻松地在一台虚拟专用服务器(VPS)上启动HTTP[S]或SOCKS代理服务。这个代理服务的出口在云服务提供商的多个地区,因此可以实现请求一次就切换IP地址的效果。
这种方式的优势在于无需复杂的手动配置和部署流程即可实现IP一次一换的代理效果,且这样配置更换IP有助于维护匿名性或绕过封锁场景。
3. 自建代理池+隧道代理
借助数据库,如Redis等,我们可以存储从各大代理网站爬取到的免费http[s]/socks代理IP:Prot。随后,通过自定义的质检程序,我们可以对这些代理进行可用性及网速判断。最后,我们构建隧道代理,通过转发服务实现对扫描IP的一次一换,以确保高效的扫描操作。
这个流程包括以下步骤:
- 代理抓取: 我们从多个网站爬取免费代理IP,并将其存储在数据库中,以便后续使用。
- 质检程序: 我们开发了自定义的质检程序,用于验证代理的可用性。这包括检查代理的连通性、响应时间、成功率以及其他相关参数。
- 代理评分和删除: 初次存储和使用过的代理IP经过我们自定义的质检程序进行评分。如果代理的分数低于设定的阈值,它将被自动删除,以确保只有高质量的代理被保留在数据库中。
- 转发服务:配置隧道代理,请求入口统一,出口IP根据自定义规则随机从代理池中取出作为代理被使用。
这套方案可以帮助安全人员轻松地获取可用的代理IP,同时通过质检和评分机制,确保只有高性能和稳定的代理被提供给用户。而且所用代理爬取自各大代理服务商所公示的免费代理,这样不仅保障了匿名性也提高了扫描效率。
4. 机场节点+clash.meta+隧道代理
机场作为翻墙常用的节点,不仅能帮助用户绕过网络的封锁(GFW)来访问国外资源,还在安全工作中提供了代理服务,帮助用户绕过目标网络的限制。然而,常用节点订阅工具v2rayN的默认设置是一个本地入口(通常使用端口10808)仅对应一个VMess或其他加密协议节点出口,这可能带来一定的限制。
尽管v2rayN内核本身支持多入口和多出口,但需要手动编写繁琐的配置文件,这对于用户而言可能不够便捷。此时,我们可引入了clash.meta,这是原版clash的一个分支,它提供了一种简单的解决方案,能够轻松实现v2rayN多入口多出口的配置需求。使用clash.meta,我们可以将机场中的各种协议节点转换为本地的socks节点。这使得每个本地端口都可以对应一个外部机场节点,从而实现多入口对应多出口的配置。而且,不同于上一种方案中爬取免费代理自建代理池,这里花费极少代价使用机场节点构建的socks代理池更加的稳定可靠。
最后,我们可以配置隧道代理服务,使内部工具或环境只需配置一个简单的ip:port,就能够随时在多个机场节点之间切换出口IP。这样不仅确保了用户的匿名性,还能够帮助用户绕过目标网络的限制策略。
5. TOR服务
Tor 是一个虚拟隧道网络,用于提高互联网用户的隐私和安全。其原理在于通过 Tor 网络内的三个随机服务器(也称节点)发送用户流量。线路中的最后一个中继(即"出口节点")将流量发送到公共互联网。
Windows上使用的Tor浏览器即采用上述网络结构,可以使通信数据通过多个中继节点传递,且Tor会对通信来源进行加密,在这个过程中保障了用户的隐私和匿名性,最终绕过目标限制策略。
Linux上 proxychains 搭配 tor服务,也可配置socks5代理,同样可以绕过目标限制策略。
6. 在线网站端口扫描
在红队打点过程中,通常需要执行端口扫描操作,然后是指纹识别等。然而,如果甲方运维人员正在进行监测,可能会导致IP地址被发现进而通过一些方式被溯源到个人账号ID、身份信息或手机号等。在这种情况下,通过在线网站进行端口扫描可以避免被追溯,实现匿名的端口扫描操作。
7. 代理服务供应商
使用借助代理服务供应商提供的HTTP[S]和SOCKS动态代理服务,不仅有助于在手工渗透测试过程中保持匿名性和绕过防火墙设备,还能够在配置适当的扫描器并发量时,实现高效的批量检测。
0x05 总结
本文从实战的角度出发,给出了 7 种方案用于安全人员在端口扫描和漏洞验证阶段绕过防火墙封禁以及避免安全运营人员溯源。由于篇幅限制,每种方案没有展开细说,此处仅提供思路。另外此处思路仅供以安全人员研究交流,请不要进行非法操作。