Sumap网络测绘探测C&C远控在朝状况剖析

0x00 网络测绘角度下的C&C威逼剖析

在日渐强烈的网络反抗中,随同浸透伎俩的更新换代,远控为了满足需要随之倒退,品种繁多,常见的远控有:Cobalt Strike、Metasploit Framework、Empire、PoshC2、Pupy等。

在常见的远控中,Cobalt Strike是熟知的浸透测试利器,性能非常弱小,可扩展性强,从后期载荷生成、钓饵捆绑、钓鱼攻打到载荷植入指标胜利后的继续管制、后浸透阶段都能够很好反对,简直笼罩攻打链的各个阶段。并且反对多种上线形式,以及多种丰盛的配置能够达到十分好的荫蔽成果。CS teamserver团队服务器又能够使泛滥CS客户端连上它,以进行团队合作。Metasploit Framework可能提供泛滥破绽利用,这两款远控功能强大且容易上手,因而也是宽广redteamer的必备武器。

C&C作为寰球范畴红队的基础设施,长期部署在世界各个角落,如何通过探测C&C服务器成为了一个问题。传统的流量规定只能对小范畴的C2设施进行辨认,有肯定的局限性。对于全网的资产辨认,通过网络测绘来进行扫描辨认C2会不会更全面呢?

0x01 网络空间测绘

互联网在高速倒退的明天,传统的网络安全大多面向部分平安未曾思考整体全网环境下的网络安全,这样也造成了近年来攻击者频繁面向全网开展攻打。数亿的物联网设施平安问题被大范畴的裸露进去。同时攻击者在面向全网攻打既包含传统攻击方式WEB攻打,缓冲区溢出攻打,数据库攻打。同时也涵盖新型的针对物联网设施和工控设施层面的攻打也越发频繁。Sumap网络空间测绘领有疾速资产探测能力,以及资产监测能力,资产破绽治理能力造成了一套基于寰球网络空间资产平安整体平安解决方案。

0x02 具体分析

Metasploit

1.Metasploit 框架简介

在日常浸透测试中,Metasploit是罕用的一款工具安全漏洞利用工具,它领有最新的公开破绽利用、后浸透利用模块等,它集成了各个平台常见的破绽,领有各种操作系统的shellcode,同时能够作为C&C维持指标权限。Meterpreter作为meatasploit框架的一个扩大模块,meterpreter是metasploit框架中的一个扩大模块,作为溢出胜利当前的攻打载荷应用,攻打载荷在溢出攻打胜利当前给咱们返回一个管制通道,应用它作为攻打载荷可能取得指标零碎的一个meterpretershell的链接。meterpretershell作为浸透模块有很多有用的性能,比方增加一个用户、暗藏一些货色、关上shell、失去用户明码、上传下载近程主机的文件、运行cmd.exe、捕获屏幕、失去近程控制权、捕捉按键信息、革除应用程序、显示近程主机的零碎信息、显示近程机器的网络接口和IP地址等信息。

2.msf特征分析

开始对msf的reverse_http进行剖析,在msf的metasploit-framework/lib/msf/core/handler/reverse_http.rb#83中

 OptString.new('HttpUnknownRequestResponse', 'The returned HTML response body when the handler receives a request that is not from a payload', default: '<html><body><h1>It works!</h1></body></html>' )

通过剖析特色,发现模拟的是apache的初始页面

https://raw.githubusercontent.com/apache/httpd/5f32ea94af5f1e7ea68d6fca58f0ac2478cc18c5/docs/docroot/index.html

但理论测试,apache的初始页面申请为:

< HTTP/1.1 200 OK< Connection: keep-alive< Content-Length: 45

而msf的apche页面为:

< HTTP/1.1 200 OK< Connection: keep-alive< Content-Length: 44

两者相比拟Content-Length并不相同,相比apache原始页面多了n。

在sumap平台中能够间接搜寻

tags:"MSF http"

寰球散布:

截止发稿前探测到msf reverse_http(s)全网有682台,同时sumap反对reverse_tcp连贯查问。

间接搜寻:

tags:"Metasploit Rex httpd"

探测到全网有8,048台

Cobalt Strike

1.Cobalt Strike Payload Staging

在Cobalt Strike的攻打框架中,payload是执行攻打的内容,payload拆分为:payload stage和payload stager。stager是一个小程序,通常是手工优化的汇编指令,用于下载stage、把它注入内存中运行。stage则就是蕴含了很多性能的代码块,用于承受和执行咱们管制端的工作并返回后果。stager通过各种形式(如http、dns、tcp等)下载stage并注入内存运行这个过程称为Payload Staging。Cobalt strike也提供了传统的形式,打包成一个残缺的exe、dll,上传运行与teamserver回连通信,这种是Payload Stageless,生成Stageless的客户端能够在Attack->Package->Windows Executeable(s)下生成。

通过官网的文档,因为如果开启了 staging(分阶段),任何人都能连到你的服务器上,申请一个payload、并剖析它的内容,从而能够从你的 payload 配置中获取信息。


所以能够通过结构,传入满足要求的uri就可能下载cs的beacon,在/src/main/java/cloudstrike/WebServer.java中能够看到uri的check规定。


所以只须要结构依据4位的数字和大小字母组合满足求和取模等于92(93)即可

import randomdef generate_checksum(input): trial = "" total = 0 while total != input: total = 0 trial = ''.join(random.sample("abcdefghhijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",4)) for i in range(4): total = (total + ord(trial[i:i+1]))% 256 return trialif __name__ == '__main__': uri_x86 = generate_checksum(92) uri_x64 = generate_checksum(93) print(uri_x64) print(uri_x86)

这里的逻辑做了一个判断,间接拜访返回一个404 Not Found,然而带有满足条件的校验码拜访会间接下载beacon的stage文件。

拿到stage文件后,须要异或解密,这里我参考https://sysopfb.github.io/malware,/cobaltstrike/2020/03/24/beacon-in-azure.html改写了一下python3的脚本

import sysimport structfilename = sys.argv[1]data = open(filename, 'rb').read()t = bytearray(data[0x45:])(a,b) = struct.unpack_from('<II', t)key = at2 = t[8:]out = ""with open(filename+'_decoded', 'wb') as f: for i in range(len(t2)//4): temp = struct.unpack_from('<I', t2[i*4:])[0] temp ^= key out = struct.pack('<I', temp) print(out) key ^= temp f.write(out)

失去解密后的文件而后再应用网上公开的脚本对配置文件进行解析https://github.com/Sentinel-One/CobaltStrikeParser

在这个脚本里cs3.x异或的0x69,cs4.x异或的0x2e,查看我手中的4.1版本

cs3.x版本和cs4.x版本的异或字节不统一,然而都能够解密进去,阐明解密算法并没有扭转,那么势必能够通过扭转密钥来bypass获取配置信息,其实这种状况只须要爆破256位就能解决了(for x in range(1, 0xff)),对于扫stager我更倡议是在不须要stager的时候在Manage Web Server里kill掉stager和stager64,须要的时候间接在listeners里edit。

Sumap依据此特色曾经集成到搜寻语法中,能够通过搜寻tags:"CS Beacon"间接搜寻到相干数据。

中国地区相干数据不参加统计


2.Cobalt Strike server

空格bug存在与Cobalt Strike公布3.13之前的版本,Cobalt Strike的 "Team Server" Web服务器是基于NanoHTTPD,这是一个用Java编写的开源Web服务器。然而,此Web服务器无心中在其所有HTTP响应中返回了多余的空白符,能够通过这个空格进行辨认

snort规定:/^HTTP/1.1 200 OK rnContent-Type: [^rn]{0,100}rnDate: [^rn]{0,100} GMTrn(Content-Length: d+rn)rn,老版本的Cobalt Strike网络服务器的所有HTTP响应中都有空格,通过snort规定能够抛砖引玉,既然所有HTTP响应都有空格,那么能够通过拜访Cobalt Strike的web端口,检测返回头就能辨认Cobalt Strike了。

Cobalt Strike在3.13版本的时候修复了“异样空格bug”的同时也批改了默认返回的http头,将date头提前了,稍作批改为3.13及当前版本的特色。

Sumap依据此特色曾经集成到搜寻语法中,能够通过搜寻tags:"CS teamserver"间接搜寻到相干数据。

寰球数据分布

3. IOC威逼情报验证

取出在Sumap平台搜寻的ip数据,在安恒威逼情报中心平台验证

msf



Cobalt Strike


通过Sumap网络空间测绘平台C&C数据验证,在威逼情报平台也有相应的情报和标记。

0x03 趋势剖析

对全网的C&C数据进行剖析,境外C&C数据占大多数。依据数据工夫戳剖析,近几年Cobalt Strike使用率越来越高,次要散布在美国和俄罗斯地区。

0x04 总结

近年来网络安全事件频发,APT攻打继续高发,通过追踪攻打组织,联合Sumap网络空间测绘探测C&C的数据,揣测将来的C&C设施将会更加多变、隐匿性更强。 随着5G的推广,更多的设施被接入互联网,在万物互联的时代,APT攻打不再局限于传统网络,将来物联网等新兴设施可能陆续成为APT组织攻打的指标。

同时在ipv6的笼罩下针对ipv6的模式的攻打也在以不同的形式和维度上开展,联合机器学习和深度学习模型形式的攻打也一直呈现。面对新局势的攻打

咱们只有更加深刻的布局整体寰球网络空间,能力有更好的联动防御机制。同时对网络安全人才的造就体系化建设都将会成为2021年中的要害因素。

分割咱们:sumap@dbappsecurity.com.cn

sumap官网:https://sumap.dbappsecurity.com.cn/