压缩包相关

1
2
bandizip(虚拟机使用) #修复压缩包、密码恢复
zip2john a.zip > hash.txt

真加密:FILERECORDDIRENTRYdeFlags均为奇数。

已知明文攻击

判断压缩工具:deVersionMadeBy

Bandizip 7.06 20
Windows自带 20
WinRAR 4.20 31
WinRAR 5.70 31
7-Zip 63

注意:7-zip压缩要右键选择添加到name.zip,如果选择添加到压缩包压缩等级需要选择标准压缩!!!

传统已知明文攻击

windows使用ARCHPR,Linux使用pkcrack

  • 完整的明文文件
  • 明文文件需要被相同的压缩算法标准压缩(也可理解为被相同压缩工具压缩)
  • 明文对应文件的加密算法需要是 ZipCrypto Deflate /Store

已知少部分明文字节

bkcrackrbkcrack(优先使用)

  • 至少已知明文的12个字节及偏移,其中至少8字节需要连续。
  • 明文对应的文件加密方式为ZipCrypto Store

1.文本格式,已知:*lag{16e3********************74f6********

1
2
3
echo -n "lag{16e3" > plain1.txt
echo -n "74f6" | xxd
rbkcrack -C flag_360.zip -c flag.txt -p plain1.txt -o 1 -x 29 37346636

2.png文件头

1
2
echo 89504E470D0A1A0A0000000D49484452 | xxd -r -ps > png_header
rbkcrack -C png4.zip -c 2.png -p png_header -o 0 

3.利用压缩包格式,名为flag.txt的文件打包成ZIP压缩包后,文件名称会出现在压缩包文件头中,且偏移固定为30。

1
2
echo -n "flag.txt" > plain1.txt
rbkcrack -C test5.zip -c flag.zip -p plain1.txt -o 30  -x 0 504B0304

4.exe格式

1
2
echo -n "0E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000" | xxd -r -ps > mingwen
rbkcrack -C nc64.zip -c nc64.exe -p mingwen -o64

5.流量包pcapng格式

1
2
echo -n "00004D3C2B1A01000000FFFFFFFFFFFFFFFF" | xxd -r -ps > pcap_plain1
rbkcrack -C 3.zip -c capture.pcapng -p pcap_plain1 -o 6

6.网站相关文件格式

1
2
echo -n '<?xml version="1.0" encoding="UTF-8"?>' > xml_plain
rbkcrack -C xml.zip -c 123/web.xml -p xml_plain -o 0

得到key以后

1
>D:\ctf\tools\misc\rbkcrack-0.2.1\rbkcrack.exe -C flag_360.zip -c flag.txt  -k b21e5df4 ab9a9430 8c336475 -d flag.txt

若想解密2.png,由于是ZipCrypto deflate加密的,所以解密后需要bkcrack/tool内的inflate.py脚本再次处理,或ARPZ已知明文选项解压。

1
2
>D:\ctf\tools\misc\rbkcrack-0.2.1\rbkcrack.exe -C test5.zip -c 2.png -k b21e5df4 ab9a9430 8c336475  -d 2.png
python3 D:\ctf\tools\misc\bkcrack-1.3.3-win64\tools\inflate.py < 2.png > 2_out.png

7-zip

cRARk for 7-Zip

1
2
#password格式定义参见:cRARk-7z.html
D:\ctf\tools\misc\crark7z-20\crark-7z -pcrackme.def -l6 -g8 crark7z-20.7z