香港 服务器木马和后门查杀:常用工具和排查思路

香港服务器安全是运维工作的重中之重。一旦服务器被入侵,快速发现并清除木马和后门至关重要。本文将详细介绍专业的排查工具和系统化的查杀思路。一、入侵迹象识别与应急响···

香港服务器安全是运维工作的重中之重。一旦服务器被入侵,快速发现并清除木马和后门至关重要。本文将详细介绍专业的排查工具和系统化的查杀思路。

一、入侵迹象识别与应急响应

常见入侵迹象:

  • 系统资源异常占用(CPU、内存、磁盘I/O)

  • 网络连接异常(未知外连、异常端口)

  • 系统日志异常(登录失败、可疑命令)

  • 文件系统异常(新增可疑文件、权限变更)

  • 服务异常(未知进程、服务自启动)

应急响应流程:

bash

# 1. 立即隔离服务器(如可能)sudo iptables -A INPUT -s 0.0.0.0/0 -j DROPsudo iptables -A OUTPUT -d 0.0.0.0/0 -j DROP# 2. 创建调查工作目录mkdir /tmp/forensicscd /tmp/forensics# 3. 记录当前系统状态date > investigation_start_time.txtwhoami >> system_info.txtuname -a >> system_info.txt

二、系统进程与网络连接分析

进程排查工具:

  1. ps命令高级用法:

bash

# 查看完整命令行和进程树ps auxfww# 查看可疑进程(无控制终端、隐藏进程)ps -ef | grep -v "\["ps -eo pid,ppid,user,args | awk '$2==1 && $3!="root"'# 监控进程变化watch -n 1 'ps aux --sort=-%cpu | head -20'

  1. htop/top增强分析:

bash

# 安装htop(功能更强的top)sudo apt install htopsudo yum install htop# 使用htop查看进程htop# 按F5查看进程树,F9杀死进程,F2配置显示列

  1. lsof网络连接分析:

bash

# 查看所有网络连接lsof -i# 查看特定端口连接lsof -i :80lsof -i :443lsof -i :22# 查看进程打开的文件lsof -p <PID># 查看异常外连IPlsof -i | awk '{print $8,$9}' | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | sort -u

  1. netstat/ss深度排查:

bash

# 查看所有TCP/UDP连接netstat -tunapss -tunap# 查看监听端口netstat -lnpss -lnp# 查找隐藏端口netstat -an | grep -E "LISTEN|ESTABLISHED" | grep -v "127.0.0.1"# 统计外连IPnetstat -an | grep ESTABLISHED | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

三、文件系统完整性检查

1. 文件时间属性分析:

bash

# 查找最近修改的文件find / -type f -mtime -7 -ls 2>/dev/null | head -50# 查找最近创建的文件find / -type f -ctime -2 -ls 2>/dev/null# 查找隐藏文件和目录find / -name ".*" -type f -ls 2>/dev/null | grep -v "/proc\|/sys"# 查找SUID/SGID文件find / -perm -4000 -type f -ls 2>/dev/nullfind / -perm -2000 -type f -ls 2>/dev/null

2. 系统关键目录监控:

bash

# 检查系统二进制文件ls -la /bin /sbin /usr/bin /usr/sbin | grep -E "(root|1970|0000)"# 检查临时目录ls -la /tmp /var/tmp /dev/shm# 检查用户目录find /home -name ".*" -type f | grep -v "bash_history\|viminfo"# 检查Web目录find /var/www -name "*.php" -o -name "*.jsp" -o -name "*.war" | xargs ls -la

3. 文件完整性校验:

bash

# 使用rpm验证包完整性(CentOS/RHEL)rpm -Va# 使用dpkg验证包完整性(Debian/Ubuntu)debsums -ac# 手动计算关键文件哈希值md5sum /bin/ls /bin/ps /bin/netstat /usr/sbin/sshd > /tmp/system_binaries.md5# 比较系统文件变化find /bin /sbin /usr/bin /usr/sbin -type f -exec md5sum {} \; > current_binaries.md5diff system_baseline.md5 current_binaries.md5

四、Rootkit专业检测工具

1. RKHunter(Rootkit Hunter)

bash

# 安装sudo apt install rkhuntersudo yum install rkhunter# 更新数据库sudo rkhunter --update# 进行全面检查sudo rkhunter --checkall# 查看日志sudo cat /var/log/rkhunter.log# 常用命令sudo rkhunter --propupd  # 更新文件属性数据库sudo rkhunter --check --skip-keypress  # 自动检查

2. Chkrootkit

bash

# 安装sudo apt install chkrootkitsudo yum install chkrootkit# 运行检查sudo chkrootkit# 检查特定项目sudo chkrootkit -x | grep INFECTED# 详细输出sudo chkrootkit -q

3. Lynis安全审计

bash

# 安装sudo apt install lynissudo yum install lynis# 全面系统审计sudo lynis audit system# 快速检查sudo lynis --quick# 生成报告sudo lynis audit system --report-file /tmp/lynis-report.txt

五、恶意软件扫描工具

1. ClamAV病毒扫描

bash

# 安装sudo apt install clamav clamav-daemonsudo yum install clamav clamav-update# 更新病毒库sudo freshclam# 扫描系统关键目录sudo clamscan -r -i /bin /sbin /usr/bin /usr/sbin# 全面扫描sudo clamscan -r -i --exclude-dir="^/sys" --exclude-dir="^/proc" /# 扫描特定用户sudo clamscan -r -i /home/# 使用更敏感的检测sudo clamscan -r --bell --detect-pua=yes --scan-archive=yes /

2. Linux Malware Detect (LMD)

bash

# 安装cd /tmpwget http://www.rfxn.com/downloads/maldetect-current.tar.gztar -xzf maldetect-current.tar.gzcd maldetect-*sudo ./install.sh# 更新特征库sudo maldet --update-versudo maldet --update# 扫描系统sudo maldet -a /home/sudo maldet -a /var/www/# 查看检测结果sudo maldet --listsudo maldet --report SCANID

六、系统日志深度分析

1. 认证日志分析:

bash

# 检查SSH登录失败sudo grep "Failed password" /var/log/auth.logsudo grep "Failed password" /var/log/secure# 检查成功登录sudo grep "Accepted password" /var/log/auth.logsudo grep "session opened" /var/log/auth.log# 统计登录失败IPsudo grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr# 检查sudo使用sudo grep "sudo:" /var/log/auth.log

2. 系统命令历史分析:

bash

# 检查所有用户命令历史for user in $(ls /home); do
    echo "=== 用户 $user 的历史命令 ==="
    cat /home/$user/.bash_history | tail -50done# 检查root历史sudo cat /root/.bash_history# 查找可疑命令find /home -name ".bash_history" -exec grep -l -E "(wget|curl|chmod|chown|ssh|scp|nc|netcat|telnet)" {} \;

3. Web日志分析:

bash

# 检查Web攻击sudo grep -E "(union select|cmd=|exec=|system\(|eval\(|base64_decode)" /var/log/apache2/access.log# 查找扫描器sudo grep -E "(nikto|nmap|acunetix|nessus)" /var/log/apache2/access.log# 统计访问IPsudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20

七、后门特征排查

1. 定时任务检查:

bash

# 检查系统cronsudo cat /etc/crontabsudo ls -la /etc/cron.d/sudo ls -la /etc/cron.hourly/ /etc/cron.daily/ /etc/cron.weekly/ /etc/cron.monthly/# 检查用户cronsudo cat /var/spool/cron/crontabs/*# 查找异常任务sudo crontab -l | grep -v "^#"for user in $(cut -f1 -d: /etc/passwd); do sudo crontab -u $user -l 2>/dev/null; done

2. 服务与自启动检查:

bash

# systemd服务检查sudo systemctl list-unit-files --type=service | grep enabledsudo systemctl list-units --type=service --state=running# 检查init脚本sudo ls -la /etc/init.d/ | grep -v "README"# 检查rc.localsudo cat /etc/rc.local# 检查profile文件sudo grep -r "ssh" /etc/profile /etc/profile.d/

3. 内核模块检查:

bash

# 查看加载的内核模块lsmod# 检查可疑模块sudo modinfo $(lsmod | awk '{print $1}' | grep -v Module)# 检查模块文件find /lib/modules -name "*.ko" -type f | xargs ls -la

八、网络层深度检测

1. 网络流量分析:

bash

# 使用tcpdump抓包分析sudo tcpdump -i any -w /tmp/capture.pcapsudo tcpdump -i any -n 'host 可疑IP'# 使用iftop查看实时流量sudo iftop -i any# 使用nethogs查看进程流量sudo nethogs

2. iptables防火墙监控:

bash

# 监控防火墙规则变化sudo iptables -L -n -vsudo iptables -t nat -L -n -v# 检查是否有隐藏规则sudo iptables-save

九、WebShell检测与清除

1. WebShell特征扫描:

bash

# 查找可疑PHP文件find /var/www -name "*.php" -type f | xargs grep -l -E "(exec|system|shell_exec|passthru|eval|base64_decode)" | while read file; do
    echo "可疑文件: $file"
    ls -la "$file"done# 检查文件修改时间find /var/www -name "*.php" -mtime -1 -ls# 查找隐藏WebShellfind /var/www -name ".*.php" -o -name "*.jpg.php" -o -name "*.png.php"

2. WebShell扫描工具:

bash

# 使用PHP恶意软件扫描器cd /tmpgit clone https://github.com/emposha/PHP-Shell-Detectorcd PHP-Shell-Detectorsudo php scan.php /var/www/# 使用Webshell Scannergit clone https://github.com/We5ter/Scanners-Boxcd Scanners-Box/webshell/
python webshell_scan.py /var/www/

十、自动化排查脚本

创建综合检测脚本:

bash

#!/bin/bash# security_scan.shLOG_FILE="/tmp/security_scan_$(date +%Y%m%d_%H%M%S).log"echo "安全扫描开始: $(date)" | tee -a $LOG_FILEecho -e "\n=== 系统信息 ===" | tee -a $LOG_FILEuname -a >> $LOG_FILEecho -e "\n=== 网络连接检查 ===" | tee -a $LOG_FILEnetstat -tunap >> $LOG_FILEecho -e "\n=== 进程检查 ===" | tee -a $LOG_FILEps aux --sort=-%cpu >> $LOG_FILEecho -e "\n=== 监听端口 ===" | tee -a $LOG_FILEnetstat -lnp >> $LOG_FILEecho -e "\n=== 最近修改的文件 ===" | tee -a $LOG_FILEfind / -type f -mtime -7 -ls 2>/dev/null | head -100 >> $LOG_FILEecho -e "\n=== SUID/SGID文件 ===" | tee -a $LOG_FILEfind / -perm -4000 -type f -ls 2>/dev/null >> $LOG_FILEfind / -perm -2000 -type f -ls 2>/dev/null >> $LOG_FILEecho -e "\n=== 计划任务 ===" | tee -a $LOG_FILEcat /etc/crontab >> $LOG_FILEls -la /etc/cron.* >> $LOG_FILEecho -e "\n=== 系统服务 ===" | tee -a $LOG_FILEsystemctl list-unit-files --type=service | grep enabled >> $LOG_FILEecho -e "\n=== 登录历史 ===" | tee -a $LOG_FILElast >> $LOG_FILEecho "安全扫描完成: $(date)" | tee -a $LOG_FILEecho "详细日志: $LOG_FILE"

十一、入侵响应与恢复

1. 立即响应措施:

bash

# 隔离网络sudo iptables -A INPUT -j DROPsudo iptables -A OUTPUT -j DROP# 备份证据sudo tar -czf /tmp/evidence_$(date +%Y%m%d).tar.gz /var/log/ /tmp/forensics/# 更改所有密码sudo passwd rootfor user in $(cut -f1 -d: /etc/passwd); do
    sudo passwd $userdone

2. 系统恢复步骤:

bash

# 从备份恢复关键文件sudo rpm -Va | grep '^..5' | awk '{print $2}' | xargs -r rpm -qf# 重新安装受影响软件包sudo yum reinstall $(rpm -Va | grep '^..5' | awk '{print $2}')# 更新系统sudo yum updatesudo apt update && sudo apt upgrade

3. 加固系统:

bash

# 安装安全工具sudo yum install fail2ban rkhunter chkrootkit clamav# 配置防火墙sudo systemctl enable firewalldsudo firewall-cmd --permanent --add-service=sshsudo firewall-cmd --permanent --add-service=httpsudo firewall-cmd --permanent --add-service=httpssudo firewall-cmd --reload# 禁用不必要服务sudo systemctl disable bluetooth cups avahi-daemon

十二、预防措施与持续监控

1. 系统加固:

bash

# 配置SSH安全sudo nano /etc/ssh/sshd_config# 添加: PermitRootLogin no, PasswordAuthentication no, Port 2222# 安装和配置AIDE(文件完整性检查)sudo yum install aidesudo aide --initsudo mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gzsudo aide --check# 配置日志审计sudo apt install auditdsudo systemctl enable auditd

2. 持续监控脚本:

bash

#!/bin/bash# monitor_changes.sh# 监控关键目录变化inotifywait -m -r -e create,modify,delete /bin /sbin /usr/bin /usr/sbin /etc | while read path action file; do
    echo "$(date): $action in $path on $file" >> /var/log/file_changes.log    # 发送警报
    echo "警告: 系统文件被修改 - $file" | mail -s "文件变更警报" admin@example.comdone

十三、专业工具推荐

商业安全工具:

  • OSSEC - 开源主机入侵检测系统

  • Wazuh - OSSEC分支,提供更现代化功能

  • Tripwire - 文件完整性监控

  • AIDE - 高级入侵检测环境

在线扫描服务:

  • VirusTotal - 在线文件扫描

  • Hybrid Analysis - 恶意软件分析

  • ANY.RUN - 交互式恶意软件分析

总结

服务器安全是一个持续的过程,木马和后门查杀需要系统化的方法:

关键排查要点:

  1. 及时发现:监控系统异常,建立预警机制

  2. 全面检测:使用多种工具交叉验证

  3. 深度分析:不只看表面现象,要分析根本原因

  4. 彻底清除:确保完全移除恶意代码

  5. 持续防护:加固系统,防止再次入侵

最佳实践建议:

  • 定期进行安全扫描和漏洞评估

  • 实施最小权限原则

  • 保持系统和软件更新

  • 建立完善的备份和恢复流程

  • 培训团队成员的安全意识

记住,没有绝对安全的系统,但通过系统化的安全实践和持续监控,可以显著降低被入侵的风险,并在发生安全事件时快速响应和恢复。

生成文章图片 (54).jpg

您好:云优数据云计算 www.yunyoushuju.cn 2核2G6M最低19.9元/月 欢迎开机

发表评论

评论列表
未查询到任何数据!