欢迎来到 无奈人生 安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

如何利用暴力破解攻击打进“敌人”内部

来源: 作者: 时间:2019-02-24 21:00 点击: 我要投稿
广告位API接口通信错误,查看德得广告获取帮助


写在前面的话
在很多现实的攻击案例中,大多数攻击者都是通过暴力破解的方式来入侵目标系统的,此时攻击者主要利用的是弱密码以及密码管理方面的安全问题。Web应用和Web服务特别容易受到密码暴力破解攻击,因为它们相对来说比较容易实现远程访问,而且数量和种类都非常丰富。在这篇文章中,我们将站在攻击者的角度跟大家介绍几种不同类型的针对Web应用的暴力破解攻击。
注:我们将使用到网上现成的开源Web安全工具,例如AppBandit Attack Proxy和Fuzzer from the OnlineSuite来演示攻击路径。
基础认证
在互联网发展的早期,基础认证(例如摘要认证和NTLM等)是普遍采用的认证标准。毫无疑问,这种方法的安全性是不足以满足我们需求的,但是很多开发人员仍在使用这种认证方案来对路由器管理接口和Web服务等关键节点进行保护。之所以这种认证方法能够得到广泛使用,主要是因为它实现起来非常简单(基于特殊构造的Header,其中包含的用户名和密码均以base64格式编码)。
接下来,我们要开发一个针对基础认证的暴力破解攻击。打开AppBandit的Fuzzer或Fuzzer from the online suite,并配置一些相关参数。首先,我们需要设置授权Header,然后添加基础认证选项:

我们将从已知账号中选取用户名,然后从某些著名数据库中选择常用字典:

AppBandit和Fuzzer没有自带字典文件,但是它们都可以使用外部字典。我们可以直接把字典文件拖进工具窗口,然后你就可以使用各种类型的常用字典列表了:

确保你将并行请求的最大数量设置为60以上,并降低timeout到5秒左右,这样可以提升攻击的效率。接下来,我们只需要观察控制台中的响应码就可以了解密码的破解情况了。

基于PIN码的认证
很多应用程序,尤其是移动端App都会使用基于PIN码的认证,即使用4-6位数字码进行认证。基于电子邮件或SMS短信发送认证令牌来实现2FA的方法也属于这类攻击范畴。毫无疑问,PIN码安全性的熵其实非常低,无论你准备按数字顺序破解还是随机破解,暴力破解的实施难度都不大。
接下来,我们将对一个虚拟的JSON服务发起攻击。首先,我们要配置有效的服务请求。然后再请求body中,我们还需要对PIN码生成器进行正确编码。因此,我们需要JSON编码器来引用这些值。除此之外,我们还需要将PIN码长度填充到正确长度。

用于实现数据填充的pad对象包含一个简单的循环计数器(0-9999),因为这里有效的PIN码是4位数字,所以我们需要在数字前填充额外的‘0’来制作4位数字PIN码,我们还可以利用同样的技术来制作6位或8位数字PIN码。

大家可以根据自己的需要来配置请求数量并降低timeout。跟针对基础认证的暴力破解攻击不同,这种类型的攻击需要根据目标应用程序的特性来设计。
基于表单的认证
基于表单的认证机制是目前Web最常见的身份验证方案。实际上,几乎任何一个PHP应用都实现了这种认证,但大多数的安全性都不高。为了发动针对表单认证的暴力破解攻击,我们这里需要设置目标应用程序所需要的参数。我们可以使用AppBandit Proxy或类似HTTPView这样的工具来捕捉信息。
这里我们可以稍微转变一下思路,比如说,我们不需要用很多密码去测试一个账号,我们可以用一小部分的常用密码来测试大量的账号。接下来,我们需要设置一个用户列表生成器。首先,我们要定义一些变量,并提升攻击的可配置性。

我们现在使用了一些字典(大多数来自seclists),我们可以动态生成电子邮件地址。实际上,我们还可以同时对多个域名实施攻击。
现在,我们要添加一百个常用密码(使用另一个seclists字典),结果如下:

在真实的攻击场景中,你可能还需要观察控制台中的响应请求,因为在很多情况下我们可以通过分析有效cookie来了解攻击是否成功。
总结
目前还没有任何一个安全系统可以完全抵御这种类型的攻击,因为攻击者可以通过多种方式来实现密码爆破攻击。坦白的说,只要我们还在使用密码,我们就是不安全的。虽然双因素身份认证机制是目前比较安全的一种方案,但是它同上是作为一种可选项出现的,而且在某些情况下2FA同样能够被绕过。
 


写在前面的话
在很多现实的攻击案例中,大多数攻击者都是通过暴力破解的方式来入侵目标系统的,此时攻击者主要利用的是弱密码以及密码管理方面的安全问题。Web应用和Web服务特别容易受到密码暴力破解攻击,因为它们相对来说比较容易实现远程访问,而且数量和种类都非常丰富。在这篇文章中,我们将站在攻击者的角度跟大家介绍几种不同类型的针对Web应用的暴力破解攻击。
注:我们将使用到网上现成的开源Web安全工具,例如AppBandit Attack Proxy和Fuzzer from the OnlineSuite来演示攻击路径。
基础认证
在互联网发展的早期,基础认证(例如摘要认证和NTLM等)是普遍采用的认证标准。毫无疑问,这种方法的安全性是不足以满足我们需求的,但是很多开发人员仍在使用这种认证方案来对路由器管理接口和Web服务等关键节点进行保护。之所以这种认证方法能够得到广泛使用,主要是因为它实现起来非常简单(基于特殊构造的Header,其中包含的用户名和密码均以base64格式编码)。 copyright 无奈人生
接下来,我们要开发一个针对基础认证的暴力破解攻击。打开AppBandit的Fuzzer或Fuzzer from the online suite,并配置一些相关参数。首先,我们需要设置授权Header,然后添加基础认证选项:

我们将从已知账号中选取用户名,然后从某些著名数据库中选择常用字典:

AppBandit和Fuzzer没有自带字典文件,但是它们都可以使用外部字典。我们可以直接把字典文件拖进工具窗口,然后你就可以使用各种类型的常用字典列表了:

确保你将并行请求的最大数量设置为60以上,并降低timeout到5秒左右,这样可以提升攻击的效率。接下来,我们只需要观察控制台中的响应码就可以了解密码的破解情况了。 www.wnhack.com

基于PIN码的认证
很多应用程序,尤其是移动端App都会使用基于PIN码的认证,即使用4-6位数字码进行认证。基于电子邮件或SMS短信发送认证令牌来实现2FA的方法也属于这类攻击范畴。毫无疑问,PIN码安全性的熵其实非常低,无论你准备按数字顺序破解还是随机破解,暴力破解的实施难度都不大。
接下来,我们将对一个虚拟的JSON服务发起攻击。首先,我们要配置有效的服务请求。然后再请求body中,我们还需要对PIN码生成器进行正确编码。因此,我们需要JSON编码器来引用这些值。除此之外,我们还需要将PIN码长度填充到正确长度。

用于实现数据填充的pad对象包含一个简单的循环计数器(0-9999),因为这里有效的PIN码是4位数字,所以我们需要在数字前填充额外的‘0’来制作4位数字PIN码,我们还可以利用同样的技术来制作6位或8位数字PIN码。

内容来自无奈安全网


大家可以根据自己的需要来配置请求数量并降低timeout。跟针对基础认证的暴力破解攻击不同,这种类型的攻击需要根据目标应用程序的特性来设计。
基于表单的认证
基于表单的认证机制是目前Web最常见的身份验证方案。实际上,几乎任何一个PHP应用都实现了这种认证,但大多数的安全性都不高。为了发动针对表单认证的暴力破解攻击,我们这里需要设置目标应用程序所需要的参数。我们可以使用AppBandit Proxy或类似HTTPView这样的工具来捕捉信息。
这里我们可以稍微转变一下思路,比如说,我们不需要用很多密码去测试一个账号,我们可以用一小部分的常用密码来测试大量的账号。接下来,我们需要设置一个用户列表生成器。首先,我们要定义一些变量,并提升攻击的可配置性。

我们现在使用了一些字典(大多数来自seclists),我们可以动态生成电子邮件地址。实际上,我们还可以同时对多个域名实施攻击。 copyright 无奈人生
现在,我们要添加一百个常用密码(使用另一个seclists字典),结果如下:

在真实的攻击场景中,你可能还需要观察控制台中的响应请求,因为在很多情况下我们可以通过分析有效cookie来了解攻击是否成功。
总结
目前还没有任何一个安全系统可以完全抵御这种类型的攻击,因为攻击者可以通过多种方式来实现密码爆破攻击。坦白的说,只要我们还在使用密码,我们就是不安全的。虽然双因素身份认证机制是目前比较安全的一种方案,但是它同上是作为一种可选项出现的,而且在某些情况下2FA同样能够被绕过。
  无奈人生安全网

。 (责任编辑:admin)
【声明】:无奈人生安全网(http://www.wnhack.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱472701013@qq.com,我们会在最短的时间内进行处理。