使用Hydra进行密码喷洒和暴力破解攻击

本文详细介绍了如何使用Hydra工具进行密码喷洒和暴力破解攻击,包括针对WordPress登录和SSH服务的实际操作步骤,以及选择有效密码的最佳实践。

使用Hydra进行密码喷洒和暴力破解攻击

什么是Hydra?

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

密码喷洒和暴力破解攻击常用于攻击暴露在互联网或内部网络上的资源。有效的密码喷洒应使用常见密码或与目标组织相关的特征密码。

本文探讨使用Hydra进行暴力破解和密码喷洒的适用场景。请确保在未拥有目标权限时获得适当授权。

执行暴力破解攻击

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

测试者需通过基于密码的攻击获得访问权限。以下截图显示WordPress登录门户,可使用Hydra通过HTTP POST请求进行密码喷洒。

捕获请求:打开浏览器开发者控制台,在登录表单中输入简单凭据(如admin/admin)。提交后,显示用户名无效,控制台可查看POST请求及负载。用户名详细错误提示可能允许用户名枚举。

基于Mr. Robot主题,尝试剧中角色名:

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

提交凭据后,控制台包含以下负载,显示log和pwd参数:

1
log=admin&pwd=admin&wp-submit=Log+In&redirect_to=http%3A%2F%2F10.10.192.106%2Fwp-admin%2F&testcookie=1

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

  • 喷洒目标页面
  • 请求本身(来自控制台的负载)
  • 错误消息(指示Hydra查找不包含“Invalid Username”错误的结果)
1
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"

Hydra反馈显示elliot返回不匹配“Invalid Username”的错误,但错误声称密码匹配(实际为不同错误)。手动验证:在浏览器中输入elliot,显示详细密码错误。

确认elliot有效后,执行暴力破解攻击。修改Hydra命令:使用-l指定用户,-P指定密码文件,更改错误消息以查找不包含上述错误的响应(真正密码匹配不会返回错误)。

1
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。

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

执行密码喷洒

现拥有elliot的有效密码。BHIS创建了类似主题的辅助机器(非TryHackMe官方部分)。渗透测试最佳实践:获得凭据或密码哈希后,尝试在其他地方使用(可能是默认密码或用户重用密码)。简言之,始终尝试凭据。

对192.168.80.134主机执行Nmap扫描,发现开放SSH端口。

1
nmap -Pn -T4 -sV 192.168.80.134

使用以下命令执行另一Nmap扫描,显示SSH服务器支持基于密码的身份验证,允许使用Hydra进行密码喷洒和暴力破解。

1
nmap -Pn -T4 -sV --script=ssh-auth-methods.nse 192.168.80.134

密码喷洒与暴力破解类似(但完全相反):测试一个密码针对多个用户名。使用以下Hydra命令以密码ER28-0652喷洒用户列表:

1
hydra -L users.txt -p ER28-0652 -V ssh://192.168.80.134

再次获得elliot的匹配,表明Elliot在账户间重用密码。

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

找到凭据后,登录所选账户。

1
ssh elliot@192.168.80.134

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

喷洒最佳实践

演示完成后,简要讨论如何找到良好喷洒密码。密码喷洒最好使用简单且受害者可能合理选择的密码,包括:

  • 简单术语(如“password”“welcome”“letmein”,可能包含Leet语替换)
  • 季节名称(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 设计