rsmangler使用教程

rsmangler 是一款强大的密码变异工具,主要用于对初始词表进行各种变形处理,生成更丰富的密码候选列表。它通过对输入的基础单词应用多种变换规则(如大小写转换、反向、添加后缀、替换特殊字符等),模拟用户创建密码时的常见习惯,从而生成更贴近实际使用场景的密码字典,提高密码破解的成功率。

与传统词表生成工具相比,rsmangler 的核心优势在于能够模拟人类设置密码的思维模式(如将 "password" 变形为 "Password123!"、"P@ssw0rd" 等),特别适合对基础词表进行扩展,生成针对性更强的变异密码集。

二、工具参数说明

参数 中文说明
--help, -h 显示帮助信息
--file, -f 输入文件路径,使用 - 表示从标准输入读取
--output, -o 输出文件路径,使用 - 表示输出到标准输出
--max, -x 最大单词长度
--min, -m 最小单词长度
--perms, -p 对所有单词进行排列组合(默认开启,添加此参数关闭)
--double, -d 重复每个单词(如 "test" → "testtest",默认开启,添加此参数关闭)
--reverse, -r 反转单词(如 "test" → "tset",默认开启,添加此参数关闭)
--leet, -t 转换为 l33t 语(如 "e"→"3″,"a"→"@",默认开启,添加此参数关闭)
--full-leet, -T 生成所有可能的 l33t 变异(默认开启,添加此参数关闭)
--capital, -c 将单词首字母大写(如 "test"→"Test",默认开启,添加此参数关闭)
--upper, -u 将单词全部转为大写(如 "test"→"TEST",默认开启,添加此参数关闭)
--lower, -l 将单词全部转为小写(如 "TEST"→"test",默认开启,添加此参数关闭)
--swap, -s 交换单词大小写(如 "Test"→"tEST",默认开启,添加此参数关闭)
--ed, -e 在单词末尾添加 "ed"(如 "test"→"tested",默认开启,添加此参数关闭)
--ing, -i 在单词末尾添加 "ing"(如 "test"→"testing",默认开启,添加此参数关闭)
--punctuation 在单词末尾添加常见标点符号(如 "test"→"test!"、"test@" 等,默认开启,添加此参数关闭)
--years, -y 在单词首尾添加 1990 年至当前年份(默认开启,添加此参数关闭)
--acronym, -a 根据输入单词生成首字母缩写并添加到词表(默认开启,添加此参数关闭)
--common, -C 在单词首尾添加常见单词(admin、sys、pw、pwd,默认开启,添加此参数关闭)
--pna 在单词末尾添加 01-09(默认开启,添加此参数关闭)
--pnb 在单词开头添加 01-09(默认开启,添加此参数关闭)
--na 在单词末尾添加 1-123(默认开启,添加此参数关闭)
--nb 在单词开头添加 1-123(默认开启,添加此参数关闭)
--force 不检查输出文件大小
--space 在单词之间添加空格
--allow-duplicates 允许输出列表中存在重复项

注意:所有变换选项默认开启,添加参数表示关闭该功能(例如 --reverse 表示关闭反转单词功能)。

三、使用教程

1. 基础使用方法

rsmangler 的基本语法为:

复制代码
rsmangler [选项]

工具需要输入一个基础词表(可通过文件或标准输入提供),并应用多种变换规则生成变异词表。

2. 常用命令示例

(1)基础词表变异(默认所有规则)

复制代码
rsmangler --file base_words.txt --output mangled_words.txt

功能 :读取 base_words.txt 中的基础单词(如 "password"、"admin"),应用所有默认变换规则,将结果保存到 mangled_words.txt

输出示例(以 "test" 为例):

复制代码
test
Test
TEST
tEST
tset(反转)
testtest(重复)
t3st(leet)
test01
01test
test123
...(更多变异形式)

(2)从标准输入读取并输出到终端

复制代码
echo "hello" | rsmangler -f - --output -

功能:以 "hello" 为基础词,通过管道输入 rsmangler,直接在终端显示所有变异结果

适用场景:快速测试单个单词的变异效果

(3)限制单词长度

复制代码
rsmangler --file names.txt --min 6 --max 10 --output filtered.txt

功能:只保留长度为 6-10 位的变异结果

优势:过滤过短或过长的密码,符合常见密码长度策略

(4)关闭特定变换规则

复制代码
rsmangler --file base.txt --output no_leet.txt --leet --years

功能:生成变异词表时,关闭 l33t 转换和年份添加功能(保留其他默认规则)

适用场景:已知目标密码不包含特殊字符或年份

(5)添加空格和允许重复

复制代码
rsmangler --file words.txt --space --allow-duplicates -o with_spaces.txt

功能:在单词之间添加空格(如 "user pass"),并允许结果中存在重复项

适用场景:针对可能包含空格的密码(如某些系统允许空格作为密码字符)

(6)生成最小化变异词表(仅保留必要规则)

复制代码
rsmangler --file key.txt --output minimal.txt --perms --double --reverse --full-leet

功能:仅保留基础变换(关闭排列组合、重复、反转和全 l33t 变异),生成精简词表

优势:减少词表体积,适合快速破解

3. 典型应用场景

(1)扩展企业名称词表

以企业名称(如 "acme")为基础,生成可能的密码变异:

复制代码
echo "acme" | rsmangler -f - -o acme_passwords.txt

生成结果包括 "Acme123!"、"ACMEadmin"、"aCm32023" 等,贴近员工可能使用的密码习惯。

(2)结合其他工具使用

将 cewl 生成的网站相关词表通过 rsmangler 变异,再用于破解:

复制代码
cewl https://example.com -w site_words.txt
rsmangler --file site_words.txt -o site_mangled.txt
hashcat -m 0 hashes.txt site_mangled.txt

4. 使用注意事项

  • 词表膨胀风险:
    • 基础词表数量较多时,变异后可能生成极大的词表(GB 级),建议先用 --min/--max 限制长度
    • 可通过关闭不必要的规则(如 --full-leet)减少输出量
  • 去重处理:
    • 默认情况下工具会自动去重,如需保留重复项(如特殊测试场景),可使用 --allow-duplicates
    • 大型词表建议事后用 sort -u 进一步去重:sort -u mangled.txt -o unique_mangled.txt
  • 规则组合策略:
    • 针对不同目标调整规则(如金融系统可能更多使用年份,技术类系统可能更多使用 l33t 字符)
    • 结合目标信息(如已知员工常用姓名+生日)定制基础词表,再进行变异
  • 性能考虑:
    • 处理大量基础单词时,建议使用 --force 跳过大小检查,但需确保磁盘有足够空间
    • 复杂规则组合可能耗时较长,可分阶段生成(先基础变异,再针对性添加规则)
相关推荐
小陈工2 小时前
Python Web开发入门(九):权限管理与角色控制实战
服务器·开发语言·前端·数据库·python·安全·sqlite
小陈工2 小时前
2026年4月3日技术资讯洞察:微服务理性回归、AI代码生成争议与开源安全新挑战
开发语言·数据库·人工智能·python·安全·微服务·回归
小码吃趴菜2 小时前
服务器预约系统linux小项目-第九节课
linux·运维·服务器
柴_笔记2 小时前
linux之UDP之组播通信
linux·udp·组播
mingjie12122 小时前
mac virtualbox虚拟机 ubuntu-server openclaw 访问配置
linux·运维·ubuntu·openclaw
qq_452396232 小时前
【测试之道】第七篇:非功能性测试 —— 性能、安全与兼容性:构建软件的“硬核”防御
功能测试·安全·bug·软件工程
zmj3203242 小时前
车ECU安全刷写(Secure Flashing/Programming)
安全·信息安全
藤谷性能2 小时前
Ubuntu 22.04:在双硬盘电脑上安装Ubuntu 22.04单系统
linux·运维·ubuntu
藤谷性能2 小时前
Ubuntu 22.04:安装后的工作
linux·运维·ubuntu