hack the box-challenges:Ransom题解

打开题目,看下描述,大概能知道的意思是公司收到了一个自称是来自微软官方的文件,文件名为windows_updata.exe,看起来非常像更新的补丁,因此进行了安装,结果文件都被加密了。
下载下来给的文件,一共包含两个文件,分别是login.xlsx.enc以及windows_update.exe。
在这里插入图片描述
看题目的描述,感觉这是不是被勒索加密了?前面的login.xlsx.enc就是原文件login.xlsx被加密了。因此我们需要知道这个exe文件做了啥。但是问题是,我不会逆向啊!
所以我就去看别人怎么做的,找到了管管上的这个教程。
在这里插入图片描述
有兴趣的可以去搜一下,同时由于需要ghidra等环境,而我又没有,因此我将结合这个视频简单讲讲,事先声明,我不懂逆向,只能说出自己的理解,还望各位批评指正。
使用ghidra重新还原出代码,顺着思路找,最终找到了加密函数encryptFile函数,这个函数如下:
在这里插入图片描述
这个函数定义了四个变量,local_17,local_f,d,c。看第14行知道这个local_c其实是一个控制循环次数的标志位。同时local_17,f,d这三个变量是"SUPERSECURE"这个字符的三个部分。在while循环中,我们应该尝试还原出其中的param_1才对。
可以通过以下代码进行恢复

from pwn import *

key = list(b"SUPERSECURE")
encrypted = read('login.xlsx.enc')

count = 0
flag = []

for byte in encrypted:
    flag.append(byte - key[count % len(key)])
    count = count + 1
   
print(flag)

注意记得安装pwntools。
在运行这个代码后,我们能得到一些正负数,通过使用cyberchef,我们能看出这应该是一个excel文件。哎,到这好像对上了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载下来的xlsx文件,我们打开,拿到了flag

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值