R3CTF2025-Forensics-复现

The R3 Pig Problem

数据传输间隔隐写(更像misc

提取tcp流,发现没两个包之间的时间查有规律,随提取,大于0.1s的记为1,小于0.1,在0.02附近的记为0

image-20250708211645182

另存为,然后写代码转化

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import re
import sys

def main():
# 从命令行参数获取文件名
if len(sys.argv) < 2:
print("请将txt文件拖到脚本上执行")
return

filename = sys.argv[1]
result_bits = []

try:
with open(filename, 'r') as file:
for line in file:
# 检查行中是否包含's'(不区分大小写)
if 's' in line.lower():
# 查找第一个s的位置(保留大小写原始位置)
lower_line = line.lower()
s_index = lower_line.find('s')
prefix = line[:s_index] # s之前的部分

# 匹配所有数字(包括小数、负数)
numbers = re.findall(r'[-+]?\d*\.?\d+', prefix)
if numbers:
# 取s之前的最后一个数字
try:
num = float(numbers[-1])
except ValueError:
continue

# 根据规则转换
if num > 0.1:
result_bits.append('1')
elif num < 0.03:
result_bits.append('0')
# 注意:0.03 <= num <= 0.1的情况忽略
except FileNotFoundError:
print(f"错误: 文件 '{filename}' 不存在")
return
except Exception as e:
print(f"处理文件时出错: {e}")
return

print("结果字符串: " + ''.join(result_bits))

if __name__ == "__main__":
main()

image-20250708213007414

image-20250708212959718

r3ctf{th3-thr33-b0dy-pr0blem-h4d-n0-solution}

DFIR 2025 Ⅰ: Lost In Router

当时做的时候被第二个找ip的卡住了,欸,不然可能做出来呢。

Q1) What is the OS version of the router?

23.05.4

image-20250710153218031

Q2) What is the IP address of the attacker’s machine?

156.238.233.47

感觉这个就是去翻一些关键文件夹下的文件,然后就能找到()

在/root/subconverter/cache下有这样一个奇怪的文件

image-20250710153353040

image-20250710153852137

打开后发现是一个反向连接的shell,可知攻击者的ip为156.238.233.47

Q3) What is the CVE number of the vulnerability exploited by the attacker?

cve-2022-28927

由上题,在/root/subconverter/cache下发现的这个文件,猜测和subconverter有关,且应该是文件上传且命令执行一类的cve

去搜一下

image-20250710155538432

image-20250710155715127

比较发现就是这个cve-2022-28927

Q4) What program’s configuration was modify by the attacker to do persistence?

dropbear

在/etc/dropbear下有文件authorized_keys,打开发现是ssh的公钥,并且下边还有ed25519对应的私钥(第二个文件)

image-20250710160842543

利用它们进行了ssh登录 ,猜测是利用dropbear来进行ssh登录从而维持反向shell

Q5) What is the host hijacked by the attacker?

portal.r3.internal

在openwrt的配置文件中,发现

image-20250710163030728

故劫持的host为portal.r3.internal

Q6) What host did the attacker use to host malicious artifacts?

nimble-bonbon-d941a8.netlify.app

在www/luci-static/bootstrap中发现js文件,

image-20250710165332985

打开后发现是被混淆过的

image-20250710170007955

给出了加密的方式jsjiami.com.v7去搜寻解密脚本,echo094/decode-js: JS混淆代码的AST分析工具 AST analysis tool for obfuscated JS code,解混淆后

image-20250710175724959

遂,托管的主机是nimble-bonbon-d941a8.netlify.app