webshell流量分析
前言
趁着面试vn的契机,仔细巩固了一下基础,把之前一直头疼的webshell流量分析好好搞了一下,顺便集中记录下来,方便理清思路。
蚁剑
蚁剑的攻击原理就没什么好讲了,直接就从分析流量和解题上手
蚁剑的流量中应当是有很多post请求的,可以直接过滤http.request.method == ‘POST’,对post请求追踪后会得到类似这个典型界面
注意到content类型是application/x-www-form-urlencoded ,接受的(即accept)是gzip(这个可以辨别webshell)和deflete,很明显的特征是中间请求包内容的一堆,其中开头的ini_set 就是典型的蚁剑标识,对它进行url解码后可以得到请求包内容
仔细分析,这段就是绕过的恶意代码,最后的payload就是后面的Base64加密内容
就是向/var/www/html/flag.txt写入flag{write_flag},再看返回包,6960cb20511e0a91914可以分解为6960+cb205+1+1e0a91914 其中中间的1或0代表是否写入成功,这里是成功了,两端就是前缀和后缀标记,所以这里的1.php就是后门文件。再来看另外的请求包
这个就是下载文件,url解码后可以知道是下载了/var/www/html/config.php ,其中下面没有展示的define(‘DB_NAME’, ‘|127.0.0.1:3306|root|123456|taocms’); 暴露了数据库地址:127.0.0.1:3306,数据库用户名:root,数据库密码:123456(弱密码!),数据库名:taocms
这个返回包时看到攻击者在尝试提权,为下一步攻击做准备,请求包解码后是cd “/var/www/html”; id; echo e124bc; pwd; echo 43523,其他数据包也是一样的分析
题目
第六章 流量特征分析-蚁剑流量分析
1.木马的连接密码是多少
按照时间顺序排列,打开第一个请求包追踪,密码就是1=%40ini_set 中的1
1 | flag{1} |
2.黑客执行的第一个命令是什么
根据解码后的cd “/var/www/html”;id;echo e124bc;pwd;echo 43523 ,d “/var/www/html”是切换目录,不是命令,而id则是第一个真正意义上的命令,它输出了下面的uid=33(www-data) gid=33(www-data)…
1 | flag{id} |
3.黑客读取了哪个文件的内容,提交文件绝对路径
由前面的分析就可以知道读取了/var/www/html/config.php,但是要提交的是绝对路径,所以要逐个解码,找到cat这个命令,最终发现cd “/var/www/html”;cat /etc/passwd;echo e124bc;pwd;echo 43523,所以绝对路径就是/etc/passwd
1 | flag{/etc/passwd} |
4.黑客上传了什么文件到服务器,提交文件名
根据第一个分析可以知道上传了flag.txt
1 | flag{flag.txt} |
5.黑客上传的文件内容是什么
得到flag{write_flag}
1 | flag{write_flag} |
6.黑客下载了哪个文件,提交文件绝对路径
就是之前的config.php
1 | flag{config.php} |
好靶场
本题流量中疑似蚁剑 WebShell 通信访问的目标域名是什么?
http.request.method==”POST”
过滤出POST请求包,查看Host地址

1 | www.haobachang.com |
疑似蚁剑 WebShell 的主要访问路径是什么?
统计一下请求,可以看见/hbc.php的路径访问最多

1 | /hbc.php |
疑似蚁剑通信主要使用的 HTTP 方法是什么?
1 | POST |
疑似蚁剑请求中用于提交数据的核心参数名是什么?
点击一个追踪后可以看见参数是ant

1 | ant |
疑似蚁剑流量中出现的明显异常 User-Agent 是什么?
合理猜测/hbc.php是木马,所以追踪访问路径/hbc.php的请求包,找到User-Agent

1 | antSword/v2.1 Mozilla/5.0 |
疑似蚁剑请求的 Content-Type 是什么?
同上题
1 | application/x-www-form-urlencoded |
疑似蚁剑响应中异常的 Content-Type 是什么?
同样上题的的请求追踪,查看返回包

1 | application/octet-stream |
疑似蚁剑通信一共出现了多少次 POST /hbc.php 相关请求?

6+3共9次
1 | 9 |
本题中疑似蚁剑响应体使用了哪类分隔符标记?
看返回包

可以看见是AS6325BEGIN/AS6179END,也就是BEGIN/END标记
1 | BEGIN/END |
本题中混入的正常登录业务路径是什么?
看名字应该是这个


1 | /login |
本题中混入的正常文件分片上传路径是什么?

前面的是正常功能,可以看见image的路径
1 | /api/file/chunk |
本题中混入的业务埋点上报路径是什么?
业务埋点上报,简单来说,就是在一个软件或网页中,提前设置好采集点,当用户触发某个行为时,客户端自动将相关数据发送给服务器的过程。
可以把它理解为在数字产品里安装了无数个“摄像头”和“传感器”,用来记录用户的具体行为。


1 | /api/telemetry/upload |
本题中 DNS 解析得到的目标服务端 IP 是什么?
过滤出DNS流量,有两个,试了一下是第一个

1 | 203.0.113.88 |
补充
这里区分一下下载和读取,命令就不同,读取一般有cat,more,less等,而下载不会,直接就会展示内容,且这里攻击者读取了数据库,下载了配置文件
这里还有一个区分方法
其中的参数就是指最后的&分隔的数量
就是标蓝的地方,这个就是下载的请求,只有一个参数,这个方法还是挺好用的
冰蝎
冰蝎的特征有一个特征是请求头在冰蝎3.0之前是Content-Type: application/octet-stream
冰蝎流量由于熟练度不高,就从题目开始入手好了
题目
冰蝎3.0-jsp流量分析
1.黑客IP是什么?
直接http.request.method==”POST”过滤,寻找jsp文件,即上传木马,发现大量index.jsp,可能是,于是http contains “indeX.jsp”过滤,会发现这条PUT /indeX.jsp/ HTTP/1.1 追踪后发现
这个就是冰蝎默认的jsp木马,HTTP/1.1 201显示上传成功,所以结合一下是192.168.31.61,还可以知道秘钥是String k=”3f0af7bb4dbcfbd7” 使用了ECB加密方式
1 | flag{192.168.31.61} |
2.黑客上传的Webshell名是什么?
就是indeX.jsp,这里也可以回顾一下jsp,java文件用的就是AES加密,php就是XOR
1 | flag{indeX.jsp} |
3.黑客上传WebShell的时间是多少?
直接继续分析PUT包,看frame的UTC Arrival Time 2025-02-22 07:47:38
1 | flag{2025-02-22 07:47:38} |
4.木马的解密key是什么?
之前的上传木马文件已经分析过了,秘钥就是3f0af7bb4dbcfbd7
1 | flag{3f0af7bb4dbcfbd7} |
5.黑客执行的第一个命令是什么?
之前已经找到木马文件了,那就一个一个分析好了,因为要得到命令,直接分析日志文件请求包,最终在长度为510的日志中找到命令
1 | flag{ifconfig} |
6.黑客上传的文件内容是什么?
继续分析,会看到一个请求包里有关于上传文件的create命令
追踪一下TCP流,可以得到一个flag
1 | flag{485375b7b06ad856a788c0d95229f35c} |
7.黑客下载的文件内容是什么?
这里继续找到一个下载命令请求包,追踪一下TCP流,可以得到一个flag
1 | flag{3aacab9ca36a6894c75048e4faf47052} |
8.服务器内的flag是什么?
这里就是进入服务器直接就能找到根目录root文件夹下的flag.txt
1 | flag{ae1d04dd3d15c6a18f904fe50fdf7eca} |
好靶场
本题流量中疑似冰蝎 WebShell 通信访问的目标域名是什么?
1 | www.haobachang.com |
疑似 WebShell 的访问路径是什么?

1 | /hbc.php |
疑似冰蝎通信主要使用的 HTTP 方法是什么?
1 | POST |
疑似冰蝎通信中用于提交加密数据的参数名是什么?

1 | rebeyond |
疑似冰蝎请求的 Content-Type 是什么?

1 | application/x-www-form-urlencoded |
疑似冰蝎响应中异常的 Content-Type 是什么?
同上题
1 | application/octet-stream |
本题中明显异常的 User-Agent 之一是什么?

1 | Java/1.8.0_202 |
疑似冰蝎通信一共出现了多少次 POST /hbc.php 请求?

1 | 8 |
在 Wireshark 中过滤 hbc.php 请求 URI 的显示过滤器可以写什么?
1 | http.request.uri contains "hbc.php" | http.request.uri == "/hbc.php" |
在 Wireshark 中过滤目标 Host 的显示过滤器可以写什么?
1 | http.host == "www.haobachang.com" |
除 WebShell 流量外,本题混入的业务登录路径是什么?
1 | /login |
本题混入的业务健康检查路径是什么?
还是看名字
1 | /healthz |
本题中用于混淆分析的业务日志上报路径之一是什么?
1 | /api/log/collect |
本题中哪个请求头可用于观察 PHP 会话痕迹?
这里要对请求中发每个参数了解,y以一个为例

1 | Host www.haobachang.com | 目标服务器:告诉服务器要访问哪个域名(一台服务器可能托管多个网站) |
1 | Cookie |
疑似冰蝎通信的响应状态码主要是什么?
1 | 200 |
本题中疑似冰蝎请求常见的缓存控制请求头是什么?
1 | Cache-Control: no-cache |
定位异常会话后,在 Wireshark 中查看完整 HTTP 交互常用的功能是什么?
也就是追踪流功能
1 | Follow TCP Stream |
本题中用于伪装来源地址的请求头是什么?
1 | X-Forwarded-For |
