暴力破解成功后,攻击者会新建账号、改密码、加公钥、写定时任务等静默落地操作;需重点核查auth.log或secure中的accepted登录记录,并交叉比对last、lastlog、uid=0账号、authorized_keys及crontab等痕迹。

暴力破解成功后,攻击者通常不会立刻删日志,而是新建账号、改密码、加公钥、写定时任务——这些操作都会在系统里留下可验证的痕迹。关键不是“有没有被爆破”,而是“有没有爆破成功并落地”。
查 /var/log/auth.log 或 /var/log/secure 里的 Accepted 记录
这是最直接的证据:只要登录成功过,就一定在这里记一笔。Debian/Ubuntu 看 /var/log/auth.log,RHEL/CentOS 看 /var/log/secure。
- 用
grep "Accepted" /var/log/auth.log | tail -50快速看最近成功登录的记录 - 重点盯 IP 地址、用户名、时间戳——比如连续几分钟内多个不同用户从同一个 IP 登录,基本就是爆破成功后的横向尝试
- 如果看到
Accepted password for root from 192.168.1.132 port 54321 ssh2这类行,且该 IP 不在运维白名单里,就是铁证 - 注意:有些攻击者会伪造
sshd日志,所以别只信一条日志,要和last、w、who输出交叉比对
用 last 和 lastlog 追溯真实登录行为
last 读的是 /var/log/wtmp,记录所有已结束的登录会话;lastlog 查每个用户的最后登录时间,两者互补,能绕过部分日志清理手段。
-
last -n 100看最近 100 条登录退出记录,关注pts/(远程 SSH)和tty1(本地)类型 -
lastlog -u root查 root 最后一次登录时间,再对比last -n 10 | grep root,看是否一致 - 如果某个用户(比如
hyf)在lastlog里显示“**Never logged in**”,但在last里有记录,说明日志被裁剪或篡改过 -
last -i显示 IP 地址而非主机名,避免 DNS 欺骗干扰判断
检查新增账号、UID=0 账号和异常 authorized_keys
爆破成功只是第一步,攻击者必然建后门。重点不是“有没有新用户”,而是“有没有不该存在的特权用户或免密入口”。
- 运行
awk -F: '$3==0 {print $1}' /etc/passwd——输出非root的 UID=0 用户,比如hyf、admin,就是高危后门 - 查所有用户 SSH 公钥:
find /home -name "authorized_keys" 2>/dev/null -exec ls -l {} \; -exec cat {} \;,看有没有陌生的 RSA 公钥段 - 检查 root 的公钥:
cat /root/.ssh/authorized_keys,尤其注意末尾是否多了一长串 base64 字符 - 运行
ls -lt /home/ | head -10看最近创建的家目录,结合stat /home/新用户名确认创建时间是否贴近可疑登录时段
核对 crontab、/etc/cron.d/ 和用户历史命令
爆破成功后,攻击者大概率会加持久化任务,比如每分钟拉一次恶意脚本,或定期反弹 shell。这些不会出现在登录日志里,但一定会写进定时任务或 shell 历史。
- 查 root 定时任务:
crontab -l -u root,特别留意含curl、wget、nc、bash -i的行 - 查系统级定时任务:
ls /etc/cron.d/ && cat /etc/cron.d/* 2>/dev/null,注意文件名是否伪装成logrotate、sysupdate - 查用户命令历史:
cat /root/.bash_history | grep -E "(curl|wget|nc|bash.*-i|python.*-c)",再结合stat /root/.bash_history看修改时间是否异常 - 如果
.bash_history被清空,别慌——history命令仍可能缓存当前会话中的命令,且攻击者未必记得清内存里的历史
真正难处理的不是爆破本身,而是爆破成功后那一连串“静默落地”动作:一个 UID=0 的隐藏账号、一行伪装成备份的 crontab、一段写死在 authorized_keys 里的公钥——它们不报错、不占资源、不触发告警,却让改一百遍密码都白搭。排查时别只盯着“有没有失败记录”,要主动去找“谁悄悄进来了、干了什么、还留了哪几道门”。











