欢迎光临
我们一直在努力

❿⁄₄ ⟦ OSCP ⬖ 研记 ⟧ 密码攻击 ➱ 密码破解理论(中)

       郑重声明:本文所涉安全技术仅限用于合法研究与学习目的,严禁任何形式的非法利用。因不当使用所导致的一切法律与经济责任,本人概不负责。任何形式的转载均须明确标注原文出处,且不得用于商业目的。

🔋 点赞 | 能量注入 ❤️ 关注 | 信号锁定 🔔 收藏 | 数据归档 ⭐️ 评论 | 保持连接💬

🌌 立即前往 👉晖度丨安全视界🚀​​​

​​​

▶ 信息收集  ▶ 漏洞检测 ▶ 初始立足点 ➢ 密码攻击 ➢ 密码破解理论(中)🔥🔥🔥 ▶ 权限提升 ▶ 横向移动 ▶ 报告/分析 ▶ 教训/修复

目录

1.密码破解理论与实践

1.1 密码破解流程

1.2 字典的变异:让密码适用新规则

1.2.1 为什么要进行字典的变异

1.2.2 解决方案:创建规则函数

1.2.3 规则函数变异密码字典的步骤

1.2.3.1 实验准备

1.2.3.2 过滤无效密码

1.2.3.3 添加数字:使用 $ 和 ^ 函数

1.创建规则文件

2.使用规则文件1变形:添加数字

1.2.3.4 添加大写字母:c函数

1.添加规则函数

2.使用规则文件1变形:添加大写字母(及数字)

1.2.3.5 添加特殊字符:完善密码策略

1.添加规则函数

2.使用规则文件变形:添加特殊字符

1.2.3.6 部分规则函数总结

1.3 基于规则的密码破解实战

1.3.1 准备工作

1.3.1.2 创建哈希文件和规则文件

1.3.1.3 破解执行命令

1.破解流程解析

2.破解结果分析

3.规则攻击效果分析

1.3.2 安全启示

1.4 使用Hashcat预定义规则函数

欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论


1.密码破解理论与实践

1.1 密码破解流程

详见下一篇文章详细说明。本文先以初步原理结合实践进行表述。

1.2 字典的变异:让密码适用新规则

1.2.1 为什么要进行字典的变异

🔐 密码策略的演进:近年来,密码策略越来越严格,普遍要求:

  • 最小密码长度(通常8位以上)

  • 必须包含多种字符类型:

    • 大写字母

    • 小写字母

    • 特殊字符(如!@#$%)

    • 数字

⚠️ 传统密码字典的不足:

      常用密码字典(如rockyou.txt)中的大多数密码无法满足现代密码策略要求。如果直接用于具有强密码策略的目标,会导致大量无效尝试。

示例检测:rockyou.txt前10个密码

密码
大写字母
小写字母
特殊字符
数字
是否符合策略
123456
12345
123456789
password
iloveyou
princess
1234567
rockyou
12345678
abc123

📌 结果:前10个密码无一同时满足大写字母、特殊字符和数字的要求。


1.2.2 解决方案:创建规则函数

      在将字典发送到目标前,通过规则函数自动修改字典中的密码,使其符合密码策略。

规则函数的作用:

  • 🔧 添加字符:在密码末尾/开头添加固定字符(如!2023)

  • 🔄 替换字符:将字母替换为相似数字(如a→@、o→0)

  • 🆙 大小写变换:将部分字母转为大写

  • 🧩 组合操作:一个规则可包含多个函数

规则文件示例:

$1$2$3 # 在末尾添加数字123
c # 首字母大写
@ # 将a替换为@

📊 基于规则攻击的影响

方面
说明
✅ 优势 自动化适配密码策略,显著提高命中率
⚡ 效率 现代硬件可轻松处理长度<8位的常见密码变异
📈 数量增长 规则应用会大幅增加尝试的密码数量
🎯 精准度 针对性强,避免无效尝试

1.2.3 规则函数变异密码字典的步骤

🎯 实战目标:创建符合密码策略的规则函数

密码策略要求:必须包含数字、特殊字符、大写字母(每种至少一个)

1.2.3.1 实验准备

将rockyou.txt的前十个密码复制并保存到新创建的passwordattacks目录下的demo.txt文件中。

# 创建测试密码文件 demo.txt
123456
12345
123456789
password
iloveyou
princess
1234567
rockyou
12345678
abc123


1.2.3.2 过滤无效密码

# 删除纯数字密码(示例)
$ sed -i \’/^[0-9]*$/d\’ demo.txt

组件
符号/命令
说明
类比理解
命令主体 sed 流编辑器,用于对文本进行流式处理和编辑 文字处理器中的“查找替换”功能
编辑模式 -i 就地编辑模式,直接修改源文件,不创建备份 直接在原文档上修改,不生成副本
正则表达式 /^[0-9]*$/ 匹配整行都是数字的行,或者空行 查找所有纯数字的行的句子
操作指令 d 删除匹配的行 将找到的句子完全删除

📝 表达式拆解:/^[0-9]*$/

符号
名称
作用
详细说明
/ 定界符 标记正则表达式的开始和结束 类似引号,包裹整个表达式
^ 行首锚点 匹配行的开头位置 确保从行首开始匹配
[0-9] 字符类 匹配任意一个数字(0-9) 相当于 [0123456789]
* 量词 匹配前一个元素0次或多次 可以没有数字,也可以有多个数字
$ 行尾锚点 匹配行的结束位置 确保匹配到行尾
/ 定界符 表达式结束 与开头定界符配对

执行后如下:demo.txt中剩下5个密码。

注意:原示例(sed -i \’/^1/d\’ demo.txt)仅删除以1开头的密码,实际应用中需要根据需求调整过滤规则


赞(0)
未经允许不得转载:171主机测评 » ❿⁄₄ ⟦ OSCP ⬖ 研记 ⟧ 密码攻击 ➱ 密码破解理论(中)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址