通过存在7年之久的“空格”特征识别在野Cobalt Strike服务器组件(含规则)

xiannv  2094天前

1.jpg

Cobalt Strike是一款渗透测试神器,常被业界人称为CS神器。Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个 (beacon),可被团队进行分布式协团操作。

2.jpg

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响应中都有空格:

3.jpg

可以看出该特征已经存在了7年之久

4.jpg

基于此,边可以通过构造规则,针对全球的具有这类特征的HTTP响应进行服务器抓取。

5.jpg
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

6.jpg

而ip列表还包括了一些著名的攻击团伙

7.jpg

目前Cobalt Strike已经修补了该错误。但由于很多人会使用破解版或者不更新,因此该规则将会持续有效检测。

8.jpg


相关链接如下:

https://blog.fox-it.com/2019/02/26/identifying-cobalt-strike-team-servers-in-the-wild/

◆来源:黑鸟

◆本文版权归原作者所有,如有侵权请联系我们及时删除

最新评论

昵称
邮箱
提交评论