
核心要点(TL;DR)
- SSH暴力破解成功的关键信号是登录日志中的大量失败记录和异常IP。
- Webshell排查需结合文件时间、内容特征和网络连接,常用命令find、grep、netstat。
- 应急响应第一步应隔离主机,然后分析日志、进程和启动项。
- 加固SSH建议禁用密码登录,改用密钥认证并修改默认端口。
凌晨两点,收到服务器CPU飙高的告警,登录后发现一个陌生进程正在挖矿。排查后确认:攻击者通过SSH暴力破解拿到了低权限账户,然后上传了Webshell提权。这种场景并不罕见。本文将基于AegisX主机安全的实战案例,手把手带你排查SSH暴力破解与Webshell入侵,给出可落地的命令和检查清单,让你在遇到类似事件时能快速响应。
一、SSH暴力破解的常见迹象与危害
SSH暴力破解是最常见的入侵方式之一。攻击者利用自动化工具,尝试大量用户名和密码组合,一旦成功即获得服务器控制权。典型迹象包括:
- 系统日志中出现大量“Failed password”记录
- 存在来自陌生IP的成功登录记录
- 服务器资源异常(CPU、带宽占用高)
- 出现未知的账户或计划任务
危害轻则被植入挖矿程序,重则数据泄露、成为跳板机。因此,及时发现并阻断是关键。
二、排查SSH暴力破解:日志分析与进程检查
1. 分析登录日志
Linux系统默认记录认证日志在/var/log/secure(CentOS)或/var/log/auth.log(Ubuntu)。使用以下命令统计失败登录的IP:
grep 'Failed password' /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -20如果某个IP尝试次数异常高,即可判定为暴力破解。同时检查成功登录:
grep 'Accepted password' /var/log/secure重点关注非工作时间、陌生IP的登录。
2. 检查当前登录用户与进程
使用w或who查看当前登录用户,ps aux检查可疑进程。特别注意以root或www-data运行的异常进程,如./sh、./kdevtmpfsi等。
3. 检查计划任务与启动项
攻击者常留后门:
crontab -l
cat /etc/crontab
ls -la /etc/cron.*
systemctl list-unit-files --type=service | grep enabled发现可疑任务立即删除并记录。
三、Webshell入侵排查:文件与网络连接分析
1. 查找近期修改的文件
Webshell通常上传到Web目录。使用find命令查找最近修改的文件:
find /var/www -type f -mtime -7 -name '*.php' -o -name '*.jsp' -o -name '*.asp'结合ls -la查看文件权限,异常权限(如777)需警惕。
2. 搜索Webshell特征
常见Webshell包含eval、assert、system等函数。使用grep扫描:
grep -r --include=*.php -l 'eval\|assert\|system\|passthru\|shell_exec' /var/www注意:有些正常程序也会使用这些函数,需人工确认。
3. 检查网络连接
Webshell可能连接C2服务器。使用netstat查看异常外连:
netstat -antp | grep ESTABLISHED重点关注与陌生IP的80、443、53等端口连接。
四、应急响应步骤:从隔离到清除
一旦确认入侵,按以下步骤操作:
- 隔离主机:断开网络或使用防火墙限制访问,防止横向移动。
- 取证:备份日志、进程列表、网络连接,便于后续分析。
- 清除:删除Webshell文件,kill恶意进程,删除计划任务和启动项。
- 加固:修改所有密码,更新系统补丁,禁用不必要的服务。
- 监控:部署AegisX主机安全,实时监控异常行为。
五、防护建议与检查清单
预防胜于治疗。以下清单帮助你加固服务器:
- SSH:禁用密码登录,使用密钥认证,修改默认端口,限制访问IP。
- Web:及时更新CMS和插件,上传目录禁止执行脚本。
- 监控:部署AegisX,开启暴力破解和Webshell检测。
- 备份:定期备份数据,并确保备份不可写。
AegisX主机安全提供实时入侵检测和自动响应,能有效阻断SSH暴力破解和Webshell上传,是运维人员的得力助手。
安全事件处置的关键在于快速定位和彻底清除。建议立即检查你的服务器日志,并考虑使用AegisX提升整体安全水位。
常见问题(FAQ)
如何判断服务器是否正在被SSH暴力破解?
查看/var/log/secure(或auth.log)中是否有大量Failed password记录,以及是否有来自陌生IP的成功登录。使用命令:grep 'Failed password' /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr 可统计攻击源IP。若发现成功登录的陌生IP,则表明已被攻破。
发现Webshell后应该如何清除?
首先隔离主机,然后根据文件路径和进程信息定位Webshell。使用命令:find /var/www -type f -name '*.php' -mtime -7 查找近期修改的文件,结合grep搜索eval、assert等危险函数。确认后删除文件,并检查是否有计划任务、启动项等持久化后门。最后修复漏洞并重置所有密码。
如何防止SSH暴力破解?
最有效的措施是禁用密码登录,使用密钥认证。修改/etc/ssh/sshd_config:PasswordAuthentication no,并重启sshd。此外,可修改默认端口、使用fail2ban限制尝试次数、仅允许特定IP访问。AegisX主机安全可实时监控暴力破解行为并自动阻断。
AegisX在主机安全中能提供哪些帮助?
AegisX提供实时入侵检测,包括SSH暴力破解监控、Webshell查杀、异常进程告警等。它能自动分析日志,发现攻击行为并通知管理员,同时提供一键隔离和取证功能,大幅缩短应急响应时间,是主机安全的得力助手。