news 2026/4/21 17:06:59

服务器CPU突然100%?别慌!手把手教你用top、ps、lsof揪出Linux挖矿木马

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
服务器CPU突然100%?别慌!手把手教你用top、ps、lsof揪出Linux挖矿木马

服务器CPU突然100%?别慌!手把手教你用top、ps、lsof揪出Linux挖矿木马

凌晨三点,服务器监控突然告警——CPU使用率飙升至100%。这种场景对于运维人员来说,就像医生遇到急诊病人,需要快速诊断病因并采取急救措施。本文将带你走进真实的服务器应急响应现场,用最实用的工具组合快速定位问题根源。

1. 紧急响应:第一时间的正确操作

当CPU使用率异常飙升时,慌乱中很容易做出错误决策。正确的第一步不是立即杀死进程或重启服务器,而是保持现场完整,就像保护犯罪现场一样重要。

关键操作顺序:

  1. 立即记录当前时间戳:date +"%Y-%m-%d %H:%M:%S"
  2. 禁用命令历史记录:unset HISTFILEexport HISTFILE=/dev/null
  3. 创建临时工作目录:mkdir -p /tmp/forensics && cd $_

注意:不要使用kill -9强制终止任何进程,这可能导致攻击者设置的守护进程立即启动新的恶意进程。

遇到命令被替换的情况时(比如psnetstat显示异常),可以这样快速验证:

# 检查命令文件大小是否异常 ls -lh /bin/ps /bin/netstat /bin/ls # 使用busybox获取原始命令输出 busybox top

2. 进程排查:从表象到根源

2.1 快速定位异常进程

top命令虽然直观,但在高级攻击场景下可能被干扰。更可靠的组合是:

# 按CPU排序显示完整命令 ps -eo pid,user,pcpu,pmem,cmd --sort=-pcpu | head -n 10 # 检查进程树关系 pstree -pan <可疑PID>

典型挖矿进程特征:

  • 名称伪装成kworkerjava等系统进程
  • CPU占用持续90%以上
  • 存在异常子进程链

2.2 深度进程取证

发现可疑进程后,需要进一步取证:

# 查看进程打开的文件 ls -l /proc/<PID>/fd # 检查进程内存映射 cat /proc/<PID>/maps | grep heap # 提取进程可执行文件 cp /proc/<PID>/exe /tmp/forensics/malware.bin

对于注入型恶意进程,可以使用gdb进行内存取证:

gdb -p <PID> -batch -ex 'dump memory /tmp/forensics/mem.dump 0x00007f8c3a2e5000 0x00007f8c3a4e5000' strings -n 8 /tmp/forensics/mem.dump | grep 'http\|wget\|curl'

3. 网络取证:追踪C2服务器连接

恶意程序通常会连接外部C2服务器。使用现代Linux系统推荐的替代方案:

# 查看所有TCP连接 ss -tulnp # 检查进程网络活动 nsenter -t <PID> -n netstat -ant # 持续监控异常外连 tcpdump -i eth0 'tcp and (port 3333 or port 5555 or port 7777)' -w /tmp/forensics/packet.pcap

挖矿木马常见特征:

  • 连接矿池常用端口:3333、4444、5555、7777
  • 域名包含poolminexmr等关键词
  • 使用TLS加密通信逃避检测

4. 文件系统痕迹分析

4.1 定位恶意文件

通过lsof结合时间筛选:

# 查找最近修改的可执行文件 find /usr/bin /usr/sbin -type f -mtime -3 -exec ls -lh {} \; # 检查/tmp和/dev/shm ls -la /tmp /dev/shm | grep -E '\.(so|ko|dat)$'

4.2 隐藏启动项排查

定时任务检查:

# 检查所有用户的crontab for user in $(cut -f1 -d: /etc/passwd); do echo "==== $user ===="; crontab -u $user -l; done # 查找异常的系统定时任务 ls -la /etc/cron*/* /var/spool/cron/*

系统服务检查:

# 列出所有systemd服务 systemctl list-units --type=service --state=running # 检查服务文件修改时间 find /lib/systemd/system /etc/systemd/system -type f -mtime -7

5. 事后加固与防护建议

确认清除恶意程序后,需要立即进行安全加固:

  1. 关键命令校验
# 使用rpm验证系统命令完整性 rpm -Va | grep '^..5'
  1. SSH防护升级
# 禁用密码认证 sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config # 安装fail2ban apt-get install -y fail2ban || yum install -y fail2ban
  1. 系统监控增强
# 安装监控agent curl -L https://github.com/netdata/netdata/releases/latest/download/netdata-kickstart.sh | bash # 设置实时进程监控 echo '* * * * * root /usr/bin/ps -eo pid,user,pcpu,cmd --sort=-pcpu | head -n 5 >> /var/log/process_mon.log' > /etc/cron.d/process_mon

在最近一次应急响应中,我们发现攻击者通过弱密码爆破入侵后,在/dev/shm下放置了经过混淆的挖矿程序,并修改了/etc/ld.so.preload实现进程隐藏。通过对比正常系统的文件哈希值,最终定位到了被篡改的系统库文件。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 17:05:48

告别模拟器!5步在Windows电脑上直接安装Android应用

告别模拟器&#xff01;5步在Windows电脑上直接安装Android应用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否厌倦了笨重的Android模拟器&#xff1f;是否想要…

作者头像 李华
网站建设 2026/4/21 17:05:31

AMD Ryzen调试利器SMUDebugTool:从入门到实战的完整指南

AMD Ryzen调试利器SMUDebugTool&#xff1a;从入门到实战的完整指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://…

作者头像 李华
网站建设 2026/4/21 16:57:18

天龙八部单机版GM工具终极指南:5分钟掌握专业游戏管理技巧

天龙八部单机版GM工具终极指南&#xff1a;5分钟掌握专业游戏管理技巧 【免费下载链接】TlbbGmTool 某网络游戏的单机版本GM工具 项目地址: https://gitcode.com/gh_mirrors/tl/TlbbGmTool TlbbGmTool是一款专为《天龙八部》单机版设计的可视化游戏管理工具&#xff0c;…

作者头像 李华
网站建设 2026/4/21 16:53:22

终极Chrome书签管理解决方案:Neat Bookmarks树状扩展完整指南

终极Chrome书签管理解决方案&#xff1a;Neat Bookmarks树状扩展完整指南 【免费下载链接】neat-bookmarks A neat bookmarks tree popup extension for Chrome [DISCONTINUED] 项目地址: https://gitcode.com/gh_mirrors/ne/neat-bookmarks 在当今信息爆炸的时代&#…

作者头像 李华