ccupp 社工密码字典生成
ccupp(Chinese Common User Passwords Profiler)根据目标的个人信息智能生成密码字典——比通用字典更精准,因为大多数人的密码都包含自己的姓名、生日、电话等信息。
项目地址:https://github.com/WangYihang/ccupp
安装
# 方式 1: f8x 自动安装(推荐)
f8x -install ccupp
# 方式 2: 手动安装(ccupp 未发布到 PyPI,需 clone 后本地安装)
git clone https://github.com/WangYihang/ccupp.git
cd ccupp
pipx install .
快速开始
# 生成示例配置文件
ccupp init
# 交互式输入目标信息
ccupp interactive
# 从配置文件生成密码
ccupp generate -o passwords.txt
配置文件格式
创建 config.yaml,填入目标社工信息:
- surname: 张
first_name: 三
phone_numbers:
- '13800138000'
identity: '110101199001011234'
birthdate:
- '1990'
- '01'
- '01'
hometowns:
- 北京
- 海淀
workplaces:
- - 阿里巴巴
- alibaba
educational_institutions:
- - 北京大学
- pku
accounts:
- zhangsan
passwords:
- old_pass123
每个字段都会参与密码组合——信息越多,字典覆盖越精准。
生成策略与优先级
ccupp 按可能性从高到低排序输出,排在前面的密码命中率更高:
- 旧密码变体 — 大小写/leetspeak/后缀变换(人倾向于在旧密码基础上微调)
- 姓名+生日 — 中国用户最常见的弱口令模式(
zhangsan1990) - 姓名+电话尾号 — 如
zs8000、zhangsan138 - 双组件组合 — 任意两类信息交叉
- 文化数字 — 组件 + 520/1314/888/666(中国特色)
- 键盘模式 — qwerty/1qaz2wsx + 组件
常用参数
# 过滤密码长度(配合目标密码策略)
ccupp generate --min-length 8 --max-length 16
# 禁用某些策略(缩小字典体积)
ccupp generate --no-leetspeak --no-cultural --no-keyboard
# JSON 格式输出(便于程序处理)
ccupp generate -f json -o passwords.json
# 查看统计信息
ccupp generate --stats
实战工作流
收集目标信息(姓名/生日/电话/公司)
│
├─ ccupp generate → 定制字典 passwords.txt
│
└─ 用字典爆破
├─ zombie -i target -s ssh -u zhangsan -P passwords.txt
├─ zombie -i target -s rdp -u zhangsan -P passwords.txt
└─ hydra -l zhangsan -P passwords.txt target ssh
决策树
需要密码字典?
├─ 有目标个人信息 → ccupp generate(定制字典,精准命中)
├─ 无个人信息,通用场景 → SecLists/rockyou.txt
├─ 企业批量弱口令 → 公司名+年份+特殊字符(手工或脚本)
└─ 已有旧密码 → ccupp 旧密码变体策略(填入 passwords 字段)