平航杯个人赛
案件背景:2025年4月,财务人员林某报案称其在微信遭遇诈骗。诈骗分子假冒其老板的微信头像与昵称,诱使林某向指定账户汇款,导致林某损失 180 万元。接警后,办案单位对林某的办公电脑开展研判分析,发现其曾收到一封伪装成“电子发票”的钓鱼邮件,邮件内含恶意远控木马。经研判,办单单位锁定到一名重大嫌疑的技术人员孙某,并对其手机、计算机、服务器数据进行固定,请参赛选手对涉案人员孙某的相关检材进行研判分析。
个人赛检材密码: s*dwu0^)0wepd32+_8xs4^$#2qaUSqka)F^GWvv
手机取证
1 | 分析手机镜像,最近一次开机时间为?【答题格式:2025-01-01 12:34:56】 | ||
---|---|---|---|
2 | 分析手机镜像,手机中是否有安装微信?【答题格式:是或否】 | ||
3 | 分析手机镜像,安装的VPN工具应用名称为?【答题格式:百度地图】 | ||
4 | 接上题,VPN工具中节点“新加坡C”的端口号为?【答题格式:1234】 | ||
5 | 分析手机镜像,安装的远控软件的版本为?【答题格式:10.20.300】 | ||
6 | 分析手机镜像,MD5值为“283f70d6aa6219c55431a9fb59034357”的文件名称为?【答题格式:123.txt】 | ||
7 | 分析手机镜像,手机浏览器中下载安卓应用安装包文件的日期为?【答题格式:2025-01-01】 | ||
8 | 分析手机镜像,聊天应用“QieQie”的安装时间为?【答题格式:2024-01-11 12:34:56】 | ||
9 | 接上题,嫌疑人孙某添加出售公民信息的嫌疑人好友的日期为?【答题格式:2024-01-01】 | ||
10 | 分析手机镜像,嫌疑人孙某的虚拟钱包地址后五位为?【答题格式:A0123】 | ||
11 | 接上题,嫌疑人孙某购买公民信息数据最终的价格为?【答题格式:123.45OKT】 | ||
12 | 接上题,公民信息数据中姓名为“楚一军”的银行卡后五位为?【答题格式:12345】 | ||
13 | 分析手机镜像,Telegram登录的手机号为?【答题格式:15566667777】 | ||
14 | 分析手机镜像,查找嫌疑人孙某曾接收过的涉案平台日志文件,统计2024年12月访问涉案平台的不同IP数量为?【答题格式:123】 | ||
15 | 接上题,2024年12月最早访问涉案平台的浙江IP地址为?【答题格式:1.1.1.1】 | ||
16 | 分析手机镜像,安装的笔记软件的包名为?【答题格式:com.abc.abc】 | ||
17 | 接上题,该笔记软件的数据库打开密码(6位数字)为?【答题格式:123456】 | ||
18 | 接上题,笔记软件记录的“韩梅”4月2号航班的目的地为?【答题格式:大连】 |
分析手机镜像,最近一次开机时间为?【答题格式:2025-01-01 12:34:56】
2025-04-01 17:20:40
分析手机镜像,手机中是否有安装微信?【答题格式:是或否】
是
分析手机镜像,安装的VPN工具应用名称为?【答题格式:百度地图】
Clash
接上题,VPN工具中节点“新加坡C”的端口号为?【答题格式:1234】
方法一:平航的软件可以直接找到
方法二:火眼需要翻配置文件,可以通过暴力搜索定位(x-ways爆搜/全局搜索)
x-ways
火眼全局
导出就可以看到了
7041
分析手机镜像,安装的远控软件的版本为?【答题格式:10.20.300】
15.44.236
分析手机镜像,MD5值为“283f70d6aa6219c55431a9fb59034357”的文件名称为?【答题格式:123.txt】
做这一题前最好让火眼把所有文件MD5计算一遍,再通过搜索定位文件
这题我运气比较好,通过创建时间排序文件,一个个试就找到这个zip文件
工作记录.zip
分析手机镜像,手机浏览器中下载安卓应用安装包文件的日期为?【答题格式:2025-01-01】
2025-04-01
分析手机镜像,聊天应用“QieQie”的安装时间为?【答题格式:2024-01-11 12:34:56】
2024-10-17 11:15:01
接上题,嫌疑人孙某添加出售公民信息的嫌疑人好友的日期为?【答题格式:2024-01-01】
9-13题需要翻apk数据库或者将apk+相关文件导入模拟器仿真
查看 data\com.wangcheng.im\files 中的数据库文件——qieqieIM_v3_3618773650.db 导出用DB Browser打开
通过local_chat_logs表里的聊天记录确定嫌疑人是Vito
通过local_friends表找到添加事件,再把时间戳转换为北京时间
分析手机镜像,嫌疑人孙某的虚拟钱包地址后五位为?【答题格式:A0123】
在 local_chat_logs 表中找到对方发送的地址是一张图片,保存在本地的文件名为1729218498760825379-901918601.jpg
发现是一张二维码,扫描结果:0x1417845f74c4cc04d461552b0114e17257eadcdf
因为是孙某转账给对方,所以这个是对方的二维码,要通过线上交易记录查询找到发送方(孙某)的钱包地址
接上题,嫌疑人孙某购买公民信息数据最终的价格为?【答题格式:123.45OKT】
0.05OKT
接上题,公民信息数据中姓名为“楚一军”的银行卡后五位为?【答题格式:12345】
在 local_chat_logs 表中找到对方发送的公民信息是一张加密表格,在本地保存的文件名为 1729218600669487342-938673419.xlsx,同时得知密码线索开头是 1557 的手机号
导出后使用 passware 爆破密码后打开文件查看
输入密码就可以打开了
84869
分析手机镜像,Telegram登录的手机号为?【答题格式:15566667777】
平航软件可以直接看到电话号码
火眼要翻找一下
找到数据库cache4.db,但都是乱码看不了,所以参加比赛最好用主办方软件
18751883957
分析手机镜像,查找嫌疑人孙某曾接收过的涉案平台日志文件,统计2024年12月访问涉案平台的不同IP数量为?【答题格式:123】
从这题开始是数据统计类型
聊天记录里的压缩包文件
解压缩密码:hhkjw666
编写一个脚本统计2024年12月访问涉案平台的不同IP数量
交给AI
统计完成——3243
import os import re from collections import defaultdict def count_unique_ips_in_dec_2024(log_dir): ip_count = defaultdict(int) log_files = [f for f in os.listdir(log_dir) if f.startswith('logfile_')] for log_file in log_files: • with open(os.path.join(log_dir, log_file), 'r') as f: • for line in f: • match = re.match(r'^(\d+\.\d+\.\d+\.\d+).*\[\d+/Dec/2024:', line) • if match: • ip = match.group(1) • ip_count[ip] += 1 return len(ip_count) if __name__ == '__main__': log_dir = os.path.dirname(os.path.abspath(__file__)) unique_ip_count = count_unique_ips_in_dec_2024(log_dir) with open('unique_ip_count.txt', 'w') as f: • f.write(f'2024年12月访问平台的不同IP数量: {unique_ip_count}\n') print(f'2024年12月访问平台的不同IP数量: {unique_ip_count}')
3243
接上题,2024年12月最早访问涉案平台的浙江IP地址为?【答题格式:1.1.1.1】
另外写一个脚本直接找出最早访问涉案平台的浙江IP
或者可以在上一题的基础上导出xlsx文件在筛选
121.41.188.114
分析手机镜像,安装的笔记软件的包名为?【答题格式:com.abc.abc】
com.twistedplane.sealnote
接上题,该笔记软件的数据库打开密码(6位数字)为?【答题格式:123456】
定位数据库
安装sqlcipher, 使用以下脚本可以进行爆破:
import os from pysqlcipher3 import dbapi2 as sqlcipher from tqdm import tqdm import time #固定参数 DB_NAME = "sealnote.sqlite" DB_PATH = os.path.join(os.path.expanduser("~"), "Desktop", DB_NAME) if not os.path.exists(DB_PATH): print(f"[错误] 数据库文件不存在: {DB_PATH}") exit(1) def try_password(password): """尝试使用指定密码连接数据库""" try: conn = sqlcipher.connect(DB_PATH) conn.executescript(f""" PRAGMA key='{password}'; PRAGMA cipher_compatibility=3; PRAGMA cipher='aes-256-cbc'; PRAGMA kdf_iter=64000; PRAGMA cipher_page_size=1024; """) cursor = conn.cursor() cursor.execute("SELECT 1 FROM sqlite_master LIMIT 1;") conn.close() return True except: return False def brute_force(): import logging logging.basicConfig(filename='bruteforce.log', level=logging.INFO, format='%(asctime)s - %(message)s') logging.info(f'开始爆破数据库: {DB_NAME}') """执行爆破""" if not os.path.exists(DB_PATH): print(f"[错误] 数据库文件不存在: {DB_PATH}") print(f"\n 开始爆破 {DB_NAME} (6 位数字密码)") print(" 按 Ctrl+C 可中断爆破过程\n") start_time = time.time() found = False try: for pwd in tqdm(range(0, 1000000), desc="爆破进度", unit="尝试"): if try_password(f"{pwd:06d}"): logging.info(f'找到密码: {pwd:06d}') found = True break except KeyboardInterrupt: logging.warning('用户中断爆破过程') print("\n 用户中断") end_time = time.time() if found: logging.info(f'成功破解密码: {pwd:06d}, 耗时: {end_time - start_time:.2f} 秒') print(f"\n密码破解成功! 密码是: {pwd:06d}") print(f" 耗时: {end_time - start_time:.2f} 秒") print(f" 已尝试密码数量: {pwd + 1}") else: print("\n❌ 未找到正确密码") if __name__ == "__main__": brute_force()
001911
接上题,笔记软件记录的“韩梅”4月2号航班的目的地为?【答题格式:大连】
sqlitestudio打开sealnote.sqlite,输入密码查看内容
湛江
服务器取证
服务器CENTOS系统版本号为? |
---|
服务器中面板服务为? |
服务器中面板是否配置禁ping?【答题格式:否】 |
服务器面板中配置的监控数据保留天数为?【答题格式:10】 |
服务器中“Cobalt Strike”的版本号为【答题格式:4.5】 |
服务器中“Cobalt Strike”的teamserver连接密码为?【答题格式:112233】 |
服务器“Cobalt Strike”中共上线过多少台主机?【答题格式:1】 |
分析服务器“Cobalt Strike”,嫌疑人通过客户端对被控主机一共截过多少张图?【答题格式:2】 |
分析服务器“Cobalt Strike”,4月8日被控主机名“lin”中木马的进程pid为?【答题格式:1234】 |
分析服务器“Cobalt Strike”,4月8日受害人小林转账对象的银行卡号后四位为?【答题格式:1234】 |
服务器中网站“sg138.timibbs.vip”的php版本号为?【答题格式:8.2】 |
服务器中网站“sg138.timibbs.vip”的源码目录为?【答题格式:/www/wwwroot/aa.com】 |
服务器网站“sg138.timibbs.vip”中配置的数据库密码为?【答题格式:a_a123456】 |
服务器网站“sg138.timibbs.vip”中前端用户密码加密算法中的盐值为?【答题格式:aa123456】 |
15、接上题,通过该算法对用户名为“TIMIBBS1”,明文密码为“654321”进行加密,其密文后六位为?【答题格式:abcd12】 |
分析服务器网站“sg138.timibbs.vip”后台,代理账号“hcx888”的快开彩额度为?【答题格式:12345】 |
用户“ZXC17906”最后一次登录的ip地址为?【答题格式:1.2.3.4】 |
分析服务器网站“sg138.timibbs.vip”后台数据库中,管理员supers的注册日期为?【答题格式:2001-04-09】 |
服务器centos系统版本号为?
7
服务器中面板服务为?
小皮
服务器中面板是否配置禁ping?【答题格式:是或否】
是
服务器面板中配置的监控数据保留天数为?【答题格式:10】
启动小皮面板(类似于宝塔)
登录即可看到监控保留天数
15
服务器中“Cobalt Strike”的版本号为【答题格式:4.5】
4.7
服务器中“Cobalt Strike”的teamserver连接密码为?【答题格式:112233】
history记录可以找到密码
998877
服务器“Cobalt Strike”中共上线过多少台主机?【答题格式:1】
在logs文件夹下找到三个ip文件夹
3
分析服务器“Cobalt Strike”,嫌疑人通过客户端对被控主机一共截过多少张图?【答题格式:2】
4 月 7 号有 1 张,8 号有 4 张
5
分析服务器“Cobalt Strike”,4月8日被控主机名“lin”中木马的进程pid为?【答题格式:1234】
分析 log 文件发现执行木马 pid
6656
分析服务器“Cobalt Strike”,4月8日受害人小林转账对象的银行卡号后四位为?【答题格式:1234】
其中一张图片包含银行卡信息
7187
服务器中网站“sg138.timibbs.vip”的php版本号为?【答题格式:8.2】
操作日志里有php版本信息
5.6
服务器中网站“sg138.timibbs.vip”的源码目录为?【答题格式:/www/wwwroot/aa.com】
/xp/www/sg138.timibbs.vip
服务器网站“sg138.timibbs.vip”中配置的数据库密码为?【答题格式:a_a123456】
timibbs_sg138
服务器网站“sg138.timibbs.vip”中前端用户密码加密算法中的盐值为?【答题格式:aa123456】
xftp导一下网站源代码
使用filelocator全局搜索pass查找文件内容
也可以把源码直接交给AI
puhh8kik
接上题,通过该算法对用户名为“TIMIBBS1”,明文密码为“654321”进行加密,其密文后六位为?【答题格式:abcd12】
寻找加密的代码
cmd5计算一下——093a316175ccf2978ce288c79ba7c33f
a7c33f
分析服务器网站“sg138.timibbs.vip”后台,代理账号“hcx888”的快开彩额度为?【答题格式:12345】
问一下AI,定位sg138.sql数据库文件(网站的数据库),即可找到快开彩额度
100000
用户“ZXC17906”最后一次登录的ip地址为?【答题格式:1.2.3.4】
这种记录在网站源代码里不会保存,需要在服务器的文件里找,即翻找小皮面板的数据库文件
在数据库文件里搜索
也可以将小皮面板的文件夹导出,再问AI
如果要直观一点可以用navicat打开sql文件,翻出相关数据
具体操作可参考——如何将sql文件导入到navicat中?_navicat .sql文件导入数据库-优快云博客
112.97.49.91
分析服务器网站“sg138.timibbs.vip”后台数据库中,管理员supers的注册日期为?【答题格式:2001-04-09】
一样的搜索定位
一样的问AI
一样的翻数据库
2020-06-15
计算机取证
分析计算机镜像,系统BUILD版本为?【答题格式:18525.8524】 |
---|
分析计算机镜像,系统注册者为?【答题格式:ogef@gmail.com】 |
分析计算机镜像,账户“sun”的密码为?【答题格式:864685】 |
分析计算机镜像,Cobalt Strike中备注为“新目标”的被控电脑ip为?【答题格式:127.0.0.1】 |
分析计算机镜像,计算文件名为”话术模板”的MD5值后六位为?【答题格式:D4A533】 |
分析计算机镜像,受害人林某的邮箱地址为?【答题格式:xxxx@qq.com】 |
分析计算机镜像,嫌疑人在edge浏览器中搜索“cobalt strike使用”相关的访问时间为?【答题格式:2025-04-06 04:04:04】 |
分析计算机镜像,系统Build版本为?【答题格式:18525.8524】
19045.5608
分析计算机镜像,系统注册者为?【答题格式:ogef@gmail.com】
分析计算机镜像,账户“sun”的密码为?【答题格式:864685】
147852
分析计算机镜像,Cobalt Strike中备注为“新目标”的被控电脑ip为?【答题格式:127.0.0.1】
前面题目知道有控制3台计算机
镜像仿真后在文档文件夹中有下面截图
192.168.3.128
分析计算机镜像,计算文件名为”话术模板”的MD5值后六位为?【答题格式:D4A533】
文件在E盘里,需要解锁bitlocker
EFDD破解bitlocker参考:内存取证之破解BitLocker加密 | CTF导航
299E92
分析计算机镜像,受害人林某的邮箱地址为?【答题格式:xxxx@qq.com】
分析计算机镜像,嫌疑人在edge浏览器中搜索“cobalt strike使用”相关的访问时间为?【答题格式:2025-04-06 04:04:04】
2025-04-08 14:34:54
内存取证
分析内存镜像,镜像制作时间(东八区)为?【答题格式:2025-03-05 05:27:22】 |
---|
分析内存镜像,进程名为cmd.exe的进程ID为?【答题格式:5588】 |
分析内存镜像,进程ID为6008的父进程ID为?【答题格式:598】 |
分析内存镜像,网络连接中外部地址为142.251.211.238对应的进程名为?【答题格式:OneDriver.exe】 |
分析内存镜像,镜像制作时间(东八区)为?【答题格式:2025-03-05 05:27:22】
内存部分用平航的工具可以一把梭,火眼比较鸡肋,也可以用lovelymem、workbench等工具——本质都是volatility
平航
lovelymem
2025-04-09 09:26:22
分析内存镜像,进程名为cmd.exe的进程ID为?【答题格式:5588】
火眼
workbench
6940
分析内存镜像,进程ID为6008的父进程ID为?【答题格式:598】
火眼
workbench
956
分析内存镜像,网络连接中外部地址为142.251.211.238对应的进程名为?【答题格式:OneDriver.exe】
平航
lovelymem
msedge.exe
EXE逆向取证
分析计算机镜像,查找并计算受害人林某被控电脑中的木马SHA1值后六位为?【答题格式:ASP】 |
---|
接上题,木马回连ip为?【答题格式:127.0.0.1】 |
接上题,木马加壳类型为?【答题格式:ASP】 |
接上题,木马对shellcode解密使用的算法为?【答题格式:DES】 |
接上题,解密shellcode的密钥的十六进制值为?【答题格式:D57B6C6354928C827A7F】 |
分析计算机镜像,查找并计算受害人林某被控电脑中的木马SHA1值后六位为?【答题格式:ASP】
找到木马文件,在E盘目录下
计算哈希
12AF82
接上题,木马回连ip为?【答题格式:127.0.0.1】
192.168.3.52
接上题,木马加壳类型为?【答题格式:ASP】
UPX
接上题,木马对shellcode解密使用的算法为?【答题格式:DES】
UPX脱壳,再反编译——问AI
或者直接脱壳后用IDA分析
接上题,解密shellcode的密钥的十六进制值为?【答题格式:D57B6C6354928C827A7F】
7A6A6A6378795F706862
总结
这次平航个人赛含金量还是很高的。个人认为难度排序为:手机>服务器>逆向>计算机。手机主要包含很多考点(数据库定位和翻找、加密货币、加解密、数据分析),服务器大多考察网站架构的知识(小皮面板、网站重构……),再通过架构找到对应的文件信息。逆向的知识相对空白,所以做完还是学到一点东西的。计算机题量比较少,主要还是bitlocker解密
另外我觉得取证逐渐在与AI接轨,从以前的手搓慢慢找,到暴力搜索定位,再到现在的AI助手帮你分析数据,总结出答案,可以说AI对各个行业都产生了助推作用。学无止境,厚积薄发!