🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀
🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。
🌟🧭 在这里,每个错误都是成长的阶梯,每条建议都是前进的动力。
🌟🧭 在这里,我们一起成长,一起进步,让我们在知识的世界里畅游无阻,共同创造一个充满智慧和创新的明天。
🌟📚 点击关注,加入我们的技术探索之旅吧!❤️📖✨
✨博客主页:远见阁小民的主页
📕本文专栏:白帽学徒笔记
📕其他专栏:后端专栏 AI专栏 Python专栏 其他专栏 Linux专栏
请注意:
暴力破解是一种侵入性的攻击手段,除非你是在合法的范围内进行安全测试,否则尝试破解他人的密码或加密数据可能会涉及法律问题。安全研究和实践应当在道德和法律的框架内进行。
1 什么是暴力破解?
暴力破解,也称为穷举攻击,是一种破解密码或加密信息的方法,通过尝试所有可能的密码组合直到找到正确的密码为止。
这种方法不依赖于技术洞察或漏洞利用,而是依赖于尝试大量组合,因此通常需要大量的时间和计算资源。
暴力破解可以用于猜测各种类型的密码,包括但不限于网站登录密码、文件加密密码等。
随着计算技术的发展,对于简单或常见的密码,暴力破解变得更加容易和快速。
为了抵抗暴力破解攻击,建议使用复杂、长且难以预测的密码,并启用多因素身份验证等安全措施。
2 暴力破解需要准备哪些东西?
2.1 需要有一个靶场
公网上的网站是不能随便进行暴力破解的,如果把人家网站搞崩了,对方溯源到你,是要负法律责任的,所以我们要有一个学习的靶场,如DVWA靶场。
2.2 需要有字典文件
暴力破解可以采用两种基本策略之一:字典攻击和纯暴力破解。
字典攻击需要准备一个包含可能密码的大型文件,而纯暴力破解则尝试所有可能的字符组合。
准备一个好的密码字典可以大大提高破解效率。
可以这样去github上搜一搜👇
2.3 Burp Suite工具
Burp Suite是一款广受欢迎的网络安全测试工具,它集成了多种功能,用于进行网络应用的安全检测。在众多功能中,最为广泛使用的功能包括:
2.3.1 拦截代理(Proxy)
Burp Suite的核心功能之一是其拦截代理功能,它允许用户拦截、查看和修改客户端和服务器之间的HTTP/HTTPS通信。
这对于分析和测试应用程序的安全性至关重要,因为它可以揭示潜在的安全漏洞。
2.3.2 扫描器(Scanner)
自动化的安全漏洞扫描器能够识别web应用中的常见漏洞和安全问题,如SQL注入、跨站脚本(XSS)、路径遍历等。虽然它主要存在于Burp Suite的专业版中,但这是进行安全审计时常用的一个强大功能。
2.3.3 爬虫(Spider)
爬虫工具用于自动映射出目标网站的内容和功能结构。它通过跟踪网站上的链接来发现未知的、隐藏的内容,为更深入的安全测试打下基础。
2.3.4 重放器(Repeater)
这个工具允许安全专家修改并重新发送之前捕获的请求。这对于测试应用程序对特定输入或攻击向量的反应非常有用,可以用来精细调整攻击或测试某些安全防护的有效性。
2.3.5 Intruder
这是一个强大的工具,用于自动化定制攻击,通过配置多种参数来对目标应用进行模糊测试或爆破攻击。它可以用来测试应用程序对不同类型的输入处理能力,以及查找和利用漏洞。
2.3.6 Decoder和Comparer
这些工具分别用于解码/编码数据和比较两个请求或响应的不同之处。这对于分析应用程序如何处理数据,以及识别潜在的安全问题非常有帮助。
虽然Burp Suite提供了很多其他高级功能,上述功能是日常安全测试中最为常用的几个。Burp Suite因其强大的功能和灵活性,成为了许多安全专家和渗透测试人员的首选工具。
3 如何进行暴力破解?
3.1 设置浏览器的代理
因为Burp Suite的默认代理地址就是:127.0.0.1 8080
3.2 抓取数据包
3.2.1 开启Burp Suite拦截和浏览器代理
3.2.2 开始抓包
3.2.3 右键发送到Intruder
3.2.3.1 攻击类型
3.2.3.1.1 Sniper(狙击手)
这种模式用于对单个位置进行大量的测试。
Intruder会遍历提供的负载集(payload set),逐个插入到请求中的指定位置。
如果有多个位置被标记,Intruder会在每次攻击中只改变一个位置的值,其他位置保持不变。
这种模式适用于测试具有明确注入点的场景,如密码猜测或参数值测试。
3.2.3.1.2 Battering ram(攻城锤)
在这种模式下,Intruder对所有标记的位置使用相同的负载值。
每个负载值会被同时插入到所有选定的位置,然后发送请求。
这种模式适合于测试需要在多个参数位置输入相同数据的情况,例如,查找多个输入点是否共享相同的脆弱性。
示例:
不管你有几个参数,都只使用同一个字典usermane=1234&password=1234,这种模式用的比较少。
3.2.3.1.3 Pitchfork(干草叉)
Pitchfork模式为每个标记的位置分配了一个独立的负载集。
Intruder同时遍历每个负载集,并将相应的负载项组合成一次请求。
这要求所有负载集的长度相等,Intruder会同步地从每个负载集中取出项,直到某个负载集被耗尽。
这种模式适用于需要同时测试多个参数,每个参数都有不同负载的情况。
示例:
有几个参数,就需要设置几个字典,而且会按顺序匹配,如果两个字典的数量不一致,以少的为准
username 24个字典
password 20个字典
总共会发起多少次请求? 答:20次
3.2.3.1.4 Cluster bomb(集束炸弹)
Cluster bomb模式对于每个标记的位置使用独立的负载集,但它会尝试每个负载集的所有可能组合,而不是同步遍历。
这意味着如果有两个位置分别有两个负载,Intruder将执行4次请求,分别使用每个负载集的每个元素组合。
这种模式在需要详细测试多个输入点,每个点都有独立数据集时非常有用。
示例:
username 24个字典
password 20个字典
总共会发起多少次请求? 答:24*20 = 480次
4 如何防御暴力破解?
防御暴力破解攻击主要是增加攻击的难度,减少攻击者成功的可能性。
下面是一些有效的防御措施👇
4.1 使用强密码
鼓励用户创建复杂且难以预测的密码。强密码通常包含字母、数字和特殊字符的组合,且长度足够(推荐12位以上)。
4.2 账户锁定策略
设置账户在一定时间内密码尝试失败次数的限制。超过限制次数后,账户将被临时锁定,阻止进一步的登录尝试。
4.3 验证码
在登录界面添加验证码(CAPTCHA)可以有效阻止自动化工具进行暴力破解,因为验证码要求用户必须输入图像中显示的字符。
4.4 二次验证
实施多因素认证(MFA)或两步验证,即使攻击者猜出密码,也需要第二种验证方式才能登录。这可以是短信验证码、电子邮件链接、生物识别或手机应用生成的一次性密码。
4.5 限制登录尝试频率
通过限制IP地址在单位时间内的请求次数,可以减缓或阻止暴力破解攻击。这可以通过配置Web服务器或使用专门的安全软件实现。
4.6 使用安全的密码存储策略
确保密码以安全的方式存储,如使用盐值(salt)和哈希(hash)函数,这样即使数据被盗,攻击者也难以通过暴力破解还原密码。
4.7 监控和警报
实施监控系统来检测异常登录尝试,并在检测到潜在的暴力破解攻击时发出警报。这可以帮助及时响应威胁。
4.8 使用防火墙和入侵检测系统
配置防火墙规则来阻止来自已知攻击者的流量,以及使用入侵检测系统(IDS)来识别和阻止暴力破解尝试。
4.9 教育用户
通过教育用户了解安全的密码管理习惯,比如使用密码管理器和避免重复使用密码,可以提高整体的安全性。
通过实施上述措施,可以大大增加暴力破解攻击的难度,保护系统和用户数据的安全。
另外大家在上网时要时常检查域名,防止被钓鱼(防止页面做的一模一样,但是域名地址不一样,从而造成用户信息的泄露)