| name | linux-incident-response |
|---|---|
| description | Linux服务器应急响应处置技能(源自 NOP Team《Linux应急响应手册 v2.0.2》全量内容)。覆盖挖矿病毒、远控后门、勒索病毒、暴力破解(SSH/MySQL/FTP/Redis/MongoDB/SMTP)、非持续性恶意外连、恶意软件包供应链攻击、网络隧道七类事件处置,39项常规安全检查(history/计划任务/账户/SUID/LD_PRELOAD/PAM/内核模块/udev 等40余种权限维持后门排查)、善后定损、常见问题排障与取证小技巧。当用户报告或要求处理Linux主机被入侵、CPU异常、挖矿、勒索加密、SSH/数据库爆破、可疑外连、后门、隧道、webshell,或要求应急响应、安全检查、权限维持排查、取证分析时使用。 |
Linux 应急响应
本技能是《Linux应急响应手册 v2.0.2》(NOP Team,2025)的完整结构化版本。原PDF共483页,已按章节拆分为 references/,全部保留PDF页码,可回溯原书截图。
使用流程
- 判断事件类型,按下方"场景路由"读取对应参考文件(每次处理前先读 00-cheatsheet.md 中的相关命令,参考文件中有完整背景与输出示例)。
- 所有事件都遵循统一处置主线(见下节),场景文件只讲差异部分。
- 进程与文件处置完成后,必须走"善后阶段 + 常规安全检查"两步——这是本手册的核心价值:挖矿/远控等事件通常伴随多种权限维持后门,只删恶意文件不查后门必然复发。
- 报告结论时给出:事件定性、IOC、时间线、已处置项、遗留风险、加固建议。
场景路由
| 场景 | 参考文件 |
|---|---|
| 命令速查(高频命令完整单行版) | references/00-cheatsheet.md |
| 任何事件开始前(物料准备、注意事项) | references/01-preparation.md |
| 挖矿病毒(CPU异常、可疑外连矿池) | references/02-mining-virus.md |
| 远控后门(EDR告警文件、外连C&C的IP:端口) | references/03-backdoor.md |
| 勒索病毒(文件被加密、勒索信) | references/04-ransomware.md |
| 暴力破解(SSH/MySQL/FTP/Redis/MongoDB/SMTP爆破告警) | references/05-brute-force.md |
| 非持续性事件(恶意外连只出现几次、抓不到进程) | references/06-non-persistent.md |
| 恶意软件包供应链攻击(apt/dnf装的包带毒) | references/07-supply-chain.md |
| 网络隧道(SSH/DNS/ICMP/HTTP/SSL/Socks/Wi-Fi隧道) | references/08-tunnel.md |
| 常规安全检查(39项权限维持排查,处置收尾必做) | references/09-security-checklist.md |
| 善后阶段(定损、横向排查、改密) | references/10-aftermath.md |
| 常见问题(文件删不掉、netstat显示-、ps看不到进程、终端乱码) | references/11-troubleshooting.md |
| 小技巧(find/grep、数据恢复、dd/clonezilla取证、CRIU、抓包) | references/12-tips.md(长文,用offset/limit分段读) |
| 知识点附录(守护进程/进程组、启动项默认情况、SSH隧道原理、对抗云函数C&C、history无记录原因) | references/13-appendix.md(长文,分段读) |
辅助脚本(源自原书,用前先审计内容,改好目标IP/端口再上传受害机):
scripts/Linux_Audit_Nop.sh— 非持续性事件:监控连接指定IP的进程并自动记录 lsof//proc 信息scripts/cc_hunt.sh— 对抗云函数C&C隐藏:监听指定IP的连接方并落盘取证scripts/request_monitor.sh+scripts/request_monitor.bt— bpftrace 按对端IP定位隧道/后门进程
统一处置主线
七类事件中,挖矿、远控、供应链、隧道、非持续性事件共用同一条主线,仅"定位pid"的入口不同:
梳理现场(IOC→威胁情报研判→二次核实→问历史事件)
↓
定位异常进程 pid ←入口因场景而异:
挖矿: top -c -o %CPU / ps --sort=-%cpu / nethogs
远控: EDR给文件→lsof /root/evil.sh;态势给IP:端口→netstat -pantu | grep IP
隧道: bpftrace 按对端IP定位(scripts/request_monitor.sh)
非持续性: /etc/hosts 重定向恶意域名 → 部署监控脚本 → 等待触发
供应链: 已有pid → dpkg -S / yum whatprovides 定位所属包
↓
查进程详情:lsof -p pid;pwdx pid;systemctl status pid;ls -al /proc/pid/exe;pstree -agplU pid
↓
确定运行时间并对比文件时间:ps -w -eo pid,lstart,etime,cmd | grep pid;stat 文件
↓
采样取证(scp/nc/http服务取样本;微步、VT等沙箱分析)→ 杀进程(见下方杀进程规则)→ 删文件(见下方删文件规则)
↓
善后阶段(references/10-aftermath.md):定损→同密码/同漏洞/互信机器横向排查→改强密码
↓
常规安全检查(references/09-security-checklist.md 全部39项):找出隐藏后门,防复发
杀进程规则
ps -w ajfx # 先看有无子进程(PPID/PID/PGID/SID)
kill -9 <pid> # 无子进程
kill -9 -- -<PGID> # 有子进程:按进程组杀,pid前有减号
sudo kill -9 -- -<PGID> # sudo 下必须加 -- 分隔,否则按pid处理会失效
sudo pkill -g <PGID> # 等效替代
有守护进程的恶意程序先杀守护进程。线程级注入(附在正常业务进程里的恶意线程)慎杀——极易把业务进程搞崩,须先与客户确认。
删文件规则(按顺序排查删不掉的原因)
lsof evil.sh看占用——占用进程本身可能就是恶意进程;lsattr查隐藏属性 a/i →chattr -a/-i;- 乱码文件名 →
ls -li取 inode →find ./* -inum <inode> -exec rm -f {} \;; Device or resource busy→sudo lsblk -a查挂载点 →umount后再删;rm ./*不会删除以.开头的隐藏文件,删除时必须显式处理。
关键排障(排查过程卡住时读 references/11-troubleshooting.md)
netstat -pantu的 pid 显示-→ /proc/PID 被 bind-mount 隐藏:cat /proc/$$/mountinfo→umount /proc/PID;- ps/top 看不到恶意进程 → 同上,或 ps/top 被替换(完整性检查 + busybox),或 LD_PRELOAD 劫持(查
/etc/ld.so.preload,用busybox top); - 终端乱码 → 盲打
reset/stty sane/echo -e '\033c'。
检查时的注意事项
- 计划任务等配置文件用 vim 打开看,cat 会被特殊字符截断导致看不全(持久化后门常藏在被截断部分之后)。
- history 缺失有6种原因(清空/空格前缀/SSH异常断开/远程执行/HISTSIZE=0等),见 13-appendix.md §0x06,不能因 history 干净而排除入侵。
- 威胁情报平台:微步在线、Virustotal、360/安恒/绿盟/腾讯/安天威胁情报中心、AlienVault 等;沙箱:微步云沙箱、哈勃、奇安信情报沙箱、魔盾、360沙箱云等。
- 勒索病毒解密渠道:No More Ransom、ID Ransomware、各厂商解密工具(见 04-ransomware.md);拿到解密工具先备份再解密,防二次加密。
- Redis 默认日志级别(notice)不记录登录和指令,无法凭日志判断是否被爆破,需看网络连接(05-brute-force.md §Redis)。
- 长参考文件(09/12/13)超过2000行,用 Read 的 offset/limit 分段读取。
