Linux下的暴力密码在线破解工具Hydra(海德拉)初级使用教程,尽管您可以为此目的使用篡改数据,但是想向您介绍Kali内置的另一个工具Burp Suite。
步骤1打开THC-Hydra
因此,让我们开始吧。启动Kali并从Applications -> Kali Linux -> Password Attacks -> Online Attacks -> hydra.
步骤2获取Web表单参数
为了能够破解Web表单的用户名和密码,我们需要确定Web表单登录页面的参数以及表单如何响应错误/失败的登录。我们必须确定的关键参数是:
- 网站的IP地址
- 网址
- 表格类型
- 包含用户名的字段
- 包含密码的字段
- 失败讯息
我们可以使用诸如篡改数据或Burp Suite之类的代理来识别每个。
步骤3:使用Burp Suite
尽管我们可以使用任何代理来完成这项工作,包括篡改数据,但在本文中,我们将使用Burp Suite。您可以通过转到Applications -> Kali Linux -> Web Applications -> Web Application Proxies -> burpsuite。完成后,您应该会看到如下所示的打开屏幕。
接下来,我们将尝试在该死的易受攻击的Web应用程序(DVWA)上破解密码。您可以从Metasploitable操作系统(在Rapid7上提供)运行它,然后连接到其登录页面,如我在此处所示。
我们需要在Burp Suite上启用代理和拦截功能,如下所示。确保单击顶部的“ proxy”选项卡,然后单击第二行选项卡上的“ intercapt”。确保“拦截已打开”。
最后,我们需要配置IceWeasel Web浏览器以使用代理。我们可以转到Edit -> Preferences -> Advanced -> Network -> Settings打开连接设置,如下所示。在那里,通过在HTTP Proxy字段中键入127.0.0.1 ,在Port字段中键入8080,将IceWeasel配置为使用127.0.0.1端口8080作为代理,并在底部的No Proxy for字段中删除所有信息。另外,选择“将此代理服务器用于所有协议”按钮。
步骤4获取错误的登录响应
现在,让我们尝试使用我的用户名OTW和密码OTW登录。当我这样做时,BurpSuite会截获该请求,并显示THC-Hydra Web表单破解所需的关键字段。
收集了此信息之后,我通过单击“转发”按钮到最左侧来转发来自Burp Suite的请求。DVWA返回一条消息,指出“登录失败”。现在,我拥有配置THC-Hydra破解此Web应用程序所需的所有信息!
获取失败消息是使THC-Hydra在Web表单上运行的关键。在这种情况下,它是基于文本的消息,但并非总是如此。有时它可能是一个cookie,但是关键部分是找出应用程序如何传达失败的登录信息。这样,我们可以告诉THC-Hydra继续尝试使用不同的密码。只有当该消息没有出现时,我们才成功。
步骤5将参数放入您的THC Hydra命令
现在,有了参数,我们可以将它们放入THC-Hydra命令中。语法如下所示:
kali > hydra -L <username list> -p <password list> <IP Address> <form parameters><failed login message>
因此,根据我们从Burp Suite收集的信息,我们的命令应如下所示:
kali >hydra -L <wordlist> -P <password list>
192.168.1.101 http-post-form “/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed”
需要注意的几件事。首先,如果要使用用户名列表,则使用大写字母“ L”;如果要破解那里提供的一个用户名,则使用小写字母“ l”。在这种情况下,我将使用小写的“ l”,因为我只会尝试破解“ admin”密码。
登录表单的地址(/dvwa/login.php)之后,下一个字段是采用用户名的字段的名称。在我们的例子中,它是“username”,但在某些形式上可能有所不同,例如“login”。
现在,让我们组合一个将破解此Web表单登录的命令。
步骤6选择一个单词表
现在,我们需要选择一个单词表。与任何字典攻击一样,单词表是关键。您可以使用由Crunch of CeWL制作的自定义单词,但Kali内置了许多单词列表。要查看所有单词列表,只需键入:
kali > locate wordlist
此外,还有许多在线网站,这些网站的单词表最大可以达到100 GB!明智地选择,我的黑客会创新。在这种情况下,我将在以下位置使用少于1000个单词的内置单词列表:
/usr/share/dirb/wordlists/short.txt
步骤7构建命令
现在,让我们使用所有这些元素构建命令,如下所示。
kali > hydra -l admin -P /usr/share/dirb/wordlists/small.txt 192.168.1.101 http-post-form “/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed” -V
- -l表示一个用户名(使用-L表示用户名列表)
- -P表示使用以下密码列表
- http-post-form指示表单的类型
- / dvwa / login-php是登录页面URL
- username是在其中输入用户名的表单字段
- ^ USER ^告诉Hydra使用用户名或字段中的列表
- password是在其中输入密码的表单字段(可以是passwd,pass等)。
- ^ PASS ^告诉Hydra使用提供的密码列表
- Login 指示Hydra登录失败消息
- Login failed是表单返回的登录失败消息
- -V用于显示每次尝试的详细输出
步骤8开始运行
现在,开始运行!由于我们使用了-V,因此THC-Hydra将向我们展示所有尝试。
几分钟后,Hydra会返回我们的Web应用程序的密码。成功!
最后的想法
尽管THC-Hydra是用于在线密码破解的有效且出色的工具,但在Web表单中使用它时,仍需要一些实践。在Web表单中成功使用它的关键是确定表单对登录失败与成功登录的不同响应方式。在上面的示例中,我们确定了失败的登录消息,但是我们可以确定成功的消息并使用了它。要使用成功消息,我们将失败登录消息替换为“ S = successful message”,例如:
kali > hydra -l admin -P /usr/share/dirb/wordlists/small.txt 192.168.1.101 http-post-form “/dvwa/login.php:username=^USER^&password=^PASS^&S=success message” -V
另外,某些Web服务器会注意到许多快速失败的登录尝试并锁定了您。在这种情况下,您将需要在THC-Hydra中使用等待功能。这将在两次尝试之间添加一个等待时间,以免触发锁定。您可以通过-w开关使用此功能,因此我们通过编写以下命令来修改命令以在两次尝试之间等待10秒:
kali > hydra -l admin -P /usr/share/dirb/wordlists/small.txt 192.168.1.101 http-post-form “/dvwa/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed” -w 10 -V