Linux病毒应急响应方案

admin 2026-07-11 04:32:16 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文档详细介绍了Linux服务器遭遇病毒或恶意软件时的应急响应标准化流程,包括初步识别异常现象、现场保护与证据固定、威胁排查与定位、遏制清除、系统恢复加固以及事件总结报告。提供了大量实用命令如ps、netstat、find、crontab等用于排查恶意进程、网络连接、可疑文件、定时任务和用户账户。强调先备份再清除,并建议修复漏洞、加固SSH、配置防火墙、安装监控工具。可操作性强,适合安全运维人员参考。 综合评分: 79 文章分类: 应急响应,恶意软件,安全运营,漏洞分析,安全意识


cover_image

Linux 病毒应急响应方案

灰帽大于 灰帽大于

灰帽大于

2026年7月5日 21:19 河北

在小说阅读器读本章

去阅读


一、应急响应概述

当 Linux 服务器出现异常行为(CPU/内存异常、可疑进程、网络连接异常等)时,需要按照标准化流程进行应急处置,快速定位问题、遏制影响、恢复服务并留存证据。

二、应急响应流程

1. 初步识别与研判

1.1 异常现象确认

  • 系统负载异常升高(tophtop
  • 可疑进程占用资源
  • 异常网络连接
  • 文件被篡改或删除
  • 定时任务异常
  • 用户账户异常登录

1.2 初步排查命令

# 查看系统负载和进程
top-c
ps auxf

# 查看网络连接
netstat -antlp
ss -antlp

# 查看登录用户
w
last
lastb  # 失败登录记录

# 查看定时任务
crontab -l
cat /etc/crontab
ls-la /etc/cron.d/
ls-la /var/spool/cron/

# 查看开机启动项
systemctl list-unit-files --type=service | grep enabled
chkconfig --list  # CentOS 6

2. 现场保护与证据固定

2.1 立即执行

  • ✅ 记录当前时间:date
  • ✅ 保存进程信息:ps auxf > /tmp/ps_info.txt
  • ✅ 保存网络连接:netstat -antlp > /tmp/net_info.txt
  • ✅ 保存登录记录:last > /tmp/last_info.txt
  • ✅ 对可疑文件进行备份(勿删除)

2.2 系统快照(如有条件)

# 虚拟机快照
# 或使用 LiME 进行内存取证(需提前准备)
insmod lime.ko "path=/tmp/mem.lime format=lime"

2.3 重要文件备份

# 备份关键系统文件
tar -czvf /tmp/system_backup_$(date +%Y%m%d_%H%M%S).tar.gz \
  /etc/passwd /etc/shadow /etc/sudoers \
  /etc/ssh/sshd_config /etc/crontab /var/spool/cron/ \
  /etc/init.d/ /etc/systemd/ /etc/rc.local

3. 威胁排查与定位

3.1 恶意进程排查

# 查看所有进程及其命令行参数
ps auxf
ps-eo pid,user,args --forest

# 查看进程打开的文件
lsof&nbsp;-p&nbsp;<PID>

# 查看进程的可执行文件路径
ls-l&nbsp;/proc/<PID>/exe
ls-l&nbsp;/proc/<PID>/cwd &nbsp;# 工作目录
ls-l&nbsp;/proc/<PID>/fd &nbsp;&nbsp;# 文件描述符

# 查看隐藏进程(对比 /proc 和 ps 输出)
ls&nbsp;/proc |&nbsp;grep-E'^[0-9]+$'&nbsp;|&nbsp;sort&nbsp;> /tmp/proc_pids.txt
ps-eo&nbsp;pid | tail&nbsp;-n+2&nbsp;|&nbsp;sort&nbsp;> /tmp/ps_pids.txt
diff&nbsp;/tmp/proc_pids.txt /tmp/ps_pids.txt

3.2 网络连接排查

# 查看所有网络连接
netstat&nbsp;-antlp
ss&nbsp;-antlp

# 查看进程监听端口
lsof&nbsp;-i

# 查看特定端口的进程
lsof&nbsp;-i&nbsp;:<PORT>
netstat&nbsp;-antlp&nbsp;|&nbsp;grep&nbsp;<PORT>

# 检查可疑外连
netstat&nbsp;-antlp&nbsp;|&nbsp;grep&nbsp;ESTABLISHED

3.3 可疑文件排查

# 查找最近修改的文件
find&nbsp;/&nbsp;-type&nbsp;f&nbsp;-mtime-7-ls2>/dev/null

# 查找最近24小时内创建的文件
find&nbsp;/&nbsp;-type&nbsp;f&nbsp;-ctime-1-ls2>/dev/null

# 查找 SUID/SGID 文件(提权后门)
find&nbsp;/&nbsp;-perm-4000-type&nbsp;f&nbsp;-ls2>/dev/null
find&nbsp;/&nbsp;-perm-2000-type&nbsp;f&nbsp;-ls2>/dev/null

# 查找隐藏文件
find&nbsp;/&nbsp;-name".*"-type&nbsp;f&nbsp;2>/dev/null

# 查找可疑脚本
find&nbsp;/ \(&nbsp;-name"*.sh"-o-name"*.py"-o-name"*.pl"-o-name"*.php"&nbsp;\) \
&nbsp;&nbsp;-mtime-30-ls2>/dev/null

# 检查常见 Webshell 目录
find&nbsp;/var/www /home&nbsp;-type&nbsp;f&nbsp;-name"*.php"-mtime-72>/dev/null

3.4 定时任务排查

# 用户定时任务
for&nbsp;user&nbsp;in$(cut -f1 -d: /etc/passwd);&nbsp;do
&nbsp;&nbsp;echo"===&nbsp;$user&nbsp;==="
&nbsp; crontab&nbsp;-u$user-l2>/dev/null
done

# 系统定时任务
cat&nbsp;/etc/crontab
ls-la&nbsp;/etc/cron.d/
ls-la&nbsp;/etc/cron.daily/
ls-la&nbsp;/etc/cron.hourly/
ls-la&nbsp;/etc/cron.monthly/
ls-la&nbsp;/etc/cron.weekly/
ls-la&nbsp;/var/spool/cron/

# 检查 anacron
cat&nbsp;/etc/anacrontab

3.5 启动项排查

# Systemd 服务
systemctl list-unit-files&nbsp;--type=service--state=enabled
ls-la&nbsp;/etc/systemd/system/
ls-la&nbsp;/lib/systemd/system/

# Init.d 脚本
ls-la&nbsp;/etc/init.d/

# RC 本地启动
cat&nbsp;/etc/rc.local
ls-la&nbsp;/etc/rc.d/

# 用户自启动项
ls-la&nbsp;~/.config/autostart/
ls-la&nbsp;/home/*/.config/autostart/

3.6 用户账户排查

# 检查特权用户
awk-F:&nbsp;'$3==0 {print $1}'&nbsp;/etc/passwd

# 检查有密码的用户
awk-F:&nbsp;'($2!="" && $2!="x") {print $1}'&nbsp;/etc/shadow

# 检查 sudo 权限
cat&nbsp;/etc/sudoers
ls-la&nbsp;/etc/sudoers.d/

# 检查 SSH 密钥
ls-la&nbsp;/root/.ssh/
cat&nbsp;/root/.ssh/authorized_keys
ls-la&nbsp;/home/*/.ssh/
cat&nbsp;/home/*/.ssh/authorized_keys&nbsp;2>/dev/null

# 检查可疑账户
cat&nbsp;/etc/passwd |&nbsp;grep-v&nbsp;nologin |&nbsp;grep-vfalse

3.7 日志分析

# 系统日志
tail&nbsp;-100&nbsp;/var/log/messages
tail&nbsp;-100&nbsp;/var/log/syslog

# 安全日志(登录、sudo等)
tail&nbsp;-500&nbsp;/var/log/secure &nbsp; &nbsp; &nbsp;# RHEL/CentOS
tail&nbsp;-500&nbsp;/var/log/auth.log &nbsp; &nbsp;# Debian/Ubuntu

# SSH 日志
grep-i"failed\|accepted\|invalid"&nbsp;/var/log/secure
grep-i"failed\|accepted\|invalid"&nbsp;/var/log/auth.log

# 用户命令历史
cat&nbsp;~/.bash_history
cat&nbsp;/home/*/.bash_history&nbsp;2>/dev/null

# Web 服务器日志(如有)
tail&nbsp;-500&nbsp;/var/log/nginx/access.log
tail&nbsp;-500&nbsp;/var/log/apache2/access.log
grep-i"eval\|base64\|exec\|shell"&nbsp;/var/log/nginx/access.log

4. 威胁遏制与清除

4.1 隔离网络(视情况)

# 禁用网络接口
ifconfig eth0 down
# 或
ip link&nbsp;set&nbsp;eth0 down

# 配置防火墙阻断外连
iptables&nbsp;-A&nbsp;OUTPUT&nbsp;-d&nbsp;<恶意IP>&nbsp;-j&nbsp;DROP
iptables&nbsp;-A&nbsp;OUTPUT&nbsp;-p&nbsp;tcp&nbsp;--dport&nbsp;<恶意端口>&nbsp;-j&nbsp;DROP

# 保存防火墙规则
iptables-save > /tmp/iptables_backup.rules

4.2 终止恶意进程

# 终止进程
kill-9&nbsp;<PID>

# 终止进程树
kill-9-$(ps -o pgid= -p <PID> | tr -d ' ')

# 防止进程重启(检查定时任务、启动项)

4.3 删除恶意文件

# 先备份可疑文件(用于后续分析)
mkdir-p&nbsp;/tmp/malware_backup
cp&nbsp;<可疑文件> /tmp/malware_backup/

# 计算文件哈希(用于威胁情报查询)
md5sum <可疑文件>
sha256sum <可疑文件>

# 删除恶意文件
rm-f&nbsp;<恶意文件路径>

# 删除恶意定时任务
crontab&nbsp;-e&nbsp;&nbsp;# 编辑删除
rm-f&nbsp;/etc/cron.d/<恶意任务文件>

# 删除恶意启动项
systemctl disable <恶意服务>
rm-f&nbsp;/etc/systemd/system/<恶意服务>.service
systemctl daemon-reload

# 删除恶意用户
userdel&nbsp;-r&nbsp;<恶意用户名>

4.4 清除后门

# 清除 SSH 后门密钥
vim&nbsp;/root/.ssh/authorized_keys
vim&nbsp;/home/*/.ssh/authorized_keys

# 清除 SUID 后门
chmod&nbsp;u-s <可疑SUID文件>

# 检查并清除内核模块后门
lsmod |&nbsp;grep&nbsp;<可疑模块名>
rmmod <可疑模块名>

5. 系统恢复与加固

5.1 修复漏洞

  • 更新系统和软件包:yum update / apt update && apt upgrade
  • 修复被利用的漏洞点(Web应用、弱密码等)
  • 检查并关闭不必要的服务和端口

5.2 加固措施

# SSH 加固
vim&nbsp;/etc/ssh/sshd_config
# PermitRootLogin no
# PasswordAuthentication no
# Port <非默认端口>

# 配置防火墙白名单
iptables&nbsp;-A&nbsp;INPUT&nbsp;-s&nbsp;<信任IP>&nbsp;-j&nbsp;ACCEPT
iptables&nbsp;-A&nbsp;INPUT&nbsp;-j&nbsp;DROP

# 禁用不必要的服务
systemctl disable <服务名>

# 安装入侵检测工具(可选)
yum install&nbsp;-y&nbsp;rkhunter chkrootkit
rkhunter&nbsp;--check
chkrootkit

5.3 密码重置

  • 重置所有可能泄露的密码
  • 重置 SSH 密钥
  • 重置数据库密码

5.4 监控与告警

# 安装监控工具
yum install&nbsp;-y&nbsp;aide &nbsp;# 文件完整性监控
aide&nbsp;--init
aide&nbsp;--check

# 配置日志监控
# 考虑部署 ELK、Wazuh 等 SIEM 系统

6. 事件总结与报告

6.1 事件报告内容

  • 事件概述:发现时间、发现方式、影响范围
  • 攻击时间线:入侵时间、攻击者行为、持续时间
  • 攻击手段:利用的漏洞、植入的后门、持久化方式
  • 影响评估:受影响系统、数据泄露情况、业务影响
  • 处置措施:遏制措施、清除措施、加固措施
  • 改进建议:预防措施、监控改进、流程优化

6.2 威胁情报共享

  • 提交恶意文件样本到 VirusTotal、微步在线
  • 提交恶意 IP/域名到威胁情报平台
  • 内部知识库记录攻击特征

三、常用工具

1. 文件分析

# 文件类型识别
file <文件名>

# 字符串提取
strings <文件名>

# 文件哈希
md5sum <文件名>
sha256sum <文件名>

# 查看文件时间属性
stat <文件名>

2. 网络分析

# 抓包分析
tcpdump&nbsp;-i&nbsp;eth0&nbsp;-w&nbsp;capture.pcap
tcpdump&nbsp;-i&nbsp;eth0 port <端口>

# 查看流量统计
iftop
nethogs

3. 进程分析

# 进程树
pstree&nbsp;-p

# 进程资源占用
pidstat&nbsp;-p&nbsp;<PID>

# 系统调用跟踪
strace&nbsp;-p&nbsp;<PID>

4. 专业工具

| 工具 | 用途 | | — | — | | Volatility | 内存取证 | | LiME | 内存采集 | | chkrootkit | Rootkit检测 | | rkhunter | Rootkit检测 | | ClamAV | 开源杀毒 | | YARA | 恶意代码识别 | | CrowdStrike | EDR平台 | | Wazuh | SIEM平台 |


📌 声明:本文仅供安全研究与学习使用,请勿用于非法用途。应急响应过程中请遵守相关法律法规,保护用户隐私和数据安全。


#


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:灰帽大于 灰帽大于 灰帽大于《Linux 病毒应急响应方案》

Linux病毒应急响应方案 网络安全文章

Linux病毒应急响应方案

文章总结: 本文档详细介绍了Linux服务器遭遇病毒或恶意软件时的应急响应标准化流程,包括初步识别异常现象、现场保护与证据固定、威胁排查与定位、遏制清除、系统恢
评论:0   参与:  0