一、哥斯拉 v4.01
PHP_EVAL_XOR_BASE64:
1.WebShell连接通讯流量分析
本次案例以哥斯拉 v4.01连接PHP_EVAL_XOR_BASE64-WebShell木马的通讯过程为例
哥斯拉 v4.01 主界面如下:
有效载荷支持:Asp、Java、CS、Php
默认加密方式有:PHP_EVAL_XOR_BASE64、PHP_XOR_BASE64、PHP_XOR_RAW
我们先以PHP_EVAL_XOR_BASE64为例,生成一个PHP的WebShell
密码:POST请求中的参数名称;例如,在本例中密码为pass,那么哥斯拉提交的每个请求都是pass=xxxxxxxx这种形式
密钥:用于对请求数据进行加密,不过加密过程中并非直接使用密钥明文,而是计算密钥的MD5值,然后取其前16位用于加密过程
记得关闭安全软件,否则会被清除
WebShell内容如下:
我们将该Shell上传到网站根目录下,然后尝试使用哥斯拉连接到该WebShell,然后我们抓包进行分析
我们输入对数据包继续过滤再分析:ip.addr == 159.75.114.131
然后选择第一条数据,右键追踪其TCP/HTTP流,就能看到如下图所示的详情数据,其中红色的是请求包,蓝色的是响应包:
我们可以发现请求包中:使用了urldecode()进行URL解码、strrev()进行字符反转、base64_decode()进行base64解码,然后再使用eval()将其作为php代码执行,这里可以使用蓝队工具箱对其进行解码,或者自己手动解码;https://github.com/abc123info/BlueTeamTools/releases/tag/v0.92
我们发现我们解码后的代码和PHP_XOR_BASE64生成的木马是一样的内容,具体代码如下:
响应:72a9c691ccdaab98 fL1tMGI4YTljMv79NDQm7r9PZzBiOA= =b4c4e1f6ddd2a488
有效:fL1tMGI4YTljMv79NDQm7r9PZzBiOA
我们发现服务器响应了一个OK,接下来我们继续看下一条请求包,我们发现pass发送的数据还是和之前一致,发送的加密后的WebShell代码,与之前不同的是Key的值为key=DlMRWA1cL1gOVDc/MjRhVAZCJ1ERUQJKKl9TXQ==,而Key值的实际作用是传输WebShell需要执行的命令:
然后我们查看其对应的响应内容:
我们能够发现其回显的值,就是我们使用哥斯拉连接目标WebShell后回显的基本信息值:
整个流程如下图所示:
- 流量特征总结
- 请求包开头存在 ”pass=eval(base64_decode(strrev(urldecode(“
- Cookie结尾处存在一个分号(强特征)
- 响应包的前后各存在16位混淆字符,这是将一个32位的MD5字符串拆分组合而成的,因为MD5的字符集范围在0123456789ABCDEF范围内,因此能够通过正则进行匹配,需要注意的是MD5需要同时匹配字母大写或者小写这两种情况,因为在JAVA版中的响应为大写字母,在PHP版中为小写字母。
PHP_XOR_BASE64:
1.WebShell连接通讯流量分析
本次案例以哥斯拉 v4.01连接PHP_XOR_BASE64-WebShell木马的通讯过程为例:
PHP_XOR_BASE64-WebShell内容如下:
标签:WebShell,XOR,v4.01,哥斯拉,BASE64,PHP From: https://www.cnblogs.com/danyue/p/18146698