2024FIC竞赛决赛
71容器密码
2024Fic~Competition~Finals@杭州&Powered~By~HL!
参考
https://blog.csdn.net/Tummyiii/article/details/139118207
https://blog.csdn.net/xydsg/article/details/139099891
服务器搭建

磁盘查看
fdisk -l
结果:
Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Disk model: VMware Virtual I
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 94701C3D-49C9-4EF9-B784-D0B72C18CECF
Device Start End Sectors Size Type
/dev/sda1 34 2047 2014 1007K BIOS boot
/dev/sda2 2048 1050623 1048576 512M EFI System
/dev/sda3 1050624 62914526 61863903 29.5G Linux LVM
Disk /dev/sdb: 200 GiB, 214748364800 bytes, 419430400 sectors
Disk model: VMware Virtual I
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: D5629A44-FE87-44C2-9C1F-2D4F72F625CE
Device Start End Sectors Size Type
/dev/sdb1 2048 419430366 419428319 200G Linux filesystem
Disk /dev/mapper/pve-swap: 3.63 GiB, 3892314112 bytes, 7602176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/pve-root: 12.93 GiB, 13887340544 bytes, 27123712 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
/dev/sda 是一个 30 GiB 的虚拟磁盘,有三个分区:BIOS 引导分区、EFI 系统分区和一个 Linux LVM 分区。
/dev/sdb 是一个 200 GiB 的虚拟磁盘,有一个 Linux 文件系统分区。
/dev/mapper/pve-swap 和 /dev/mapper/pve-root 是基于 /dev/sda3 的逻辑卷,用于交换空间和根文件系统。
vgs
vgs
结果:
VG #PV #LV #SN Attr VSize VFree
pve 1 3 0 wz--n- <29.50g 8.00m
vgs 命令输出的信息告诉我们,在名为 pve 的卷组中,有 1 个物理卷,总大小为接近 29.50 GB,目前剩余约 8 MB 的未分配空间。该卷组包含 3 个逻辑卷
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data pve twi-aotz-- <10.93g 0.00 1.58
root pve -wi-ao---- 12.93g
swap pve -wi-ao---- 3.62g
题目
计算机介质
1.请分析卢某的计算机,并计算原始检材的SHA256值。
2.嫌疑人回收站中的"备忘录.txt"文件SHA1 值为?

0b55b55a2722cb6c509c40511e62af9f
3.嫌疑人使用ssh连接工具,该工具的名称为?【答案格式:fic123】
输入密码mobapass00,可以出现密码

MobaXterm
4.嫌疑人使用ssh连接工具,其中连接名为node的连接记录,连接的端口为?【答案格式:123】
122
5.在2024-03-12 17:13左右,嫌疑人计算机最少连接了__台安卓虚拟机。【答案格式:1】

5
6.软件“QtScrcpy”的配置文件显示,嫌疑人配置了__台安卓虚拟机(以连接端口计数)【答案格式:123】

15
7.嫌疑人桌面文件"老婆.png"的SHA256哈希值为?【答案格式:abc123】
02139BF305630CEFFADD6926C202BAE655C79D25A64F5C7A1C62BC4C91C9CCF1
8.嫌疑人把xls文件藏入老婆.png中,该xls的密码为?【答案格式:Abc123】
foremost -T 老婆.png
ole里面的提取出来,然后改后缀xls
用hashcat进行爆破
[HashCat 恢复Excel、Word、PPT密码保姆教程](网页/HashCat 恢复Excel、Word、PPT密码保姆教程.html)
先获取哈希
python office2john.py 00002796.xls
返回
00002796.xls:$oldoffice$4*107c23885fafc2941281e5ea12155a9c*88fa443a510634975fe401a428fdb5b2*596498685ef86b45dc44ca45e30f6c8d5d366eae
破解 Office 加密 Offcie 版本对应哈希类型
Office97-03(MD5+RC4,oldoffice$0,oldoffice$1):-m 9700
Office97-03($0/$1, MD5 + RC4, collider #1):-m 9710
Office97-03($0/$1, MD5 + RC4, collider #2):-m 9720
Office97-03($3/$4, SHA1 + RC4):-m 9800
Office97-03($3, SHA1 + RC4, collider #1):-m 9810
Office97-03($3, SHA1 + RC4, collider #2):-m 9820
Office2007:-m 9400
Office2010:-m 9500
Office2013:-m 9600
运行命令:
hashcat -m 9800 -a 3 '$oldoffice$4*107c23885fafc2941281e5ea12155a9c*88fa443a510634975fe401a428fdb5b2*596498685ef86b45dc44ca45e30f6c8d5d366eae' -1 ?l?u?d ?1?1?1?1?1?1rd
解释命令参数:
-m 9710:指定哈希类型为oldoffice。-a 3:选择攻击模式为掩码攻击。-1 ?l?u?d:定义字符集?1包含小写字母、大写字母和数字。?1?1?1?1?1?1rd:掩码格式,前六位是任意小写字母、大写字母或数字,最后两位是rd。

P1ssw0rd
9.嫌疑人桌面"2024年3月13日星期三 日报.docx"文档密码为?【答案格式:Abc123】
python office2john.py 日报.docx
输出为
111.docx:$office$*2013*100000*256*16*12126a7d4fc8a58b5433ddc3fa3638e2*466cbf646d8984a7174d4dce8ec4251e*1d987da8a3b17c1b60a67cc05480dca814a3cfbad77f88326ba63e5a310b52b5
运行命令:
hashcat -m 9600 -a 3 '$office$*2013*100000*256*16*12126a7d4fc8a58b5433ddc3fa3638e2*466cbf646d8984a7174d4dce8ec4251e*1d987da8a3b17c1b60a67cc05480dca814a3cfbad77f88326ba63e5a310b52b5' -1 ?l?u?d P?1ssw?1rd

P1ssw1rd
10.嫌疑人使用的AI软件名称为?【答案格式:abc-df-abc】

stable-diffusion-webui
11.嫌疑人使用的AI软件监听端口为?【答案格式:1】
7860
12.AI软件安装目录下的“2024-03-13”目录,其中由AI生成的图片有多少张?【答案格式:1】


一共是41张图片,和上面的网格图片进行比较发现第一张图片是混淆进去的
40
13.嫌疑人使用Ai软件生成燃烧的汽车图片使用的模型SHA256哈希值为?

搜v1-5-pruned-emaonly

22E8515AA5985B776AFC1E48647F23F5651A317D2497A91232D03A1C4FEEAE2C
14.嫌疑人使用Ai软件生成燃烧的汽车图片(00036-957419862.png)使用的正向提示词,包含哪些?
A.china
B.high way
C.fast speed
D.car on fire
E.no people

ABD
15.嫌疑人桌面文件"老婆.png"的图像生成种子是__。【答案格式:123】

3719279995
PVE虚拟化平台
*服务器重构

物理机
192.168.71.2
192.168.100.5
PVE:
把vmbr0和vmbr1分别桥接到ens160和ens36上

Router:
#ifconfig eth0 192.168.71.100 netmask 255.255.255.0
#ifconfig eth1 192.168.100.1 netmask 255.255.255.0
#ifconfig br-lan 192.168.100.1 netmask 255.255.255.0
ip link set br-lan down
ip link delete br-lan type bridge
ip addr del 192.168.100.1/24 dev br-lan
ip addr add 192.168.100.1/24 dev eth1
service networking restart # 或者使用特定于您系统的重启网络服务命令
1node1:
ifconfig ens33 192.168.100.101 netmask 255.255.255.0
node2:
ifconfig ens33 192.168.100.102 netmask 255.255.255.0
nginx:
#在pve里面输入进入nginx
lxc-attach 110
#绕过密码
passwd
从nginx.conf发现日志文件位置:/var/log/nginx/access.log
从proxy.conf发现反向代理域名
设置hosts文件
192.168.100.110 jy.proxy2.jshcloud.cn
192.168.100.110 api.jy.proxy2.jshcloud.cn
192.168.100.110 jy.proxy.jshcloud.cn
192.168.100.110 api.jy.proxy.jshcloud.cn
192.168.100.110 jy.jshcloud.cn
192.168.100.110 api.jy.jshcloud.cn
192.168.100.110 info.jy.proxy2.jshcloud.cn
192.168.100.110 info.jy.proxy.jshcloud.cn
192.168.100.110 info.jy.jshcloud.cn
192.168.100.110 master.jy.proxy2.jshcloud.cn
192.168.100.110 master.jy.proxy.jshcloud.cn
sqlserver:
ifconfig ens33 192.168.100.112 netmask 255.255.255.0
docker start 3ba5
docker start a2aa
javaserver:
ifconfig ens33 192.168.100.111 netmask 255.255.255.0
java -jar /home/service/jinyi/api/jinyi.api.api-1.0.0.jar --spring.profiles.active=prod
java -jar /home/service/jinyi/web/jinyi.web.web.jar --spring.profiles.active=prod
http://192.168.100.111:9032
http://192.168.100.111:9032/druid/login.html
http://192.168.100.111:9031
反编译

发现mysqlroot密码
root
honglian7001
远程连接数据库

Bcrypt加密
替换为123456
登录成功

1.PVE虚拟化平台版本号为?【答案格式:1.1.1】
8.1.4
2.PVE虚拟化平台的web管理地址为?【答案格式:192.168.1.1:22】
192.168.71.133:8006
3.在PVE虚拟化平台中,当前共有多少个虚拟机?【答案格式:1】

7
4.PVE虚拟化平台的“vmbr1”网卡所使用的网段为?【答案格式:192.168.1.0/11】

192.168.100.0/24
5.PVE虚拟化平台中”120(Luck)”虚拟机的smbios uuid为?【答案格式:123abc-123ba-123ad-23ab-12345abczc】

e9990cd6-6e60-476c-bd37-1a524422a9a8
6.在PVE虚拟化平台中,用户“Lu2k”被授予了多少个虚拟机的使用权限?【答案格式:1】

同理可得,一共4个
4
7.在PVE虚拟化平台中,shell历史命令中最后一条命令为?【答案格式:hello world】

lxc-attach 110
8.请分析嫌疑人最近一次销毁虚拟机的时间为
A.2024-03-13 10:34:20
B.2024-03-22 18:06:15
C.2024-03-22 18:15:17
D.2024-03-22 18:20:55

C
9.PVE虚拟化平台的openEuler系统镜像下载的开始时间为?
A. 2024-03-12 12:03:12
B. 2024-03-12 12:04:19
C. 2024-03-12 12:10:09
D. 2024-03-12 12:11:02

B
10.根据嫌犯供述,可通过快照启动PVE虚拟化平台中的云手机。请根据该条线索找到对应虚拟机,其快照的时间
A.2024-03-12 11:02:32
B.2024-03-12 11:24:11
C.2024-03-13 10:34:20
D.2024-03-13 9:43:23

D
软路由
1 软路由root用户的密码是?【答题格式:abc123】


OP2024fic
2 软路由管理面板所用http协议监听的端口为?【答案格式:7001】
netstat -lntp

8080
3 软路由的系统版本号为?【答案格式:1.1.1】

23.05.2
4 软路由的WAN口所配置的网关为?【答案格式:1.1.1.1】

192.168.71.2
5 软路由防火墙端口转发规则有多少条记录【答案格式:1】

17
6 Open*****控制面板登录密钥为?【答案格式:Abc123】

MCoYZFwg
7 Open*****的局域网代理密码(SOCKS5/HTTP认证信息)为?【答题格式:Abc123】

WAMqotI9
8 Open*****的订阅地址为?【答案格式: https://www.forensix.cn 】

9 代理节点"香港501 中继 动态"的服务端口为?【答案格式:123】


42001
10 OpenWrt的包管理软件的系统镜像源配置文件的绝对路径是?【答案格式:/root/hl/abc.conf】

发现有关openwrt的配置文件
/etc/opkg/distfeeds.conf
云手机


wan口的IP与openwrt的IP一致,为192.168.71.100
所以说可以通过外网192.168.71.100:122----->192.168.100.101:22内网
1.PVE虚拟化平台的虚拟机"101(node1)"的droid用户登录密码为?【答案格式:Abc123】

droid2024fic
2.PVE虚拟化平台的虚拟机"101(node1)"中Docker容器的镜像ID的前六位为?【答案格式:abc123】

d1d4bf
3.在PVE虚拟化平台的node1虚拟机中,容器手机的数量为?【答案格式:1】

5
4.在PVE虚拟化平台的node1虚拟机中,若要启动手机容器,有几条前置命令(docker命令不纳入计算)? 【答案格式:1】
- 加载
binder_linux模块,并指定创建binder、hwbinder和vnbinder设备。这些设备提供了Android进程间通信(IPC)所需的基础设施。 - 加载
ashmem_linux模块,提供了Android共享内存的支持。
这些模块对于在Linux环境下运行Android应用或模拟Android环境(例如在Android模拟器或某些Linux发行版中运行Android子系统)是必要的。
2
5.在PVE虚拟化平台的"101(node1)"虚拟机中启动“priceless_knuth”手机容器后,该安卓手机的蓝牙MAC地址是多少?【答案格式:12:34🆎cd:a1:b2】
思路1
再添加安卓手机检测

思路2:
loving_shtern手机的端口映射为

172.17.0.3:5555--->192.168.100.101:1111--->192.168.71.100:11111
3c:5a:b4:01:02:03
6.警方现场勘验过程中,曾使用雷电手机取证软件通过嫌疑人软路由对云手机进行了远程取证,请问以下哪个端口可以明确是取证时使用过的端口?【多选题】
A.11111
B.12222
C.13333
D.23333
E.24444
F.35555

看node2的端口转发方式

2
DE
7.在PVE虚拟化平台的node2中名为loving_shtern的手机映射至软路由中,所占用的端口号为?【答案格式:123】


25555
8.在PVE虚拟化平台的node2中loving_shtern手机容器中安装的名为“抖音”安装包的MD5值为?【答案格式:abc123】


D02633424D9EE0494D5F512C5E7A7772
9.根据集群中手机内容分析,传销人员在评论区引流使用的qq号为?【答案格式:123】
3791621185
10.通过云手机聊天记录可以得知,涉案传销网站域名为?【答案格式:www.forensix.cn】

shop.jshcloud.cn
服务器集群
1.涉案服务器集群中,sql数据库服务器112(sqlserver)对应的虚拟磁盘的SHA256值为?
2.涉案服务器集群中,数据库服务器的root用户密码加密方式为?

sm3
3.涉案服务器集群中,数据库服务器的内核版本?【答案格式:1.1.1】
5.10.0
4.涉案服务器集群中,Java服务器web服务监听的端口为?【多选题】

9031
9032
5.涉案服务器集群中,数据库服务器中Docker容器的数量为?【答案格式:1】

2
6.涉案服务器集群中,数据库服务器有一个mysql容器节点,该容器的ID前六位为?【答案格式:abc123】

3ba5cb
7.涉案服务器集群中,数据库服务器mysql容器节点的数据库版本号为?【答案格式:1.1.1】

5.7.44
8.从外部访问涉案网站"鲸易元MALL管理系统"管理后台所使用的域名为?【多选】
A.jy.proxy2.jshcloud.cn
B.master.jy.proxy2.jshcloud.cn
C.jy.proxy.jshcloud.cn
D.master.jy.proxy.jshcloud.cn
BD
9.“鲸易元MALL管理系统”管理后台所使用的网站框架为?
A.TOMCAT
B.SPRING_BOOT
C.Struts
D.THINKPHP

B
10.“鲸易元MALL管理系统”管理后台运行时,依赖了几种不同的数据库?【答案格式:123】
2
11.“鲸易元MALL管理系统”管理后台运行时,在生产环境(prod)下所连接的mysql服务器密码为?【答案格式:123】

honglian7001
12.“鲸易元MALL管理系统”管理后台中Aliyun OSS对应的密钥KEY是为?【答案格式:Abc123】

LfA2sPaJiVW3Th32YeCN0bsD8NIjF7
13."鲸易元MALL管理系统"管理后台中,管理员(admin)的账号密码采用了什么样的加密方式?【答案格式:rc4】(不区分大小写)

bcrypt
14.“鲸易元MALL管理系统”管理后台中,管理员(admin)账号绑定的手机号码为?【答案格式:18818881888】
15888888888
15.“鲸易元MALL管理系统”管理后台中,会员的数量为?【答案格式:123】

52908
16.“鲸易元MALL管理系统”管理后台中,会员级别为“总代”的数量为?【答案格式:123】

248
数据分析
17 “鲸易元MALL管理系统”管理后台中,以“推荐人id”做为上级id对会员进行层级分析,总层级为多少层?(最高层级视为1层)【答案格式:123】
把excel表导出
import pandas as pd
# 读取Excel文件
file_path = '会员明细_1716864430381.xlsx'
df = pd.read_excel(file_path)
# 处理数据以便进行层级分析
members = df[['会员编号', '推荐人会员编号']].copy()
# 创建一个字典以方便查找
member_dict = members.set_index('会员编号').to_dict()['推荐人会员编号']
# 定义递归函数计算层级
def calculate_level(member_id, member_dict, memo):
if member_id not in member_dict or pd.isna(member_dict[member_id]):
return 1 # 根节点层级为1
if member_id in memo:
return memo[member_id]
parent_id = member_dict[member_id]
level = 1 + calculate_level(parent_id, member_dict, memo)
memo[member_id] = level
return level
# 计算所有会员的层级
memo = {}
for member_id in members['会员编号']:
calculate_level(member_id, member_dict, memo)
# 获取最大层级
max_level = max(memo.values())
print(f"总层级为: {max_level}")
输出为:
总层级为: 53
53
18 “鲸易元MALL管理系统”管理后台中,会员编号为sgl01的下游人数(伞下会员)数量为?【答案格式:123】
import pandas as pd
# 读取Excel文件
file_path = '会员明细_1716864430381.xlsx'
df = pd.read_excel(file_path)
# 处理数据以便进行层级分析
members = df[['会员编号', '推荐人会员编号']].copy()
# 创建一个字典以方便查找
member_dict = members.set_index('会员编号').to_dict()['推荐人会员编号']
# 创建一个反向字典,从推荐人到其被推荐人列表
from collections import defaultdict
reverse_dict = defaultdict(list)
for member, referrer in member_dict.items():
if pd.notna(referrer):
reverse_dict[referrer].append(member)
# 定义递归函数计算下游人数
def count_descendants(member_id, reverse_dict):
if member_id not in reverse_dict:
return 0
count = len(reverse_dict[member_id])
for child in reverse_dict[member_id]:
count += count_descendants(child, reverse_dict)
return count
# 计算会员编号为sgl01的下游人数
target_member_id = 'sgl01'
downstream_count = count_descendants(target_member_id, reverse_dict)
print(f"会员编号为 {target_member_id} 的下游人数(伞下会员)数量为: {downstream_count}")
输出为:
会员编号为 sgl01 的下游人数(伞下会员)数量为: 18001
19 “鲸易元MALL管理系统”管理后台中,会员编号为sgl01的下游人数(伞下会员)充值总金额合计为多少元/RMB【答案格式:123】


查询到sgl01的id为850e579f2d2e415f94e680cbae8d77fb
import pandas as pd
from collections import defaultdict
# 读取Excel文件
member_file_path = 'member.xlsx'
money_file_path = 'member_money_total.xlsx'
# 读取会员信息
members_df = pd.read_excel(member_file_path)
# 读取会员充值信息
money_df = pd.read_excel(money_file_path)
# 提取相关列
members = members_df[['member_id', 'referrer_member_id']].copy()
money = money_df[['member_id', 'recharge_sum_money']].copy()
# 创建会员推荐关系字典
member_dict = members.set_index('member_id').to_dict()['referrer_member_id']
# 创建一个反向字典,从推荐人到其被推荐人列表
reverse_dict = defaultdict(list)
for member, referrer in member_dict.items():
if pd.notna(referrer):
reverse_dict[referrer].append(member)
# 创建充值金额字典
recharge_dict = money.set_index('member_id').to_dict()['recharge_sum_money']
# 定义递归函数获取下游会员
def get_descendants(member_id, reverse_dict):
descendants = []
if member_id in reverse_dict:
for child in reverse_dict[member_id]:
descendants.append(child)
descendants.extend(get_descendants(child, reverse_dict))
return descendants
# 获取会员编号为 sgl01 的下游会员
target_member_id = '850e579f2d2e415f94e680cbae8d77fb'
descendants = get_descendants(target_member_id, reverse_dict)
# 生成下游会员总表
descendants_df = members_df[members_df['member_id'].isin(descendants)]
# 合并下游会员总表和充值信息
descendants_with_money_df = pd.merge(descendants_df, money_df, on='member_id', how='left')
# 保存下游会员总表到Excel文件
output_file_path = 'sgl01_descendants.xlsx'
descendants_with_money_df.to_excel(output_file_path, index=False)
# 计算下游会员充值总金额
total_recharge_amount = descendants_with_money_df['recharge_sum_money'].sum()
print(f"会员编号为 {target_member_id} 的下游会员充值总金额为: {total_recharge_amount} 元/RMB")
# 输出下游会员总表路径
print(f"下游会员总表已保存到: {output_file_path}")
输出为
会员编号为 850e579f2d2e415f94e680cbae8d77fb 的下游会员充值总金额为: 870411900.0 元/RMB
下游会员总表已保存到: sgl01_descendants.xlsx
870411900
20 “鲸易元MALL管理系统”管理后台中,已支付订单的数量为?【答案格式:123】

31760
21 “鲸易元MALL管理系统”管理后台中,已支付订单的支付总金额总计为多少元/RMB?【答案格式:123】

71979976
22 “鲸易元MALL管理系统”管理后台中,在提现账号管理页面中银行卡的记录数为?【答案格式:123】

6701
23 “鲸易元MALL管理系统”管理后台中,打款成功的提现记录数量为?【答案格式:123】


8403
24 “鲸易元MALL管理系统”管理后台中,打款成功的提现应打款金额总计为多少元/RMB?【答案格式:123】

10067655
25 “鲸易元MALL管理系统”管理后台中,拼券活动D仓位的收益率为?【答案格式:100%】

8%

浙公网安备 33010602011771号