【软件逆向-记一次有趣的木马样本恢复之旅_使用已知明文攻击恢复样本文件】此文章归类为:软件逆向。
文章概要
在整理历史攻击事件的时候偶然翻到以前收藏的木马样本“乌克兰BlackEnergy.zip”,尝试infected、threatbook等常见密码,均解压失败。也就是说,我把解压密码忘记了。不过压缩包里能看到样本的目录结构和文件名,其中文件名直接是哈希值,这让我想到可以通过文件哈希找到样本文件,进而使用已知明文攻击的方法恢复木马样本。在尝试这个思路的过程中有些磕绊,但最终成功恢复。最后的感慨就是,虽然现在CTF比赛环境不太行,但CTF技巧有时候确实有用。
需要恢复的木马样本
乌克兰BlackEnergy.zip,有密码,解不开。


根据文件哈希找木马样本(找已知明文)
在万能的海鲜市场,找大佬帮忙下个样本。

使用已知明文攻击恢复加密的zip包
尝试1:失败,压缩包里有中文路径会导致编码问题
解决方法:直接使用7zip打开压缩包,把中文换掉即可。

尝试2:失败,报错“ciphertext is smaller than plaintext”
解决方法:直接使用7zip用用相同的压缩算法把“已知明文”打包,然后用-P指定即可。这里我将木马文件052ebc9a518e5ae02bbd1bd3a5a86c3560aefc9313c18d81f6670c3430f1d4d4打包为了plain.zip,用的是标准压缩。


尝试3:成功,使用已知明文攻击,先找Keys,然后用自己指定的密码生成一个新压缩包,最后解压获得原始文件。
1 2 3 | bkcrack.exe -C vir.zip -c "Ukraine BlackEnergy/XLS with Macro/052ebc9a518e5ae02bbd1bd3a5a86c3560aefc9313c18d81f6670c3430f1d4d4" -P plain.zip -p 052ebc9a518e5ae02bbd1bd3a5a86c3560aefc9313c18d81f6670c3430f1d4d4
bkcrack -C vir.zip -k 3b39e30c a7a794f5 2d96c0f8 -U vir2.zip "newpass"
|

参数解释
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | -C vir.zip (大写C):
指定目标压缩包(Ciphertext archive)。即那个有密码的 vir.zip。
-c "Ukraine BlackEnergy/.../052ebc..." (小写c):
指定目标压缩包内部的文件路径(Ciphertext entry)。即要拿哪个加密了的文件来做比对。
-P plain.zip (大写P):
指定明文压缩包(Plaintext archive)。
-p 052ebc... (小写p):
指定明文压缩包(plain.zip)内部的文件名(Plaintext entry)。告诉工具,plain.zip 里的哪个文件对应加密包里的那个文件。
-k 3b39e30c a7a794f5 2d96c0f8:
输入第一步计算出来的 3 个内部密钥。
-U vir2.zip "newpass":
Unlock 解锁并重设密码,执行完后,可以直接用 newpass 这个密码打开 vir2.zip。
|
相关功能
1.列出压缩包的详细索引信息(List)
使用这个命令,可以大致知道“已知明文”对应的密文用的是什么压缩算法。

参考
- c79K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6C8K9h3#2U0K9e0R3$3i4K6u0r3j5X3E0U0M7X3q4U0K9H3`.`.
更多【软件逆向-记一次有趣的木马样本恢复之旅_使用已知明文攻击恢复样本文件】相关视频教程:www.yxfzedu.com