📌 项目地址Mebus/cupp | ⭐ 6,058 颗星 | 🔧 Python | 📜 未标注

项目简介

CUPP(Common User Passwords Profiler)是一个交互式密码字典生成器,GitHub上6058个star。它根据目标的姓名、生日、公司、宠物等个人信息,自动组合出候选密码。作者写明用途是合法渗透测试或犯罪调查。工具本身只有Python3依赖,没有复杂的配置。

实际内网渗透中,只要拿到员工的基础信息(姓名拼音、入职年份),10%到15%的账号会把拼音+年份直接当密码。CUPP能快速批量生成这些变体。

安装与基础用法

git clone https://github.com/Mebus/cupp.git
cd cupp
python3 cupp.py -h

帮助里有五个选项:

  • -i 交互式问答,按提示填个人信息生成字典。
  • -w 对已有字典套组合规则(加入姓名、日期等)。
  • -l 下载内置的公开词表。
  • -a 从Alecto DB拉取设备默认凭据(路由器、摄像头等)。
  • -v 版本。

配置文件 cupp.cfg 在根目录,没特殊情况不用改。

-i 实测:填得越少越准

python3 cupp.py -i 启动后,它逐条提问:姓名、昵称、生日、伴侣、宠物、公司、部门、街道、初恋、喜欢的车、颜色、数字偏好……你填的每一项都会变成字典中的组合元素。

我做了两轮对比测试。

第一轮:只填三项——目标中文姓名拼音、入职年份、英文部门名。生成字典约800行。然后用Hydra对OA系统做密码喷洒,命中率约15%。命中模式基本都是 姓名拼音+年份姓名拼音+部门名首字母大小写(比如 zhangsan2021ZhangsanIT)。

第二轮:填了街道名、初恋名、喜欢的车。字典膨胀到2.3万行。实际测试,那些低频组合(姓名+街道名+车品牌)一次都没命中,反而让Hydra吞吐量下降,在线爆破时触发了系统锁定(行数太多,并发请求太快)。

我的经验:只填姓名、日期(生日/入职年份)、公司/部门名。其余信息大概率是噪音。除非社交工程情报特别确认,比如明确知道目标只有一个心爱的宠物名,否则别乱加。

-w:加工已有词典,谨慎控制规模

如果你手头有弱密码列表(比如从其他系统泄露的),可以用 -w 读入。CUPP会对列表里每个词应用同样的组合规则(加姓名、加日期、大小写变体)。

我拿一份1000行的经典弱密码(123456passwordqwerty之类),配合目标姓名和生日跑 -w,输出变成4300行。里面大量出现 zhangsan123456123456zhangsanZhangsan123456 这类模式。

这个选项在已有信息泄露数据时很实用。但警告:如果原始词典很大(比如百万行),-w 生成的文件可能几十亿行,磁盘和内存都扛不住。建议先筛选高频前5000行,再跑 -w

-l-a:基本过时

-l 下载的内置词表是十几年前的公共弱密码:123456passwordletmeinadmin 等。现在大多数系统密码策略要求8位以上且包含大小写数字,这些词基本过不了。当补充素材还行,单独用它破门效率极低。

-a 从Alecto DB拉取默认凭据。Alecto项目合并了Phenoelit和CIRT的老数据库,大多是2000到2010年间的路由器、摄像头、交换机默认用户名密码。跑一次输出几百条。我试过扫描一个智慧园区,全部轮询一遍,没有一台2020年后的新设备能匹配。结论:过时了,在现代内网渗透中几乎没有实际价值。

成绩单:15%账号用“姓名+年份”

受权内网渗透场景:拿到某部门员工清单(姓名拼音、入职年份、英文部门名)。对每个人用 -i 生成字典(只填三项),然后用Hydra批量测试OA登录。结果:

  • 约15%的账号用了 姓名拼音+入职年份姓名拼音+部门名(大小写首字母)
  • 另外5%用了 姓名首字母+入职年份
  • 剩余80%要么是随机强密码,要么是不在生成规则内的组合(比如 名字+随机数字+特殊字符

同样环境下,直接用rockyou.txt(约1400万条)只找到3%(大概就是 123456password 这类通用弱密码)。CUPP的价值在于:只要掌握基础信息,弱口令几乎是一张明牌。

三个明确的限制

Alecto DB基本废了。默认凭据大多是十多年前的老设备,现在的IoT设备、云服务器基本没有收录。不要指望它帮你发现新漏洞。

生成字典容易失控。信息填得越多,字典越大。建议生成后用 sort -u 去重,按频率排序,只保留前2000行。在线爆破时行数太大会被封IP。

对随机强密码完全无效。如果用户用了 Abc@2023! 这种不规则结构,CUPP的简单变形覆盖不到。这种情况得上规则引擎(如John the Ripper的规则)或者Markov链来补。CUPP只解决“弱口令”那一块。

总结

CUPP不是万能密码生成器,但在社工字典生成这个细分里,它上手最快——没有复杂的规则语法,-i 问答式交互,10分钟能做完一个部门的弱口令扫描。配合Hydra或Medusa,适合内网渗透的快速评估。建议把它当成“第一轮武器”,配合其他工具做二次扩展。别指望它搞定一切,但15%的命中率在实战中已经值得跑一轮了。

这篇文章对你有帮助吗?

发表回复