cupp

2026-01-22

python

抛弃时间的人,时间也抛弃他。——莎士比亚

CUPP:把“常见密码画像”做成一张精准的字典

CUPP 的全称是 Common User Passwords Profiler。它不是一把“万能钥匙”,而是一台“画像机”:根据用户的公开信息与生活习惯,把最可能被用作密码的词汇组合出来,生成一个专用的字典,用于合法的渗透测试或取证调查中的密码强度评估与字典测试。

  • 仓库地址:Mebus/cupp
  • 项目描述:Common User Passwords Profiler
  • 语言与环境:Python 3
  • 许可证:GPL-3.0

官方 README 的出发点很朴素但很现实:很多弱口令并不是依靠暴力破解,而是靠“人”的规律。例如生日、昵称、宠物名、常见词 God、love、money、password 等。CUPP 的目标,就是将这类线索系统化,半自动生成“最像用户本人”的字典,帮助在合规场景里评估风险与修复薄弱口令。


能做什么

  • 交互式画像
    用一轮问题收集用户信息,自动组合出“符合个人习惯”的词表。

  • 基于已有字典的再画像
    对已有字典或 WyD.pl 的输出进行再加工,做“二次混合”和扩展。

  • 下载大型词表
    从仓库拉取超大词表,用于更全面的字典测试。

  • 从 Alecto 数据库解析
    直接解析默认用户名与密码的集合。Alecto 整合并净化了 Phenoelit 与 CIRT 的数据库。

这些都是 README 中明确列出的功能。使用前请确保你的场景合法合规,目标系统已授权进行测试。


快速开始

CUPP 依赖 Python 3,建议在干净的环境里运行。

1
2
# 查看帮助
python3 cupp.py -h

常用选项一览:

1
2
3
4
5
6
-h      帮助菜单
-i 交互式用户密码画像
-w 对已有字典或 WyD.pl 输出进行画像
-l 从仓库下载大型词表
-a 直接解析 Alecto 数据库中的默认用户与密码
-v 显示版本

使用示例

1. 交互式画像

当你在合法授权的测试中需要生成“针对某人的字典”:

1
python3 cupp.py -i

这会进入一个简单的问答流程。根据被测对象的信息,CUPP 会自动生成包含生日、昵称、宠物名、喜好等组合的词表,并保存到本地。将该词表用于字典测试,可更快识别出“人性化的弱口令”。

2. 基于已有字典再画像

如果你手里已经有一个通用词表或 WyD.pl 的输出,可以让 CUPP 为它“加一层画像”,提升针对性:

1
python3 cupp.py -w wordlist.txt

CUPP 会将该字典与画像逻辑结合,输出更贴近“用户习惯”的组合。

3. 下载大型词表

需要大覆盖面的字典时,直接调用:

1
python3 cupp.py -l

CUPP 会从仓库下载巨型词表,适用于需要广覆盖测试的场景。

4. 从 Alecto DB 解析默认口令

解析默认用户名与密码集合(来自 Alecto 数据库,对 Phenoelit 与 CIRT 数据做了净化与合并):

1
python3 cupp.py -a

这在测试网络设备、默认配置服务时尤其有用。


配置文件

CUPP 使用 cupp.cfg 作为配置文件。你可以在其中调整生成策略,如是否添加年份、数字后缀、常见替换(例如 a→@,s→$ 等),以及输出文件的路径。具体字段的说明见仓库内的 cupp.cfg 注释。


一段完整的小流程

下面是一个在授权渗透测试里评估弱口令的最小流程示例,展示 CUPP 如何融入字典测试工作:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 第一步:交互式生成画像字典
python3 cupp.py -i

# 假设输出为:target_profile.txt
# 第二步:合并大型词表(可选)
python3 cupp.py -l # 下载大型词表,输出 big.txt

# 第三步:组合两个词表(可选)
cat target_profile.txt big.txt | sort -u > combined.txt

# 第四步:用你合法授权的测试工具运行字典测试
# (工具自行选择,这里仅展示一个通用命令形式)
hydra -L users.txt -P combined.txt ssh://target.host

注意:上例仅为“流程示意”,实际测试务必遵守法律法规与授权范围,选择合适的安全评估工具与方法。


适用场景

  • 合法的渗透测试与红队演练
    为特定目标生成高命中率的词表,加速弱口令识别,缩短测试时间。

  • 取证与事件响应
    在合法程序下,对涉事账户进行密码画像与字典测试,帮助还原攻击路径。

  • 安全基线治理与审计
    结合默认口令解析,排查设备与服务是否仍使用默认密码,推动安全加固。


合规与伦理

CUPP 的 README 明确了使用场景:合法的渗透测试与取证调查。它不鼓励、也不支持任何未经授权的系统访问。请记住:

  • 仅在获得授权的系统与范围内使用
  • 测试结果用于修复与加固,不用于破坏性行为
  • 遵守所在国家与地区的法律法规及行业规范

许可证与致谢

  • 许可证:GPL-3.0
  • 项目维护:Mebus 以及贡献者们
  • 历史来源:项目从 remote-exploit.org 导入,鼓励社区持续开发与维护

完整信息请查看仓库 README 与 LICENSE。


小结

CUPP 的价值不在于“更凶猛”,而在于“更贴近人的习惯”。当密码问题的根源是人性化的规律时,精准的画像字典往往是最有效的测试手段之一。把它用在对的地方、以对的方式,就能让弱口令更快暴露,从而更快被修复。

  • 仓库:Mebus/cupp
  • 快速帮助:python3 cupp.py -h
  • 交互画像:python3 cupp.py -i
  • 再画像:python3 cupp.py -w wordlist.txt
  • 下载词表:python3 cupp.py -l
  • Alecto 解析:python3 cupp.py -a

你的密码策略,值得一张“更像你”的画像字典,当然也值得一次真正的加固。