针对 Debian 系统的漏洞利用(Exploit)应急响应,核心目标是快速遏制攻击、清除威胁、恢复业务并溯源分析。以下是分阶段的详细操作指南,结合 Debian 特性(如 apt 包管理、systemd 服务、日志路径等)设计:
网络隔离:
立即断开受感染服务器的公网连接(如拔网线、关闭云服务器公网 IP),但保留内网访问(便于后续排查)。若需保留业务,可通过防火墙限制仅允许受信任 IP 访问。
Debian 防火墙示例(使用 ufw):
ufw enable
ufw default deny incoming
ufw allow from <信任IP> to any port <业务端口> # 仅开放必要端口给信任源
进程隔离:
若发现可疑进程(如挖矿、反弹 shell),先暂停而非直接 kill(避免触发进程守护或丢失内存证据):
kill -STOP <PID> # 暂停进程(信号 19)
检查异常登录:
Debian 登录日志路径:/var/log/auth.log(SSH、sudo 等)、/var/log/secure(部分版本)。
快速筛选异常:
grep -E "Failed password|Accepted password|Invalid user" /var/log/auth.log | tail -100
last -n 50 # 查看最近登录记录(含重启、SSH、本地登录)
lastb -n 50 # 查看失败登录尝试(需 root 权限)
检查可疑进程与网络连接:
用 ps、top、ss 或 netstat(需安装 net-tools)定位异常:
ps aux --sort=-%cpu | head -20 # 按 CPU 排序,找高占用进程
ss -tulnp # 查看所有监听端口及对应进程(替代 netstat)
netstat -antp | grep ESTABLISHED # 查看已建立连接(注意外部 IP)
lsof -i :<端口> # 查看指定端口的进程详情
检查定时任务(Crontab):
攻击者常通过定时任务持久化:
crontab -l # 当前用户定时任务
cat /etc/crontab # 系统级定时任务
ls -la /etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/ # 检查 cron 目录
检查启动项与服务:
Debian 使用 systemd,重点排查异常服务:
systemctl list-units --type=service --state=running # 运行中的服务
systemctl list-unit-files --type=service --state=enabled # 开机启动的服务
cat /etc/rc.local # 旧版启动脚本(若有)
ls -la /etc/init.d/ # SysVinit 脚本(若有)
终止恶意进程:
确认进程为恶意后(如路径异常、无签名、连接恶意 IP),彻底终止:
kill -9 <PID> # 强制终止
pkill -f <进程名关键词> # 按名称批量终止
删除恶意文件:
先定位文件路径(通过 lsof -p <PID> 或 ps -fp <PID>),再删除:
rm -f /path/to/malicious/file
# 若文件被锁定,可先查看占用:lsof /path/to/file,再终止占用进程后删除
清除定时任务与启动项:
删除恶意 crontab:
crontab -e # 编辑当前用户 crontab,删除异常行
rm -f /etc/cron.d/<恶意任务文件> # 删除系统级 cron 任务
禁用恶意 systemd 服务:
systemctl disable <恶意服务名> # 禁止开机启动
systemctl stop <恶意服务名> # 停止服务
rm -f /etc/systemd/system/<恶意服务名>.service # 删除服务文件
systemctl daemon-reload # 重载 systemd 配置
更新系统补丁:
Debian 漏洞通常通过 apt 修复,优先更新受影响的包:
apt update # 刷新包索引
apt upgrade -y # 升级所有可更新包(或指定包:apt install --only-upgrade <包名>)
# 若需安全更新,可启用 security 源(默认已启用,路径:/etc/apt/sources.list)
验证漏洞是否修复:
例如,若漏洞是 sudo 提权(如 CVE-2021-3156),升级后验证版本:
dpkg -l sudo | grep sudo # 查看 sudo 版本,确认已修复
临时缓解措施:
若暂无补丁,可通过配置临时限制(如禁用危险功能、修改权限):
例:若漏洞是 Redis 未授权访问,可临时绑定本地 IP 并设密码:
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis/redis.conf # 错误示例,应改为 bind 127.0.0.1
systemctl restart redis
系统日志:
Debian 系统日志路径:/var/log/syslog(通用)、/var/log/kern.log(内核)、/var/log/dpkg.log(包安装记录)。
筛选关键事件:
grep -E "error|fail|exploit|unauthorized" /var/log/syslog | tail -200
grep "install" /var/log/dpkg.log | tail -50 # 查看最近安装的包(是否被植入后门)
Web 服务日志(若涉及 Web 漏洞):
如 Apache:/var/log/apache2/access.log、error.log;Nginx:/var/log/nginx/access.log、error.log。
查找 SQL 注入、文件上传、命令执行特征:
grep -E "\.\.\/|cmd=|eval\(|system\(" /var/log/nginx/access.log # 常见攻击特征
审计日志(若启用 auditd):
Debian 可安装 auditd 监控文件/进程操作:
ausearch -m execve -ts recent # 查看最近执行的命令
ausearch -f /etc/passwd # 查看对 /etc/passwd 的访问
检查用户与权限:
攻击者可能创建后门用户:
cat /etc/passwd | grep -E "/bin/bash|/bin/sh" # 查看有 shell 权限的用户
cat /etc/shadow # 检查密码哈希(是否有异常用户)
grep -E "ALL=\(ALL\)|NOPASSWD" /etc/sudoers /etc/sudoers.d/* # 检查 sudo 权限配置
检查 SSH 后门:
cat ~/.ssh/authorized_keys # 当前用户 SSH 密钥
cat /etc/ssh/sshd_config | grep -E "PermitRootLogin|PasswordAuthentication" # SSH 配置是否被篡改
检查内核模块(Rootkit 排查):
用 lsmod 查看加载的模块,或用 chkrootkit/rkhunter 扫描:
apt install chkrootkit rkhunter -y
chkrootkit # 扫描 Rootkit
rkhunter --check # 深度检查(需联网更新规则)
debsums -a # 检查已安装包的文件完整性(需安装 debsums)
SSH 加固:
sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config # 禁止 root 直接登录
sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config # 禁用密码登录,仅用密钥
systemctl restart sshd
防火墙与端口:
仅开放必要端口,用 ufw 或 iptables 限制访问:
ufw allow 22/tcp # 仅允许 SSH(建议改非默认端口)
ufw allow 80/tcp # 仅开放 HTTP(若需要)
ufw enable
禁用不必要服务:
systemctl disable <无用服务名> # 如 cups、avahi-daemon 等非业务服务
启用自动更新(可选):
安装 unattended-upgrades 自动安装安全补丁:
apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades # 配置自动更新
监控与告警:
部署轻量监控(如 prometheus + node_exporter 或 zabbix),重点监控 CPU、内存、网络连接、登录事件。
dd 或 LiME)等证据,避免篡改。| 工具 | 用途 | 安装命令 |
|---|---|---|
chkrootkit |
Rootkit 扫描 | apt install chkrootkit |
rkhunter |
恶意软件检测 | apt install rkhunter |
debsums |
包文件完整性检查 | apt install debsums |
auditd |
系统调用审计 | apt install auditd |
lynis |
系统安全审计 | apt install lynis |
注意:应急响应需结合具体漏洞类型(如 Web 漏洞、本地提权、远程代码执行)调整策略,若攻击复杂(如 APT 攻击),建议寻求专业安全团队支持。