Linux 应急响应 —— 系统化学习指南
系列简介
应急响应(Incident Response, IR) 是指在安全事件发生后,通过系统化的方法对入侵行为进行 检测、分析、遏制、根除和恢复 的全过程
作为一名安全工程师,你可能擅长渗透测试或代码审计,但当真正的安全事件发生时——服务器被挖矿、数据被加密、后门被植入——你需要的是一套完整的应急响应能力
本系列笔记的目标:
建立 体系化 的 Linux 应急响应知识框架
从基础命令到高级取证,从单点排查到全链路溯源
结合 Java Web 安全 背景,重点覆盖 Tomcat / Spring / Dubbo 等场景
每个知识点配套 Docker 实验环境,学完即可上手练习
为什么需要体系化学习?
碎片化的知识在真正的应急事件中会手忙脚乱
遗漏一个排查点可能导致后门残留、攻击者重新进入
体系化的 checklist 和方法论能让你在高压环境下保持冷静和高效
与已有笔记的关联
本系列与以下笔记存在知识关联,建议交叉阅读:
00-前置知识 —— Java 内存马的前置知识,与 Tomcat/Spring 应急场景密切相关
01-内存马概述 —— 理解内存马原理有助于在应急中识别无文件攻击
02-Servlet型内存马 —— Servlet 型内存马的检测是 Java Web 应急的重要环节
03-Spring型内存马 —— Spring Controller/Interceptor 型内存马检测
04-Agent型内存马 —— Java Agent 型内存马,最隐蔽的内存马类型
05-反序列化与内存马 —— 反序列化漏洞常作为内存马注入的入口
学习路线概览
路线图(ASCII Art)
1 | ┌─────────────────────────────────────────────────────────────────────┐ |
学习节奏建议
| 周次 | 模块 | 核心内容 | 预计时间 |
|---|---|---|---|
| 第1周 | 基础篇 | 系统基础、排查命令、日志分析 | 8h |
| 第2周 | 入侵排查篇 | 账户、进程、文件、计划任务、服务 | 10h |
| 第3周 | 实战场景上 | SSH暴力破解、Tomcat、Nginx/Apache | 10h |
| 第4周 | 实战场景下 | Redis、MySQL、挖矿、勒索、供应链 | 12h |
| 第5周 | 持久化后门上 | Crontab、SSH、Systemd、Bashrc | 10h |
| 第6周 | 持久化后门下 | LD_PRELOAD、PAM、Rootkit、SUID等 | 12h |
| 第7周 | 工具+综合 | 工具使用、YARA规则、综合实验 | 10h |
完整页面索引
模块一:基础篇(00-03)
打好基础是一切排查的前提。这个模块覆盖 Linux 系统基础知识、核心排查命令、日志分析方法。
| 编号 | 标题 | 核心内容 |
|---|---|---|
| 00 | 学习路线 | IR流程、PDCERF模型、技能树、学习规划 |
| 01 | 系统基础与关键目录 | /etc /var /proc /tmp 等关键目录作用 |
| 02 | 排查命令速查 | ps/netstat/ss/lsof/find 等核心命令 |
| 03 | 日志分析基础 | syslog/auth.log/secure/journalctl |
应急响应定义与流程、PDCERF 模型、技能树、学习路径规划、通用排查 checklist
Linux 文件系统层次结构(FHS)、/etc 配置文件详解、/var/log 日志目录、/proc 伪文件系统、/tmp 与 /dev/shm 临时目录、关键安全文件(passwd/shadow/sudoers)
进程排查命令(ps/top/htop)、网络排查命令(netstat/ss/lsof)、文件排查命令(find/stat/file/md5sum)、用户排查命令(who/w/last/lastb)、系统信息命令(uname/uptime/dmesg)
Linux 日志体系概述、rsyslog 配置与日志轮转、auth.log / secure 登录日志分析、syslog / messages 系统日志、journalctl 使用技巧、日志时间线重建方法
模块二:入侵排查篇(04-09)
系统化的入侵排查方法论,从账户到进程到文件,逐层深入。
| 编号 | 标题 | 核心内容 |
|---|---|---|
| 04 | 账户安全排查 | 异常用户、权限提升、SSH密钥 |
| 05 | 进程与网络分析 | 恶意进程、异常连接、隐藏进程 |
| 06 | 文件系统取证 | 可疑文件、时间戳分析、文件完整性 |
| 07 | 计划任务审计 | crontab、at、anacron、systemd timer |
| 08 | 服务与启动项审计 | systemd服务、init.d、rc.local |
| 09 | 历史记录与时间线分析 | bash_history、时间线重建 |
/etc/passwd 与 /etc/shadow 分析、异常 UID 0 用户检测、sudo 权限审计、SSH authorized_keys 审查、最近登录记录分析、账户锁定与清理
进程树分析(pstree)、隐藏进程检测、/proc/[pid] 深度分析、异常网络连接排查、端口监听分析、进程与文件关联(lsof)、恶意进程特征识别
可疑文件搜索策略、最近修改文件排查、隐藏文件与目录检测、文件类型验证(file/binwalk)、文件哈希校验、RPM/DPKG 完整性验证、Webshell 文件特征
用户级 crontab 排查、系统级 cron 目录审计(/etc/cron.d、/etc/cron.daily 等)、at 任务排查、anacron 审计、systemd timer 排查、隐蔽的定时任务技巧
systemd 服务审计(systemctl list-units)、自启动服务排查、init.d 脚本检查、rc.local 审计、systemd generator、服务文件篡改检测
bash_history 分析技巧、多用户历史记录收集、history 时间戳配置、时间线(timeline)重建方法、MAC 时间分析、事件关联与攻击路径还原
模块三:实战场景篇(10-14.7)
针对常见入侵场景的专项应急响应方案,每个场景包含攻击原理、排查方法、修复建议。
| 编号 | 标题 | 核心内容 |
|---|---|---|
| 10 | SSH暴力破解与未授权访问 | SSH日志分析、暴力破解检测、防护加固 |
| 11 | Tomcat与Java-Web应急 | Tomcat日志、Webshell检测、内存马排查 |
| 12 | Nginx与Apache应急 | Web日志分析、恶意请求识别 |
| 13 | Redis未授权访问应急 | Redis利用方式、写入SSH密钥/Webshell/Crontab |
| 14 | MySQL入侵分析 | MySQL日志、UDF提权、慢查询分析 |
| 14.3 | 挖矿病毒应急 | 挖矿特征、进程排查、清除方法 |
| 14.5 | 勒索病毒应急 | 勒索识别、应急处置、数据恢复 |
| 14.7 | 供应链攻击检测 | 依赖投毒、恶意包检测 |
SSH 登录日志分析(/var/log/auth.log)、暴力破解特征识别、攻击 IP 提取与统计、fail2ban 配置、SSH 安全加固(密钥认证、端口修改、AllowUsers)、案例分析
Tomcat 日志体系(catalina.out/access log/manager log)、Java Webshell 检测方法、JSP 型 Webshell 特征分析、内存马检测(结合 00-前置知识 )、war 包分析、Java 反序列化攻击痕迹、Tomcat Manager 弱口令利用排查
Nginx access.log 分析、Apache access_log 与 error_log 分析、恶意请求特征(SQL注入/XSS/路径遍历)、Web 攻击时间线还原、CC 攻击 / DDoS 识别、配置文件后门检测
Redis 未授权访问原理、写入 SSH 公钥利用、写入 Crontab 反弹 Shell、写入 Webshell、Redis 主从复制 RCE、排查与修复方法
MySQL 日志体系(general log/slow log/error log/binlog)、UDF 提权排查、INTO OUTFILE 写 Webshell、MySQL 账户审计、SQL 注入痕迹分析
Linux应急响应/14.3-挖矿病毒应急
挖矿病毒特征(CPU 占用、矿池连接、特定进程名)、挖矿进程排查、挖矿木马清除流程、持久化机制清理、入侵溯源、加固建议
Linux应急响应/14.5-勒索病毒应急
勒索病毒识别(加密文件特征、勒索信)、应急隔离措施、常见勒索家族识别、数据恢复可能性评估、备份检查、事后加固
供应链攻击类型(依赖投毒、typosquatting、恶意更新)、Maven/Gradle 依赖审计、npm/pip 包审计、CI/CD 管道安全、检测工具与方法
模块四:持久化后门篇(15-27)
攻击者在拿下服务器后会植入各种后门以维持访问,这个模块详解 13 种常见 Linux 后门技术及其检测方法。
| 编号 | 标题 | 核心内容 |
|---|---|---|
| 15 | Crontab后门 | 定时任务后门植入与检测 |
| 16 | SSH-authorized_keys后门 | SSH公钥后门 |
| 17 | Systemd-Service后门 | 恶意服务单元 |
| 18 | Bashrc与Profile后门 | Shell初始化文件后门 |
| 19 | LD_PRELOAD劫持 | 动态链接库劫持 |
| 20 | PAM后门 | 认证模块后门 |
| 21 | Rootkit检测 | 内核/用户态Rootkit |
| 22 | SUID后门 | SUID权限滥用 |
| 23 | Alias后门 | 命令别名劫持 |
| 24 | Vim-Modeline后门 | Vim模式行代码执行 |
| 25 | SSH软链接后门 | sshd软链接绕过认证 |
| 26 | inetd与xinetd后门 | 超级守护进程后门 |
| 27 | 反弹Shell技术与检测 | 各种反弹Shell方式 |
crontab 后门原理、用户级与系统级 crontab 后门、隐蔽写法(Base64编码、管道执行)、检测方法、清除与加固
authorized_keys 文件作用、后门植入方式、command= 选项利用、隐蔽的密钥后门、检测方法、权限加固
systemd service 文件结构、恶意服务创建方式、ExecStart/ExecStartPre 利用、定时触发(OnCalendar)、检测方法
Shell 初始化文件加载顺序、.bashrc/.bash_profile/.profile 后门、/etc/profile.d/ 全局后门、环境变量劫持、检测方法
动态链接基础、LD_PRELOAD 机制、/etc/ld.so.preload 后门、函数劫持示例、检测方法(strace/ltrace/ldd)
PAM 认证框架、PAM 配置文件结构、恶意 PAM 模块编写、万能密码后门、登录凭证窃取、检测方法
Rootkit 分类(用户态/内核态)、用户态 Rootkit 原理(LD_PRELOAD/GOT Hook)、内核态 Rootkit 原理(系统调用表劫持/LKM)、检测工具(rkhunter/chkrootkit/LKML)、手动检测方法
SUID/SGID 机制、SUID 后门原理、常见 SUID 提权利用(find/vim/nmap/python等)、SUID 后门检测、GTFOBins 资源
Shell alias 机制、alias 后门植入(替换常用命令)、持久化方式(写入 .bashrc)、隐蔽技巧、检测方法
Vim modeline 功能、modeline 代码执行漏洞、后门利用方式、检测方法、Vim 安全配置
sshd 软链接后门原理、PAM 认证绕过、任意密码登录实现、检测方法、端口排查
inetd/xinetd 超级守护进程、后门服务配置、绑定 Shell 到端口、检测方法
反弹 Shell 原理、Bash 反弹、Netcat 反弹、Python/Perl/PHP 反弹、加密反弹 Shell(OpenSSL)、检测方法(网络连接+进程分析)
模块五:工具篇(28-31)
工欲善其事必先利其器,这个模块介绍应急响应中常用的专业工具。
| 编号 | 标题 | 核心内容 |
|---|---|---|
| 28 | 日志分析工具 | GoAccess/ELK/awk/grep 技巧 |
| 29 | 取证工具 | volatility/dd/foremost |
| 30 | YARA规则 | 恶意文件特征匹配 |
| 31 | 自动化排查脚本 | 一键排查脚本编写 |
GoAccess 实时日志分析、ELK Stack 日志聚合、awk/sed/grep 高级用法、日志可视化、大规模日志处理技巧
磁盘取证(dd/dcfldd)、内存取证(Volatility/LiME)、文件恢复(foremost/scalpel)、网络取证(tcpdump/Wireshark)、取证镜像制作与保存
YARA 规则语法、恶意文件特征提取、Webshell 检测规则编写、挖矿程序检测规则、Rootkit 检测规则、规则管理与自动化扫描
应急响应自动化思路、Bash 排查脚本编写、信息采集脚本、异常检测脚本、报告生成、开源排查工具(GScan/LinPEAS/LinEnum)
实验环境
实验环境总览、Docker 环境搭建、各场景实验指南、实验数据说明
配套实验环境
环境概述
所有实验环境基于 Docker 构建,位于 /Users/lucy/Desktop/AI/应急响应/ 目录
实验环境的设计原则:
隔离性:每个场景独立的 Docker 容器,互不影响
可重复性:docker-compose up 即可启动,docker-compose down 即可销毁
真实性:模拟真实攻击场景,包含真实的攻击痕迹和日志
目录结构:
1 | /Users/lucy/Desktop/AI/应急响应/ |
快速开始
安装 Docker Desktop(macOS):
1 | # 使用 Homebrew 安装 |
启动实验环境:
1 | # 以 SSH 暴力破解场景为例 |
销毁实验环境:
1 | # 停止并删除容器 |
实验注意事项
实验环境仅用于学习目的,请勿将攻击手法用于未授权的系统
每次实验前建议先 docker-compose down -v 确保环境干净
部分实验需要宿主机的特定端口,注意避免端口冲突
实验过程中的笔记可以直接记录在对应的 Logseq 页面中
前置知识要求
必备知识
Linux 基础操作
熟悉 Shell 基本命令(cd/ls/cat/grep/find/chmod/chown)
理解 Linux 文件权限模型(rwx/SUID/SGID/Sticky)
了解 Linux 进程管理(前台/后台/信号)
熟悉 vi/vim 基本操作
网络基础
理解 TCP/IP 协议栈
熟悉常见端口与服务(22/80/443/3306/6379 等)
了解 DNS 解析过程
能够使用 tcpdump/Wireshark 进行基本的抓包分析
Web 安全基础
理解常见 Web 漏洞(SQL注入/XSS/RCE/文件上传等)
了解 HTTP 协议
熟悉 Web 日志格式(CLF/Combined)
加分知识(你已具备)
Java 安全
Java 反序列化漏洞原理与利用
Tomcat / Spring Boot 架构
Java 内存马原理与检测(参见 00-前置知识)
Maven 依赖管理
容器技术
Docker 基本操作
docker-compose 使用
容器网络与存储
建议补充的知识
如果以下知识不够扎实,建议在学习过程中同步补充:
Shell 脚本编程
变量、条件判断、循环
文本处理三剑客(grep/sed/awk)
正则表达式
Linux 系统管理
systemd 服务管理
用户与权限管理
日志系统(rsyslog/journald)
包管理(apt/yum/dnf)
密码学基础
对称加密 / 非对称加密
哈希算法(MD5/SHA)
SSL/TLS 证书
快速导航
按场景查找
服务器被挖矿了?
→ Linux应急响应/14.3-挖矿病毒应急
服务器被勒索了?
→ Linux应急响应/14.5-勒索病毒应急
SSH 被暴力破解?
Tomcat 被 getshell?
Redis 被未授权访问?
怀疑有后门?
→ 15-Crontab后门 ~ 27-反弹Shell技术与检测(逐个排查)
→ 31-自动化排查脚本(一键排查)
需要做取证?
→ 29-取证工具
按技能查找
进程分析 → 05-进程与网络分析
后门检测 → 15-Crontab后门 ~ 27-反弹Shell技术与检测
恶意软件分析 → 30-YARA规则
自动化排查 → 31-自动化排查脚本
学习建议
学习方法
理论 + 实践结合:每学完一个知识点,立即在 Docker 实验环境中实践
建立自己的 checklist:在学习过程中,逐步完善自己的应急响应排查清单
案例驱动:从实战场景出发,带着问题去学习基础知识
笔记整理:在 Logseq 中记录自己的心得,与本系列笔记形成交叉引用
学习原则
先广度后深度:先过一遍所有模块,建立全局视角,再深入单个主题
重视基础命令:ps/netstat/lsof/find 这些命令要练到条件反射
关注攻击者视角:理解攻击者的思路,才能更好地检测和防御
持续更新:安全领域变化快,持续关注新的攻击技术和检测方法
与 Java 安全知识的结合
作为有 Java 安全背景的工程师,你有独特的优势:
Java 反序列化知识 → 快速识别反序列化攻击痕迹
Tomcat 架构理解 → 更高效地分析 Java Web 应急场景
内存马知识 → 能检测传统 Webshell 扫描器漏掉的内存马
Maven 依赖理解 → 供应链攻击检测更有针对性
在学习每个模块时,思考如何将已有的 Java 安全知识与 Linux 应急响应结合
常见入侵场景速查表
按攻击类型分类
Web 攻击类
| 攻击类型 | 常见入口 | 排查重点 | 参考页面 |
|---|---|---|---|
| SQL 注入 | Web 应用参数 | Web日志中的注入特征、数据库异常操作 | 12-Nginx与Apache应急 |
| 文件上传 | 上传功能 | Webshell 文件、Web目录新增文件 | 11-Tomcat与Java-Web应急 |
| 命令执行 | 反序列化/SSTI/RCE | 异常进程、反弹Shell连接 | 05-进程与网络分析 |
| 内存马 | 反序列化/文件上传 | Java进程内存分析 | 01-内存马概述 |
服务漏洞类
| 攻击类型 | 常见入口 | 排查重点 | 参考页面 |
|---|---|---|---|
| SSH 暴力破解 | SSH 服务(22端口) | auth.log 失败登录、成功登录 | 10-SSH暴力破解与未授权访问 |
| Redis 未授权 | Redis 服务(6379端口) | SSH密钥、crontab、webshell | 13-Redis未授权访问应急 |
| MySQL 入侵 | MySQL 服务(3306端口) | UDF文件、outfile、慢查询 | 14-MySQL入侵分析 |
| Tomcat 弱口令 | Manager 后台(8080端口) | war包部署记录、manager日志 | 11-Tomcat与Java-Web应急 |
恶意软件类
| 攻击类型 | 典型特征 | 排查重点 | 参考页面 |
|---|---|---|---|
| 挖矿木马 | CPU占用高、矿池连接 | 异常进程、网络连接、定时任务 | Linux应急响应/14.3-挖矿病毒应急 |
| 勒索病毒 | 文件被加密、勒索信 | 加密文件特征、入侵时间点 | Linux应急响应/14.5-勒索病毒应急 |
| Rootkit | 进程/文件/网络被隐藏 | rkhunter、系统命令校验 | 21-Rootkit检测 |
| 反弹Shell | 异常外联连接 | 网络连接、进程分析 | 27-反弹Shell技术与检测 |
按异常现象分类
CPU 异常
现象:CPU 使用率持续 90% 以上
排查思路:
1 | # 1. 查看高CPU进程 |
参考:Linux应急响应/14.3-挖矿病毒应急 → 05-进程与网络分析
异常登录
现象:发现陌生 IP 登录记录或登录失败告警
排查思路:
1 | # 1. 查看登录记录 |
参考:10-SSH暴力破解与未授权访问 → 04-账户安全排查
文件被篡改
现象:网站页面被篡改、出现不明文件
排查思路:
1 | # 1. 查找最近修改的文件 |
参考:06-文件系统取证 → 11-Tomcat与Java-Web应急
异常网络连接
现象:出现大量外联连接或异常端口监听
排查思路:
1 | # 1. 查看所有监听端口 |
参考:05-进程与网络分析 → 27-反弹Shell技术与检测
Linux 后门检测速查矩阵
检测矩阵
| 后门类型 | 检测命令 | 关键文件/位置 | 难度 |
|---|---|---|---|
| Crontab | crontab -l -u <user> |
/var/spool/cron/, /etc/cron.d/ | 低 |
| SSH密钥 | find / -name authorized_keys |
~/.ssh/authorized_keys | 低 |
| Systemd服务 | systemctl list-unit-files |
/etc/systemd/system/, /run/systemd/ | 低 |
| Bashrc/Profile | cat ~/.bashrc ~/.bash_profile |
~/.bashrc, /etc/profile.d/ | 中 |
| LD_PRELOAD | cat /etc/ld.so.preload |
/etc/ld.so.preload, $LD_PRELOAD | 中 |
| PAM | find /lib/security/ -mtime -30 |
/etc/pam.d/, /lib/security/ | 高 |
| Rootkit | rkhunter --check |
内核模块, 系统调用表 | 高 |
| SUID | find / -perm -4000 |
任意位置的SUID文件 | 低 |
| Alias | alias |
~/.bashrc 中的 alias 定义 | 低 |
| Vim Modeline | grep modeline |
任意文本文件末尾 | 中 |
| SSH软链接 | find / -type l -name sshd |
/tmp/su 等异常位置 | 中 |
| inetd/xinetd | cat /etc/inetd.conf |
/etc/inetd.conf, /etc/xinetd.d/ | 低 |
| 反弹Shell | ss -tnp + lsof -i |
网络连接 + 进程分析 | 中 |
一键排查脚本示例
以下是一个简化版的后门排查脚本框架:
1 |
|
应急响应常见误区
误区一:发现异常立即杀进程
错误做法:看到可疑进程马上 kill -9
正确做法:先采集证据(/proc/PID/ 下的信息),再杀进程
1 | # 正确的处理流程 |
误区二:只排查当前发现的问题
错误做法:发现挖矿进程 → 杀掉 → 结束
正确做法:挖矿只是表象,必须追溯入侵路径、排查所有后门
完整的排查链:
1 | 发现挖矿 → 杀进程 → 排查定时任务 → 排查启动项 → 排查SSH密钥 |
误区三:直接格式化重装
格式化重装看似最安全,但存在问题:
丢失了所有取证证据
无法确认攻击路径,可能被同样方式再次入侵
无法确认数据泄露情况
无法满足合规要求(需要事件报告)
正确做法:先取证 → 再分析 → 确认清除 → 必要时才重装
误区四:忽略时间同步
在做日志分析和时间线重建时,时间准确性至关重要
1 | # 检查时间配置 |
误区五:在被入侵的系统上运行系统自带工具
如果系统已被 Rootkit 感染,ps/netstat/ls 等工具可能被替换
正确做法:使用自己准备的静态编译工具,或从可信源挂载
1 | # 验证系统命令是否被篡改 |
Java 安全工程师专项学习路径
Java Web 应急能力矩阵
基于你已有的 Java 安全知识,以下是需要重点建设的应急能力:
| 已有能力 | 需要建设的应急能力 | 对应页面 |
|---|---|---|
| Java 反序列化原理 | 反序列化攻击日志痕迹识别 | 11-Tomcat与Java-Web应急 |
| Tomcat 架构 | Tomcat 日志分析、war包取证 | 11-Tomcat与Java-Web应急 |
| Servlet 内存马 | 内存马检测工具使用 | 02-Servlet型内存马 |
| Spring 框架 | Spring Boot Actuator 排查 | 11-Tomcat与Java-Web应急 |
| Maven 依赖 | 供应链投毒检测 | 14.7-供应链攻击检测 |
Tomcat 应急专项重点
作为 Java 工程师,Tomcat 应急是你的主战场,需要重点掌握:
日志分析
catalina.out 异常堆栈分析
access log 恶意请求识别
manager 部署日志审计
Webshell 检测
JSP Webshell 文件特征(Runtime.exec、ProcessBuilder、ClassLoader)
冰蝎/哥斯拉/蚁剑等工具的流量特征
Class 文件反编译分析
内存马检测
1 | // Java 内存马检测核心思路: |
反序列化痕迹
1 | # 检查 Tomcat 日志中的反序列化异常 |
推荐学习顺序(Java 工程师优化版)
对于有 Java 安全背景的工程师,建议调整部分学习顺序:
1 | 第1周:基础篇(与通用路线相同) |
版本与更新记录
| 日期 | 版本 | 更新内容 |
|---|---|---|
| 2026-04-02 | v1.0 | 初始版本,完成框架搭建 |
如有内容纠错或补充建议,直接在对应页面中添加笔记即可
| 下一章 | |
|---|---|
| 00-学习路线 |