首页/安全/应急响应速查/持久化点集中清理清单

持久化点集中清理清单

按清单全量清理持久化:cron、systemd、rc.local、profile、ld.so.preload、SSH 密钥、Docker 与 Windows 计划任务/服务;漏一处就复发。

应急响应速查安全更新于 2026-10-13

持久化点集中清理清单

持久化机制是木马「活下来」的原因,也是清理最容易漏的部分:清掉一个入口而留下另一个,主机就会在一段时间后回到被控状态。正确做法是准备一份覆盖 Linux 与 Windows 的完整清单,逐项核对与处理,处理前先把清单本身导出留档——它既是清理的作业单,也是处置证据。清理顺序建议统一为:先禁用后删除,先改配置后删文件。

基本信息

Linux 常见用户与系统级 cron、systemd 单元与定时器、rc.local、登录脚本、SSH 授权公钥
Linux 深层ld.so.preload、PAM 模块配置、udev 规则、包管理器钩子、用户级 systemd 单元
Windows 常见Run 与 RunOnce 键、计划任务、服务、启动文件夹、Winlogon 相关键值
Windows 深层WMI 事件订阅、IFEO 调试器、BITS 任务、登录脚本策略
处理方法先导出全量清单与内容,再逐项禁用,确认无业务影响后删除
验证方法重启或重新登录后复扫一轮,确认没有任何入口重新出现

典型使用场景

  • 清理木马时按清单逐项核对,避免边清边漏
  • 处置结束后做复扫,向业务方交付清理范围与结果
  • 为多台主机批量清理定义统一动作清单
  • 复盘时分析攻击者使用了哪几类持久化机制
  • 加固阶段把这些位置纳入日常巡检与基线比对

导出待清理清单

导出待清理清单
crontab -l 2>/dev/null; sudo ls -la /etc/cron.d /etc/crontab
sudo systemctl list-unit-files --state=enabled | head -n 30
sudo ls -lt /etc/systemd/system/*.service /etc/systemd/system/*.timer 2>/dev/null | head
sudo cat /etc/ld.so.preload 2>/dev/null
sudo ls -l /etc/rc.local /etc/rc.d/rc.local 2>/dev/null
for h in /root /home/*; do [ -f "$h/.ssh/authorized_keys" ] && { echo "== $h"; sudo ls -l "$h/.ssh/authorized_keys"; }; done
sudo grep -rEn 'curl|wget|/dev/tcp' /etc/profile /etc/profile.d/ 2>/dev/null | head

Windows 侧导出

Windows 侧导出
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' | Format-List
Get-ScheduledTask | Select-Object TaskPath,TaskName,State | Sort-Object TaskPath | Format-Table -AutoSize
Get-CimInstance Win32_Service | Where-Object StartMode -eq 'Auto' | Select-Object Name,PathName | Format-Table -AutoSize
Get-ChildItem 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp' -Force
reg query 'HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' /v Userinit

清单对照

平台位置检查命令
Linux用户与系统级计划任务crontab -l、/etc/cron.d、/var/spool/cron
Linuxsystemd 单元与定时器systemctl list-unit-files、list-timers
Linux登录脚本与登录钩子/etc/profile、profile.d、各账号 rc 文件、sshrc
Linux预加载与模块/etc/ld.so.preload、PAM 配置、udev 规则
Windows注册表启动项与服务Run 键、Win32_Service、Winlogon 键值
Windows计划任务与启动文件夹Get-ScheduledTask、启动文件夹路径
清理前先导出完整清单,包含准备删除的每一项及其内容与时间戳:既用于逐项对账,也作为处置证据。凭记忆清理必然漏项,而漏掉的那一项就是复发的原因。
删除不是终点:清理后要重启或重新登录一次再复扫,确认所有入口都没有重新出现。没有这一轮验证,清理结果无法向业务方证明,也无法排除还有未被发现的机制。

易错点

  • 想起一处清一处:没有清单必然漏项,复发后再查又要从头再来一遍
  • 清理前不导出清单与内容:无法对账,事后也无法说明清理了什么
  • 只清用户级不看系统级:cron.d、systemd、登录脚本常被忽略
  • 删除后不复验:不重启不复查就无法确认入口是否真的被去掉
  • 忽略 Windows 深层位置:WMI 订阅与 IFEO 没有出现在常规启动项列表里

数据来源与参考

  • MITRE ATT&CK:Persistence 技术总览
  • SANS:主机持久化清理核对清单

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌