木马清除的标准顺序
清除木马最怕的不是删不掉,而是「清完又回来」。所以顺序必须固定成四步:先断回连与横向通道,再定位(进程、连接、文件三处互相印证),然后按「持久化机制→进程→文件」的顺序清除,最后复扫并在观察期内确认没有复发。顺序颠倒的典型后果是:先删文件,进程还持有句柄继续运行;或者先杀进程,持久化机制在几十秒内把它重新拉起。
基本信息
| 第一步 断 | 阻断 C2 回连与横向通道,避免清理过程中继续被控制 |
|---|---|
| 第二步 定位 | 进程、网络连接、文件三处互证,确认主进程与守护进程 |
| 第三步 清除 | 先处理持久化机制,再终止进程,最后清除文件并保留样本 |
| 第四步 验证 | 全量复扫加观察期,确认没有被重新拉起 |
| 留证要求 | 样本、哈希、命令行、连接列表在清除前完成归档 |
| 常见复发原因 | 多重持久化只清了一处,或第二个副本仍在可写目录中 |
典型使用场景
- 单台主机确认被植入常驻木马,需要一次清干净
- 挖矿类样本反复出现,需要按顺序梳理保活机制
- 清理前需要固定样本与命令行,供其他主机横向检索
- 清理后需要向业务方提交可验证的验证结果
- 为多台主机的批量清理定义统一的操作顺序
定位与清除顺序示意
定位与清除顺序示意
sudo iptables -I OUTPUT -d 203.0.113.10 -j DROP # 1 断回连,先止血
ps auxwwf | grep -v grep | grep -iE 'tmp|shm' | head -n 20 # 2 定位进程
sudo ss -antp | grep ESTAB | head -n 20 # 3 定位连接
sudo ls -l /proc/1234/exe /proc/1234/cwd # 4 定位文件与工作目录
cp /proc/1234/exe /evidence/sample.bin 2>/dev/null # 5 留样本
systemctl disable 可疑单元名; crontab -l # 6 先处理持久化
kill -STOP 1234 # 7 先冻结再确认
kill -9 1234; rm -f /tmp/可疑文件 # 8 最后终止与删除
find /tmp /dev/shm -name '可疑名字*' 2>/dev/null | head # 9 复扫确认无残留顺序与原因
| 顺序 | 动作 | 颠倒的后果 |
|---|---|---|
| 1 | 阻断回连与横向 | 清理期间攻击者可远程干预、重新投放 |
| 2 | 三处互证定位 | 凭单一线索动手,容易漏掉守护进程 |
| 3 | 先清持久化机制 | 进程被杀后几十秒内被重新拉起 |
| 4 | 再终止进程 | 先删文件则进程仍持句柄运行 |
| 5 | 最后删文件并留样本 | 先删文件则样本与命令行线索一并丢失 |
| 6 | 复扫与观察期 | 无验证的清理无法证明有效,也无法向业务交付 |
清除前先保存样本与关键日志:清得太干净会失去取证与学习线索,也无法把 IOC 交给其他团队做横向检索。样本按原样复制到独立介质,不要在本机运行。
观察期是必要的:清理完成当天没问题不代表结束,很多样本会通过下载器或被篡改的业务脚本在一两天后重新落地。观察期建议至少覆盖一个业务周期,并在结束后复查一次计划任务与监听端口。