Logo
Overview

取证记录:平航杯

April 23, 2025
浏览量--
💡
看了题目背景,感觉是个好玩的东西。
😱
故事梗概:爱而不得,进而由爱生恨。作为有黑客背景的他,激发出了强烈的占有欲,虽然不能在真实物理世界成为她的伴侣,但在虚拟世界里,他执着的要成为她的主宰,于是,我们的故事开始了……。手机,电脑,服务器,木马,AI,Iot设备……无一幸免的都成为他的作案工具或目标,但最终在诸位明察秋毫的取证达人面前,都无处遁形,作恶者终将被绳之以法。追悔莫及的他最后终于明白,其实真正的爱,不是占有,而是放手!!!
🥲
由于环境配置问题,部分题目没有解出。
TEXT
题目描述
"2025年4月,杭州滨江警方接到辖区内市民刘晓倩(简称:倩倩)报案称:其个人电子设备疑似遭人监控。经初步调查,警方发现倩倩的手机存在可疑后台活动,手机可能存在被木马控制情况;对倩倩计算机进行流量监控,捕获可疑流量包。遂启动电子数据取证程序。

警方通过对倩倩手机和恶意流量包的分析,锁定一名化名“起早王”的本地男子。经搜查其住所,警方查扣一台个人电脑和服务器。技术分析显示,该服务器中存有与倩倩设备内同源的特制远控木马,可实时窃取手机摄像头、手机通信记录等相关敏感文件。进一步对服务器溯源,发现“起早王”曾渗透其任职的科技公司购物网站,获得公司服务器权限,非法窃取商业数据并使用公司的服务器搭建Trojan服务并作为跳板机实施远控。
请你结合以上案例并根据相关检材,完成下面的勘验工作。"

检材:
window.e01                            
20250415_181118.zip        
export-disk0-000002.vmdk   
BLE                                     
USBPcap
TEXT
通过网盘分享的文件:平航杯题目
链接: https://pan.baidu.com/s/1W_qpPBywESchS2UCovFgYA?pwd=njf7 提取码: njf7 
--来自百度网盘超级会员v6的分享
MD5: 6F3AE91C3152E8394B2E743FB2C75CCE
大小: 75161927680 字节
(是一个veracrypt加密,密钥是 早起王的爱恋日记❤   

计算机题目

计算机插入过usb序列号是什么

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR
Image

便签里有几条待干

安装上就有了。
Image

起早王的计算机默认浏览器是什么

Image
是MSEDGE

起早王在浏览器里看过什么小说

Image

起早王计算机最后一次正常关机时间

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Windows
Image

起早王开始写日记的时间(

看下逻辑就能逆了吧(
currentuser下的.rednotebook就是
Image
那那还是很有生活的。(2025/03/03)

SillyTavern中账户起早王的创建时间是什么时候(格式:2020/1/1 01:01:01)

Image
PYTHON
> node
Welcome to Node.js v21.7.1.
Type ".help" for more information.
> new Date(1741607525472)
2025-03-10T11:52:05.472Z

SillyTavern中起早王用户下的聊天ai里有几个角色(格式:1)

Image

SillyTavern中起早王与ai女友聊天所调用的语言模型(带文件后缀)(格式:xxxxx-xxxxxxx.xxxx)

Image
Image
另外这里值得注意的一点是,这里给出了bitlocker的密码。
Image

电脑中ai换脸界面的监听端口(格式:80)

Image

电脑中图片文件有几个被换过脸(格式:1)

这里是在D盘(bitlocker加密了)

最早被换脸的图片所使用的换脸模型是什么(带文件后缀)(格式:xxxxxxxxxxx.xxxx)

同样D盘有信息的。
inswapper_128_fp16.onnx

neo4j中数据存放的数据库的名称是什么(格式:abd.ef)

neo4j数据库中总共存放了多少个节点(格式:1)

neo4j数据库内白杰的手机号码是什么(格式:12345678901)

分析neo4j数据库内数据,统计在2025年4月7日至13日期间使用非授权设备登录且登录地点超出其注册时登记的两个以上城市的用户数量(格式:1)

起早王的虚拟货币钱包的助记词的第8个是什么(格式:abandon)

这个似乎是日记里说的,
PYTHON
搞了个钱包,助记词老是要忘记掉怎么办,要不放在输入法里试试。
微软输入法自定义短语里可以看到。但是我还是没有 配好环境。。
Image
于是draft。

起早王的虚拟货币钱包是什么(格式:0x11111111)

直接恢复钱包。
0xd8786a1345cA969C792d9328f8594981066482e9

起早王请高手为倩倩发行了虚拟货币,请问倩倩币的最大供应量是多少(格式:100qianqian)

Image

起早王总共购买过多少倩倩币(格式:100qianqian)

521

起早王购买倩倩币的交易时间是(单位:UTC)(格式:2020/1/1 01:01:01)

Image

AI题目

这里看题解说是前三个就骗一骗AI就行。环境没打好呜呜。

分析crack文件,获得flag1(格式:flag1{123456})

分析crack文件,获得flag2(格式:flag2{123456})

分析crack文件,获得flag3(格式:flag3{123456})

分析crack文件,获得flag4(格式:flag4{123456})

手机题目

该检材的备份提取时间(UTC)(格式:2020/1/1 01:01:01)

Image
额真是文件名吗?减8是utc时间。

分析倩倩的手机检材,手机内Puzzle_Game拼图程序拼图APK中的Flag1是什么(格式:xxxxxxxxx)

Image
丢到手机上frida直接hook好了。
JAVASCRIPT
function getFlag() {
    let AESUtil = Java.use("com.example.puzzlegame.util.AESUtil").$new();
    console.log(AESUtil.decryptFlag());
  }
  
  function main() {
    Java.perform(() => {
      getFlag();
    })
  }
  
  setImmediate(main)
Image

分析手机内Puzzle_Game拼图程序,请问最终拼成功的图片是哪所大学(格式:浙江大学)

社工吧。
Image

木马app是怎么被安装的(网址)(格式:http://127.0.0.1:1234/)

参考这篇:
可以写一个简单的解压脚本。
JAVASCRIPT
r = open("DATA/浏览器(com.android.browser).bak","rb").read()
idx = r.find(b"none\n") + 5
r = r[idx:]
open("1.tar","wb").write(r)
可以再里面找到这个。加上文件名就是了。
Image

检材内的木马app的hash是什么(格式:大写md5)

那就是这个文件的md5了
Image

检材内的木马app的应用名称是什么(格式:Baidu)

com.example.reverseshell

检材内的木马app的使用什么加固(格式:腾讯乐固)

点开看一眼文件有个secshell,邦邦加固没跑了

检材内的木马软件所关联到的ip和端口是什么(格式:127.0.0.1:1111)

https://56.al/ 上传看看
可以下下来一个dex。
Image

该木马app控制手机摄像头拍了几张照片(格式:1)

(见服务器/tmp/ratlog.txt)
Image

木马APP被使用的摄像头为(格式:Camera)

Image

木马APK通过调用什么api实现自身持久化(格式:JobStore)

Image

根据倩倩的身份证号请问倩倩来自哪里(格式:北京市西城区)

服务器里有张图片310104200108110624
卧槽上海宁

此手机检材的IMEI号是多少(格式:1234567890)

貌似在那个备份包里搜imei能找到。没试过喵

exe逆向题目(hint:运行后请多等一会)(笔者:千万不要运行)

GIFT.EXE吧。IDA看了眼是个pyinstaller。
提取解密两把梭(雾:
源代码:
PYTHON
# Decompiled with PyLingual (https://pylingual.io)
# Internal filename: gift_builder.py
# Bytecode version: 3.10.0rc2 (3439)
# Source timestamp: 1970-01-01 00:00:00 UTC (0)

import os
import sys
import shutil
import zipfile
import tempfile
import base64
import zlib
import subprocess
import tkinter as tk
from tkinter import simpledialog, messagebox
PASSWORD = '20010811'
PACKED_DATA = b'....' # 太大了,这里放不下
def extract_and_run(packed_data):
    """解压并运行文件"""
    try:
        data = zlib.decompress(base64.b64decode(packed_data))
        extract_dir = os.path.join(tempfile.gettempdir(), 'gift_extracted')
        if os.path.exists(extract_dir):
            shutil.rmtree(extract_dir)
        os.makedirs(extract_dir)
        temp_zip = os.path.join(extract_dir, 'packed.zip')
        with open(temp_zip, 'wb') as f:
            f.write(data)
        with zipfile.ZipFile(temp_zip, 'r') as zipf:
            zipf.extractall(extract_dir)
        for file in os.listdir(extract_dir):
            if file.lower().endswith('.exe'):
                exe_path = os.path.join(extract_dir, file)
                subprocess.Popen([exe_path])
        return True
    except Exception as e:
        messagebox.showerror('错误', '解压或运行出错: {e}')
        return False

def main():
    root = tk.Tk()
    root.withdraw()
    password = simpledialog.askstring('密码', '我将永远记得你的生日:', show='*')
    if password == PASSWORD:
        success = extract_and_run(PACKED_DATA)
        if success:
            messagebox.showinfo('成功', '礼物已解锁!')
        else:
            messagebox.showerror('失败', '礼物解锁失败')
    else:
        messagebox.showerror('错误', '密码错误!')
if __name__ == '__main__':
    main()
所以就是,直接zlib+zip解压就拿到了。记得改个名字到exe1,防止运行了就哈人了

分析GIFT.exe,该程序的md5是什么(格式:大写md5)

BASH
> md5sum GIFT.exe
5a20b10792126ffa324b91e506f67223  GIFT.exe

GIFT.exe的使用的编程语言是什么

BASH
python

解开得到的LOVE2.exe的编译时间

metadata可以找到哦。
Image

分析GIFT.exe,该病毒所关联到的ip和端口(

丢到云沙箱就能找到。
Image
看了眼显然是加壳了
Image

分析GIFT.exe,该病毒修改的壁纸md5

Image
写个小脚本把wallpaper取出来吧。
PYTHON
import pywintypes
import win32api
import win32con
import winerror
from typing import Union, Iterator

LOAD_LIBRARY_AS_DATAFILE = 0x02

def load_library_as_datafile(library_path: str):
    library_handle = win32api.LoadLibraryEx(library_path, 0, LOAD_LIBRARY_AS_DATAFILE)
    assert library_handle != 0
    return library_handle

def enum_resources(library_handle):
    # 获取所有资源类型
    try:
        resource_types = win32api.EnumResourceTypes(library_handle)

        for res_type in resource_types:
            print(f"\nResource Type: {res_type}")
            
            # 获取该类型下的所有资源名称
            try:
                resource_names = win32api.EnumResourceNames(library_handle, res_type)
                for res_name in resource_names:
                    print(f"  Resource Name: {res_name}")
                    
                    # 获取资源数据
                    try:
                        resource_info = win32api.LoadResource(library_handle, res_type, res_name)
                        print(f"  Resource Size: {len(resource_info)} bytes")
                        
                        # 可以将资源保存到文件
                        with open(f"resource_{res_type}_{res_name}.bin", "wb") as f:
                            f.write(resource_info)
                        
                    except pywintypes.error as e:
                        print(f"  Error loading resource: {e}")
            except pywintypes.error as e:
                print(f"Error enumerating names: {e}")
    except pywintypes.error as e:
        print(f"Error enumerating types: {e}")
library_handle = load_library_as_datafile("1.exe")
enum_resources(library_handle)
win32api.FreeLibrary(library_handle)
啊呀,骇死我力
Image
PYTHON
$ md5sum 1.png
733fc4483c0e7db1c034be5246df5ec0  1.png
同时资源文件里还能找到一个pem
PYTHON
-----BEGIN PUBLIC KEY-----
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIzKlacuMz/XDuZv8sNMJr3S86VHOBTZ
1IKSidumIpnw7QNXE2WpzZcW5jNuTkz7INkmkVGXauzN6BlHpYJkXRcCAwEAAQ==
-----END PUBLIC KEY-----
Image
看看导入表可以继续深入
Image
所以就是一个简单的rsa。

分析GIFT.exe,为对哪些后缀的文件进行加密: A.doc B.xlsx C.jpg D.png E.ppt

Image
ABE

分析GIFT.exe,病毒加密后的文件类型是什么(格式:DOCX文档)

LOVE Encrypted File

分析GIFT.exe,壁纸似乎被隐形水印加密过了?请找到其中的Flag3(格式:flag3{xxxxxxxx})

水印fft一下吧。
Image

分析GIFT.exe,病毒加密文件所使用的方法是什么(格式:Base64)

PYTHON
RSA

分析GIFT.exe,请解密test.love得到flag4(格式:flag4{xxxxxxxx})

服务器题目

该电脑最早的开机时间是什么(格式:2025/1/1 01:01:01)

/var/log/wtmp
Image

服务器操作系统内核版本(格式:1.1.1-123)

Image

除系统用户外,总共有多少个用户(格式:1)

有home的
Image

分析起早王的服务器检材,Trojan服务器混淆流量所使用的域名是什么(格式:xxx.xxx)

分析起早王的服务器检材,Trojan服务运行的模式为:A、foward B、nat C、server D、client

关于 Trojan服务器配置文件中配置的remote_addr 和 remote_port 的作用,正确的是:A. 代理流量转发到外部互联网服务器 B. 将流量转发到本地的 HTTP 服务(如Nginx) C. 用于数据库连接 D. 加密流量解密后的目标地址

分析网站后台登录密码的加密逻辑,给出密码sbwyz1加密后存在数据库中的值(格式:1a2b3c4d)

网站后台显示的服务器GD版本是多少(格式:1.1.1 abc)

网站后台中2016-04-01 00:00:00到2025-04-01 00:00:00订单列表有多少条记录(格式:1)

在网站购物满多少免运费(格式:1)

分析网站日志,成功在网站后台上传木马的攻击者IP是多少(格式:1.1.1.1)

log里搜一下就有了
222.2.2.2

攻击者插入的一句话木马文件的sha256值是多少(格式:大写sha256)

Image

攻击者使用工具对内网进行扫描后,rdp扫描结果中的账号密码是什么(格式:abc:def)

对于每个用户,计算其注册时间(用户表中的注册时间戳)到首次下单时间(订单表中最早时间戳)的间隔,找出间隔最短的用户id。(格式:1)

CD

统计每月订单数量,找出订单最多的月份(XXXX年XX月)

找出连续三天内下单的用户并统计总共有多少个(格式:1)

流量分析(提示:侦查人员自己使用的蓝牙设备有QC35 II耳机和RAPOO键盘)

请问侦查人员是用哪个接口进行抓到蓝牙数据包的(格式:DVI1-2.1)

Image

起早王有一个用于伪装成倩倩耳机的蓝牙设备,该设备的原始设备名称为什么(格式:XXX_xxx 具体大小写按照原始内容)

还真是flipper啊,,
Image

起早王有一个用于伪装成倩倩耳机的蓝牙设备,该设备修改成耳机前后的大写MAC地址分别为多少(格式:32位小写md5(原MAC地址_修改后的MAC地址) ,例如md5(11:22:33:44:55:66_77:88:99:AA:BB:CC)=a29ca3983de0bdd739c97d1ce072a392 )

原来是80:E1:26:33:32:31
搜device name还能找到一个,但是这个是侦查人员用的。
Image
还有一个
Image
Image

流量包中首次捕获到该伪装设备修改自身名称的UTC+0时间为?(格式:2024/03/07 01:02:03.123)

第一个
Image

起早王中途还不断尝试使用自己的手机向倩倩电脑进行广播发包,请你找出起早王手机蓝牙的制造商数据(格式:0x0102030405060708)

Image

起早王的真名是什么(格式:Cai_Xu_Kun 每个首字母均需大写 )

Image

起早王对倩倩的电脑执行了几条cmd里的命令(格式:1

7
Image

倩倩电脑中影子账户的账户名和密码为什么(格式:32位小写md5(账号名称_密码) ,例如md5(zhangsan_123456)=9dcaac0e4787b213fed42e5d78affc75 )

qianqianwoaini$/abcdefghijkImn

起早王对倩倩的电脑执行的最后一条命令是什么(格式:32位小写md5(完整命令),例如md5(echo "qianqianwoaini" > woshiqizaowang.txt)=1bdb83cfbdf29d8c2177cc7a6e75bae2 )

rundll32 url.dll,FileProtocolHandler https://fakeupdate.net/win10ue/bsod.html
评论加载中...