蓝队(Blue Team)防护技能详解
前言
面向对象:网络安全专业学生 / 红蓝对抗备赛 内容涵盖:流量分析、日志分析、应急响应、威胁情报、主机排查、SIEM运营、ATT&CK应用、系统加固 每个模块均附实操示例,可结合靶场直接练习
目录
- 蓝队工作总览
- 流量分析
- 日志分析
- 主机排查与取证
- 应急响应完整流程
- 威胁情报应用
- SIEM/态势感知平台操作
- MITRE ATT&CK 框架应用
- 系统与网络加固
- 常用工具清单
- 实战练习资源
- 备赛检查清单
一、蓝队工作总览
蓝队的核心工作可以归纳为一个闭环:
预防(加固) → 检测(监控/告警) → 分析(研判) → 响应(处置) → 复盘(总结改进)
↑___________________________________________________________|
在HW护网、AWD比赛中,蓝队的价值不在于“零漏洞”(几乎不可能),而在于: -发现得够早(缩短攻击者驻留时间) -响应得够快(缩小影响范围) -记录得够全(支撑复盘和溯源)
二、流量分析
2.1 核心工具
| 工具 | 用途 |
|---|---|
| Wireshark | 离线/实时深度包分析,提供图形化界面 |
| tcpdump | 命令行抓包工具,适合服务器远程操作 |
| Suricata / Snort | 基于规则的实时入侵检测系统 |
| NetworkMiner | 从流量中直接提取文件、凭据、会话等信息 |
| Zeek(原Bro) | 生成结构化流量日志,便于大规模分析 |
2.2 必会的 Wireshark 过滤语法
#筛选某IP的所有流量
ip.addr == 192.168.1.100
#筛选HTTP POST请求(常用于定位数据提交/Webshell交互)
http.request.method =="POST"
#筛选可能的端口扫描(大量SYN无ACK)
tcp.flags.syn == 1&&tcp.flags.ack == 0
#筛选DNS查询中包含特定关键字(怀疑DNS隧道/C2域名)
dns.qry.name contains"evil"
#筛选异常长度的DNS请求(DNS隧道特征之一)
dns.qry.name.len>50
#筛选可能的SQL注入特征
http.request.uri contains"union"or http.request.uri contains"select"
#追踪某个会话的完整对话内容
右键数据包 → Follow → TCP Stream
2.3 典型攻击流量特征对照表
| 攻击类型 | 流量特征 | 处置方向 |
|---|---|---|
| 端口/主机扫描 | 短时间大量SYN包发往多端口/多IP,握手不完整 | 封禁源IP,加固对应端口服务 |
| Web目录扫描 | 大量404请求后突现200/403,路径含admin、manage、.git等 | 加WAF规则,隐藏敏感路径 |
| SQL注入 | URL/Body含union select、' or 1=1--、sleep(5)等 | 定位涉事参数,加过滤规则,检查数据库日志 |
| Webshell交互 | POST请求体经过编码/加密,UA正常但请求频率/路径异常 | 定位落地文件,隔离查杀 |
| DNS隧道 | 高频、超长子域名查询,查询目标域名信誉差 | 阻断对应域名解析,排查发起主机 |
| 内网横向 | 内部IP间大量445(SMB)/3389(RDP)/135/139端口连接 | 隔离源主机,检查是否已获取域内凭据 |
| C2心跳通信 | 固定周期的小流量外连,目标IP在威胁情报中标记为恶意 | 阻断外联,本机排查驻留进程 |
2.4 实战示例:识别一次SQL注入攻击流量
假设在Wireshark中过滤出如下HTTP请求:
GET /product.php?id=1' UNION SELECT username,password FROM users-- HTTP/1.1
Host: target.com
User-Agent: sqlmap/1.7
分析要点:1. UA字段直接暴露为sqlmap,说明使用了自动化注入工具(真实攻击者常会伪造UA,需结合行为综合判断) 2. URL参数id处存在明显的UNION SELECT注入语句,目标是获取用户表的账号密码 3. 结合前后请求包,观察是否存在报错回显(决定是报错注入还是盲注)
处置建议:- 立即在WAF/Nginx层面对该参数增加过滤规则 - 检查数据库慢查询日志,确认是否真的执行了UNION SELECT语句 - 排查该源IP是否还有其他攻击行为(横向关联)
三、日志分析
3.1 日志类型与关键字段
Web访问日志(Nginx/Apache)
192.168.1.50 - - [12/Jun/2026:14:05:30 +0800] "POST /upload.php HTTP/1.1" 200 512 "-" "Mozilla/5.0"
关注字段:来源IP、时间、请求方法、URL、状态码、返回大小、UA、Referer
可疑特征:- 高频访问敏感路径(/admin、/manage、/upload) - 大量404之后突然200(说明扫描后命中路径) - URL/参数中含明显payload(../../、<script>、select、exec) - UA为扫描工具默认特征(sqlmap、nikto、Nessus、御剑等)
Windows事件日志(关键Event ID)
| Event ID | 含义 | 蓝队关注点 |
|---|---|---|
| 4624 | 登录成功 | 结合登录类型(Type 3网络/Type 10远程桌面)判断是否异常 |
| 4625 | 登录失败 | 短时间大量出现 = 爆破特征 |
| 4672 | 特殊权限登录(管理员) | 排查是否为非常规账号获得高权限 |
| 4688 | 新进程创建 | 排查是否有可疑命令行(如powershell -enc编码命令) |
| 4720 | 创建新账号 | 检查是否为攻击者留下的后门账号 |
| 4732 | 账号加入某安全组 | 排查权限提升行为 |
| 1102 | 安全日志被清除 | 高度可疑,攻击者常在清痕迹时触发 |
Linux日志
/var/log/auth.log#或 /var/log/secure,SSH登录/sudo记录
/var/log/syslog#系统级日志
/var/log/cron#计划任务执行记录
3.2 实战命令:快速定位SSH爆破
#统计SSH登录失败次数最多的IP
grep"Failed password"/var/log/auth.log|awk'{print $(NF-3)}'|sort|uniq-c|sort-nr|head-10
#输出示例:
# 1024 203.0.113.55
# 312 198.51.100.20
#确认这些IP是否有成功登录(一旦有,说明爆破成功,需立即处置)
grep"Accepted password"/var/log/auth.log|grep"203.0.113.55"
3.3 实战示例:还原一次入侵的时间线
结合Web日志、系统日志、流量日志三方数据,还原完整攻击链条:
14:02:15 攻击者对 /admin 目录发起扫描(access.log大量404)
14:05:30 发现 /upload.php 文件上传接口存在漏洞(access.log 200状态码)
14:06:02 上传文件 shell.jsp(access.log记录POST,文件名可疑)
14:06:10 访问 shell.jsp 并执行命令(Windows 4688记录cmd.exe被tomcat8.exe进程拉起)
14:08:45 尝试创建新账号 backdoor$(Windows 4720事件触发)
14:10:00 向内网 445 端口发起扫描(流量日志异常连接激增)
14:15:00 安全日志被清除(Windows 1102事件——攻击者试图清痕迹)
这种时间线是应急响应报告的核心内容,也是复盘和溯源的关键证据链。
3.4 日志分析平台
- ELK(Elasticsearch + Logstash + Kibana):集中化日志存储与可视化查询,适合大规模日志场景
- Splunk:商业SIEM平台,查询语言强大(SPL)
- Log Parser(Windows):用SQL语法查询Windows事件日志,适合本地快速排查
四、主机排查与取证
4.1 Webshell 排查
#查找近期修改/新增的可疑文件(按时间线索)
find/var/www-typef\(-name"*.php"-o-name"*.jsp"\)-mtime-3
#查找包含高危函数的文件(PHP Webshell常见特征)
grep-rl"eval(\|assert(\|base64_decode(\|system(\|shell_exec("/var/www--include="*.php"
辅助工具:- D盾_Web查杀(Windows下常用) - 河马Webshell查杀 - 天蝎Webshell检测
4.2 异常进程排查
Linux:
psaux--sort=-%cpu|head-20#按CPU占用排序,找异常高占用进程
netstat-antp|grepESTABLISHED#查看已建立的外联连接
ls-la/proc/<PID>/exe#定位可疑进程的真实执行文件路径
Windows:
tasklist/svc#查看进程与关联服务
netstat-ano#查看网络连接及对应PID
wmicprocesswhere"ProcessId=<PID>"get CommandLine#查看进程完整启动命令
4.3 持久化机制排查(攻击者常见驻留手法)
系统 | 排查点 |
Windows | 注册表Run/RunOnce键、计划任务(schtasks /query)、服务(services.msc)、WMI事件订阅、隐藏账号(用户名以$结尾) |
Linux | crontab -l、/etc/rc.local、~/.ssh/authorized_keys(是否被植入攻击者公钥)、systemd自定义服务(/etc/systemd/system/) |
示例:排查Linux下的隐藏定时任务后门
#检查所有用户的crontab
foruserin$(cut-f1-d:/etc/passwd);docrontab-u$user-l2>/dev/null;done
#检查系统级定时任务目录
cat/etc/crontab
ls-la/etc/cron.d/ /etc/cron.daily/ /etc/cron.hourly/
4.4 内存取证
对于疑似高级持续性攻击(尤其是无文件攻击/内存马),需要在不关机的前提下先做内存镜像:
# Linux使用 LiME生成内存镜像
insmod lime.ko"path=/tmp/mem.lime format=lime"
再用Volatility分析:
volatility-fmem.lime--profile=LinuxUbuntu_x64 linux_pslist#列出进程
volatility-fmem.lime--profile=LinuxUbuntu_x64 linux_netstat#查看网络连接
五、应急响应完整流程
5.1 PDCERF 模型
准备(Preparation) → 检测(Detection) → 抑制(Containment)
→ 根除(Eradication) → 恢复(Recovery) → 复盘(Follow-up)
5.2 详细步骤
第一步:确认与信息收集- 排除误报,确认是否为真实入侵 - 收集受影响主机的系统版本、开放服务、网络位置
第二步:抑制- 优先隔离而非直接关机(关机会丢失内存中的攻击痕迹) - 可先做内存镜像,再断网隔离(物理断网或防火墙策略隔离)
第三步:根除- 清除Webshell、恶意进程、后门账号、持久化项 -修补漏洞根因(这一步最容易被忽视,不修根因会被反复打入) - 全面修改可能泄露的密码/密钥
第四步:恢复- 加固后重新上线,持续监控一段观察期(如72小时) - 分批恢复业务,避免一次性全开放导致二次入侵
第五步:复盘- 撰写应急响应报告:时间线、入口点、影响范围、处置措施、改进建议
5.3 应急响应报告模板(简化版)
##事件概述
-发现时间:
-受影响系统:
-事件等级:
##攻击时间线
(按时间顺序列出关键节点)
##入侵路径分析
-入口漏洞:
-利用方式:
-横向移动情况:
##处置措施
-已采取的抑制/根除动作:
##根因与改进建议
-漏洞根因:
-长期加固建议:
六、威胁情报应用
威胁情报可以帮助快速判断“这个IP/域名/文件是不是已知的恶意资产”,节省大量排查时间。
常用平台:- 微步在线(X情报社区):IP/域名/文件Hash查询 - 奇安信威胁情报中心 - VirusTotal:文件Hash多引擎查杀比对
使用场景示例:发现某外联IP 45.xx.xx.xx,先查威胁情报平台,若显示“关联APT组织C2基础设施”,则可直接判定为高危,无需再花时间人工分析该IP的历史行为,可直接进入抑制流程。
七、SIEM/态势感知平台操作
7.1 核心能力
- 多源日志集中采集(Web、系统、网络设备、安全设备)
- 关联分析(跨日志源自动关联攻击链)
- 可视化大屏与告警工单
7.2 蓝队在SIEM中的日常工作重点
- 告警研判:区分真实攻击与误报(实战中告警量往往是海量级别,误报率高)
- 规则调优:根据实际环境不断优化检测规则,减少误报、避免漏报
- 仪表盘监控:值守期间持续关注实时攻击态势大屏
7.3 简单的告警研判思路示例
收到告警:“某IP对Web服务器发起大量请求” 1. 查看请求路径是否为正常业务路径还是敏感路径扫描 2. 查看该IP历史行为(是否为已知的爬虫/监控探测IP) 3. 查询威胁情报是否为恶意IP 4. 综合判断后打上标签:误报/低危 /需要跟进
八、MITRE ATT&CK 框架应用
ATT&CK 是把攻击者的战术(Tactics)、技术(Techniques)、程序(Procedures)系统化的知识框架,蓝队用它来:
- 建立检测覆盖地图:明确“我方对哪些攻击技术有检测能力,哪些是盲区”
- 辅助研判:发现某行为后,可以在ATT&CK矩阵中定位对应技术编号,快速联想攻击者后续可能的动作
示例:
| 阶段 | ATT&CK战术 | 对应技术示例 | 检测点 |
|---|---|---|---|
| 初始访问 | Initial Access | 利用Web应用漏洞(T1190) | Web日志异常请求 |
| 执行 | Execution | 命令行/脚本执行(T1059) | 4688进程创建日志 |
| 持久化 | Persistence | 计划任务(T1053) | 计划任务列表核查 |
| 权限提升 | Privilege Escalation | 利用漏洞提权(T1068) | 异常权限变更日志 |
| 防御绕过 | Defense Evasion | 清除日志(T1070) | 1102日志清除事件 |
| 横向移动 | Lateral Movement | 哈希传递攻击(T1550) | 内网445/3389异常连接 |
九、系统与网络加固(事前防御)
9.1 通用加固清单
- ☐ 所有系统/中间件打最新安全补丁
- ☐ 关闭不必要的端口和服务
- ☐ 排查并修改所有弱口令(系统、数据库、中间件后台)
- ☐ Web应用敏感目录做访问控制或隐藏
- ☐ 禁用高危协议(如非必要的SMBv1)
- ☐ 数据库、中间件不使用默认端口/默认账号
- ☐ 部署WAF并配置合理规则
- ☐ 关键系统日志集中采集,设置合理保留周期
- ☐ 制定应急预案,明确响应分工
9.2 常见弱口令排查示例
#使用hydra对自己的靶机做弱口令自查(仅限授权环境)
hydra-Lusers.txt-Ppasswords.txt ssh://192.168.1.10
注意:任何弱口令扫描、渗透测试动作都必须在授权环境内进行。
十、常用工具清单汇总
| 分类 | 工具 |
|---|---|
| 流量分析 | Wireshark、tcpdump、Suricata、Zeek、NetworkMiner |
| 日志分析 | ELK、Splunk、Log Parser、grep/awk/sed |
| Webshell查杀 | D盾、河马、天蝎 |
| 进程/网络排查 | Process Explorer、PCHunter、火绒剑、netstat |
| 内存取证 | Volatility、LiME、Redline |
| 威胁情报 | 微步在线、奇安信威胁情报中心、VirusTotal |
| 漏洞自查 | Nessus、OpenVAS |
十一、实战练习资源
- 流量分析:malware-traffic-analysis.net(大量真实恶意流量pcap+题解,公认最佳练习资源)
- CTF/Misc方向:buuctf、攻防世界,练习日志分析、流量分析类题目
- 靶场搭建:Vulhub(现成CVE漏洞环境),自己打自己再练应急响应排查
- HW复盘文章:关注安全厂商公众号发布的护网复盘Writeup,学习真实案例的分析思路
- ATT&CK学习:MITRE ATT&CK官网矩阵,配合实际攻击案例做映射练习
十二、备赛检查清单
- ☐ 能熟练用Wireshark定位常见攻击流量特征
- ☐ 能独立完成Windows/Linux日志的攻击时间线还原
- ☐ 熟悉Webshell查杀工具的使用
- ☐ 能独立完成一次完整的应急响应演练(从发现到出报告)
- ☐ 了解ATT&CK矩阵的基本战术分类
- ☐ 准备好个人应急响应排查脚本/工具包
- ☐ 与团队完成至少一次模拟攻防演练,明确分工
本文档可作为备赛复习资料,建议结合实际靶场操作反复练习,形成肌肉记忆。
