思路
- 解题大致思路:
- 识别初步入侵痕迹: 首先通过流量包分析,定位到服务器被 Webshell 入侵的迹象,通常表现为
POST请求上传 Webshell 文件(如1.php)。 - 定位
frpc上传: 观察POST请求中是否存在大文件上传,根据以往经验判断是否存在frpc或类似内网穿透工具的二进制文件上传。其特征是Content-Length异常大。 - 定位
frpc.ini上传(关键): 这是获取frps服务器 IP 的最直接方法。frpc运行需要配置文件,通常会通过POST请求上传frpc.ini。这个文件通常较小,并且内容中会包含server_addr和server_port等关键字段。 - 解码
frpc.ini内容: 由于流量包中frpc.ini的内容可能经过 URL 编码或十六进制编码,需要将其解码以获取明文配置。
- 识别初步入侵痕迹: 首先通过流量包分析,定位到服务器被 Webshell 入侵的迹象,通常表现为
EXP (流量分析技巧)
-
初步筛查 Webshell 流量:
- 过滤器:
http.request.method == "POST" - 重点关注向 Web 服务器 (如
192.168.2.197:8081) 发送的POST请求,查找是否存在可疑的.php文件上传或执行。例如,本次分析中,多个POST /1.php HTTP/1.1请求是关键入口。
- 过滤器:
-
定位
frpc二进制文件上传:- 在
POST /1.php的流量中,寻找Content-Length异常大的请求。 - 例如,发现
Content-Length: 1024890的请求,其请求体中参数解码后为/var/www/html/frpc,确认了frpc可执行文件被上传。
- 在
-
定位
frpc.ini配置文件上传 (核心步骤,结合多种策略):-
策略一:利用时间线和上下文关联 (最实用且普适)
- 查找时间点: 找到上传
frpc二进制文件的那个大POST请求(Content-Length: 1024890)。记录下它的时间戳。 - 缩小范围: 查找紧随其后、同样目标地址的、
Content-Length较小的POST请求(例如Content-Length: 1374)。这些请求很可能就是上传frpc.ini或其他小文件的。 - 逐一分析流内容: 对这些筛选出的小
POST请求,逐一右键点击,选择Follow > HTTP Stream。 - 肉眼识别编码数据: 在弹出的流内容窗口中,虽然可能无法直接搜索明文字符串,但可以肉眼观察请求体部分,寻找是否存在大量的百分号
%(表示 URL 编码)或看起来像十六进制数据(例如5B636F6D6D6F6E5D0A...这样的长串数字和字母),并且这些数据通常紧跟在一个有意义的参数名(如j68071301598f或xa5d606e67883a)之后。 - 复制并解码: 当发现这种长串数据时,将其复制出来,并使用在线的十六进制解码器(如“Hex to ASCII Decoder”)或 URL 解码器进行解码。
- 发现关键信息: 解码后,即可清晰地看到
frpc.ini的配置内容,其中包括server_addr = 192.168.239.123和server_port = 7778,从而确认Flag为192.168.239.123。
- 查找时间点: 找到上传
-
策略二:利用 Wireshark “查找”功能的高级选项 (如果支持)
- 在 Wireshark 中按下
Ctrl + F打开“查找”对话框。 - 设置查找范围: 将“查找”的范围设置为“包字节流” (Packet bytes)。
- 尝试指定编码搜索: 尝试将“显示格式” (Display filter) 设置为“十六进制值” (Hex value) 或“URL 编码” (URL encoded)。
- 输入编码后的关键词片段: 然后输入预先知道的关键词(如
server_addr或common)的十六进制或 URL 编码片段进行搜索。例如,server_addr的十六进制是7365727665725F61646472,可以尝试搜索其中的一部分,比如73657276。 - 注意: 此方法需要预先知道关键词的编码形式,且不是所有 Wireshark 版本或配置都完美支持直接在查找框中进行这种复杂编码的搜索。
- 在 Wireshark 中按下
-
总结
本次分析的考点主要集中在:
- HTTP 协议的深入理解: 区分
GET/POST请求,理解Content-Length和Content-Type在文件上传中的作用。 - Wireshark 高效过滤与分析: 熟练运用
http.request.method、http.content_length等过滤器,以及Follow HTTP Stream功能进行流内容分析。 - 数据编码与解码: 识别 URL 编码和十六进制编码,并知道如何进行解码以获取原始内容。这是本次获取
Flag的关键障碍。 - FRP 工作原理: 了解
frpc需要连接frps,并且通常会通过配置文件指定server_addr和server_port。

一眼AI
加载中...