Linux Exploit 清除与加固流程
一 处置原则与准备
二 快速检测与定位
netstat -tulpen | grep -v "127.0.0.1",ps -ef | grep -v "\[";通过 /proc/<PID>/exe 与 ls -l 追溯二进制来源。/var/log/auth.log(Debian 系)或 /var/log/secure(RHEL/CentOS 系)、journalctl -xe,检索 Failed password、Invalid user、Accepted publickey、session opened/closed 等关键字。crontab -l -u <user>,cat /etc/crontab /etc/cron.*/*,systemctl list-unit-files --type=service,grep -R "bash -i\|python\|perl" /etc/rc.local /etc/init.d /etc/profile /root/.bash* 2>/dev/null。md5sum /bin/ls /usr/bin/ssh /usr/sbin/sshd,rkhunter --check,unhide proc。三 清除与恢复
kill -9 <PID>),下线被篡改服务,临时封禁来源 IP 与端口;必要时将实例从生产网段隔离。/tmp、/dev/shm);删除或注释可疑的 crontab 与系统级计划任务条目;移除异常 systemd 服务单元。/etc/rc.local、/etc/profile、~/.bashrc);重置 root 与关键账户密码,清理 ~/.ssh/authorized_keys 中的未知公钥;限制 root 远程登录,优先使用 SSH 公钥 并禁用密码登录。sudo yum update;sudo apt update && sudo apt upgrade;sudo ufw allow 22,80,443/tcp 或 sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT。四 加固与持续监控
五 常见场景与命令清单
| 场景 | 关键动作 | 常用命令示例 |
|---|---|---|
| 发现异常网络连接 | 定位 PID 与可执行文件并终止 | `netstat -tulpen |
| SSH 后门与暴力登录 | 审计日志、清理公钥、加固 SSH | tail -f /var/log/auth.log,cat ~/.ssh/authorized_keys,禁用 root 登录、改用密钥 |
| 计划任务/开机启动持久化 | 清查并移除异常条目 | crontab -l -u <user>,cat /etc/crontab /etc/cron.*/*,检查 /etc/rc.local 与 systemd |
| 系统完整性受损 | 校验关键文件、恢复与重启 | md5sum /bin/ls /usr/bin/ssh,rkhunter --check,重启服务/系统 |
| 漏洞修复与收敛 | 更新、补丁、防火墙 | yum update 或 apt update && apt upgrade,ufw/iptables 收敛端口 |
| 取证与后续 | 日志留存、备份、加固 | journalctl -xe,全量备份,启用 Lynis/AIDE 与 IDS/IPS 持续监控 |