CentOS服务器被入侵?手把手教你排查暴力破解、后门植入与命令替换(附靶场复现)
CentOS服务器入侵排查实战指南从暴力破解到后门清除最近在帮朋友处理一台被入侵的CentOS服务器时发现黑客不仅留下了后门账户还替换了关键系统命令。这种经历让我意识到很多管理员在服务器被入侵后往往手足无措。本文将分享一套完整的排查流程帮助你像专业安全人员一样应对服务器入侵事件。1. 入侵迹象初步识别当服务器出现以下症状时就该警惕可能已被入侵异常资源占用CPU或内存突然飙升而业务量并无相应增长陌生进程top或htop命令显示未知进程持续运行可疑网络连接服务器与未知IP地址建立异常连接命令行为异常常见命令如ps、netstat输出结果与预期不符提示建议定期对服务器建立性能基准这样更容易发现异常变化快速检查网络连接的实用命令# 查看所有活跃的网络连接 netstat -antp | grep ESTABLISHED # 检查异常出站连接按连接数排序 netstat -antp | awk {print $5} | cut -d: -f1 | sort | uniq -c | sort -n2. 暴力破解攻击痕迹分析暴力破解通常是入侵的第一步。CentOS系统的登录尝试记录主要保存在/var/log/secure分析暴力破解的关键命令# 统计失败登录尝试TOP IP grep Failed password /var/log/secure | awk {print $11} | sort | uniq -c | sort -nr # 提取被暴力破解的用户名 grep Failed password /var/log/secure | perl -n -e /for (.?) from/ print $1\n | sort | uniq -c | sort -nr典型暴力破解日志特征Jan 14 03:14:22 localhost sshd[12345]: Failed password for root from 192.168.1.100 port 54321 ssh2 Jan 14 03:14:25 localhost sshd[12345]: Failed password for root from 192.168.1.100 port 54321 ssh2防护建议立即措施封禁攻击IPiptables -A INPUT -s 192.168.1.100 -j DROP更改所有可能被猜中的密码长期防护启用SSH密钥认证禁用密码登录安装fail2ban自动封禁暴力破解IP限制SSH访问IP范围3. 后门账户深度排查黑客常会创建隐蔽账户维持访问权限。完整排查流程3.1 特权账户检查# 列出所有UID为0的账户超级用户 awk -F: $30 {print $1} /etc/passwd # 检查可远程登录的账户 awk /\$1|\$6/{print $1} /etc/shadow3.2 隐藏账户检测黑客可能使用特殊字符创建隐形账户# 检查用户名包含异常字符的账户 cat /etc/passwd | grep -E [^a-zA-Z0-9_-]3.3 登录历史分析# 最近成功登录记录 last -n 20 # 检查/var/log/wtmp是否被清空正常应有大量记录 ls -lh /var/log/wtmp发现可疑账户后的处理步骤记录账户信息UID、GID、家目录等检查该用户的.bash_history文件检查用户crontabcrontab -u 用户名 -l确认后删除账户userdel -r 用户名4. 系统命令篡改检测黑客常替换常用命令如ps、netstat来隐藏恶意进程。检测方法4.1 RPM包验证# 验证系统关键命令是否被修改 rpm -Va | grep -E ^..5 # 检查特定命令如ps rpm -Vf /usr/bin/ps输出解读S.5....T. /usr/bin/psS文件大小改变5MD5校验值改变T修改时间改变4.2 命令文件分析对可疑命令进行深入检查# 查看命令真实路径 which ps # 检查文件属性 ls -l /usr/bin/ps # 查看文件内容警惕脚本类命令 file /usr/bin/ps cat /usr/bin/ps典型后门ps脚本示例#!/bin/bash # 隐藏恶意进程的后门脚本 /hidden/.malware /dev/null /bin/ps.orig $ | grep -v malware4.3 恢复被篡改命令从官方源重新安装yum reinstall procps-ng手动恢复# 查找备份文件黑客可能保留原始命令 find / -name ps.orig -type f # 恢复命令 mv /usr/bin/ps.malware /usr/bin/ps5. 恶意进程与定时任务排查5.1 进程深度分析# 完整进程树查看 pstree -apnh # 检查异常CPU占用 ps -eo pid,ppid,cmd,%mem,%cpu --sort-%cpu | head -n 205.2 定时任务检查常见后门位置/var/spool/cron/* /etc/cron.*/* /etc/crontab检查命令# 查看系统所有定时任务 ls -la /etc/cron* /var/spool/cron # 检查root用户的crontab crontab -l5.3 启动项排查# 检查系统启动项 ls -la /etc/rc.d/rc.local ls -la /etc/init.d/ # 检查当前运行级别服务 chkconfig --list | grep 3:on6. 入侵后的系统加固建议完成入侵处理后应立即进行系统加固SSH安全增强# 修改SSH默认端口 sed -i s/#Port 22/Port 2222/ /etc/ssh/sshd_config # 禁止root远程登录 sed -i s/PermitRootLogin yes/PermitRootLogin no/ /etc/ssh/sshd_config # 仅允许密钥认证 sed -i s/#PasswordAuthentication yes/PasswordAuthentication no/ /etc/ssh/sshd_config防火墙配置# 仅开放必要端口 iptables -A INPUT -p tcp --dport 2222 -j ACCEPT iptables -A INPUT -j DROP系统更新与审计# 更新所有软件包 yum update -y # 安装审计工具 yum install audit -y systemctl start auditd systemctl enable auditd定期安全检查脚本#!/bin/bash # 每日安全检查脚本示例 echo 安全检查报告 $(date) echo 1. 特权账户检查 awk -F: $30 {print $1} /etc/passwd echo 2. 最近登录 last -n 10 echo 3. 网络连接 netstat -antp | grep ESTAB在处理完几十台被入侵的服务器后我发现大部分入侵都始于弱密码或未修复的漏洞。建立日常安全检查机制比事后应急响应重要得多。建议至少每周检查一次关键日志并保持系统更新。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2423267.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!