暴力破解wifi密码的程序是什么(手把手教你暴力破解)
暴力破解
一 、什么是暴力破解?
暴力破解是一种攻击手段 ,使用大量的认证信息在认证接口尝试登录 ,直到得到正确的结果 。
二 、暴力破解弱口令实验
实验环境:DVWA2.1标题基于表单的暴力破解
2.1.1 第一步:打开burpsuite拦截 随便输入用户名和密码 2.1.2 第二步:将拦截到的包右击发送到intruder模块(其中简单介绍一下intruder模块)
Target主要是设置暴力破解访问的host地址和对应的端口号 。
2.1.3 第三步:选择我们要破解的变量 这里假设用户和密码都不确定 Positions设置是选择我们要暴力破解的位置 。在默认情况下 ,burp会自动将所有的变量都勾选上 。选择clear$ ,此时所有默认的爆破点都已消失;选择我们需要暴破的变量 。 2.1.4 第四步:暴力破解时根据具体情况进行选择attract type上面有两个变量 ,选择cluster bomb 逐项的去匹配变量
2.1.5 Attack Type 攻击类型Sniper
只需要指定一个payload set ,无论position有几个变量 ,都是一个payload set ,但会针对每个变量逐项替换 。
Battering ram
无论Positions中有几个变数 ,都是一个Payload Set 。并且每个变量位置的值都会是一样的
Pitchfork
不能只输入一个字典,每个变量要有自己的字典文件 ,也就是说每个变量有一个属于自己的Payload set ,但是要注意的是每个Payload set里面的payload个数要一样;采用一对一的匹配关系
多出来的那些payload不会被送出去而已
Cluster bomb
每个变量都要输入字典,但是不会像Pitchfork是一对一的关系 ,而是每个都会去尝试到 ,逐项地去尝试一多对的方式 。
Payloads 用来配置一个或多个有效负荷的集合
Payloads set 指定需要配置的变量
Simple list是最基本的,用法很简单 ,可以直接输入按Add ,也可以上传文档 。虽然这边我们demo都是手动输入 ,不过实际上要执行暴力破解等动作 ,通常Payload一定会是很大量的 ,用手输入可能会累死 ,所以实际上都是用选择上传文件的方式。(这里基本只用simple list ,所以只介绍simple list) 2.1.6 第五步:设置两个payload前面我们添加了两个变量 ,所以需要设置两个payload
可以加载自己下载的字典 ,也可以手动输入;一般情况下选择load去加载字典进行暴破,这里在下方ADD处手动添加
Payload Processing
可以对发出去的Payload进行加工处理 ,例如可以加入前缀 、后缀字符 、只截取字符串的某一部分等;后缀常见的可能像是Email结尾的字符 ,比如@gmail.com之类的 。可以利用match替换,可以反转 ,可以编码 ,很多方法可以选择 。
2.1.7 第六步:开始暴破options 模块选择攻击的线程等(多线程有助于加快破解速度),由于我添加的猜测数据较少 ,可以直接攻击 ,点击 start attack ,得到最终的结果。我们可以根据 status 和 length 两个模块来判断是否成功 。此处发现请求length与别的不同 ,重点关注4644的response可以看到暴破成功
2.2 暴力破解之绕过 token
2.2.1 token的原理和作用token是用于验证身份的 ,在web系统中验证前端是否能够访问后端系统
是服务端生成的一串字符串 ,以作前端进行请求的一个令牌 ,当第一次登录后 ,服务器生成一个token并返回给前端 ,之后前端只需带上这个token前来请求数据即可,无需再次带上用户名和密码 。 2.2.2 第一步 打开burpsuite拦截 在DVWA登录页面随便输入用户名和密码 2.2.3 第二步:将拦截到的包右击发送到intruder模块 2.2.3 第三步 选中需要破解的变量(这里用户名已知正确 ,选择密码和token)
2.2.4 第四步 根据具体情况进行选择attract type将attract type改为pitchfork ,pitchfork简单理解就是你设置了几个变量,他就能用几个payload ,我们设置了2个变量 ,就有2个payload,并且一一对应。
2.2.5 第五步 设置跟随重定向在opotion模块中redirections的follow redirections改为“always ”
2.2.6 第六步 在grep-extract中点击add ,选择refetch response记住token的值 ,后面需要用 。
2.2.7第七步 修改线程payload1为单线程即可(因为 token 是一对一的关系 ,当第二个 token 产生 ,第一个 token 就会消失 ,所以需要将线程调整至 1 。)
如不修改线程 ,则会报错 ,显示多线程冲突
2.2.8 第八步 加载字典payload type选择recursive grep(递归查找)
将刚才复制的token粘贴到payload
2.2.9 第九步 开始爆破根据 status 和 length 两个模块来判断是否成功 。此处发现请求length与别的不同 ,重点关注4723的response可以看到暴破成功 。
2.2.10 token防暴破的弊端token值输出在前端源码中 ,容易被获取,因此也就失去了防暴力破解的意义 。
三 、如何防御暴力破解攻击?
人为层面:增强密码安全性
提升密码长度和复杂度
密码应由数字 、大小写字母和特殊符号混合组成 ,且密码越长 ,破解密码的时间就会成指数增加,一旦密码超过了某个长度 ,基本上就不能用暴力破解了 。例如 ,使用破解的服务器集群,每秒可以尝试3500亿次 ,这个速度破解6位密码只需要4.08秒 ,7位密码只需6.47分钟 ,8位密码需要10.24小时 ,9位密码需要40.53天 ,10位密码就需要10.55年了 。
在不同的地方使用不同的密码
重复使用电子邮件 、银行和社交媒体帐户的密码更可能导致身份被盗用 。可以将网站的缩写作为密码的后缀 ,例如登陆QQ的密码是Hl9tysY.qq ,登陆微博的密码是Hl9tysY.wb ,这样每个网站都有独立的密码且不容易忘记 。
避免使用字典单词 、数字组合 、相邻键盘组合、重复的字符串。例如 password 、12345678 、asdfg 、aaaa 或 123abc 。
避免使用名字或者非机密的个人信息(电话号码 、出生日期等)作为密码 。
定期修改密码系统层面:做好密码防暴力破解设计
系统设计时考虑以下几个方面:
锁定策略:输错密码几次就锁定一段时间。
验证码技术:要求用户完成简单的任务才能登录到系统 ,用户可以轻松完成,但暴力工具无法完成 。例如图形验证码 、短信等 。
密码复杂度限制:强制用户设置长而复杂的密码 ,并强制定期更改密码。
双因子认证:结合两种不同的认证因素对用户进行认证的方法 。例如密码、身份证 、安全令牌 、指纹 、面部识别 、地理信息等 。创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!