直接在事件查看器→Windows日志→安全中筛选事件ID 4625,可查看所有远程登录失败记录,包括源IP、账户名、登录类型(10为RDP)及失败原因代码,但需先启用“审核登录事件→失败”策略。

直接看失败登录记录,结合时间、IP、账户三个维度交叉判断,就能快速锁定暴力破解行为。
盯住关键日志位置和事件类型
不同系统日志路径和标识方式不同,但核心目标一致:
- Windows 系统:打开 事件查看器 → Windows 日志 → 安全,筛选事件ID 4625(登录失败);重点关注“源IP地址”“目标用户名”“失败原因代码”字段
- Linux(SSH):查看 /var/log/auth.log(Ubuntu/Debian)或 /var/log/secure(CentOS/RHEL),搜索关键词 Failed password 和 Invalid user
- 若用 systemd 管理日志(如较新 Arch 或 Fedora),运行 journalctl -u sshd | grep "Failed" 获取实时认证失败条目
用命令或脚本快速统计攻击源
手动翻日志效率低,用终端命令几秒出结果:
- 统计高频失败IP(Ubuntu/Debian):
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr - 同时抓取无效用户名尝试:
grep "Invalid user" /var/log/auth.log | awk '{print $8, $10}' | sort | uniq -c | sort -nr($8常为用户名,$10常为IP,可先 head -1 /var/log/auth.log 确认字段位置) - Windows PowerShell 自动化(查最近6小时):
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4625;StartTime=(Get-Date).AddHours(-6)} | Group-Object -Property {$_.Properties[18].Value} | Sort-Object Count -Descending | Select-Object Count, Name(其中索引18通常对应源IP)
验证是否已失守,不能只看失败记录
爆破的终点是成功登录,必须同步检查“得手痕迹”:
- 查成功登录记录:
Linux 执行 grep "Accepted" /var/log/auth.log | tail -30,重点看非工作时间、陌生IP、root账户的登录 - 交叉验证登录历史:
Linux 运行 last -a | head -15,比对IP与刚才发现的攻击IP是否重合 - Windows 查事件ID 4624(登录成功),特别注意登录类型为 8(网络明文) 或 10(远程桌面) 的异常条目,这类常关联FTP、IIS基本认证等弱协议
- 若发现某IP在密集失败后紧接一次成功登录,且该IP不在白名单中,应立即视为已被攻陷,启动应急响应
加固与后续动作建议
分析不是终点,要推动闭环处置:
- 对确认的攻击IP,立即加入防火墙或安全组黑名单;生产环境建议部署 Fail2Ban 或类似自动封禁工具
- 修改所有被高频尝试的账户密码,尤其 root、administrator、ftp 等高危账户;禁用长期不用的账户
- 检查登录来源是否合理:例如 FTP 暴力破解常见于暴露在公网的默认端口,应关闭外网映射或改用SFTP+密钥认证
- 开启日志轮转并定期归档,确保至少保留30天以上原始日志,便于回溯取证











