0%

ZIP crack

ZIP密码破解——明文攻击

—— evalsafe group

介绍:

随机计算机性能的提高,很多人可能觉得找到一个zip文件的密码是一件很简单的事情。通常,破解zip文件有三种方法:暴力破解、字典攻击,以及明文攻击。

在介绍这三种方法之前,我先给大家介绍几个工具:

AZPR : http://www.elcomsoft.com

UZPC : http://www.chat.ru/~m53group

PKCrack : http://www.unix-ag.uni-kl.de/~conrad/krypto/pkcrack.html

具体怎么使用,可以参照他们的文档,很详细。当然,你也可以通过搜索引擎选择其他的工具。

  • 第一步
了解目标文件
俗话说,知己知彼,百战不殆。
在进行破解之前,全面了解加密的文件可以帮助我们获得很多有用的信息。比如,用WinRAR(windows)或者‘unzip -l’(linux)命令来?获取压缩包的目录结构,和它所包含的文件信息。你时刻要提醒自己注意>的是,有没有可能知道某个加密文件的部分信息。比如说,一个简单的文本文件(readme.txt),或者通用的dll文件(VBXXX.dll、MFCXX.dll),或者是一个通用的.exe文件(SETUP.EXC)。尽可能的去发现任何你可能发现的东西,这一点非常重要。如果你得不到加密文件里的任何片段,那么很遗憾,你将无法使用明文攻击这一最有效的破解利器。

破解的三种方法:

  • 暴力破解。这是最花时间的一种破解方式,除此之外你还能期待些什么?正如它的名字所表达的,暴力破解就是不断的去尝试所有可能的密码。如果密码比较短,或许在短时间内可以找到正确的密码。但是如果比较长,比如说用64个字符长的字符串来做密码的话,可能你重生十次后发现依然未能找到答案。

  • 字典攻击。相比于暴力破解这种弱智儿童,字典攻击大概就是三岁小孩的智商。它使用了一个字典文件,然后一一尝试文件中的每个密码。现在在网络上有很多的人相互共享自己的字典文件,这使得字典攻击比暴力破解有效率得多。尤其是当目标文件是用一个弱密码进行保护的时候,字典攻击效率较高。但是,由于字典攻击没有囊括所有可能的密码,所以对于强密码保护的zip文件,字典攻击毫无办法。

最有意思的一种方法:

  • 明文攻击。这是到目前为止最智能的一种攻击方法,但只有PKCrack可以做到。眼见为实,你可以亲自尝试一下。但是首先,你需要一些前提条件:
    一个加密的压缩文件
    了解压缩文件的zip版本(比如加密平台、zip版本号等,可以通过文件属性了解。如果是linux平台,用unzip -v命令可以查看一个zip包的详细信息,包括加密算法等。 知道压缩包里某个文件的部分连续内容(至少12字节)
  • 第二步

破解

如果你已经知道加密文件的部分内容,比如在某个网站上发现了它的readme.txt文件,你就可以开始尝试破解了。首先,将这个明文文件打包成zip包,比如将readme.txt打包成readme.zip。打包完成后,需要确认二者采用的压缩算法相同。一个简单的判断方法是用winRAR打开文件,同一个文件压缩后的体积是否相同。如果相同,基本可以说明你用的压缩算法是正确的。如果不同,就尝试另一种压缩算法。

现在,你有了两个文件:

  1. 加密了的目标文件crypt.zip(1.zip)
  2. 你获取到的明文(readme.txt)生成的zip包plain.zip(readme.zip)

假设两个文件的结构如下:
Crypt.zip

-- file1.txt
-- readme.txt

Plain.zip

|– readme.txt

然后,通过控制台调用pkcrack:
pkcrack –c readme.txt –p readme.txt –C 1.zip –P readme.zip -d de.zip

几个参数的意义如下:

-C : 要破解的目标文件(含路径)

-c :破解文件中的明文文件的名字(其路径不包括系统路径,从zip文件一层开始)

-P :压缩后的明文文件

-p : 压缩的明文文件中明文文件的名字(也就是readme.txt在plain.zip中的位置)

如下是一个解密过程的截图:

这里有一个要注意的地方:pkcrack在vista和win7下面无法正常运行,所以请保证操作系统是xp或者linux。

pkcrack还有一个重要的选项是-d,后面跟一个文件名,比如decrypt.zip,表示解密后的zip文件输出。虽然在这个例子中,我没有用到这个选项,但是强烈推荐使用这一选项。如果不用这一选项,解密的时间非常长,而使用这一选项的话,一般只要几分钟。至于为什么不用会变慢,大家可以参照它的readme文档,大概是跟一个叫做findkey的程序有关,这里就不多解释了。

如何简单的避免密码破解呢?
对于明文攻击,最简单有效的方法是进行两次zip加密,这样明文文件的信息就不会暴露在破解者的眼皮底下。对于字典攻击,避免使用弱密码,采用数字加字符的方式生成密码。对于暴力破解,采用7个字符以上的密码就可以让破解者见鬼去了。


资料引用自CSDN


样例测试:

样例下载 XDCTF 2015 MISC 200

链接: http://pan.baidu.com/s/1hqLcqbi 密码: 2nmd

简要测试步骤:

  1. binwalk扫描
  2. foremost提取
  3. 观察CRC32(百科链接)
  4. 提取文件组装
  5. pkcrack破解
    测试图见上文。

xmsec