本文正在参与「金石计划 . 瓜分6万现金大奖」
前语
前一阵子帮别人做取证标题,有许多关于WEBSHELL的流量要剖析,想起来还有没好好剖析过于是准备写篇文章总结一下协助咱们能够快速的区分WEBSHELL流量,下面咱们打开文章来讲。
我国菜刀
这个应该是咱们最了解的WEBSHELL管理工具,这儿先附一个下载链接供咱们下载:
github.com/raddyfiy/ca…
这儿我用wireshark抓取到了流量进行一下剖析:
能够看到特征仍是很显着的,首先恳求头的ua头,也就是用户署理(User Agent),一般是百度或许火狐的浏览器,再看上图的恳求包体,一般是附带着下面这个标识符:
eval=(base64_decode($_POST[z0]))
而z0后边的一般也是一样的,只不过进行了base64加密,解密后的结果如下(这儿只取最显着的头部解密后的代码):
@ini_set("display_errors","0");@set_time_limit(0);
这就是我国菜刀WEBSHELL管理工具最常见的流量特征,在进行攻击时为了防止被人发现能够测验将上面的特征进行混淆以此来防止被发现。
蚁剑
蚁剑全称我国蚁剑,是一款开源的跨渠道网站管理工具,它首要面向于合法授权的浸透测试安全人员以及进行惯例操作的网站管理员。
下载地址如下:
github.com/AntSwordPro…
相比于菜刀,咱们能够在连接时挑选编码器,咱们这儿以默许编码器来剖析,先抓它的流量包:
能够看到流量特征也是十分的显着头部就存在以下特征:
@ini_set(“display_errors”, “0”);@set_time_limit(0)
恳求被套了一层URL编码和BASE64编码,能够看到这个流量很了解,我国菜刀连接时也会有这个流量,因此能够推断这是PHP类WEBSHELL一般都会有的东西,当咱们用WIRESHARK抓包时,你会发现抓到了两个恳求,也就是说,连接时恳求了两次,那么第2次都干了些什么呢?
简略剖析后会发现,不但只有上面的信息,它还把目录给列了出来,咱们能够看到文件目录了。若咱们不使用默许编码而是用base64编码会有什么特别的当地吗?
简略测验会发现:数据包存在以下base加密的eval指令执行。
并且base64解码后的字符显着看出是通过{}契合分成了一段一段的,流量特征十分显着,这儿找到了蚁剑base64编码的脚本流程供咱们参阅:
use strict';
module.exports = (pwd, data, ext = null) => {
// 生成一个随机变量名
let randomID;
if (ext.opts.otherConf['use-random-variable'] === 1) {
randomID = antSword.utils.RandomChoice(antSword['RANDOMWORDS']);
} else {
randomID = `${antSword['utils'].RandomLowercase()}${Math.random().toString(16).substr(2)}`;
}
data[randomID] = Buffer
.from(data['_'])
.toString('base64');
data[pwd] = `@eval(@base64_decode($_POST[${randomID}]));`;
delete data['_'];
return data;
}
简略剖析一下,这儿用到了random函数来产生随机数,而data[pwd]则是作为参数传递,咱们能够在恳求包里找到对应的信息,randomID也是作为密钥随机生成的,base64编码就剖析到这儿了。
结语
今日给咱们带来了WEBSHELL管理工具流量特征根底篇,简略介绍了菜刀和蚁剑这两个比较简略的流量特征,之后也会给咱们带来别的WEBSHELL管理工具流量剖析,假如夏欢本文希望能够一键三连支持一下。