第一次接触RAT对抗,请师傅们多多指点。
看到微步已经完成相关的拓线研究,于是便萌生开源主机发现脚本的想法。
由于学业繁重,脚本也处于能用就行的状态,望各位师傅见谅。
Github项目地址: https://github.com/g1an123/AsyncRAT_C2_Search
检测方法
TLS证书
优:命中率100%,也是各大搜索引擎最常用的。
缺:收录范围窄,有经验的apt组织在使用前都会修改证书名。
关于TLS证书的选择:
建立连接使用的证书和密钥均从win7主机生成的p12证书提取。win7主机下通信加密套件默认选择生成的TLS_RSA_WITH_AES_128_CBC_SHA
而非具有前向安全的TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
(加密套件的优先级可以调整), 且其生成的p12证书没有密码保护,直接提取私钥,规避证书格式引起的问题。
以fofa为例,进行了以下验证。(实验日期3月2日)
1. 收录语法测试
- fofa规则
app="AsyncRAT"
数据量与cert.issuer="AsyncRAT"
一致,共1,682条,811条ip。 - 反向搜索一致
app="AsyncRAT" && cert.issuer!="AsyncRAT"
数据量0条
2. 服务器收录方案验证
用自己的服务器配置了以下AsyncRAT服务进行验证。
验证结果:fofa仅通过是否AsyncRAT字样进行确定,没有脚本表现好。
IP:111.92.241.26
- 4404部署0.5.3版本正常证书名
- 5505部署0.5.3 Hacker Server
- 8808部署0.5.8版本正常证书名
- 9909 部署0.5.8HackerC2 Server
验证语句:
app="AsyncRAT" && ip="111.92.241.26"
fofa验证结果:8808收录,而9909通过修改证书名,躲过了fofa的特征搜索。
4404收录,而5505通过修改证书名,躲过了fofa的特征搜索。
服务器部署截图:
Ping包
优:稳定且准确率高
通过流量分析提取出AsyncRAT的ping包 重放进行特征识别,由于高版本对流量进行了gzip加密,所以高低版本需要分别发包验证。
client发送信息代码部分
Server服务端收到结果返回信息代码部分
JARM指纹
优:用来做辅助验证挺不错的
用JA3S 也可以,需要注意的是高低版本指纹也不一致。
对比
结果对比:fofa:1682条, 脚本:220条。
猜测1482条数据的AsyncRAT 服务已经下线。
判断依据:
- fofa更新时间距今较久,最近更新的数据皆可通过验证。
- 使用sslscan,nmap,openssl均为time out ,猜测服务已经下线
- 本地生成木马链接服务端,无法链接成功。
(截图懒得放了,有点多)
功能
探测识别AsyncRAT C2 工具服务端,方便安全研究人员进行apt组织追踪,情报拓线。覆盖目前官方仓库所有版本。(我也不知道咋吹了)
使用方法
-
检测单个端口:
python3 AsyncRAT_C2_Seearch.py host port
-
公网检测、ip、ip段检测,查看
C2公网探测.py
# scan_ip_range("186.137.33.1", "C") # 扫描ip段,可指定C B段 # ip_scan("218.204.179.10") # 扫描单个ip # ip_scan("161.97.151.222",7788) # 扫描单个端口 # process_target_csv("target1.csv") # 扫描文件 # scan_ip_range_from_file("ip_range.txt") # 从文件中获取ip段扫描
运行环境:Macos 12.5
其他环境暂未测试
Github项目地址: https://github.com/g1an123/AsyncRAT_C2_Search