Pipal密码分析器
项目背景
在内部渗透测试中,从域控制器获取密码转储文件是常见情况。为进行基础分析,我最初开发了Counter工具,并在后续持续增强其统计功能以生成对管理报告有用的额外数据。
近期应n00bz的需求,我们对工具进行了大规模功能升级,新增多项特性以帮助分析大量破解密码。特别感谢知名密码分析专家Matt Weir和Martin Bos的宝贵建议。
重要说明:本工具仅提供统计数据和信息,真正的分析工作需用户自行解读结果——我提供数字,你讲述故事。
模块化版本
过去几个月间,我对Pipal进行了重构,将其从单体应用改为模块化架构。具体细节请参阅相关技术博客文章。
版本2重大更新
性能飞跃
Stefan Venken提交的补丁带来巨大速度提升:版本1处理LinkedIn列表需数小时,而版本2处理350万条记录仅需约15分钟。
美国地域识别
新增美国区号和邮政编码查询功能。当分析源自美国的密码列表时,该特性可提供有趣的地理数据洞察。例如在Military Singles网站泄露数据中,可明显观察到密码围绕美军基地聚集的模式。
代码托管迁移
版本2将代码托管从自主服务器迁移至GitHub,便于社区提交补丁。详情参见下载章节。
实战示例
以phpBB泄露密码列表为例展示分析输出:
基础统计
|
|
Top 10密码
|
|
基础词分析
定义基础词为去除首尾非字母字符后的单词:
|
|
密码长度分布
|
|
字符组成分析
|
|
外部词表匹配
支持通过命令行传入外部词表进行匹配检测:
|
|
时间元素分析
包含月份、日期、年份的完整和缩写形式统计,例如:
|
|
数字模式分析
- 末尾单数字:14447 (7.84%)
- 末尾双数字:18112 (9.82%)
- 末尾三数字:9637 (5.23%)
末尾数字偏好分析显示数字"1"出现频率最高(7.36%)。
高级分析功能
字符集分类
|
|
Hashcat掩码生成
|
|
安装与使用
环境要求
仅支持Ruby 1.9.x版本,无需安装额外gem包。
命令行用法
|
|
工具运行时显示进度条,支持Ctrl-C中断并输出当前统计结果。
下载资源
项目已迁移至GitHub托管,可通过仓库获取最新版本。不熟悉Git的用户可直接下载ZIP压缩包。
数据分析案例库
工具已应用于多个知名泄露事件分析:
- phpBB、MySpace、Hotmail泄露数据
- RockYou完整列表(生成耗时24小时+)
- CSDN、T-Mobile、Irish Aid等组织数据
- Foxconn三组不同数据源(合作伙伴、用户、供应商)
- 军事交友网站Military Singles(破解率77.8%)
- Twitter泄露(去重后34k有效账户)
- LinkedIn哈希大规模分析(347万唯一密码)
- 雅虎Voice明文密码泄露
- 等多达40余个不同来源的数据集
技术实现
性能优化
采用多线程解析架构,大幅提升大规模数据处理效率。原始版本处理LinkedIn数据需数小时,优化后仅需15分钟处理350万记录。
编码处理
当前版本对特定字符编码支持有限,需要进一步改进正则表达式处理机制。
致谢
- Stefan Venken:贡献核心性能优化代码
- iPhelix:Hashcat掩码生成功能的灵感来源
- n00bz:共同开发多项新功能
- Matt Weir和Martin Bos:专业密码分析建议
项目命名
名称"Pipal"源自开发者的女儿Pippa和n00bz的儿子Alexander的组合,同时也是一种无花果品种和尼泊尔村庄的名称。