编辑“︁
ZIP格式
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
=== 明文攻击 === <span id="原理-1"></span> ==== 原理 ==== * 一个加密的压缩文件 * 压缩文件的压缩工具,比如 <code>2345</code> 好压, <code>WinRAR</code> , <code>7z</code> 。 <code>zip</code> 版本号等,可以通过文件属性了解。如果是 <code>Linux</code> 平台,用 <code>zipinfo -v</code> 可以查看一个 <code>zip</code> 包的详细信息,包括加密算法等 * 知道压缩包里某个文件的部分连续内容(至少 <code>12</code> 字节) 如果你已经知道加密文件的部分内容,比如在某个网站上发现了它的 <code>readme.txt</code> 文件,你就可以开始尝试破解了。 首先,将这个明文文件打包成 <code>zip</code> 包,比如将 <code>readme.txt</code> 打包成 <code>readme.zip</code> 。 打包完成后,需要确认二者采用的压缩算法相同。一个简单的判断方法是用 <code>WinRAR</code> 打开文件,同一个文件压缩后的体积是否相同。如果相同,基本可以说明你用的压缩算法是正确的。如果不同,就尝试另一种压缩算法。 ==== 工具 ==== * Windows下的神器 [http://www.downcc.com/soft/130539.html ARCHPR] * Linux下的 [http://www.unix-ag.uni-kl.de/~conrad/krypto/pkcrack.html PKCrack] !!! note 建议使用 <code>Windows</code> 的 <code>ARCHPR</code>,一是速度较快,二是较稳定(之前出题时遇到过用 <code>PKCrack</code> 爆不出来的情况)。 <span id="例题-1"></span> ==== 例题 ==== <blockquote>2015广州强网杯:爆破? WP:https://www.cnblogs.com/ECJTUACM-873284962/p/9884416.html </blockquote> 首先我们拿到这样一道题,题目标题为'''爆破?''',很明显这题肯定是要用到一个破解工具,很暴力的说。 '''第一步、分析压缩包文件''' 我们下载了这个压缩包以后,我们看到文件名是 *'''.zip''' 结尾,我们可以立即想到破解压缩包常用的几种方式,我们将其压缩包解压出来,发现里面有两个文件,分别为 <code>Desktop.zip</code> 和 <code>readme.txt</code> ,我们看看 <code>readme.txt</code> 里面写了什么? [[File:./figure/readme.png|readme]] 打开以后竟然是<code>qianwanbuyaogeixuanshoukandao!!!</code> ,出题人不想让选手看到,这出题人还是有点意思。我们再看看那个 <code>Desktop.zip</code> ,我们可以看到里面有个 <code>readme.txt</code> 文件和 <code>answer</code> 文件夹, <code>answer</code> 文件夹下有 <code>key.txt</code> 文件, <code>flag</code> 应该就藏在这里了。 '''第二步、分析破解方式''' 这题目拿到手上,我们首先发现解压出来的文件和 <code>Desktop.zip</code> 压缩包中都含有同样一个文件 <code>readme.txt</code> ,而且并没有给出其他相关信息,且文件大小大于 <code>12Byte</code> ,我们再对比压缩包中的 <code>readme.txt</code> 和原压缩包中的 <code>readme.txt</code> 的 <code>CRC32</code> 的值,我们发现两个值相同,这说明解压出的 <code>readme.txt</code> 是加密压缩包里的 <code>readme.txt</code> 的明文,于是我们可以大胆地猜测这极可能是个明文加密。 [[File:./figure/compare.png|compare]] '''第三步、尝试明文攻击''' 既然我们已经知道了它是明文攻击的话,我们将对其压缩包进行破解,由于解压出的readme.txt是加密压缩包里的 <code>readme.txt</code> 的明文,将 <code>readme.txt</code> 压缩成 '''.zip''' 文件,然后在软件中填入相应的路径即可开始进行明文攻击,这里我们将介绍 <code>Windows</code> 和 <code>Ubuntu</code> 下使用不同的方式进行明文攻击。 方法一、 <code>pkcrack</code> 进行明文攻击 <code>pkcrack</code> 下载链接:https://www.unix-ag.uni-kl.de/~conrad/krypto/pkcrack.html 我们可以直接写个 <code>shell</code> 脚本下载就好了: <syntaxhighlight lang="shell">#!/bin/bash -ex wget https://www.unix-ag.uni-kl.de/~conrad/krypto/pkcrack/pkcrack-1.2.2.tar.gz tar xzf pkcrack-1.2.2.tar.gz cd pkcrack-1.2.2/src make mkdir -p ../../bin cp extract findkey makekey pkcrack zipdecrypt ../../bin cd ../../</syntaxhighlight> 把文件保存,改为 <code>pkcrack-install.sh</code> ,然后跑到当前目录下,给它加一个执行权限 <code>x</code> 。 <syntaxhighlight lang="shell">chmod 777 install.sh</syntaxhighlight> 或者直接可以: <syntaxhighlight lang="shell">chmod u+x install.sh</syntaxhighlight> 然后运行 <code>./pkcrack-install.sh</code> [[File:./figure/install-pkcrack.png|install-pkcrack]] 然后当前目录下会生成一个 <code>bin</code> 的文件夹,我们直接进入 <code>bin</code> 文件夹下,看到有 <code>pkcrack</code> 文件,直接对文件进行明文破解。 <syntaxhighlight lang="shell">./pkcrack -c "readme.txt" -p readme.txt -C ~/下载/misc/Desktop.zip -P ~/下载/misc/readme.zip -d ~/decrypt.zip</syntaxhighlight> 我们所用到的参数选项如下: <syntaxhighlight lang="shell">-C:要破解的目标文件(含路径) -c:破解文件中的明文文件的名字(其路径不包括系统路径,从zip文件一层开始) -P:压缩后的明文文件 -p:压缩的明文文件中明文文件的名字(也就是readme.txt在readme.zip中的位置) -d:指定文件名及所在的绝对路径,将解密后的zip文件输出</syntaxhighlight> 至于其他选项参看 <code>./pkcrack --help</code> 解密后的结果如下: [[File:./figure/pkcrack-to-flag-01.png|pkcrack-to-flag]] [[File:./figure/pkcrack-to-flag-02.png|pkcrack-to-flag]] [[File:./figure/pkcrack-to-flag-03.png|pkcrack-to-flag]] [[File:./figure/pkcrack-to-flag-04.png|pkcrack-to-flag]] 我们可以看到,我们下午 <code>1:10</code> 开始跑的,下午 <code>3:27</code> 才求解出秘钥。 我们得出了最终的flag为:'''<code>flag{7ip_Fi13_S0m3tim3s_s0_3a5y@}</code>''' '''坑点来了''' 看起来一切都很顺利的样子,同样花了两个多小时,为啥我在博客园上写了我跑了两个小时都没跑出来呢?或者说有朋友遇到了和我一样的问题,我明明和你是一样的,为啥我跑不出结果? 你们可能忽略了一些细节问题,有人曾想过原压缩包是通过什么方式压缩的嘛?还有就是我们生成的 <code>readme.zip</code> 又该以哪种方式去生成呢?我就是因为这个问题卡了整整三个月没做出来,不信的话我们可以看看第二种方法,在 <code>Windows</code> 下用 <code>ARCHPR</code> 进行明文攻击。 方法二、 <code>ARCHPR</code> 进行明文攻击 首先这题我建议大家下 <code>ARCHPR 4.53</code> 版本,我是在这个版本下测试成功的。成功截图如下: [[File:./figure/success.jpg|success]] 我相信很多朋友在用 <code>ARCHPR</code> 的时候遇到以下这种情况: [[File:figure/error.png|error]] 我当时内心是崩溃的,为啥会出现这种情况。 在后来的学习中发现,用 <code>7z</code> 压缩的文件得用 <code>7z</code> 来解压缩, <code>7z</code> 是一种使用多种压缩算法进行数据压缩的档案格式,和传统的 <code>zip</code> , <code>rar</code> 相比,它的压缩比率更大,采用的压缩算法不同,自然而然就可能出现不匹配这种情况,所以我们在解压缩原压缩包和对文件进行加密的时候得先分析出题人是用什么方式进行加解密的,所以这题的问题显而易见就出来了,经过验证,我发现出题人是用 <code>7z</code> 进行压缩的。 '''再尝试''' 我们已经发现了这个问题,我们去官网下载 <code>7zip</code> :https://www.7-zip.org/ 然后我们对原压缩文件用 <code>7z</code> 进行解压缩,然后将 <code>readme.txt</code> 用7z进行压缩即可。然后我们就可以用 <code>ARCHPR</code> 进行明文攻击了。 结果如下: [[File:./figure/attack-success.png|attack-success]] 我们将 <code>Desktop_decrypted.zip</code> 解压出来,查看 <code>answer</code> 目录下的 <code>key.txt</code> 即可。 所以最终的flag为:'''<code>flag{7ip_Fi13_S0m3tim3s_s0_3a5y@}</code>'''
摘要:
请注意,所有对gamedev的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Gamedev:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息