第六章 流量特征分析-蚁剑流量分析

第六章 流量特征分析-蚁剑流量分析

1

搜http,按照时间找到第一个,先不用追踪到流,看到POST传入了三个参数,第一个参数是一个函数一样的东西,key是1,那么密码就是1了,我们继续看给1传入的参数

2

大概看一下,好多命令执行函数,这个应该就是执行命令的,还有两个参数,估计是这段代码在接受和解析

1
2
3
$p = base64_decode(substr($_POST["ma569eedd00c3b"],2));
$s = base64_decode(substr($_POST["ucc3f8650c92ac"],2));
$envstr = @base64_decode(substr($_POST["e5d0dbe94954b3"],2));

这是解析的核心,我们把剩下的参数传入

3

解码就是id,剩下的那段命令应该是蚁剑自己传入的,每一次执行命令都有,我们确定了是$s打印出了命令,我们后续只要针对该参数做解析就行了

我们继续向下按顺序查找,在第三个访问1.php的包里面提取参数解析,发现读的是/etc/passwd

4

在继续翻看,直到第四个包的时候,发现参数改变了

5

参数一变,那函数肯定也变了,我们追踪流,将key=1的value值拿出来再次解析

6

这个是关于文件操作的,我估计就是文件写入,因为写入才需要传入两个参数,一个路径,一个内容,下载只要一个参数,再次查看里面的解析函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ob_start();
try {
$f = base64_decode(substr($_POST["t41ffbc5fb0c04"], 2)); // 获取目标文件名
$c = $_POST["ld807e7193493d"]; // 获取内容
$c = str_replace(["\r", "\n"], "", $c); // 去掉换行
$buf = "";
for ($i = 0; $i < strlen($c); $i += 2)
$buf .= urldecode("%" . substr($c, $i, 2)); // 将16进制转字符

echo (@fwrite(fopen($f, "a"), $buf) ? "1" : "0");
} catch(Exception $e) {
echo "ERROR://" . $e->getMessage();
}
asoutput();
die();

继续按流程解析呗

7

接下来看到一个参数又少一个的

8

如法炮制,肯定是key=1的value值变了

9

这肯定是下载文件的了,毕竟只有一个参数,解析一下代码,发现处理逻辑和前面差不多,还是base64解码

10

结束了,总体来说,非常简单,就是得好好看看代码