爆破密钥
crunch介绍与使用
1、介绍
crunch是什么?
Crunch是一种创建密码字典工具,按照指定的规则生成密码字典,可以灵活的制定自己的字典文件。使用Crunch工具生成的密码可以输出到屏幕,保存到文件、或另一个程序。
2、使用
Kali中已自带crunch工具,可直接在kali中使用。

命令格式:
crunch
参数:
min-len 最小长度字符串,即使不使用参数的值,也需要此选项
max-len 最大长度字符串,即使不使用参数的值,也需要此选项
charset string 字符集设置,默认是小写字符集
options :
-b 指定文件输出的大小,避免字典文件过大
-c 指定文件输出的行数,即包含密码的个数
-d 限制相同元素出现的次数
-e 定义停止字符,即到该字符串就停止生成
-f 调用库文件(/etc/share/crunch/charset.lst)
-i 改变输出格式,即aaa,aab -> aaa,baa
-I 通常与-t联合使用,表明该字符为实义字符
-m 通常与-p搭配
-o 将密码保存到指定文件
-p 指定元素以组合的方式进行
-q 读取密码文件,即读取pass.txt
-r 定义重某一字符串重新开始
-s 指定一个开始的字符,即从自己定义的密码xxxx开始
-t 指定密码输出的格式
-u 禁止打印百分比(必须为最后一个选项)
-z 压缩生成的字典文件,支持gzip,bzip2,lzma,7z
特殊字符,通常与-t配合使用
% 代表数字
^ 代表特殊符号
@ 代表小写字符
, 代表大写字符
3、实例
crunch 6 6 123 -o number.txt //生成六位以123元素为组合的字典集,并输出到number.txt


crunch 1 1 -q read //读取read文件中每行内容作为基本字符生成字典
read文件内容如下:

生成的字典集结果如下:

fcrackzip的使用(爆破)
1. 暴力破解
暴力破解适用于不知道密码任何信息的情况。指定字符集和密码长度范围即可:
1 | |
-b:使用暴力破解模式。-c <字符集>:指定字符集,例如a代表小写字母,A代表大写字母,1代表数字。-l <最小长度>-<最大长度>:密码长度范围。-u:测试解压文件的有效性。
示例:
尝试破解长度为 4 到 5 位的数字密码:
1 | |
2. 字典攻击
字典攻击适用于有密码列表(字典文件)的情况。可以指定字典文件来尝试其中的每个密码:
1 | |
-D:使用字典攻击模式。-p <字典文件>:指定密码字典文件的路径。
示例:
使用字典文件 passwords.txt 尝试破解:
1 | |
3. 常用字符集参数
a:小写字母(abcdefghijklmnopqrstuvwxyz)A:大写字母(ABCDEFGHIJKLMNOPQRSTUVWXYZ)1:数字(0123456789)!:符号(例如!@#$%^&*())
示例:
尝试小写字母和数字组合,密码长度为 3 到 4 位:
1 | |
其他有用的选项
-v:启用详细模式,可以显示破解过程中的进度。-m:指定压缩方法(0 到 3),通常可以忽略。
完整示例
假设我们知道密码是 5 位的小写字母,可以使用如下命令:
1 | |
这会尝试所有 5 位的小写字母组合,并在找到匹配密码时停止。
假设我们知道密码是 5 位的小写字母,可以使用如下命令:
1 | |
这会尝试所有 5 位的小写字母组合,并在找到匹配密码时停止。
bkcrack命令(明文攻击)
4.2恢复内部密钥
攻击需要至少 12 个字节的已知明文。其中至少 8 个必须是连续的。连续的已知明文越大,攻击速度越快。
从 zip 档案中加载数据
拥有一个 zip 档案encrypted.zip,其中条目cipher为密文,plain.zip其中条目plain为已知明文,bkcrack 可以像这样运行:
bkcrack -C encrypted.zip -c cipher -P plain.zip -p plain
1
从文件加载数据
有了cipherfile包含密文(以加密头对应的 12 个字节开头)和plainfile已知明文的文件,bkcrack 可以像这样运行:
bkcrack -c cipherfile -p plainfile
1
抵消
如果明文对应的是密文开头以外的部分,可以指定偏移量,如果明文包含加密头的一部分,则可以为负数。
bkcrack -c cipherfile -p plainfile -o offset
1
稀疏明文
如果您知道少量连续的明文(8 到 11 个字节之间),但知道其他已知偏移量处的某些字节,则可以提供此信息以达到总共 12 个已知字节的要求。为此,请使用标志,-x后跟偏移量和十六进制字节。
bkcrack -c cipherfile -p plainfile -x 25 4b4f -x 30 21
1
解码
如果攻击成功,则可以保存与用于攻击的密文相关的解密数据:
bkcrack -c cipherfile -p plainfile -d decipheredfile
1
如果从以前的攻击中知道密钥,则可以使用 bkcrack 来解密数据:
bkcrack -c cipherfile -k 12345678 23456789 34567890 -d decipheredfile
1
解压缩
解密后的数据可能会被压缩,具体取决于创建 zip 文件时是否使用压缩。如果使用了 deflate 压缩,tools则可以使用文件夹中提供的 Python 3 脚本来解压数据。
python3 tools/inflate.py < decipheredfile > decompressedfile
1
删除密码
要通过一个步骤访问加密档案的所有条目,您可以生成一个具有相同内容但不加密的新档案。它假定每个条目最初都使用相同的密码加密。
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 -D decrypted.zip
1
更改密码
您还可以使用您选择的密码生成一个新的加密档案:
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 -U unlocked.zip new_password
1
您还可以通过其相应的内部表示来定义新密码。
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 –change-keys unlocked.zip 581da44e 8e40167f 50c009a0
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Aluxian_/article/details/143486274
例题
1、生日密码
文件的主人喜欢用生日做密码,而且还是个90后。


得出密钥(并不是flag哦),要输入密钥打开加密文件得到flag
2、银行卡密码 键盘密码

猜测只有数字密码(需要猜吗)得到密码

得到第一行为键盘密码
1 | |
exp
1 | |
得到
ylopjogjvoccynmzypgxgpogjdvigatbash
然后用atbash解密一下,得到(要去掉atbash)
bolkqltqelxxbmnabktctkltqwert
这一个密码就是 qwert
这个是解密的 VBS 脚本
1 | |
可以先用 txt 粘贴进去,再改名为 1.vbs,点击即可得到

xisraseacsuuxzykxreverse
这一个就是 reverse,即把这句话反过来
print(‘xisraseacsuuxzykx’[::-1])

得到
xkyzxuuscaesarsix
看 T4,它是有空格的,所以这个加密是caesar six,即偏移量为6的凯撒密码

得到restroom
最后还有一个reverse

NSSCTF{moortser}
更新: 2025-04-19 14:19:43
原文: https://www.yuque.com/chaye-apqbl/vsc85q/sl8yh85l5tqrxiyg