本公众号提供的资料和信息仅供学习交流,不得用于非法用途;
对于因使用本公众号内容而产生的任何直接或间接损失,本公众号不承担任何责任;
本公众号尊重他人的知识产权,如有侵犯您的合法权益,请及时联系我们,我们将尽快处理。
博客链接:https://www.securepulse.website/archives/c2yinni
一、工具介绍(RedGuard)
- 下载地址:https://github.com/wikiZ/RedGuard/
- 根据服务端所在操作系统选择下载
- 官方介绍
- RedGuard,是一款C2设施前置流量控制技术的衍生作品,有着更加轻量的设计、高效的流量交互、以及使用go语言开发具有的可靠兼容性。它所解决的核心问题也是在面对日益复杂的红蓝攻防演练行动中,给予攻击队更加优秀的C2基础设施隐匿方案,赋予C2设施的交互流量以流量控制功能,拦截那些“恶意”的分析流量,更好的完成整个攻击任务。
- RedGuard是一个C2设施前置流量控制工具,可以避免Blue Team、AVS、EDR、Cyberspace Search Engine的检查。
- 应用场景
- 防范云沙箱环境下针对木马样本的恶意分析
- 阻止恶意的请求来实施重放攻击,实现混淆上线的效果
- 在明确上线服务器IP的情况下,以白名单的方式限制访问交互流量的请求
- 防范网络空间测绘技术针对C2设施的扫描识别,并重定向或拦截扫描探针的流量
- 支持对多个C2服务器的前置流量控制,并可实现域前置的效果实现负载均衡上线,达到隐匿的效果
- 能够通过请求IP反查API接口针对根据 IP 地址的归属地进行地域性的主机上线限制
- 通过目标请求的拦截日志分析蓝队溯源行为,可用于跟踪对等连接事件/问题
- 具有自定义对样本合法交互的时间段进行设置,实现仅在工作时间段内进行流量交互的功能
- Malleable C2 Profile 解析器能够严格根据 malleable profile验证入站 HTTP/S 请求,并在违规情况下丢弃外发数据包(支持Malleable Profiles 4.0+)
- 内置大量与安全厂商相关联的设备、蜜罐、云沙箱的IPV4地址黑名单,实现自动拦截重定向请求流量
- 可通过自定义工具与样本交互的SSL证书信息、重定向URL,以规避工具流量的固定特征
- ......
二、基本使用原理:反向代理+前置技术
- 单台云服务器场景(C2服务端和反代配置文件在同一个ip上)
- 当受害者机器运行CS木马后,访问的是反向代理的端口
http://vps ip:80
; - 然后根据配置文件转发到CS服务端Beacon监听的端口
http://vps ip:8080
然后上线CS; - 此时在安全设备或者在受害者本地抓包,看见的木马进程外连的虽然是攻击者云服务器的真实ip+端口,但是此时的端口却是反向代理端口,如果在浏览器访问这个ip+端口,也是会自动解析到反代配置文件中定义好的域名。
- 两台云服务器场景(一台C2服务端、一台反代服务器)
- 当受害者机器运行CS木马后,访问的是反向代理服务器的地址
http://反代服务器ip:80
; - 然后反向代理服务器根据配置文件转发到CS服务端(Beacon的通信地址)
http://C2服务端ip:8080
然后上线CS; - 此时在安全设备或者在受害者本地抓包,看见的木马进程外连的是反代服务器的ip+端口,如果在浏览器访问这个ip+端口,会自动解析到反代配置文件中定义好的域名(默认是
360.com
和360.net
)
三、实操,隐匿C2
单台云服务器场景(C2服务端和RedGuard工具在一台VPS上)
- 将下载好的RedGuard工具传到VPS后执行
chmod +x RedGuard_64
./RedGuard_64
- 第一次执行会生成一个配置文件(这是个隐藏文件)
- 再次运行,可以看到代理启动成功
./RedGuard_64
- 此时代理的配置信息是在第一次生成的配置文件里面定义的,通过查看配置文件,可以看见默认的代理规则如下
HostTarget:用于定义反向代理的主机映射关系的配置项
当请求的Host为360.net时,反向代理服务器会将请求转发到http://127.0.0.1:8080(本机的8080端口)
当请求的Host为360.com时,反向代理服务器会将请求转发到https://127.0.0.1:4433(本机的4433端口)
//此处的8080也就是HTTP Beacon与C2通信的端口,4433也就是HTTPS Beacon与C2通信的端口
Port_HTTPS和Port_HTTP:分别指定了反向代理服务器用于HTTPS和HTTP协议的监听端口
Port_HTTPS = :443,表示反向代理服务器监听443端口来处理HTTPS请求
Port_HTTP = :80,表示反向代理服务器监听80端口来处理HTTP请求
- 打开CS客户端,创建监听器(以http beacon举例)
- 注意:此时的HTTP地址为攻击者VPS的地址
- 此时生成远控木马,在测试机执行上线
- 在测试机器上使用查看网络连接情况或者科来网络分析器抓包,可以看到连接的是反向代理服务监听的端口(80)
- 在浏览器访问这个ip+端口,发现被重定向到了
360.net
(预定义host头)
- 注意:此时VPS的安全组规则可以只放行80端口(http)或者443端口(https),因为8080和4433这两个端口只是127.0.0.1(本地)访问,所以不需要对外开放
两台云服务器场景(C2服务端和RedGuard工具分别在两台VPS上)
- 此时在用作反代的服务器上运行RedGuard工具,生成配置文件后,需要修改配置文件中用于定义反向代理的主机映射关系的配置项,将默认的127.0.0.1改成C2服务端所在的ip地址
- 在C2客户端配置监听器的时候,HTTP地址就要填写反向代理服务器的ip,而不是C2服务端的ip
- 此时受害机器上线后,使用查看网络连接情况或者科来网络分析器抓包,就会发现此时连接的是反向代理服务器的ip和反向代理服务监听的端口
- 在浏览器访问这个ip+端口,发现被重定向到了
360.com
(预定义host头),如果使用HTTPS Beacon的话,可能会显示证书不受信任,这是因为我们修改CS默认特征时生成的签名是自定义的,而不是证书颁发机构颁发的 - 注意:此时反代服务器的安全组规则可以只放行80端口(http)或者443端口(https),C2服务端所在VPS的安全组可以指定8080和4433这两个端口只有反代服务器的ip可以访问,不需要对外开放(0.0.0.0)
三、拓展(配置文件修改)
- 可以在配置文件中修改默认的Host头以及重定向的URL为其它受信任的域名和URL,这样目标单位在访问这个ip+端口时就会重定向到自定义受信任的域名
- 可以设置如果识别到木马是在沙箱环境下执行的话就不上线转发
- 详细使用方式可以参考官方文档:https://github.com/wikiZ/RedGuard/blob/main/doc/README_CN.md
原文始发于微信公众号(SecurePulse):C2隐匿:反代+前置
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论