数据安全 - 逆向区

Encryptedfile

给了个加密程序以及一个加密的图片flag.png.enc

试一下就是这款软件对他进行加密、

那么只需要了解加密原理就能够逆出原程文件了

因为打过另一个数字人才挑战赛, 感觉就是和那道题差不多

详情请看我另一篇数据中国的题目解析

image-20230426191448375

拖入ida64分析

FindCrypt 发现是 salsa20加密

image-20230426191649597

salsa20加密原理如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 导入相关库和常量
from Crypto.Cipher import Salsa20
from Crypto.Random import get_random_bytes

KEY_SIZE = 32 # 密钥长度
IV_SIZE = 8 # 初始化向量长度

# 加密函数
def salsa20_encrypt(key, data):
# 生成随机的初始化向量
iv = get_random_bytes(IV_SIZE)
# 使用Salsa20算法进行加密
cipher = Salsa20.new(key=key, nonce=iv)
ciphertext = cipher.encrypt(data)
# 将初始向量和密文返回
return iv + ciphertext

# 解密函数
def salsa20_decrypt(key, data):
# 取出初始化向量
iv = data[:IV_SIZE]
# 取出密文部分
ciphertext = data[IV_SIZE:]
# 使用Salsa20算法进行解密
cipher = Salsa20.new(key=key, nonce=iv)
plaintext = cipher.decrypt(ciphertext)
# 返回解密后的明文
return plaintext

然后题目附件可以看出需要暴破密钥

贴exp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from Crypto.Cipher import Salsa20
import itertools

# Salsa20算法要求密钥长度必须为32字节、初始向量长度必须为8字节

with open("./flag.png.enc", "rb") as f:
buffer = f.read()
s = '0123456789'
for i in itertools.product(s, repeat=4):
key = ''.join(i)
key = key.ljust(32, "\x00").encode()
for j in range(100):
iv = bytes([j] * 8)
ciphey = Salsa20.new(key=key, nonce=iv)
plain = ciphey.decrypt(buffer)
if b'PNG' in plain[:4]:
with open("./flags.png", "wb") as f:
f.write(plain)

image-20230426191839144

crackme

使⽤ IDA Pro 分析程序,观察到机器码为 666666666666,并将其修改为题⽬需要更改的编码 码’1653643685031597’。

接着,使⽤FindCrypt⼯具发现许多变量都与 MD5 算法相关,于是调试程序以查看具体的函数实现。

发现这两个函数是 MD5 的 digest 实现函数,进⼀步分析发现后⾯的函数实际上是实现 MD5 hash 的。

经过多次调试和分析,发现在加密后的函数中,key 值为 1228240365737281。

flag{1228240365737281}

image-20230426191941623

数据分析 - 取证区

Bad Hole. 1

题目分析得知

有个包名(也就是恶意软件)入侵了手机

但被删除了

所以 用 DiskGenius打开

恢复文件

经过查找 找到了被删除的软件,(其实也可以看出就这个包被删除的一干二净了)

image-20230426193249682

com.csgroup.terminal 然后MD5

Bad Hole.2

题目要求寻找 执行恶意软件操作的第一条指令

上一问发现了恶意软件的名字

image-20230426193631952

打开kali

strings data.vmdk | grep "sfzs.apk"

得到答案

image-20230426193901950

Bad Hole.4

文件恢复 最下面那张

image-20230426193437507

image-20230426193415738