本篇覆盖服务排查、文件痕迹排查,以及网络连接、日志、启动项等补充内容,最后给出工具清单和报告模板。
一、服务排查
服务是"开机自动运行、常驻后台"的程序,是攻击者做持久化的常见手段------把后门注册成服务,重启后自动恢复。
1.1 Linux 排查
# 查看所有服务及状态
systemctl list-units --type=service --all
# 查看已启用(开机自启)的服务
systemctl list-unit-files --type=service | grep enabled
# 查看某个服务的详细配置和启动命令
systemctl status 服务名
systemctl cat 服务名
# 传统 sysvinit 服务(老系统 / init.d 脚本)
ls -l /etc/init.d/
chkconfig --list 2>/dev/null # 或 service --status-all
# 查看 systemd 服务单元文件目录(后门常放这里伪装系统服务)
ls -l /etc/systemd/system/
ls -l /lib/systemd/system/
1.2 Windows 排查
:: 列出所有服务
sc query type= service state= all
:: 列出服务的详细信息(看服务对应的可执行文件 binPath)
sc qc 服务名
:: 用 wmic 查看服务名、状态、启动方式、路径
wmic service get name,state,startmode,pathname
图形界面:services.msc,重点看"启动类型"为自动、且"可执行文件的路径"指向临时目录或可疑路径的服务。
为什么要这样做 :服务是"开机自启、常驻后台"的程序,攻击者把后门注册成服务后,即使重启机器、杀掉进程,服务也会自动把它拉起来------是最"省心"的持久化方式。所以重点不是服务名,而是服务真正执行的可执行文件路径 (ExecStart/binPath),路径骗不了人。
1.3 关键要点
-
危险信号 :服务指向的
ExecStart/binPath是/tmp、%TEMP%、随机文件名;服务名模仿系统服务(如SysTemServer、mysql-server多出连字符)。 -
处置 :
systemctl disable --now 服务名或sc delete 服务名停止并删除,同时删掉可执行文件。
二、文件痕迹排查
文件排查用于找恶意文件、Webshell、篡改痕迹、后门残留。思路:按"时间、路径、类型"三个维度找异常。
2.1 Linux 排查
# 最近 N 天被修改过的文件(先看这个,锁定作案时间窗)
find / -mtime -3 -type f 2>/dev/null
# 按修改时间倒序排列某目录
ls -lt /tmp /var/tmp /dev/shm /var/www/html
# 找隐藏文件(以 . 开头的文件常被用来藏东西)
find / -name ".*" -type f 2>/dev/null
# 找常见 Webshell 特征(一句话木马关键函数)
grep -rn "eval(\|base64_decode\|system(\|assert(" /var/www 2>/dev/null
# 找大文件(可能被塞了挖矿程序或数据包)
find / -size +100M -type f 2>/dev/null
# 查看文件时间戳(atime 访问、mtime 修改、ctime 状态改变)
stat 可疑文件
# 找可执行文件出现在不该出现的地方
find /tmp /var/tmp /dev/shm -type f -perm /111 2>/dev/null
2.2 Windows 排查
重点排查目录:C:\Windows\Temp、%TEMP%、%APPDATA%、C:\Windows\System32(被替换的系统文件)、网站目录。
:: 按时间列出最近修改的文件(需要管理员)
dir /s /o-d /t:w C:\Users\<用户名>\AppData\Local\Temp
:: 查找可疑文件
dir /s /b C:\Windows\Temp\*
2.3 Webshell 排查(Web 服务器必做)
-
定位:网站根目录下最近修改的脚本文件(.php/.jsp/.asp/.aspx)。
-
特征:代码里出现
eval、base64_decode、assert、system、exec等危险函数,或文件只有一行超长混淆代码。 -
辅助工具:D盾、河马、百度 WebShell 扫描器。
为什么要这样做:文件是恶意程序的"藏身处",也是攻击的"证据"。攻击者无论做什么都要落盘------上传 Webshell、下载挖矿程序、替换系统文件,必然留下"新建/修改"痕迹。所以按"时间 + 路径 + 内容"三个维度排查:时间维度锁定作案时间窗,路径维度发现不该有可执行文件的临时目录,内容维度直接命中 Webshell 特征。
2.4 关键要点
-
时间轴 :先确定入侵时间(结合日志、
last登录时间),再集中看该时间段内新增/修改的文件,效率最高。 -
隐蔽手段 :攻击者会改文件时间戳(Linux 用
touch -d)伪装成老文件,所以时间可信但不能全信,还要结合路径和内容。 -
临时目录 是重灾区:
/tmp、/var/tmp、/dev/shm(Linux,/dev/shm是内存盘,关机即失、隐蔽性好,常被用来跑木马)。
三、网络连接排查
网络排查能快速发现木马外连(C2)和对外开放的后门端口。
# Linux
netstat -antlp # 看所有连接+进程
ss -antlp # 更推荐,性能更好
lsof -i # 按文件看网络
lsof -i:端口号 # 看某端口是谁在用
# 查看可疑外连(关注 ESTABLISHED 到陌生 IP)
cat /proc/net/tcp
:: Windows
netstat -ano # 端口 + PID
为什么要这样做:木马/后门大多要回连 C2 或被远控,必然产生外连流量和监听端口,所以网络排查是"最快抓到活体木马"的手段,也能发现用其他方式藏起来的后门端口。
关键要点 :关注高频外连 到陌生 IP、连接到非标准端口、内网主机的异常扫描流量。发现后按 PID 反查进程。
四、日志排查
日志是"案发现场的监控录像",能还原攻击者的操作路径。
4.1 Linux 关键日志
# 认证/登录日志(看爆破、异常登录)
cat /var/log/auth.log # Debian/Ubuntu
cat /var/log/secure # CentOS/RHEL
# 系统消息
cat /var/log/messages
# cron 日志
cat /var/log/cron
# 历史命令(看攻击者敲了什么)
cat ~/.bash_history
cat /root/.bash_history
# 关键:history 是否被清空/篡改
ls -la ~/.bash_history
注意:攻击者常清空或篡改日志,排查时先确认日志完整性 (有没有明显断档、被
rm后重建)。
4.2 Windows 关键日志
用事件查看器 eventvwr.msc:
| 事件 ID | 含义 |
|---|---|
| 4624 | 登录成功(注意登录类型 10 = 远程 RDP) |
| 4625 | 登录失败(爆破) |
| 4672 | 赋予特殊权限(提权) |
| 4720/4726 | 创建/删除账户 |
| 7045 | 新服务安装 |
| 4688 | 进程创建(需开启审核策略) |
:: 命令行导出日志
wevtutil qe Security /f:text
为什么要这样做:其他排查只能看到"结果"(多了个账户、多了个进程),只有日志能还原"过程"------攻击者何时进入、从哪进入、进来后干了什么。这是写报告、还原攻击路径、追责定责的关键证据。
4.3 日志排查要点
-
先看**登录成功(4624)**找攻击者进入时间和来源 IP。
-
结合**爆破(4625)**判断是否被猜密码。
-
看有没有账户创建/服务安装等持久化动作。
五、启动项排
启动项是"开机/登录自动执行"的又一类持久化手段:攻击者把后门命令塞进 shell 启动文件或注册表 Run 键,用户每次登录就自动加载,隐蔽且稳定。它与计划任务/服务的区别是------它跟着"登录"走,而不是跟着"时间/服务"走,所以单独列出来查。
# Linux 各用户 shell 启动文件里可能被塞后门
cat /etc/profile /etc/bash.bashrc ~/.bashrc ~/.bash_profile ~/.profile
:: Windows 启动项(注册表 Run 键是经典后门位)
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Run"
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"
图形界面:msconfig(系统配置)→ 启动;或 regedit 查看上述 Run 键。Windows 启动目录 C:\Users\<用户>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 也要看。
六、常用工具清单
取证/采集类
-
Linux :
ps、netstat/ss、lsof、pstree、find、stat、grep -
Windows Sysinternals(微软官方,必装):Process Explorer、Autoruns(查启动项神器)、TCPView、Process Monitor
杀毒/查杀类
-
Linux:ClamAV、chkrootkit、rkhunter(查 rootkit)、Linux Malware Detect (LMD)
-
Windows:火绒、360 急救箱、卡巴斯基
Webshell 查杀
- D盾、河马、百度 WebShell 扫描器
内存/流量取证(进阶)
- Volatility(内存取证)、Wireshark(流量分析)、tcpdump(抓包)
七、应急响应报告模板(简版)
1. 事件概述:时间、受影响主机、事件类型(勒索/挖矿/Webshell/数据泄露)
2. 事件发现:告警来源、异常现象
3. 处置时间线:几点几分做了什么
4. 排查过程:
- 账户排查结果
- 进程/服务/计划任务排查结果
- 文件/日志/网络排查结果
5. 攻击路径还原:入口 → 提权 → 持久化 → 目的
6. 处置措施:删除/隔离/修复清单
7. 加固建议:改密、补丁、封端口、最小权限
8. 复盘总结:教训、改进点
全篇总结
| 排查项 | 一句话核心 |
|---|---|
| 账户 | 找 uid=0 陌生账户、authorized_keys、管理员组异常 |
| 计划任务 | 找指向临时目录/随机名的定时任务 |
| 进程 | 找从临时目录启动、高 CPU、伪装系统名的进程 |
| 服务 | 找指向可疑路径的自启动服务 |
| 文件 | 按时间轴找新增/篡改文件、Webshell、隐藏文件 |
| 网络 | 找异常外连和陌生监听端口 |
| 日志 | 还原登录、爆破、账户/服务变更 |
| 启动项 | 查 Run 键和 shell 启动文件 |
流程口诀:先取证快照 → 易失优先(进程/网络)→ 持久化(计划任务/服务/账户/启动项)→ 文件与日志 → 根除 → 恢复 → 报告。