如何破解压缩包密码,CTF压缩包处理

您所在的位置:网站首页 压缩包文件密码怎么破译 如何破解压缩包密码,CTF压缩包处理

如何破解压缩包密码,CTF压缩包处理

2024-07-12 21:26| 来源: 网络整理| 查看: 265

I. 引言

压缩包我们经常接触,用于对文件进行压缩存储/传输。压缩包处理在CTF比赛中是非常重要的一块,因为压缩包中可能包含重要信息:许多CTF题目会将关键信息隐藏在压缩包中,参赛者需要解压并查看其中的内容才能获取有用的线索。解密压缩是常见的CTF技能:参赛者需要掌握各种压缩文件格式的解压缩方法和工具,以及如何对压缩包进行加密和解密。压缩包处理可以提高解题效率:如果参赛者能够快速解压和查看压缩包中的文件列表和内容,就可以更快地找到关键信息,提高解题效率。对出题方而言,压缩包处理可以增加题目难度:如果一个CTF题目涉及到多个压缩包或复杂的加密算法,那么它会更加具有挑战性,考验参赛者的技术水平和耐心。

II. 常见的压缩文件格式

平时我们接触到的压缩包,主要有以下类型:zip格式、rar格式、7z格式、tar格式、gzip格式 其中zip和rar是最常见的其余7z、tar、gzip主要在linux上运行,出题常见于zip和rar,接下来我们简单介绍一下zip和rar两种压缩包

Zip压缩包:

典型特征后缀“.zip”,它的MIME格式为application/zip,zip压缩是一种有损压缩格式,即数据会因压缩而有损失,但是这种损失不会明显影响文件的质量。zip格式可以支持多种压缩算法,如存储、缩小、增强、最佳压缩等,可以根据不同的需求进行选择。zip压缩支持加密压缩。 在这里插入图片描述

特点1:数据记录格式:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志 压缩源文件数据库:[文件头+ 文件数据 + 数据描述符] 文件头: 50 4B 03 04 :这是文件头标记(0x04034b50),也可看到是“PK…”开头的 压缩源文件目录区为:50 4B 01 02 压缩源文件目录结束标志:50 4B 05 06 需要注意的加密点,每组四位数字,只和第二个数字有关系。 第二个数字为奇数时 –>加密 第二个数字为偶数时 –>未加密 ① 无加密 压缩源文件数据区的全局加密应当为00 00 (50 4B 03 04两个bytes之后) 且压缩源文件目录区的全局方式位标记应当为00 00(50 4B 01 02四个bytes之后)

② 假加密 压缩源文件数据区的全局加密应当为00 00 且压缩源文件目录区的全局方式位标记应当为09 00

③ 真加密 压缩源文件数据区的全局加密应当为09 00 且压缩源文件目录区的全局方式位标记应当为09 00

RAR压缩包

典型特征“.rar”,rar 文件主要由标记块,压缩文件头块,文件头块,结尾块组成。 RAR 文件头 52 61 72 21 1A 07 00 RAR 文件尾 C4 3D 7B 00 40 07 00 伪加密:RAR的伪加密与ZIP的伪加密原理相同,号称伪加密的关键都是一个指定的位标记字段上。

PS:一般RAR伪加密的压缩包用WinRAR打开时都会显示文件头已损坏

在RAR的第24个字节,也就是010 Editor显示的文件结构中的ubyte PASSWORD_ENCRYPTED字段,修改其字段为1即可实现RAR伪加密。 第24个字节修改位1 或者修改第11个字节,也就是010 Editor显示的文件结构中的ubyte BLOCK_HEADERS_ENCRYPTED字段的值。修改为1即可造成RAR伪加密。 第11个字节修改为1 同理解法就是将其对应位置的值修改为0即可实现伪加密rar破解出来。不过一般rar在CTF中出现较少,重点还是zip的压缩包上面做文章。 了解了一些CTF中最常见压缩包格式,接下里我们分享一下如何做CTF题目。其实压缩包的题目,绝大多数是破解密码,其次是不全文件之类的提醒。

III. 实战演练:解决一个包含压缩包的CTF题目 3.1伪加密

这部分内容在第二章节里面已经讲述了,这里就不多累述了。

3.2 暴力破解

通常使用ARCHPR.exe工具来破解压缩文件,支持类型有zip、rar、ace、arj文件类型 使用场景:windows下加密过的压缩文件。 2.1. 攻击类型选择暴力破解,在范围位置根据提示选择暴力破解范围选项设置暴力破解包含的类型、开始于和结束于选项具体范围,如果没有定义则全范围暴力破解。建议使用1~9位的数字密码,以及系统自带的英文字典作为密码字典。 ARCHPR 进行一些简单的设置,这里不用多讲 暴力破解结果 再这个图里面我们就可以获取到暴力破解的结果,这个结果就是压缩包解密密码。

PS:这里的暴力破解只针对真正加密过的压缩文件,才能进行破解,破解的时间与加密密钥的复杂度有关。对于伪加密类型的压缩包是无法通过这个工具进行破解的。

3.3明文攻击 明文攻击是指:加密的zip文件中你已经知道了这个ZIP加密文件中的七种一个或多个文件,推测出密钥并解密zip文件的攻击方法,相比与暴力破解,这种方法在破解密码较为复杂的压缩包时效率更高。对于zip文件来说,进行明文攻击的条件是:①有一个单独的文件已知且进行压缩之后的CRC值与某个包含此文件的压缩包的CRC值相等;②明文文件的压缩算法一定要和加密的压缩文件的算法一致 +可以看到循环冗余位CRC有一致的 如题: ACTF新生赛2020明文攻击 1.在linux里面binwalk分离文件,但是失败了 在010里面打开图片,,发现尾部存在一个flag.txt,但是缺少一个包头 在这里插入图片描述2.复制完后加上 50 4B,变成一个新的压缩包11.zip,打开后里面有flag.txt 在这里插入图片描述 进行明文攻击,因为压缩包的大小不同,可以用winrar自动进行修复 (因为flag.txt的crc32相同,但是压解压压缩包在asd文件夹中发现有good-已合并.jpg与qwe.zip两个文件,并且qwe.zip文件中flag.txt有密码,研究good-已合并.jpg,用steghide查看文件隐藏内容:steghide info filename缩后的大小都不同!而且res.zip包压缩后大小比较大) 最后用archpr明文攻击跑出flag

总结: 第一步:接下来打开ARCHPR,攻击类型选择明文,明文文件路径选择“未加密的.zip”,即:将明文文件不加密压缩后的文件; 第二步:然后加密文件选择需要破解的zip文件夹; 第三步:选择要破解的文件,点击开始,破解成功后会获得密码;

3.4 CRC32碰撞

CRC本身是“冗余校验码”的意思,CRC32则表示会产生一个32bit (8位十六进制数)的校验值由于CRC32产生校验值时源数据块的每一个bit (位)都参与了计算,所以数据块中即使只有一位发生了变化,也会得到不同的CRC32值,总之每个文件都有唯一的CRC32值,即便数据中一个bit发生变化,也会导致CRC32值不同。若是知道一段数据的长度和CRC32值,便可穷举数据,与其CRC32对照,以此达到暴力猜解的目的。但通常只适用于较小文本文件。zip文件中crc32为未加密文件的校验码,比如这里有一个加密的压缩包,直接双击就可以看见其中信息,而且我知道其中全是数字,便可使用脚本爆破。注:需要linux环境 如题: 题目:MISC60 题目描述:宇宙的一切的答案就是32 1.解题分析 日常binwalk分析图片,发现有32.txt文件,内容如下:

GUYDIQRQGMYDIMCBGAYDAOJQGAYDAMBQGQ7DIOJQIE7DON7FHBBEENK GGQYTEMBQGAYDAMBQGYYDAMBQGAYDANJQGAYDAMBQGY6DERJXGQ6T QNZUGE6TCNRVGE5EIQZXGJCTIOKEIZBDQRCCGMYTMMZRII7UIQKFIM7DE RRZGA7TANCCGA6TAOBXIU5EEQRVIY7DCMRQGAYDAMBQGA6DAMBQGAYD ANJQGRBDAMZQGQYECMBQGA5TAMBQGAYDANJTGQ5TAQJUG4BTQNZUIF AUCNJRGIYDAMBQGAYDANRQGAYDAMBQGA7TAMBQGAYDANSDGJCTONB XHA6TIMJXGE6DKMJYIRBTOMSFGQ5UIRSCHBCEEMRWGFBECQJSGRBTMQ JWINBDGQRVGA7EEMBXGA5EGOBXGRAUCQJVGEZDAMBQGAYDAMBWGAY DAMBQGA7TANCCGAZTANBQIEYDAMBZGAYDAMBQGAZTINRSGBATINZUGV CDMMBQIMYTCMRQGAYDAMBQGA6DAMBQGAYDAMBVGAYDAMBQGA6DCM SFG57DOOBXGQYTOMJWGUYTQRCDG5ZEKNBZIRDEEOCEII7DCNCBGAZTE QJSGU6UERJSIY5TKMBUIIYDOMBYGQ7UINRQGBBTCMJSGAYDAMBQGAYD MMBQGAYDAMBVGA7EEMBTGA7DAQJQGAYDSMBQGAYDAMBXIQ7DSMCBG Q6TMNBSINBECRKFGEZDAMBQGAYDAMBWGAYDAMBQGAYDKMBQGAYDAM BWG5ZEKNZUG55DONBRG5YTMNJRHBCEGNZSIU7DSRCGII5EIQRQHAYECM BWGZDEMMBSIZDEKQZVGUYDIQRQG5YDQNRUGJBUEQKFIUYTEMBQGAYD AMBQGYYDAMBQGAYDKMBUIIYDCMBSGE7DAMBQIEYDAMBZGAYDAMBQGA 7DINBZGBATINZXIU5EEQRVIY7DCMRQGAYDAMBQGA6DAMBQGAYDAMBVGA YDAMBQGAYDAMBQGAYDAMBQGEYDAMRQGAYDAMBQGAYDAMBQGAYDA MBWGYZEKNZUG55DONBVGA7EEMBRGAZDCNBQGAYECMBQGA5TAMBQGA YDANJTGQ5TAQJUG4BTQNZUIFAUCNJRGIYDAMBQGAYDANRQGAYDAMBQG A7TAMBQGAYDAMBQGAYDAMBQGAYDCMBQGIYDAMBQGAYDANBVGAYDAM BQGA6EGMSFG57DOOBXGQ7TANCCGAYTAMRRGQYDAMCBGAYDAOJQGAY DAMBQGM7DMMRQIE7DONBVIQ6DAMCDGEYTEMBQGAYDAMBQGYYDAMBQ GAYDANJQGAYDAMBQGAYDAMBQGAYDAMBRGAYDEMBQGAYDAMBQHBATA MBQGAYDANRRGJCTONBXHA6TINJQGRBDAMJQGIYTIMBQGBATAMBQHEYD AMBQGAYDORBUHEYECNBXGY7DEQ7CIFCUKMJSGAYDAMBQGAYDMMBQG AYDAMBQGUYDAMBQGAYDAMBQGAYDAMBQGAYTAMBSGAYDAMBQGAYEG RRQGAYDAMBQGY6TERJXGQ6TQNZUGUYDIQRQGUYDMMBQGAYDAMBQGA YDIMBQGA7DAMCDIMYDAMBQGAYDCNBQGEYDAMBQGAYDAMA=

观察字符包含大写字母和数字4-7,判断其为base32加密,解密后结果如下:

# 第一组 文件头+文件数据+数据描述(共69字节) 504B0304 0A00 0900 0000 4>49 0A>7 7\xe58BB5F4 12000000 06000000 0500 0000 62F90 ?04B0=08 7E:BB5F> 12000000 0 0A00 0900 0000 7D>9 0A4= 642CBAEE 12000000 06000000 05000000 67rE747z74 17q6518DC72E>9DFB:DB080A066FF02FFEC5 504B07p8 642CBAEE 12000000 06000000 # 第一组核心目录头(共51字节) 504B0102 1>00 0A00 0900 0000 >449 0A47 7E:BB5F> 12000000 0B0102 1400 0A00 0;00 0000 534; 0A47 \x03874AAA5 12000000 06000000 0?00 0000 0000 0000 0100 20000000 45000000 62 0A>7 45D2C\xe2AEE 12000000 06000000 0500 0000 0000 0000 0100 20000000 CF000000 6=2E74=874 # 核心目录记录结束 504B0506 0000 0000 0400 0>00 CC000000 14010000 0000

根据对应数据相等,得到?:5,=:7,>:4,::8,



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3