使用Hydra进行密码喷洒与暴力破解实战

本文详细介绍了如何使用Hydra工具进行密码喷洒和暴力破解攻击,包括针对WordPress登录和SSH服务的实战步骤,并分享了密码选择的最佳实践,强调了多因素认证的重要性。

使用Hydra进行密码喷洒与暴力破解

什么是Hydra?

Hydra是一款可用于密码喷洒的工具。首先定义“密码喷洒”:攻击者定义一个密码(如“Winter2024”),并针对获取的用户名列表进行尝试。如果某个账户使用了该密码,攻击者可能访问该资源。

密码喷洒和暴力破解常用于攻击者试图访问互联网或内部网络暴露的资源。有效的密码喷洒使用常见密码或包含与目标组织或资源相关的特征密码。

本文探讨使用Hydra执行暴力破解和密码喷洒的适用场景。请确保在针对非自有目标执行密码攻击前获得适当权限。

执行暴力破解攻击

本步骤针对Try Hack Me上的易受攻击Web应用Mr. Robot CTF进行密码喷洒。该应用与同名电视剧相关主题。虽非完整CTF攻略,但概念足以演示实际暴力破解攻击。

测试人员需执行基于密码的攻击以获取访问权限。

以下截图显示到达WordPress登录门户。作为网站,可使用Hydra通过HTTP POST请求进行密码喷洒。

WordPress登录门户

要捕获请求,可打开浏览器开发者控制台,在登录表单中输入简单用户名和密码(如admin/admin)。提交后,提示用户名无效。开发者控制台可查看POST请求及有效载荷。敏锐观察者可发现用户名详细,可能允许用户名枚举。

无效用户名错误

鉴于Mr. Robot主题CTF,可尝试剧中角色名进行测试:

  • angela
  • darlene
  • elliot
  • irving
  • joanna
  • robot
  • trenton
  • tyrell
  • whiterose

提交凭证后,开发者控制台包含以下有效载荷,显示输入的log和pwd参数: log=admin&pwd=admin&wp-submit=Log+In&redirect_to=http%3A%2F%2F10.10.192.106%2Fwp-admin%2F&testcookie=1

开发者控制台包含请求有效载荷

将此有效载荷插入命令,指示Hydra执行用户名枚举。以下命令使用Hydra的-L标志指定用户列表,-p使用选定密码,http-post-form开关指示使用捕获的HTTP POST请求。http-post-form开关值包含:

  • 喷洒目标页面,完成请求所必需。
  • 请求本身,包含开发者控制台的有效载荷。
  • 呈现的错误消息,指示Hydra查找不包含“Invalid Username”错误的结果。

hydra -L users.txt -p admin 10.10.192.106 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2F10.10.192.106%2Fwp-admin%2F&testcookie=1:Invalid Username"

返回反馈显示elliot返回不匹配“Invalid Username”的错误。但Hydra声称密码匹配,这不正确。可能收到不同错误。可手动浏览器验证。

Hydra枚举elliot用户名为有效

浏览器输入elliot显示另一详细错误,此次涉及密码有效性。

详细密码错误

已知elliot为有效用户,可对账户执行暴力破解。修改Hydra命令开关:-l指定用户,-P指定密码文件。错误消息改为查找不包含上述错误的响应。真正密码匹配不会返回错误,此次发现匹配时不会误报。

hydra -l elliot -P passwords.txt 10.10.192.106 http-post-form "/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log+In&redirect_to=http%3A%2F%2F10.10.192.106%2Fwp-admin%2F&testcookie=1:The password you entered for the username"

运行命令,用户名elliot针对多种密码反复测试。识别到ER28-0652的命中!

Hydra暴力破解elliot密码

返回登录页面输入密码,进入Web服务器管理控制台。可检查WordPress版本,寻找获取系统shell的漏洞。此超出本文范围。

访问 granted!

执行密码喷洒

现有elliot的有效密码。虽非TryHackMe上Mr. Robot CTF挑战的正式部分,但BHIS创建了类似主题的辅助机器。

渗透测试最佳实践:获取凭证或密码哈希时,尝试在其他地方使用该凭证。用户可能使用默认密码或在多个资源重用相同密码。简言之,始终尝试到处使用凭证。

对主机192.168.80.134执行Nmap扫描,发现SSH端口开放。 nmap -Pn -T4 -sV 192.168.80.134

Nmap发现开放SSH端口

执行另一Nmap扫描,以下命令显示SSH服务器支持基于密码的认证,允许使用Hydra进行密码喷洒和暴力破解攻击。 nmap -Pn -T4 -sV --script=ssh-auth-methods.nse 192.168.80.134

SSH服务器支持基于密码的认证

执行密码喷洒与暴力破解非常相似(但完全相反)。不是针对一个用户名测试多个密码,而是针对多个用户名测试一个密码。

使用以下Hydra命令,以密码ER28-0652对创建的用户列表进行密码喷洒。 hydra -L users.txt -p ER28-0652 -V ssh://192.168.80.134

此次收到elliot的另一命中,表明Elliot在账户间重用密码。

Hydra执行成功密码喷洒

可使用更简单密码(如“robot”)执行另一密码喷洒。此次观察到多个账户被访问,表明“robot”是新用户的默认密码。

多个账户使用相同密码

找到这些凭证后,可选择账户登录。 ssh [email protected]

通过SSH获得访问

实际渗透测试中,此时是执行计算机子网额外枚举并寻找权限提升和持久向量的绝佳时机。

喷洒最佳实践

演示完毕,简要讨论如何找到良好喷洒密码。密码喷洒时,最好使用简单且可能被无戒备受害者合理选择的密码。包括包含以下内容的密码:

  • 简单术语,如“password”“welcome”“letmein”,可能包含Leet语替换(password vs passw0rd)。
  • 季节名称 – Winter、Spring、Summer、Fall或Autumn。
  • 当前或前一年份 – 本文时为2023或2024。
  • 组织总部所在州名称。
  • 组织名称。
  • 政治人物,如特朗普总统和拜登总统。
  • 使用或省略末尾特殊字符。使用感叹号总是安全选择。

结合这些要点,为基于伊利诺伊州、以孔雀为吉祥物的假想学校创建密码喷洒列表:

  • PretendSchool2023!
  • Winter2024!
  • Password123!
  • Illinois2024!
  • Peacock2024!
  • Welcome2023
  • Trump2024!
  • Biden2024!
  • Letmein123
  • passw0rd

始终尝试使用与喷洒组织或服务相关的密码。这些比随机字符串更可能提供结果。最后,如需可靠单词表集合,强烈推荐SecList集合(https://github.com/danielmiessler/SecLists)。

结束语

基于密码的攻击是常见攻击向量,证明应使用多因素认证保护用户资源。Hydra等工具专为攻击密码设计,可用于在正确猜测密码时访问系统。实践良好密码安全和使用多因素认证至关重要,将极大减少攻击者成功入侵账户的可能性。

祝黑客愉快,保持安全合法。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计