0%

[陇剑杯 2021]webshell(问6)

2025-06-02 06:29By
lihuanssctf
流量分析Webshell流量日志审计

思路

  • 解题大致思路:
    1. 识别初步入侵痕迹: 首先通过流量包分析,定位到服务器被 Webshell 入侵的迹象,通常表现为 POST 请求上传 Webshell 文件(如 1.php)。
    2. 定位 frpc 上传: 观察 POST 请求中是否存在大文件上传,根据以往经验判断是否存在 frpc 或类似内网穿透工具的二进制文件上传。其特征是 Content-Length 异常大。
    3. 定位 frpc.ini 上传(关键): 这是获取 frps 服务器 IP 的最直接方法。frpc 运行需要配置文件,通常会通过 POST 请求上传 frpc.ini。这个文件通常较小,并且内容中会包含 server_addrserver_port 等关键字段。
    4. 解码 frpc.ini 内容: 由于流量包中 frpc.ini 的内容可能经过 URL 编码或十六进制编码,需要将其解码以获取明文配置。

EXP (流量分析技巧)

  1. 初步筛查 Webshell 流量:

    • 过滤器:http.request.method == "POST"
    • 重点关注向 Web 服务器 (如 192.168.2.197:8081) 发送的 POST 请求,查找是否存在可疑的 .php 文件上传或执行。例如,本次分析中,多个 POST /1.php HTTP/1.1 请求是关键入口。
  2. 定位 frpc 二进制文件上传:

    • POST /1.php 的流量中,寻找 Content-Length 异常大的请求。
    • 例如,发现 Content-Length: 1024890 的请求,其请求体中参数解码后为 /var/www/html/frpc,确认了 frpc 可执行文件被上传。
  3. 定位 frpc.ini 配置文件上传 (核心步骤,结合多种策略):

    • 策略一:利用时间线和上下文关联 (最实用且普适)

      • 查找时间点: 找到上传 frpc 二进制文件的那个大 POST 请求(Content-Length: 1024890)。记录下它的时间戳
      • 缩小范围: 查找紧随其后、同样目标地址的、Content-Length 较小的 POST 请求(例如 Content-Length: 1374)。这些请求很可能就是上传 frpc.ini 或其他小文件的。
      • 逐一分析流内容: 对这些筛选出的小 POST 请求,逐一右键点击,选择 Follow > HTTP Stream
      • 肉眼识别编码数据: 在弹出的流内容窗口中,虽然可能无法直接搜索明文字符串,但可以肉眼观察请求体部分,寻找是否存在大量的百分号 % (表示 URL 编码)或看起来像十六进制数据(例如 5B636F6D6D6F6E5D0A... 这样的长串数字和字母),并且这些数据通常紧跟在一个有意义的参数名(如 j68071301598fxa5d606e67883a)之后。
      • 复制并解码: 当发现这种长串数据时,将其复制出来,并使用在线的十六进制解码器(如“Hex to ASCII Decoder”)或 URL 解码器进行解码。
      • 发现关键信息: 解码后,即可清晰地看到 frpc.ini 的配置内容,其中包括 server_addr = 192.168.239.123server_port = 7778,从而确认 Flag192.168.239.123
    • 策略二:利用 Wireshark “查找”功能的高级选项 (如果支持)

      • 在 Wireshark 中按下 Ctrl + F 打开“查找”对话框。
      • 设置查找范围: 将“查找”的范围设置为“包字节流” (Packet bytes)。
      • 尝试指定编码搜索: 尝试将“显示格式” (Display filter) 设置为“十六进制值” (Hex value) 或“URL 编码” (URL encoded)。
      • 输入编码后的关键词片段: 然后输入预先知道的关键词(如 server_addrcommon)的十六进制或 URL 编码片段进行搜索。例如,server_addr 的十六进制是 7365727665725F61646472,可以尝试搜索其中的一部分,比如 73657276
      • 注意: 此方法需要预先知道关键词的编码形式,且不是所有 Wireshark 版本或配置都完美支持直接在查找框中进行这种复杂编码的搜索。

总结

本次分析的考点主要集中在:

  • HTTP 协议的深入理解: 区分 GET/POST 请求,理解 Content-LengthContent-Type 在文件上传中的作用。
  • Wireshark 高效过滤与分析: 熟练运用 http.request.methodhttp.content_length 等过滤器,以及 Follow HTTP Stream 功能进行流内容分析。
  • 数据编码与解码: 识别 URL 编码和十六进制编码,并知道如何进行解码以获取原始内容。这是本次获取 Flag 的关键障碍。
  • FRP 工作原理: 了解 frpc 需要连接 frps,并且通常会通过配置文件指定 server_addrserver_port
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有

加载中...

加载失败
广告
×
评论区
添加新评论

一眼AI

加载中...