下载得到一张gif图片:
    image.png
    直接看不出来什么东西,先分离下去看看:
    分解出一个压缩包,最终解压套的一层压缩后得到一个后缀为enc的文件
    image.png
    看着后面识别成流量包文件,但是拖进010Editor中发现这不是。后来查了下这个是密码加密后的东西,做过密码题的应该知道。
    然后又分离了下那个temp的压缩包,又发现了很多东西,对于文件还是都要分离下看看有无东西。
    image.png
    里面的东西后缀都是enc。
    然后图片的010Editor中发现有间断的16进制字符串。
    image.png
    复制一段出来后解码:
    image.png
    然后是手动提取出来拼凑:
    先16进制转完
    image.png
    再转Base64后发现是乱码,应该不需要再转Base64了。
    看了wp才知道这是RSA的密钥,只是没有了头尾,不过前面的enc后缀的文件应该能联想到,还是忘了。

    1. -----BEGIN RSA PRIVATE KEY-----
    2. -----END RSA PRIVATE KEY-----

    其实提取图片中的16进制可以不用手动提取,这里又了解了一个Linux下ImageMagick图像转换工具(局限性是只能针对图像文件的格式和特性)
    image.png
    基本的命令格式:

    1. identify [options] input-file
    2. identify:命令名称
    3. options:参数
    4. input-file:文件名

    这里的命令是:

    1. identify -format "%c" A.gif >result.txt

    这里的%c应该是很常用的,换了%x和别的匹配一行。
    得出来的数据:
    image.png
    对于上面分离出来的好多压缩包,开始是准备用Linux下的命令进行解压,但是由于压缩包的内容都一样,但拖到windows上发现里面是不一样的。后来问了问,也没搞清,不过在师傅的提示下,更新了下binwalk,然后最新版本的binwalk分离出来的压缩包会自动解压。
    image.png

    然后把密钥保存进key的文件,进行解密试下:

    1. openssl rsautl -decrypt -inkey key -in partaa.enc -out aa1

    然后就保了如下的错误:
    image.png
    谷歌一番后发现是密钥保存后的文件编码格式为:UTF-8-BOM
    然后把编码修改成UTF-8就好了。
    image.png
    发现解密完后的是jpg,应该是解密拿所有的,最后拼成个图。
    开始试着用Linux下的东西来解决,发现总是出错,最后找到一个师傅的python脚本:

    1. import os
    2. import Crypto.PublicKey.RSA
    3. import Crypto.Cipher.PKCS1_v1_5
    4. path = "D:\download\_temp.zip.extracted"
    5. # 读取所有文件
    6. file = [name for name in os.listdir(path)]
    7. flag = b''
    8. # 载入私钥
    9. cipher = Crypto.Cipher.PKCS1_v1_5.new(Crypto.PublicKey.RSA.importKey(open('D:\Download\key.txt','rb').read()))
    10. for f in file:
    11. message = open(os.path.join(path,f),'rb').read()
    12. flag += cipher.decrypt(message,b'rsa')
    13. open(r'D:\Download\flag.jpg','wb').write(flag)

    最后:
    image.png