freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

CTF解题技能之压缩包分析基础篇
交个朋友 2019-04-02 17:03:18 1525348


压缩包分析在CTF中也是常见的题型,斗哥今天就和大伙来聊聊压缩包的解题思路。斗哥把常见的压缩包分析题目以下图方式进行分类:

分类.webp.jpg

今天斗哥主要介绍压缩包基础分析及伪加密分析的解题思路。


基础知识

有些出题者通过压缩包本身的一些基础信息来出一些简单的题目或是作为复杂杂项题的辅助,接下来斗哥就先介绍介绍RAR和ZIP的文件格式。

1.RAR

RAR是有四个文件块组成的,分别是分别是标记块、归档头部块、文件块、结束块,这些块之间没有固定地先后顺序,但要求第一个块必须是标志块并且其后紧跟一个归档头部块。每个块都包含以下内容:

内容.webp.jpg


归档头部块和文件块的内容较多,斗哥仅列出每个块头部内容:

列出.webp.jpg


RAR的标记块和结束块都是固定的7字节序列,分别为0x52 61 72 21 1A 07 00和0xC4 3D 7B 00 40 07 00。文件块这边要注意一下HEAD_FLAGS这个头部,其中HEAD_FLAGS的低三位代表加密标志,此位若被置为1,则文件使用了基于密钥的加密。

2. ZIP

通常情况下,我们用到的ZIP文件格式如下:

压缩源文件数据区[文件头+文件数据+数据描述符]{此处可重复多次}+核心目录+目录结束标识

当压缩包中有多个文件时,就会有多个[文件头+文件数据+数据描述符]。 

压缩源文件数据区记录着压缩的所有文件的内容信息,每个压缩文件都由文件头、文件数据、数据描述符三部分组成,在这个数据区中每一个压缩的源文件/目录都是一条记录。ZIP的文件头标识固定为0x50 4B 03 04,文件数据记录了相应压缩文件的数据,数据描述符仅在文件头中通用标记字段的第3bit设为1时才会出现。 

核心目录区记录了压缩文件的目录信息,在这个数据区中每一条纪录对应在压缩源文件数据区中的一条数据。核心目录区的标记为0x 50 4B 01 02。其中若通用位标记(General purpose bit flag)置为1,则表示该文件加密。如有多个文件就会有多个通用位标记。 

目录结束标识存在于整个归档包的结尾,用于标记压缩的目录数据的结束。核心目录结束标记0x50 4B 05 06 。

上面就是对基础知识的一点总结,接下来,我们举个栗子瞧瞧CTF会怎么出题:

1.题目为一个RAR压缩包。

压缩包.webp.jpg

2.解压后发现为一个TXT,然而flag并没有在TXT中。

TXT.webp.jpg

3.将RAR拖进010editor,发现还有一个文件secret.png没有解压成功。

解压.webp.jpg


4.检查RAR文件头和文件尾都没有发现问题。

问题 1.webp.jpg问题  2.webp.jpg


5.通过上面的知识点我们可以发现png的图片压缩的文件头有问题,文件块的HEAD_TYPE应该是0x74而不是0x7A。

05.webp.jpg


6.可成功解压图片。

06.webp.jpg

压缩包经常被隐写于图片或其他文件中,可以通过文件分离方式进行解题,常见的binwalk文件分离工具或者使用010editor其实都基于识别文件头后进行文件分离。 
再举个栗子:

1.拿到一个压缩包后先进行解压,发现一个word文档,打开文档发现只有一张图片,按照常规进行排查,查看有没有隐藏文字之类的,发现没有什么东西。

东西.webp.jpg

2.将word拖进010editor进行查看,发现文件头为504B0304,是ZIP的文件头。

文件头.webp.jpg


3.将word的后缀改为zip,可成功解析。

解析.webp.jpg


4.逐个文件夹进行查看,发现flag。

个 1.webp.jpg个 2.webp.jpg

伪加密

伪加密就是在对应的加密标志位做修改,进而再打开文件时识被别为加密压缩包。上面在讲到文件格式的时候,提到RAR文件块的HEAD_FLAGS和ZIP的核心目录区的通用位标记,这两个就是伪加密的切入点。当拿到文件时,如果压缩文件是加密的,或文件头正常但缺无法正常解压,可先考虑是否为伪加密。通过将标志位修改为0便可解密压缩包。 

举个栗子: 
1.由流量分析得到一个ZIP压缩包,进行解压缺发现解压报错。

报错.webp.jpg


2.将压缩包拖进010editor,发现文件头正常,猜测是伪加密。

加密.webp.jpg


3.搜索504B0102.将所有文件头的第9位和第10位改为0。

0.webp.jpg


4.可成功解压出4个TXT。

解压.webp.jpg


好啦,斗哥的压缩包分析的基础篇就到这里啦,下次继续介绍暴力破解、明文攻击及CRC32的相关解题思路。

qrcode_for_gh_223e082fe8a7_430.jpg

# CTF解题技能 # 压缩包分析
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 交个朋友 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
从0到1学技术
CTF自学
MISC
MISC
交个朋友 LV.3
这个号主要用来交个朋友
  • 81 文章数
  • 448 关注者
全网最全的Cobalt Strike使用教程-进阶篇
2021-09-28
全网最全的Cobalt Strike使用教程系列-基础篇
2021-09-27
“百香果”内网安全沙盘2.0bate版使用指南-进阶篇
2021-04-28