1、使用BurpSuite暴力破解登录密码
- 1.环境准备
- 1.1 PC端设置BurpSuite设置代理
- 1.2.靶机环境
- 2.密码破解漏洞
- 2.1.漏洞简介
- 2.2.常见应对策略
- 2.2.1.强密码策略
- 2.2.2.验证码策略
- 2.2.3.锁定策略
- 2.2.4.加密策略
- 2.2.5.TOKEN验证码
- 3.密码破解攻击
- 3.1.环境配置
- 3.2.抓包
- 3.3.配置攻击
- 3.3.1.攻击类型
- 3.3.2.目标字段
- 3.3.3.有效载荷
- 3.3.4.选项配置
- 3.4.执行攻击
1.环境准备
1.1 PC端设置BurpSuite设置代理
打开BurpSuite>proxy>options,开启本地代理
导出CA证书,打开BurpSuite>proxy>options,点击Import/export CA certificate,导出证书到本地。
1.2.靶机环境
DVWA是著名的OWASP开放出来的一个在线web安全教、学平台。提供了:暴力破解、命令执行、CSRF、文件包含、SQL注入、XSS学习环境,并且分:low、medium、high三种不同的安全等级,等级越高难度也越大。同时每一个漏洞可以直接在页面选择查看源码进行源码对比学习。
使用dvwa靶机环境,可以自行搭建也可以使用在线懒人版。
下载地址:https://github.com/ethicalhack3r/DVWA/archive/master.zip
懒人版:https://www.vsplate.com/labs.php
使用phpstudy或xampp自行搭建即可,详细搭建过程在此不详述!
2.密码破解漏洞
2.1.漏洞简介
密码破解是从计算机系统中存储或传输的数据中恢复密码的过程。
(1)一种常见的方法是反复尝试猜测密码。用户通常选择弱密码。不安全选择的例子包括字典中的单个单词、姓氏、任何太短的密码(通常被认为小于6或7个字符),或可预测的模式(例如,交替元音和辅音,称为leettalk,因此“密码”变成“p@55w0rd”)。
(2)创建一个面向目标的目标词列表,通常会给出最高的成功率。有一些公共工具将根据公司网站、个人社交网络和其他常见信息(如生日或毕业年份)创建词典。
(3)最后的办法是尝试每一个可能的密码,被称为暴力攻击(Brute force)。理论上,如果尝试次数没有限制,暴力攻击总是成功的,因为必须公开可接受密码的规则;但随着密码长度的增加,可能的密码数量也会增加,从而延长攻击时间。
2.2.常见应对策略
2.2.1.强密码策略
强密码策略是指要求用户设置复杂度更高的密码,如长度大于xx,必须使用大写字母、小写字母、数字、特殊字符的组合等。理论上来说,此方法可以大大延长攻击的时间,从而使得暴力攻击成功的可能性降低,但仍旧不能从根本上避免暴力攻击。
2.2.2.验证码策略
图片验证码是最常见的一种输入确认方法,通过频繁的人工识别可以很大程度上降低攻击速度。但随着AI技术的快速发展,可以获取图片通过调用AI服务的OCR接口进行验证码识别,虽然识别率偏低,但仅仅是减缓了攻击的速度,只要时间足够长就总会攻击成功的!
滑动验证码,当密码错误时需要滑动解锁才能继续输入密码。本方法功效同图片验证码,也是仅仅能减缓攻击速度,并不能根本上避免攻击。
短信验证码,目前来说相对最为有效的避免攻击的方式。但在手机丢失等情况下,就十分危险。
2.2.3.锁定策略
锁定是指在密码输入错误达到一定次数时锁定账户,无论输入账户密码是否一致都返回错误的结果。这种方法可以很好的解决暴力破解的攻击问题,但是会导致用户账号被攻击后无法正常访问的问题(拒绝服务),如果攻击者大范围攻击用户账号,产生的问题等同于服务系统瘫痪。服务方大多会采取将攻击者列入黑名单(IP地址,用户代理等)来进一步避免为了杜绝这种情况。
2.2.4.加密策略
加密策略主要用于确保密码传输过程的安全性,通过加密可以避免攻击者拦截报文使用报文发送工具进行密码破解,局限了密码破解手段,但仍旧不能避免用户通过浏览器自动化操作对密码进行破解攻击。加密策略可以分为静态加密、动态加密两种类型。
静态加密,使用静态加密密钥对密码进行加密。容易被破解,破解后继续使用报文发送工具进行暴力破解即可。
动态加密,使用动态加密密钥(随时间不断变化)对密码进行加密。不仅要破解本次加密密钥,还要找出多个加密密钥之间的关联关系并进一步推算出密钥变化规则。难以破解。
2.2.5.TOKEN验证码
Token验证码是一种常用于避免CSRF攻击的手段,通过动态生成的随即验证码校验,来判断请求的合法性。通过Token验证码可以加大破解攻击的难度,需要先行破解Token生成规则才能使用报文发送工具快速发送报文进行快速攻击。
3.密码破解攻击
在此仅讨论不加任何应对策略的场景下,使用的破解方法。
3.1.环境配置
访问dvwa靶机环境,重置数据库
点击login跳转到登陆页面
3.2.抓包
打开BurpSuite,配置代理,设置为不拦截,并在PC的internet选项中配置使用的代理。
使用chrome打开DVWA登陆页,使用初始密码登录。点击DVWA Security,设置安全等级为low并提交。
点击Brute Force,打开暴力破解漏洞页面。
输入账号和错误的密码,点击Login按钮,
在抓取到的报文记录中找到登录报文,右键发送到Intruder。
3.3.配置攻击
打开Intruder,找到刚刚添加(高亮)的登录报文。
点击位置,查看报文内容,
3.3.1.攻击类型
攻击类型决定有效载荷分配到有效载荷位置的方式。
Burp入侵者支持四种攻击类型:狙击手,攻城锤,音叉,集束炸弹。
狙击手-使用一组有效载荷。它依次瞄准每个有效载荷位置,并依次将每个有效载荷放置到该位置。此攻击类型可用于针对常见漏洞单独模糊多个请求参数。攻击中生成的请求总数是位置数与有效载荷集中有效载荷数的乘积。
攻城锤-使用一组有效载荷。它遍历有效载荷,并一次将相同的有效载荷放入所有定义的有效载荷位置。当攻击要求在请求的多个位置插入相同的输入(例如Cookie中的用户名和body参数)时,此攻击类型非常有用。攻击中生成的请求总数是有效负载集中的有效负载数。
音叉-它使用多个有效载荷集。每个定义的位置都有不同的有效载荷设置(最多20个)。攻击同时迭代所有有效载荷集,并在每个定义的位置放置一个有效载荷。当攻击需要在请求的多个位置插入不同但相关的输入时,此攻击类型非常有用(例如,一个参数中的用户名,另一个参数中对应于该用户名的已知ID号)。攻击中生成的请求总数是最小有效负载集中的有效负载数。
集束炸弹-使用多个有效载荷集。每个定义的位置都有不同的有效载荷设置(最多20个)。该攻击依次迭代每个有效载荷集,以便测试有效载荷组合的所有排列。攻击中生成的请求总数是所有定义的有效负载集中有效负载数量的乘积-这可能非常大。
在此我们仅仅对密码字段进行破解攻击,攻击类型使用狙击手sniper即可。
3.3.2.目标字段
报文中默认选中一些字段作为目标字段,我们可以点击$清除按钮,清除选中。再选中我们需要的字段,并重新在需要字段(密码)添加$。
在此我们选中密码的值字段并点击添加$。
3.3.3.有效载荷
点击有效载荷,为目标字段设置有效输入。
(1)有效的载荷类型:对应于BurpSuite的一些载荷输入方法。在此我们共分别介绍两种类型:简单清单,蛮力攻击。
①简单清单:使用直接导入的字符串列表作为有效载荷。
②蛮力攻击:使用给定的字符进行全排列匹配得到有效载荷。
我们如果选择蛮力攻击,需要发起的请求数量=(字符集长度)^长度。
如果仅仅作为练习,可以将字符集内容设置为我们密码的实际字符集与实际长度。如下图:
(2)有效载荷处理:配置使用有效载荷对目标字段进行处理方式。
我们直接使用载荷替换目标字段,此项不选。
(3)有效的载荷编码:默认选中,在此不修改。
3.3.4.选项配置
点击选项,配置请求标头、引擎、攻击结果、匹配展示等内容。
(1)请求标头:
这些设置控制入侵者在攻击期间是否更新配置的请求头。请注意,您可以通过payload positions选项卡中的请求模板完全控制请求头。
Update Content Length header-此选项使入侵者在每个请求中添加或更新Content Length头,并为该特定请求的HTTP主体的长度提供正确的值。
Set Connection:close-此选项使入侵者添加或更新值为“close”的连接头。在某些情况下(当服务器本身没有返回有效的内容长度或传输编码标头时),此选项可能会使攻击更快地执行。
(2)请求引擎:
通过配置线程、错误重试次数、发送间隔等来增强容错性和配置请求速度。
(3)攻击结果:
设置需要在攻击结果列表中展示的内容。
(4)Grep-Match
为每条攻击结果配置一个结果标志,以便快速判断攻击是否成功。
(5)Grep-Extract
从响应报文中提取有用的消息并展示在结果列表中。
(6)Grep-Payloads
在请求结果列表中设置标记来显示有效载荷。
(7)重定向
指定重定向响应报文的处理方式。
3.4.执行攻击
点击进入目标/位置/有效载荷,点击开始攻击按钮,
自动弹出攻击结果窗口:
对incorrect进行排序,选择没有error的请求结果,查看响应结果。
根据响应可知,password就是破解得到的密码!