1、红队队员曾使用浏览器登录自己的X度网盘,浏览器已经缓存了X度网盘的cookie;
2、红队队员误点JSONP蜜罐,JSONP蜜罐利用X度网盘存在的JSONP跨域请求漏洞,使用浏览器已保存的cookie去请求获取用户信息的接口,获得了红队队员的X度账号ID;
2.2 红队钓鱼邮服被溯源反制
红队在攻击任务中,经常需要使用各种方式来向目标单位雇员投放木马,而邮件钓鱼就是其中一种重要的方式,邮件钓鱼想要取得成功,首要条件就是邮件要足够具有迷惑性,看起来足够真实,除了邮件正文内容外,还需要下功夫的就是发件的邮箱地址。
经验丰富且预算充足的红队,往往会注册一个与目标单位域名类似的仿冒域名,并使用这个域名来建立邮箱服务器,这很容易会使收到钓鱼邮件的雇员“眼花”,以大幅提高钓鱼邮件的点击率,例如:
真实邮箱域名:[email protected]
仿冒邮箱域名:[email protected]
如果要使用自己注册的仿冒域名来发送邮件,很多红队会选择搭建自己的邮箱服务器,会使用Exchange、Ewomail等邮箱软件来安装邮箱,但这些邮箱软件可能会存在一些安全隐患,或者0day/1day漏洞,这时蓝队就可以通过这些脆弱点来反制红队的邮箱服务器。
2、蓝队收到雇员举报的钓鱼邮件,开始调查,蓝队查看邮件头的X-Originating-IP字段,找到邮件发送来源IP;
2.3 红队用BurpSuite渗透被RCE反制
无论是红队人员、安服人员或者其他安全技术人员,都一定会使用BurpSuite进行工作,BurpSuite拥有强大的功能,可以用于检测、利用绝大部分的Web安全漏洞,而以下这个场景正是使用这种方式,来精准捕捉红队人员:
1、红队找到了一个站点,发现“属于”目标单位的管理后台(是蓝队的蜜罐)
2、红队挂上BurpSuite代理开始点击蜜罐站点的各种按钮
3、BurpSuite默认开启了JavaScript分析引擎扫描蜜罐站点的接口,但红队使用的BurpSuite不常更新,使用的是低版本的内置chromium,蓝队的蜜罐站点上的POC触发chromium的漏洞,成功RCE反制红队的攻击机
2.4 红队在公司远程攻击被溯源
在攻防演练活动越来越多的情况下,除了远程支援现场攻防演练的“影子队”以外,还有很多行业性的攻防演练都是远程实施的,并不要求线下集中,这样的实施方式可以有效的地降低红队人员的差旅成本,也可以大幅提高红队人员的灵活度和项目密集度(黑奴程度),但同时也会引入新的溯源风险。
2、蓝队在边界安全设备上抓到了红队的攻击来源IP,通过IP数据查到IP所在的大厦(公司固定宽带定位精准度是很高的)
3、通过互联网搜索,这座大厦只有一家安全公司
4、蓝队让甲方联系该公司的销售人员,谎称要了解技术能力,套出正在进行此攻防演练的红队人员信息,溯源成功。 3 常见的反溯源策略
3.1 对抗浏览器溯源
3.1.1 JSONP蜜罐
踩过JSONP蜜罐,曾受其害的红队队员应该都知道,这种蜜罐很恐怖,也很隐蔽,而且交互方式简单,往往只需要一次点击,就会被链式溯源,要防止这种JSONP蜜罐,可以采取以下的策略:
1)使用反蜜罐浏览器插件:
使用反蜜罐浏览器插件,是防止JSONP蜜罐溯源的其中一种方法,安全圈内也有很多优秀的反蜜罐浏览器插件,如anti-honeypot、antHoneypot等等,这些插件的主要原理都是对浏览器发起的请求进行分析,通过一些既定的规则来判断是否存在蜜罐特征,这种“黑名单”的方式可以较好地兼顾用户浏览网页的体验,很少会产生“假阳性”的误报。
但是正因为反蜜罐浏览器插件的这种“黑名单”的拦截方式,对于一些新型的蜜罐,这些插件不能做到很好的识别和拦截,红队队员将会面临较大的风险,因此,反蜜罐浏览器插件仅适用于日常浏览网页或普通渗透测试时使用,我并不建议在溯源风险大和溯源预期损失大的红队攻击任务中过度依赖此类插件。
2)使用浏览器的隐私上网模式:
Firefox、Chrome、Safari等主流浏览器,基本都具备隐私上网模式(有些浏览器叫无痕浏览),浏览器在这种模式下浏览网页,将不会保留任何历史访问记录和cookie信息,这些临时数据将会在关闭浏览器后被清除,因此即使红队队员踩中了JSONP蜜罐,蜜罐将无法使用已保存的cookie去进行JSONP跨域请求获得溯源信息,但前提是红队队员没有在同一次隐私上网中登陆其他网站的账号。
3)使用独立的浏览器进行攻击任务:
众所周知,不同的浏览器之间是不会共享cookie的,利用这种特性,红队队员可以使用Firefox浏览器进行个人上网,使用Chrome浏览器进行红队攻击,只要严格遵守这种浏览器分离的原则,JSONP蜜罐同样可以免疫。 3.1.2 Burp Suite溯源
在这个本文2.2介绍的例子里,Chromium的1day漏洞是反制的关键,其实大部份红队人员都不会经常更新自己的安全工具,甚至是操作系统,这事实上隐含了很大的安全隐患,所以针对这种溯源方式,我提出以下策略:
1)积极更新BurpSuite版本:
事实上大部份红队人员都是使用魔法版的BurpSuite,注册密钥生成器也基本上可以支持到官网最新版的BurpSuite,所以我建议定期更新攻击机的BurpSuite,以排除绝大部分的1day漏洞。
2)专机专用:
对于大型的安全公司,是有能力为红队人员置办专用的红队攻击电脑的,但仍然会存在部份红队人员违规使用红队攻击电脑,例如在电脑上登陆自己个人的社交媒体账号,这都会导致攻击机失陷时被溯源。
作为一名一线红队人员,我非常能理解使用两台物理隔离的电脑在工作上带来的不便,所以我建议至少要使用独立的虚拟机来进行攻击操作,在物理机上登陆自己个人的账号,分离生活工作和攻击的环境。 3.2 对抗社交媒体溯源
3.2.1 MySQL蜜罐读取微信号
如果说JSONP蜜罐是红队入门者的恶梦的话,那我相信MySQL蜜罐应该是紧随其后的,特别是在进入内网后用FScan一顿扫,发现一大堆MySQL弱口令,很难控制住不去连一下,而MySQL蜜罐正是利用MySQL中的load data local infile函数实现客户端任意文件读取,如果想要实现读取微信号,则可以先读取C:WindowsPFRO.log文件,在这个文件中寻获客户端的用户名,再读取C:UsersusernameDocumentsWeChat FilesAll Usersconfigconfig.data文件,在这个文件中寻获攻击者的微信号。
针对这种MySQL蜜罐,对抗的方式还是采用专机专用的策略,使用独立的虚拟机来进行攻击,且不在这台虚拟机上保存任何与个人相关的文件。
说个题外话,说到这里,我觉得是不是可以实现一个小工具,有连接数据库并获取部份数据的功能,作为在攻防演练中验证MySQL成果的证明,一来保障了目标单位的数据安全,确保攻击行为合规,二来做一些安全设计来禁止这个工具读取本地系统文件,免疫MySQL蜜罐,过一阵子看看,要是没有其他巨佬做过,我就做一个。
搞红队攻击,就躲不开要打内网,一般在外网撕开一个口子后,如果想要进一步扩大成果,无一例外就是做代理进去打内网,做代理的方式有很多,在外网点位不出网的情况下,一般是做正向代理,完全依赖外网web应用的转发能力,速度比较慢,在外网点位出网的情况下,一般会做反向代理,速度比较快。
我们以最常用的反向代理为例,通常是在外网或者内网点位上运行FRP或者类似的工具,将隧道映射至一台公网VPS上,红队连接这台公网VPS,即可将本机流量走向目标内网,实现内网应用的访问,但有部份经验尚浅的红队人员,可能会直接开启全局代理的功能,将攻击机全部流量走向内网,而攻击机上登陆着自己的公司邮箱或者QQ。
在这种情况下,邮箱应用在同步邮件时所流经的未经加密IMAP/POP3报文就会被目标内网的全流量设备所捕获,在报文中可以找到攻击者的邮箱地址和密码
又说个题外话,不知道现在市面上的蜜罐产品有没有这个功能,如果没有,好像又可以搞一个专抓邮箱和QQ的一键部署“微蜜罐”。
要避免上述的这些溯源隐患,除了落实“专机专用”的策略外,还应该在使用局部代理的模式进入内网,只允许浏览器和渗透工具的流量使用代理,以避免更多流量流入目标单位而引发更多信息泄露的风险。
3.3.1 木马回连地址溯源
远控是红队最常用的工具,也是最重要最核心的基础设施,远控是否好用,关乎到钓鱼是否能成功、近源渗透是否能顺利、无回显命令执行是否能利用等等,但远控也是红队被溯源的重灾区,因为木马必须与远控服务器通讯,以获取最新的指令和返回命令执行的结果(远控基本通讯原理可见文章红队C2的通信原理及开发(Python)),所以如果木马是直接回连远控服务器IP的话,就会非常容易被威胁情报识别,也会被目标单位边界的安全设备阻断,因此我们需要采取以下的一些反溯源的措施:
1)使用域前置隐藏远控回连地址:
域前置(Domain Fronting)是在2015年由安全研究员提出的一种利用CDN的C2远控隐蔽通讯方法,至今这种方法仍被大量红队和APT组织广泛应用。
域前置利用了CDN的中转特性,使得木马通讯时安全设备仅能看到与CDN地址通讯,而不是与远控服务器通讯,实现了溯源的对抗。
2)使用云函数隐藏远控回连地址:
云函数是云计算服务商提供的一种Serverless(无服务器)计算服务,攻击者可以利用这种服务来实现远控回连地址的隐藏,云函数配合API网关,可以对外开放一个Web接口,在云函数中将木马的HTTPS请求转发至远控服务器,实现中转隐藏,蓝队在边界安全设备中,只会看到与云函数IP通讯,而不会看到与恶意IP通讯。
3.3.2 钓鱼邮服溯源
邮件钓鱼是红队任务中重要的木马投放手段,所以我们不必“讳疾忌医”,完全弃用邮件钓鱼,邮件钓鱼的反溯源相对比较简单,红队队员只需要掌握一些针对性的反溯源技巧,即可轻松应对这方面的溯源:
1)使用可靠的邮箱软件:
红队任务往往时间紧迫,但也不应该放弃对基础设施安全的关注,红队应在平时就收集积累一些好用的邮箱软件,特点应是易于部署、公开漏洞少,可靠的邮箱软件会大大减少被反制的可能性。
2)使用第三方托管邮服:
很久以前,X讯企业邮其实是可以无门槛地创建自定义域名的,发出的邮件都是以X讯的白名单邮服发出的,很少会被拦截或反制,但现在注册企业邮都要求绑定企业X信,所以X讯企业邮这条路已经不通了吗。
发送钓鱼邮件,其实也可以使用第三方的公开邮箱,例如163等,但这些邮箱的缺点是邮箱地址是很瞩目的,相比于仿冒域名,效果一定不会很好,但可以收集大量的邮箱池进行发送,优点是成本低,易于实施。
3)专机专用,不与其他基础设施混用:
其实红队被溯源,99%都是因为穷,据我所知很多红队基本都存在一机多用的情况,一来是因为项目预算不足,二来是觉得这样比较方便,一机多用往往会使基础设施的攻击面增大,被反制的可能性大大增加,所以有条件的红队建议可以实行“专机专用”的方式来搭建邮件服务器。 4 安全通讯线路建设
上文,我们讲述了非常多的溯源案例和反溯源策略,但如果上述的这些反溯源策略我们都已经落实了,是不是就可以“高枕无忧”了呢?当然不是,攻防之间的较量是永不停息的,不但是攻防演练中的红队,还有执法机构进行跨国犯罪侦查时,侦查员会面临非常严重的人员身份溯源风险,因此,往往需要搭建具有反溯源功能的安全通讯线路,来确保可以顺利进行侦查工作。
4.1 安全通讯线路搭建思路
4.1.1 国内攻防演练场景下的安全通讯线路
4.2.1 传统方案:多层VPN隧道
1)中间节点隐蔽性:
因为每个节点,上面都部署着单独的VPN服务,会对外映射VPN端口,因此这些节点会非常容易被IDC或者网络空间搜索引擎发现并标记定位,可能会被封停、窃听或取证,使通讯线路不再安全可靠。
2)线路通讯体验:
使用这种方案搭建的通讯线路,每个节点都需要进行加密和解密操作,这会极大地影响包转发的效率,从而使带宽衰减十分严重,通讯时延非常巨大,往往使用这种方式搭建的通讯线路,只要有2跳以上,基本就无法正常上网了。
我们假设传统方案用于国内攻防演练场景,即所有节点都在国内,我们搭建了2条测试线路,分别是3跳和6跳,以4M国内互联网宽带接入,测出的通讯指标数据如下:
传统方案 3跳 |
传统方案 6跳 |
|
下行速率均值 |
0.17 MB/s |
0.03 MB/s |
下行速率峰值 |
0.22 MB/s | 0.05 MB/s |
折合带宽均值 |
1.33 Mbps |
0.31 Mbps |
ping时延均值 |
291 ms |
751 ms |
我们再假设传统方案用于跨国犯罪侦查场景,即所有节点都在中国以外的不同国家,我们也搭建了2条线路,分别是3跳和6跳,以100M国内互联网宽带接入,测出的通讯指标数据如下:
传统方案 3跳 |
传统方案 6跳 |
|
下行速率均值 |
0.15 MB/s |
0.06 MB/s |
下行速率峰值 |
0.20 MB/s | 0.11 MB/s |
折合带宽均值 |
1.22 Mbps |
0.50 Mbps |
ping时延均值 |
615 ms |
920 ms |
当然,如果是参加国内攻防演练的红队使用SecNet搭建自己的安全通讯线路,部署的所有节点都在国内,只要确保自己的攻击动作是符合演练相关要求的,使用SecNet就不会有问题,所有攻防演练为了确保安全可控,都是不允许使用国外的VPS进行攻击的,因此SecNet禁止在中国大陆以外的VPS上运行。
现在,我们把SecNet用于国内攻防演练的场景中,所有节点都部署在国内的云服务器上,分别搭建了3跳和6跳的线路,以4M国内互联网宽带接入(为什么要用4M带宽来接入?因为国内云服务器带宽都非常贵,我们只能买到4M的云服务器来做测试,云服务器带宽是4M,如果用高于4M的带宽接入测试,木桶效应会导致线路带宽不会超过4M),测出的通讯指标数据如下:
SecNet 3跳 |
SecNet 6跳 |
|
下行速率均值 |
0.82 MB/s |
0.16 MB/s |
下行速率峰值 |
1.21 MB/s | 0.20 MB/s |
折合带宽均值 |
4.08 Mbps |
1.25 Mbps |
ping时延均值 |
78 ms |
113 ms |
现在我们把SecNet用于跨国犯罪侦查场景下,将SecNet节点都部署在中国以外的不同国家(需开通境外权限),我们搭建了两条SecNet线路,分别是3跳和6跳,以100M国内互联网宽带接入,测出的通讯指标数据如下:
SecNet 3跳 |
SecNet 6跳 |
|
下行速率均值 |
0.82 MB/s |
0.20 MB/s |
下行速率峰值 |
1.21 MB/s | 0.29 MB/s |
折合带宽均值 |
6.57 Mbps |
1.59 Mbps |
ping时延均值 |
399 ms |
510 ms |
由上述两种测试结果可以看到,在国内攻防演练场景下,SecNet已经带来了比较优秀的线路通讯体验了,但在跨国犯罪侦查场景下,SecNet的表现仍有一些不尽人意,在100M国内互联网宽带接入下,SecNet 3跳的线路带宽衰减到只剩下6.5M左右了,时延也达到了399ms,如果侦查员有更高强度的工作需求,或者提升工作效率,想要更好的上网体验,那么线路就必须进行以下一些深度优化措施:
1)通讯特征隐蔽:
传统方案和SecNet在通信层面上,都有一些比较明显和固定的通讯特征,这会使得搭建完的通讯线路更容易遭到干扰和阻断,因此,通讯特征必须进行重写,使通讯线路难以被发现。
2)节点特征隐蔽:
如果节点上只开放了一个特殊端口,比如VPS端口或通讯端口,那么这个服务器在IDC的眼里就会非常明显,很容易受到特别关注,所以为了隐藏节点的真实功能,可以在这些节点服务器上部署一些仿真业务,例如https、ftp或者图床等等,这会使节点不易受到干扰。
3)自研私有通讯协议:
自研私有的通讯协议,是建立一条安全可靠、稳定运行的通讯线路的“重中之重”,也是必杀技,私有的通讯协议没有任何的通讯特征会被识别,而且可以解决TCP通讯的一些固有的缺陷,例如TCP协议导致的粘包,超时重连等等,还可以增加一些提升通讯体验的设计,例如多链路负载均衡、udp in tcp和节点优选等等。
我们的深度优化方案经过多年实战验证,可以是面向部队和政法单位开放的,在本公众号(全栈红队)后台回复231123-5可以申请免费试用,现在我们使用深度优化方案来搭建安全通讯线路,所有节点都部署在中国以外的不同国家,以100M国内互联网宽带接入,测试3跳和6跳的线路通讯指标数据如下:
深度优化方案 3跳 |
深度优化方案 6跳 |
|
下行速率均值 |
12.37 MB/s |
12.19 MB/s |
下行速率峰值 |
12.61 MB/s | 12.50 MB/s |
折合带宽均值 |
98.96 Mbps |
97.59 Mbps |
ping时延均值 |
29 ms |
68 ms |
红队与蓝队的较量,就是一场永不停息的战争,双方在网络空间中不断地攻防、溯源、反溯源,试图获取对方的信息、资源和优势,这在现在和未来,都将永不停止,本文的目的是向攻防演练红队和跨国犯罪侦查员提供反溯源的思路分享,在本公众号(全栈红队)后台回复231123可以获取本文章的所有配套工具和文档。
今年的万字长文历时一周终于完成了,全文大约8300字,感觉自己头发都少了几坨,去年的万字长文是红队C2的通信原理及开发(Python),希望今年这篇文章能带给大家更多的新思路,感谢您的阅读。
原文始发于微信公众号(全栈红队):红队反溯源与安全线路建设
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论