密码的暴力猜解与防御

一,密码安全

密码安全是指保护用户账户和个人信息不受未经授权的访问和使用的一种安全措施。为了确保密码的安全性,用户应该采取以下措施:

  1. 使用强密码:密码应该包含大写字母、小写字母、数字和特殊字符,并且长度应该足够长。
  2. 不要重复使用密码:每个账户都应该有独特的密码,避免使用相同的密码在多个账户上。
  3. 定期更改密码:定期更改密码可以降低密码被盗用的风险。
  4. 不要共享密码:避免将密码告诉他人,即使是信任的人。
  5. 使用双重认证:启用双重认证可以在输入密码后,再次进行身份验证,提高账户的安全性。
  6. 谨慎处理密码重置链接:避免点击来自未知来源的密码重置链接,以免陷入钓鱼攻击。
  7. 使用密码管理工具:使用密码管理工具可以帮助用户生成和管理强密码,避免遗忘或泄露密码。

密码学在网络空间安全中扮演着至关重要的角色。密码学是研究加密、解密和信息安全的学科,它通过使用密码技术来保护数据的机密性、完整性和可用性。在网络空间安全中,密码学的应用包括以下几个方面:

1. 加密通信:密码学可以用于保护网络通信的机密性,确保数据在传输过程中不被未经授权的人访问或窃取。通过使用加密算法,数据可以在发送和接收过程中被加密和解密,从而保护通信内容的安全。

2. 身份验证:密码学可以用于实现用户身份的验证,确保只有经过授权的用户才能访问特定的系统或资源。通过密码学技术,如哈希函数和数字签名,可以验证用户的身份和确保数据的完整性。

3. 数字签名:密码学可以用于生成和验证数字签名,以确保数据的真实性和完整性。数字签名可以用于验证数据的来源和完整性,防止数据被篡改或伪造。

4. 密码管理:密码学技术也用于密码管理,包括密码存储、密码生成和密码策略的制定,以确保用户密码的安全性。

总之,密码学在网络空间安全中扮演着至关重要的角色,网络空间安全必须在密码学的体系上面建立,通过加密、身份验证、数字签名和密码管理等技术,保护网络通信和数据的安全性,防范各种网络攻击和威胁。

二,不安全的密码类型

使用不安全的密码很容易被破解或者被盗用;

该网站收录了最常使用的密码

https://nordpass.com/most-common-passwords-list/

三,字典

密码字典是一种包含大量密码的文件,通常用于进行密码破解或暴力破解攻击。密码字典可以包含常见密码、常见单词、数字组合、键盘图案等多种形式的密码,攻击者可以利用这些密码字典来尝试破解用户账户的密码。

密码字典可以通过不同的方式生成,其中包括:

1. 常见密码:包括用户常用的密码,如“123456”、“password”、“qwerty”等。

2. 常见单词:包括常见的英文单词和短语,攻击者可以利用这些单词来进行字典攻击。

3. 数字组合:包括各种数字组合,如生日、电话号码、车牌号等。

4. 键盘图案:包括键盘上的简单图案,如“asdfgh”、“12345”等。

密码字典可以被用于暴力破解攻击,攻击者会尝试使用密码字典中的密码进行登录或破解加密数据。为了防范密码字典攻击,用户应该选择强密码,并避免使用常见的密码或单词作为密码。此外,系统管理员也应该采取措施来限制登录尝试次数、使用多因素认证等方式来增强账户的安全性。

在密码的暴力破解中,主要依赖于字典的强大程度;

四,用 python 实现密码的暴力猜解

实现的基本思路(我们预先找到一个用户名admin):

1,首先要读取字典中的值

2,将读取到的值拼接到http请求的后面

3,对http响应的结果进行分析,观察是否存在报错的情况

4,若有,则进行下一次循环

5,若无,则说明爆破成功

按照以上思路,编写python代码(这里我们使用DVWA的靶场)

import requests

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=3l7oqnsdgcb3und28vdoh5euu8"})
    if 'Username and/or password incorrect.' in resp.text:
        print('破解失败:'+pwd, end='')
    else:
        print('破解成功:'+pwd, end='') #输出破解成功后的密码
        break;
pwds.close()

这里需要对PHPSESSID的值进行替换

然后运行代码,可以得到爆破成功的密码为 password ;

五,用 burp 实现密码的暴力猜解

首先配置浏览器的代理:

这里以火狐浏览器为例安装插件

然后配置浏览器的代理,打开代理;

在登录之前打开burp进行抓包

然后,我们就抓到了请求包;将这个请求包发送到intruder模块

将password的值添加一个Add;

配置字典;

然后点击 Start attack,开始爆破

点击Length对响应的长度进行排序,分析响应内容

通过 Welcome ...... 的验证,说明password为admin的密码

六,其他暴力猜解工具

1,wfuzz(kali内置)

wfuzz是Kali Linux内置的一个强大的Web应用程序安全测试工具。

wfuzz是一个基于Python编写的工具,用于对Web应用程序进行暴力破解和Fuzz测试。它可以帮助渗透测试人员发现Web应用程序中的潜在安全漏洞,如目录遍历、文件包含、SQL注入等。

wfuzz的主要特点包括:

  1. 多种攻击模式:wfuzz支持多种攻击模式,包括暴力破解、字典攻击、参数Fuzz等,能够针对不同的漏洞类型进行测试。

  2. 多种协议支持:wfuzz支持HTTP、HTTPS、FTP等多种协议,可以对不同类型的Web应用程序进行测试。

  3. 强大的定制能力:wfuzz具有强大的定制能力,用户可以通过自定义Payload、Headers、Cookies等参数来进行定制化的攻击测试。

  4. 自动化测试:wfuzz支持批量测试和自动化测试,可以通过脚本或命令行进行批量测试,提高测试效率。

这里使用pikachu的在线靶场(基于表单的暴力破解);

首先查看网站源码;

该网站使用POST传值;

并且表单数据有三个,分别是username,password,submit;

kali-Linux命令

 wfuzz -z file,user.txt -z file,pass.txt -d "username=FUZZ&password=FUZ2Z&submit=login" http://192.168.1.21/pikachu/vul/burteforce/bf_form.php

2,Hydra("九头蛇")

        Hydra是Kali Linux中的一个密码破解工具,它可以用于暴力破解各种网络服务的登录凭据,比如FTP、SMTP、HTTP等。Hydra工具提供了并行化和模块化的方式来执行暴力破解攻击,因此在渗透测试和安全审计中被广泛使用。

使用centos 7的靶机进行测试

靶机IP:192.168.1.130

爆破 ssh服务

爆破的结果:

用户名:root

密码:123456

3,Medusa

        Kali Linux中的Medusa是一个密码爆破工具,类似于Hydra。它被设计用于在渗透测试和安全审计中执行暴力破解攻击,以测试网络系统的安全性。Medusa支持多种协议和服务,包括FTP,SSH、Telnet、HTTP、HTTPS等。它允许用户使用字典攻击或暴力破解来尝试对目标系统进行登

录,从而发现可能存在的弱点。

使用centos 7的靶机进行测试

靶机IP:192.168.1.130

爆破 ssh服务

爆破的结果:

用户名:root

密码:123456

4,使用MSF的内置模块

使用centos 7的靶机进行测试

靶机IP:192.168.1.130

爆破 ssh服务

爆破的结果:

用户名:root

密码:123456

七,密码暴力猜解的防御

1. 使用复杂的密码:使用包含大小写字母、数字和特殊字符的复杂密码,可以增加密码暴力猜解的难度。

2. 密码策略:制定密码策略,要求用户定期更改密码,并禁止使用容易猜解的密码,如生日、常用数字等。

3. 多因素认证:使用多因素认证可以增加登录的安全性,即使密码被猜解,仍需另一种身份验证方式才能登录。

4. 登录失败限制:设置登录失败次数限制,当连续多次登录失败时,锁定账户一段时间,阻止密码暴力猜解攻击。

5. 使用验证码(二次验证):在登录时发送验证码到注册的手机或邮箱,确保登录者是合法用户。

6. 使用密码管理工具:使用密码管理工具可以生成和管理复杂的密码,避免用户使用简单易猜解的密码。

7. 定期审计:定期审计系统中的密码安全性,发现弱密码并及时进行修改和加固。

8,增加生物识别:指纹,人脸等

9,对用户的行为识别:例如异地登录等;

八,验证码识别

验证码识别是指通过计算机程序自动识别和解析图像或文字验证码的过程。验证码识别通常用于自动化的网站登录、注册、数据采集等场景,以替代人工输入验证码的方式。

常见的验证码识别方法包括:

1. 图像处理技术:使用图像处理技术对验证码图像进行预处理,包括去噪、二值化、分割等操作,以提高验证码识别的准确性。

2. 文字识别技术(OCR):使用光学字符识别技术对验证码中的文字进行识别,通过训练模型来识别不同字体和样式的验证码文字。

3. 机器学习和深度学习:利用机器学习和深度学习算法对大量验证码样本进行训练,以提高验证码识别的准确性和鲁棒性。

4. 人工智能辅助:利用人工智能技术结合人工干预的方式,对复杂或难以识别的验证码进行处理,提高识别的准确性。

5. 模拟人类行为:模拟人类的行为模式,如滑动验证码的滑动轨迹、点击验证码的位置等,以规避反爬虫机制。

下面使用burp的插件实现有验证码的暴力破解的思路;

(1),首先下载插件(github)

https://github.com/fOng/captcha-killer-modified

(2),在burp中安装插件

(3),启动本地的验证码识别服务

(4),抓验证码的包,将其发送到插件

使用burp自带的浏览器;

输入验证码的url,将抓到的包发送到插件;

(5),配置识别服务

将抓到的包发送到本地的验证码识别服务;

使其在插件中可以正确的识别验证码;

(6),抓登录的包,将payload设置为插件,并且设置为单线程

抓到的登录的包;

将其发送到intruder模块;

设置payload;

设置为单线程;

(7),最后爆破,得到结果;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕舟舟.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值