3个不稳定版本

0.2.0 2023年10月29日
0.1.1 2022年6月3日
0.1.0 2022年6月2日

身份验证 中排名第 134

MIT 许可证

8KB
112

PWFuzz-RS

基于Rust的密码突变器,用于暴力攻击

免责声明

此工具可用,但主要是一个实验。请不要期望它频繁更新。

关于

所以你在暴力破解Web应用或其他目标。当然你有一个单词列表,甚至可能是一个大的,但关于变体呢?在上面添加感叹号或年份数字?添加随机数字?有一个简单的方法来突变现有的密码列表以添加变体将非常好。Hashcat有基于规则的攻击,但对于非哈希密码怎么办呢?

这就是pwfuzz-rs要解决的问题。

安装

发布中提供了Linux和Windows的二进制文件。

当然,您可以从源代码构建,但是,嘿,这是一个Rust工具,所以您也可以简单地使用 cargo install pwfuzz-rs

用法

pwfuzz-rs -w wordlist.txt -r rules.json [-i iterations]

pwfuzz-rs 接受以下参数

  • -w --wordlist:单词列表路径
  • -r --rules-file:JSON规则文件路径
  • -i --iterations:运行突变的迭代次数
  • -h --help:帮助

输出将到stdout,但您可以使用任何您喜欢的Unix工具来重定向它!

规则

让我们谈谈规则。

pwfuzz-rs 支持以下规则

  • Append [string]:添加给定的字符串
  • Prepend [string]:添加给定的字符串
  • Upper:将单词转换为大写
  • Lower:将单词转换为小写
  • Insert [字符串] [idx]:插入指定的 字符串 和索引 idx(索引失败时跳过)
  • AppendRandom [范围]:追加0-范围之间的随机数
  • Prepend [范围]:追加0-范围之间的随机数

规则文件

规则文件是一个JSON文件,它期望有一个author键和一个rules键。此示例显示了所有规则变体。

{
    "author": "Your Name <Your Email>",
    "rules": [
        {
            "Append": "!"
        },
        {
            "Prepend": "1"
        },
        "Upper", // no args means no object needed
        "Lower",
        {
            "Insert": ["%", 4] // inserts "%" at index 4
        },
        {
            "AppendRandom": 100
        },
        {
            "PrependRandom": 100
        }
    ]
}

给定列表

letmein
iamgod
password

这些规则会产生

letmein
iamgod
password
letmein!
iamgod!
password!
1letmein
1iamgod
1password
LETMEIN
IAMGOD
PASSWORD
letmein
iamgod
password
letm%ein
iamg%od
pass%word
letmein20
iamgod17
password79
18letmein
97iamgod
65password

迭代次数

但如果我们想在规则上应用规则再应用规则呢?

我懂你的意思。

通过传递 -i,你可以迭代地将规则应用于新生成的突变。所以如果我们将 -3 传递给上面的列表,我们就会得到1500个唯一的密码!

依赖项

~1.8–2.7MB
~53K SLoC