记一道明文破解的漫长斗争史

相信很多看过我博客的朋友,都记得我曾经写过 Zip 加密文件破解的文章,如果有没看过的读者朋友们参看这里:https://www.cnblogs.com/ECJTUACM-873284962/p/9387711.html

里面提到了明文攻击的手法,当时我做了一下 15 年强网杯的爆破?,我当时通过 ARCHPRpkcrack 两种手段均未成功破解压缩包,上网找相关的 writeup ,未果,我也不知道为啥没成功,时隔三个月,我再次尝试的时候,今早 0:00 的时候,成功地跑出了答案,欲哭无泪~~只能说出题人太过分了,竟然埋下了这个坑。

作为一个目前还在役的 CTF 选手,我会给大家讲解一些有意思的赛题啊,讲解我是如何踩坑的,我又是如何绕过这个坑的。一方面是自我的总结,一方面也是给大家一点学习思路,如何去分析一道赛题,我不会去重复的解读一些基础知识,更多的基础知识请参看 ctf-wiki 上面的内容,目前我是主要负责维护 WebMisc 部分内容。本文也会在后续同步更新到 ctf-wiki 上,当然也欢迎大家一起来 Contribute

ctf-wiki 地址:https://ctf-wiki.github.io/ctf-wiki/

本文给大家带来的赛题是来自 15 年强网杯的爆破?

赛题地址为:https://static2.ichunqiu.com/icq/resources/ctf/qwb/6005400ffa8ecd5053ab56d0f868d198.zip

测试环境

本题我将会从 WindowsLinux 两个系统环境下讲解如何去解决这个问题,我们需要用到的实验环境有:

  • Windows 10 家庭版
  • ARCHPR 4.53
  • Ubuntu 18.04
  • pkcrack 1.2.2

赛题分析

首先我们拿到这样一道题,题目标题为爆破?,很明显这题肯定是要用到一个破解工具,很暴力的说。

第一步、分析压缩包文件

我们下载了这个压缩包以后,我们看到文件名是 *.zip 结尾,我们可以立即想到破解压缩包常用的几种方式,我在博客上都有写过这些,具体参考原文:https://www.cnblogs.com/ECJTUACM-873284962/p/9387711.html。

我们将其压缩包解压出来,发现里面有两个文件,分别为 Desktop.zipreadme.txt ,我们看看 readme.txt 里面写了什么?

打开以后竟然是qianwanbuyaogeixuanshoukandao!!! ,出题人不想让选手看到,这出题人还是有点意思。我们再看看那个 Desktop.zip ,我们可以看到里面有个 readme.txt 文件和 answer 文件夹, answer 文件夹下有 key.txt 文件, flag 应该就藏在这里了。

第二步、分析破解方式

这题目拿到手上,我们首先发现解压出来的文件和Desktop.zip压缩包中都含有同样一个文件 readme.txt ,而且并没有给出其他相关信息,且文件大小大于 12Byte ,我们再对比压缩包中的 readme.txt 和原压缩包中的 readme.txtCRC32 的值,我们发现两个值相同,这说明解压出的 readme.txt 是加密压缩包里的 readme.txt 的明文,于是我们可以大胆地猜测这极可能是个明文加密。

第三步、尝试明文攻击

既然我们已经知道了它是明文攻击的话,我们将对其压缩包进行破解,由于解压出的readme.txt是加密压缩包里的 readme.txt 的明文,将 readme.txt 压缩成 .zip 文件,然后在软件中填入相应的路径即可开始进行明文攻击,这里我们将介绍 WindowsUbuntu 下使用不同的方式进行明文攻击。

方法一、 pkcrack 进行明文攻击

pkcrack 下载链接:https://github.com/flag-porter/CTF-Tools/blob/master/Tools/Crypto/pkcrack/install

我们可以直接写个 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 ../../

把文件保存,改为 pkcrack-install.sh ,然后跑到当前目录下,给它加一个执行权限 x

chmod 777 install.sh

或者直接可以:

chmod u+x install.sh

然后运行 ./pkcrack-install.sh

然后当前目录下会生成一个 bin 的文件夹,我们直接进入 bin 文件夹下,看到有 pkcrack 文件,直接对文件进行明文破解。

./pkcrack -c "readme.txt" -p readme.txt  -C ~/下载/misc/Desktop.zip -P ~/下载/misc/readme.zip -d ~/decrypt.zip

我们所用到的参数选项如下:

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

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

-P:压缩后的明文文件

-p:压缩的明文文件中明文文件的名字(也就是readme.txt在readme.zip中的位置)
-d:指定文件名及所在的绝对路径,将解密后的zip文件输出

至于其他选项参看 ./pkcrack --help

解密后的结果如下:

我们可以看到,我们下午 1:10 开始跑的,下午 3:27 才求解出秘钥。

我们得出了最终的flag为:flag{7ip_Fi13_S0m3tim3s_s0_3a5y@}

坑点来了

看起来一切都很顺利的样子,同样花了两个多小时,为啥我在博客园上写了我跑了两个小时都没跑出来呢?或者说有朋友遇到了和我一样的问题,我明明和你是一样的,为啥我跑不出结果?

你们可能忽略了一些细节问题,有人曾想过原压缩包是通过什么方式压缩的嘛?还有就是我们生成的 readme.zip 又该以哪种方式去生成呢?我就是因为这个问题卡了整整三个月没做出来,不信的话我们可以看看第二种方法,在 Windows 下用 ARCHPR 进行明文攻击。

方法二、ARCHPR进行明文攻击

首先这题我建议大家下 ARCHPR 4.53 版本,我是在这个版本下测试成功的。成功截图如下:

我相信很多朋友在用 ARCHPR 的时候遇到以下这种情况:

我当时内心是崩溃的,为啥会出现这种情况。

在后来的学习中发现,用 7z 压缩的文件得用 7z 来解压缩, 7z 是一种使用多种压缩算法进行数据压缩的档案格式,和传统的 ziprar 相比,它的压缩比率更大,采用的压缩算法不同,自然而然就可能出现不匹配这种情况,所以我们在解压缩原压缩包和对文件进行加密的时候得先分析出题人是用什么方式进行加解密的,所以这题的问题显而易见就出来了,经过验证,我发现出题人是用 7z 进行压缩的。

再尝试

我们已经发现了这个问题,我们去官网下载 7zip :https://www.7-zip.org/

然后我们对原压缩文件用 7z 进行解压缩,然后将 readme.txt 用7z进行压缩即可。然后我们就可以用 ARCHPR 进行明文攻击了。

结果如下:

我们将 Desktop_decrypted.zip 解压出来,查看 answer 目录下的 key.txt 即可。

所以最终的flag为:flag{7ip_Fi13_S0m3tim3s_s0_3a5y@}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏mantou大数据

深入浅出JWT(JSON Web Token )

JSON Web Token(JWT)是一个开放式标准(RFC 7519),它定义了一种紧凑(Compact)且自包含(Self-contained)的方式,用...

64511
来自专栏FreeBuf

直面冥王:最新爆发的C#敲诈木马HadesLocker解读

近日哈勃分析系统捕获到一类由C#语言编写的新的敲诈勒索木马。之前出现 的C#语言编写的木马只是简单地调用了一些C#库来辅助开发。与之相比,这次的变种增加了多层嵌...

2996
来自专栏阮一峰的网络日志

JSON Web Token 入门教程

JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。

2065
来自专栏一直在跳坑然后爬坑

RxJava2操作符之“Debounce”

debounce:防抖; only emit an item from an Observable if a particular time-span has...

2391
来自专栏源码之家

使用神器快速破解Zend及ionCube加密的php文件

1.9K4
来自专栏运维技术迷

Nginx配置SSL证书

前段时间根据老谢写的博文,自己也搞了一个SSL证书,由于虚拟主机权限不够我折腾的,所以就入手了一台新加坡的VPS开始折腾。由于SSL证书是要求独立IP的,所以我...

96710
来自专栏前端黑板报

软件工程师需要了解的网络知识:从铜线到HTTP(五)—— HTTP 和 HTTPS

JohnLui:程序员,Swift Contributor,正在写《iOS 可视化编程与 Auto Layout》 HTTP 在以前的文章中,我大力推荐过《图解...

3667
来自专栏FreeBuf

影响所有Windows版本远程桌面(RDP)应用的CredSSP漏洞分析

在3月13号的微软补丁日中,由Preempt团队发现的Windows凭据安全支持提供协议(CredSSP)高危漏洞CVE-2018-0886被修复,该漏洞为逻辑...

5345
来自专栏信安之路

突破封闭 Web 系统的技巧之正面冲锋

在互联网安全服务公司乙方工作的人或者进行 SRC 众测等相关渗透测试时,经常碰到客户只给一个 "xxx信息管理系统"、"xxx平台"之类的一个 Web 登录界面...

1140
来自专栏ytkah

公众平台调整SSL安全策略 不再支持SSLv2、SSLv3版本

  昨天夜间,微信团队发布重要安全策略调整,将关闭掉SSLv2、SSLv3版本支持,不再支持部分使用SSLv2、 SSLv3或更低版本的客户端调用。请仍在使用这...

6804

扫码关注云+社区

领取腾讯云代金券