共计 4815 个字符,预计需要花费 13 分钟才能阅读完成。
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 random
def 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 trial
if __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 sys
import struct
filename = sys.argv[1]
data = open(filename, 'rb').read()
t = bytearray(data[0x45:])
(a,b) = struct.unpack_from('<II', t)
key = a
t2 = 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/