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打开文件,同一个文件压缩后的体积是否相同。如果相同,基本可以说明你用的压缩算法是正确的。如果不同,就尝试另一种压缩算法。
现在,你有了两个文件:
- 加密了的目标文件crypt.zip(1.zip)
- 你获取到的明文(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
简要测试步骤:
- binwalk扫描
- foremost提取
- 观察CRC32(百科链接)
- 提取文件组装
- pkcrack破解
测试图见上文。
xmsec