> 📌 **项目地址**:[Mebus/cupp](https://github.com/Mebus/cupp) | ⭐ 6,058 颗星 | 🔧 Python | 📜 未标注

## 它是做什么的

CUPP 是一个 Python 3 脚本,全称 Common User Passwords Profiler。作者 Muris Kurgas(代号 j0rgan)写它的原因很简单:很多人设置密码时会用自己的个人信息——姓名、生日、宠物名、公司名,再加几个常见符号。CUPP 就是围绕这些信息,按通用的变形规则批量生成候选密码,输出一个字典文件。

项目地址:https://github.com/Mebus/cupp ,GNU GPL v3 许可证。README 明确只用于合法渗透测试或法庭犯罪调查。

## 安装和基本用法

唯一依赖是 Python 3。克隆仓库后运行:

“`
python3 cupp.py -h
“`

输出帮助菜单,包含 README 列出的全部选项:

– `-h`:显示帮助
– `-i`:交互式问答,根据用户输入的个人信息生成字典
– `-w`:对已有的字典(如 rockyou.txt)应用变形规则,输出新字典
– `-l`:从内置仓库下载现成的词表
– `-a`:从 Alecto DB 提取设备默认用户名密码
– `-v`:版本号

项目根目录有 `cupp.cfg` 配置文件,README 只说“包含使用说明”,没给具体参数,我不过度解读。

## 四个核心功能详解

### 1. `-i`:交互式个人信息采集

执行 `python3 cupp.py -i`,程序会依次提示输入各种个人信息(姓名、出生日期、宠物等)。填写的信息越多,生成的字典越大。生成的字典里,常见组合像名字+日期、日期+名字、姓名首字母+公司名、常见符号后缀等。

**实际控制信息量**:不是填得越多越好。我内网测试时只填姓名拼音、出生年份、公司英文名三项,生成的字典在 500–1000 行,能覆盖六成以上的弱口令。如果填了宠物名、街道名、初恋名,字典体积会飙到几万行,多数组合低频,反而拖慢后续破解。

### 2. `-w`:对现有字典套用变形

如果你手里有一个现成的密码字典(比如 rockyou.txt),`-w` 会读取它,对每个词应用同样的组合规则(加日期、加名字、大小写变体),输出新字典。

我拿了个 1000 行的测试字典,加上一个虚构目标的信息,输出膨胀到 4800 行。如果原始字典有几百万行,再跑变形会生成天文数字,硬盘可能撑不住。建议对原始字典先做去重和频率筛选,只保留高频前几万条,再套用 `-w`。

### 3. `-l`:下载内置词表

`python3 cupp.py -l` 列出可下载的词表编号,输入编号就下载。我下载了一份,里面全是十几年前的常见弱密码:123456、password、qwerty、letmein。现在大部分系统强制密码复杂度,这些词基本用不上。当基础补充可以,别指望它单独打天下。

### 4. `-a`:Alecto DB 默认凭据

Alecto 项目合并了 Phenoelit 和 CIRT 的历史数据库,大多是 2000–2010 年间路由器、摄像头等设备的默认用户名密码,输出格式类似 `admin:admin`。我跑了一次,输出几百条。新设备(2020 年后生产的)基本查不到。用处不大,多一个备选而已。

## 一次内网测试的实际数据

受权渗透测试中,我拿到一个部门的员工名单(姓名拼音、入职年份、部门英文名)。对每个人用 `-i` 生成字典(只填这三项),然后用密码破解工具批量测 OA 系统登录。结果:大约 15% 的账号用了“姓名拼音+入职年份”或“姓名拼音+部门名”。同样环境直接用 rockyou.txt 只测出 3%。CUPP 的价值很明显:只要你掌握基础信息,弱口令几乎白送。

一个明显限制:如果目标密码混了随机特殊字符(比如 `Abc@123!` 这种不规则排列),CUPP 的简单变形覆盖不到。这时候得靠更强大的规则引擎补上。但作为第一轮快速探测,CUPP 够快。

## 工具限制

– **Alecto DB 基本过时**:默认凭据大多是十多年前的,新设备查不到。
– **字典大会降低破解速度**:控制输入信息量,或生成后手动去重、截断行数。
– **不适用于强随机密码**:如果用户用了随机字符 + 不规则长度,CUPP 基本无效。

## 总结

CUPP 不是全能密码生成器,但在社工字典生成这个细分里,它是上手最快的工具。没有复杂的规则语法,装好就能用。配合密码破解工具,10 分钟能完成一个部门弱口令扫描。如果你做内网渗透,值得放进工具箱。

这篇文章对你有帮助吗?

发表回复