前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kali Linux Web渗透测试手册(第二版) - 4.3- 使用Hydra对基本身份验证进行暴力破解攻击

Kali Linux Web渗透测试手册(第二版) - 4.3- 使用Hydra对基本身份验证进行暴力破解攻击

作者头像
用户1631416
发布2018-12-27 11:48:24
2.9K0
发布2018-12-27 11:48:24
举报
文章被收录于专栏:玄魂工作室

翻译来自掣雷小组

成员信息:

thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt,

这个公众号,一定要关注哦,慢慢会跟上面老哥们一起分享很多干货哦~~

标记红色的部分为今日更新内容。

第四章、测试身份验证和会话管理

4.0、介绍

4.1、用户名枚举

4.2、使用Burp Suite进行登陆页面的字典攻击

4.3、使用Hydra强制进行暴力攻击

4.4、使用Metasploit破解Tomcat的密码

4.5、手工挖掘cookie中的漏洞

4.6、攻击会话固定漏洞

4.7、使用Burp排序器评估会话标识符的质量

4.8、滥用不安全的直接对象引用

4.9、执行跨站点请求伪造攻击


4.3、使用Hydra对基本身份验证进行暴力破解攻击

THC Hydra(简称Hydra)是一个可以进行在线登录验证的工具;这意味着它可以通过暴力的方式来尝试登录密码。在Hydra支持的众多服务中,我们可以找到HTTP登录表单和HTTP基本身份验证。

在HTTP basic身份验证中,浏览器在身份验证头中使用base64编码发送用户名和数据包。例如,如果用户名是admin,密码是password,浏览器将对admin:password进行编码,得到字符串YWRtaW46UGFzc3dvcmQ=,请求头将有这么一行。

Authorization:Basic YWRtaW46UGFzc3dvcmQ=

TIP: 几乎每次我们看到一个看似随机的并且以一两个等号(=)结尾的字符串的时候,该字符都是base64编码的。我们可以使用Burp Suite的解码器或Kali linux中的base64命令轻松解码它,=符号可以进行url编码,即在某些请求和响应中被%3D替换

在前面的小节中,我们使用Burp Suite截断攻击者发起的一个表单请求;在这个小节中,我们将使用THC Hydra攻击HTTP基本身份验证。

环境准备

除了前面小节中使用的密码列表以外,为了进行字典攻击,还需要一个用户名列表。我们假设已经进行了信息收集获得了几个有效地用户名。创建一个文本文件user_list.txt,在里面输入以下内容:

实战演练

在Kali Linux VM存储用户名密码的字典目录中,我们执行以下操作:

1. 打开终端运行hydra,或者使用Kali Linux应用程序|05中的Applications菜单—密码攻击|在线攻击|hydra。

2. 不输入任何参数时将显示基本帮助信息:

在这里,我们可以看到一些有用的帮助信息。通过-L选项,我们可以使用用户名字典文件。-P允许我们使用密码字典。我们还需要在后面跟上://服务器,以及端口号和服务选项。

3. 在终端中:写入以下命令发动攻击: |hydra -Luser_list.txt -P top25_passwords.txt -u -e ns http-get://192.168.56.11/WebGoat

Hydra找到三个不同的用户名/密码组合,成功登陆到服务器。

原理剖析

与其他身份验证方法(例如基于表单的身份验证方法)不同,基本身份验证在发送到服务器的内容、如何发送以及期望从服务器得到的响应方面是标准的。这允许攻击者和渗透测试人员节省宝贵的分析时间,这些工作涉及的参数包含用户名和密码、如何处理,发送这些参数以及如何区分成功响应和不成功响应。这是基本身份验证不被认为是安全机制的许多原因之一。

在调用Hydra时,我们使用了一些参数:

  • -L userlist.txt 告诉Hydra从userlist.txt寻找username。
  • -P top25_password.txt告诉Hydra从top25_password.txt中获得预期密码。
  • -u—Hydra将首先迭代用户名,而不是密码。这意味着Hydra将首先使用单个密码尝试所有的用户名,然后继续使用下一个密码。这将有助于防止账户锁定。
  • -e ns—Hydra尝试将一个空密码(n)和用户名作为密码添加到密码列表
  • http-get表示Hydra将使用GET方式对HTTP基本身份验证发起请求。
  • 之后是://和目标服务器(192.168.56.11).在下一个/之后,我们放置服务器的应用名,在本例中是请求身份验证的URL。没有指定端口,Hydra将尝试默认端口TCP 80.

更多资料

不建议在生产服务器上使用大量密码执行暴力破解,因为我们可能会中断服务、阻塞正常用户或触发保护机制。

作为渗透测试人员。建议每个用户最多使用四次登录尝试以避免阻塞;例如,我们可以尝试添加-p 123456 -e ns,就像我们在这里所说的,来涵盖三种可能:没有密码,密码与用户名相同,密码是123456,这些是世界上最常见的的密码。

另请参阅

到目前为止,我们已经在web应用程序中看到了两种身份验证方法,即基于表单的身份验证和基本身份验证。这些并不是开发人员使用的唯一方法;鼓励读者进一步调查方法的优点、缺点和方法可能存在的安全问题,例如:

  • 摘要身份验证:这比基本身份验证安全的多。不是发送用户名和密码编码的头,客户端计算MD5哈希值提供给服务器;内涵一个nonce,和他的凭证一起,向服务器发送这个哈希,服务器已经知道这个nonce,用户名和密码,就可以重新计算MD5来比较两个值。
  • NTLM/Windows身份验证:遵循与摘要相同的原则,NTML身份验证使用Windows凭据和NTML散列算法来处理服务器提供的challenge。该方案需要多个请求-响应交换,服务器和任何介入代理必须支持持久连接。
  • Kerberos身份验证:这种身份验证方案使用Kerberos协议对服务器进行身份验证。与NTML一样,它不要求输入用户名和密码,但使用Windows凭证登录。
  • Bearer tokens:Bearer tokens是一个特殊的值,通常是一个随机生成的长字符串或者使用加密散列函数签名的base64编码的函数,该函数将该值授予发送请求给服务器的客户机。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玄魂工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档