首页/安全/应急响应速查/SSH 爆破成功后的清理链

SSH 爆破成功后的清理链

爆破成功后按链条清理:可疑会话→后门账号/密钥→计划任务→植入工具;每一步先留证再动手。

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

SSH 爆破成功后的清理链

确定爆破已经得手之后,清理必须按链条走:从会话与来源入手,再处理攻击者留下的账号与密钥,然后是让它复活的计划任务与登录脚本,最后清理它带上来的工具与下载物。只处理其中一个环节都会复发——例如只删掉后门账号,却留下了攻击者写入的免密公钥。每一步都要先留证再动手,因为这些都是判断「他做了什么」的直接依据。

基本信息

会话层w、who、last 对照陌生来源 IP 与时间,确认是否有会话仍在
账号层/etc/passwd 与 shadow 的新增条目、sudoers 变更、组成员变化
密钥层各账号 authorized_keys 中新增行,尤其带 command= 前缀的
自启层cron、systemd、登录脚本、ld.so.preload 等持久化入口
工具层家目录与 /tmp、/dev/shm 下的扫描器、隧道工具、挖矿程序
留证要求清理前记录文件内容、时间戳与哈希,家目录整体打包

典型使用场景

  • 日志确认某账号被爆破成功后按链条清理
  • 处置后复查:确认没有残留的密钥与计划任务
  • 把攻击者工具与地址整理成 IOC,横向检索其他主机
  • 评估是否需要重置该账号及相关服务的全部凭据
  • 向业务方说明清理了哪些入口,交付可核验的清单

核查会话、账号、密钥与自启

核查会话、账号、密钥与自启
sudo w -i; sudo last -aiF -n 20                          # 1 会话与登录历史
sudo awk -F: '$3==0 {print $1}' /etc/passwd              # 2 UID 0 账号
sudo ls -lt --time-style=full-iso /etc/passwd /etc/shadow /etc/sudoers  # 3 账号文件改动时间
sudo grep -RIn 'command=\|from=' /root/.ssh /home/*/.ssh 2>/dev/null | head   # 4 带限制前缀的密钥
crontab -l 2>/dev/null; sudo ls -la /etc/cron.d/          # 5 计划任务
sudo grep -rEn 'curl|wget|/dev/tcp' /etc/profile /etc/profile.d/ /root/.bashrc 2>/dev/null
find /tmp /dev/shm /var/tmp -type f -mtime -7 -ls 2>/dev/null | head -n 20     # 6 攻击者工具

检查点与判据

检查点正常状态可疑信号
在线会话只有本单位账号与已知来源陌生来源的活跃会话
账号与组与台账一致新增账号、加入 sudo 或 wheel 组
密钥文件只含台账内的指纹新增公钥,尤其带 command= 前缀
计划任务与基线一致短周期下载执行类条目
登录脚本内容与基线一致尾部出现下载执行或反弹写法
临时目录无异常可执行文件扫描器、隧道工具、挖矿程序
清理账号前先把它的家目录整体打包留存:命令历史、脚本与他人交互的痕迹都在里面,删掉之后再也拿不到。密钥文件同样先复制内容与时间戳再删除。
不要只盯 SSH:同一批扫描往往同时试探数据库、中间件与面板服务,处置时要顺手核对这些服务的登录日志与账号列表,否则只是堵住了其中一扇门。

易错点

  • 只删账号不查密钥:authorized_keys 里可能已有攻击者公钥,通道照样存在
  • 清理前不打包家目录:历史与脚本是最直接的行为证据,删掉就补不回来
  • 忽略 soduers 与组成员变化:提权入口往往通过加组实现,仅查账号会漏
  • 只看 SSH 不看其他服务:同批扫描会同时试探数据库与管理面板
  • 处置后不复核:没有复查清单,无法确认是否清干净,也无法向业务交付结论

数据来源与参考

  • MITRE ATT&CK T1078 有效账号滥用
  • SANS Incident Handler's Handbook:可疑账号处置

相关工具

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