通过存在7年之久的“空格”特征识别在野Cobalt Strike服务器组件(含规则)
Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个 (beacon),可被团队进行分布式协团操作。
Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe程序生成、Windows dll动态链接库生成、java程序生成、office宏代码生成,包括站点克隆获取浏览器的相关信息等。
而现在出问题的便是CS的服务端,也就是业界所称“TeamServer”
Cobalt Strike的 "Team Server" Web服务器是基于NanoHTTPD,这是一个用Java编写的开源Web服务器。但是,此Web服务器无意中在其所有HTTP响应中返回了多余的空白符。
(https://github.com/NanoHttpd/nanohttpd-java-1.1/blob/nanohttpd-for-java1.1/NanoHTTPD.java#L778)
因此导致,老版本的Cobalt Strike网络服务器的所有HTTP响应中都有空格:
可以看出该特征已经存在了7年之久
基于此,边可以通过构造规则,针对全球的具有这类特征的HTTP响应进行服务器抓取。
IDS规则如下
alert tcp any any -> any any (msg:"FOX-IT - Trojan - Possible CobaltStrike C2 Server"; \
flow:to_client; \
content:"HTTP/1.1 200 OK |0d0a|"; fast_pattern; depth:18; \
content:"Date: "; \
pcre:"/^HTTP/1.1 200 OK \r\nContent-Type: [^\r\n]{0,100}\r\nDate: [^\r\n]{0,100} GMT\r\n(Content-Length: \d+\r\n)\r\n/"; \
threshold:type limit, track by_dst, count 1, seconds 600; \
classtype:trojan-activity; priority:2; \
sid:21002217; rev:3;)
老外通过该规则抓取了9K多个IP,预计还有更多
https://github.com/fox-it/cobaltstrike-extraneous-space/blob/master/cobaltstrike-servers.csv
而ip列表还包括了一些著名的攻击团伙
目前Cobalt Strike已经修补了该错误。但由于很多人会使用破解版或者不更新,因此该规则将会持续有效检测。
相关链接如下:
https://blog.fox-it.com/2019/02/26/identifying-cobalt-strike-team-servers-in-the-wild/
◆来源:黑鸟
◆本文版权归原作者所有,如有侵权请联系我们及时删除
最新评论