致谢

  • 感谢cty学姐和dh学长的帮助!!感谢xc和sq学长的wp!!
  • 拿到了蛮好的成绩嘿嘿嘿开心,但也要认真复盘ヽ( ω ゞ )

题目来源:某省刑侦个⼈

手机取证

6.【填空题】分析嫌疑人的手机,应用“备忘录记事”中记录了多少年龄小于30岁的人员信息?(答案格式:123)

正确答案:
4
分值:1分

  • 火眼 耗时任务 其他应用 这题没用
  • 火眼-文件-直接找包名sql文件
    • 注意有两页哦
  • X-ways 方法同火眼
    • 注意文件打开按钮按下面那个

alt text

  • 编码调整

alt text

8.【单选题】分析嫌疑人的手机,嫌疑人使用文档扫描软件扫描的文件内容是什么?( )

A. 提成分红记录
B. 诈骗业绩指标
C. 伪装身份话术
D. 人员名单
【正确答案】C. 伪装身份话术
分值:1分

  • 火眼-文件-直接找包名文件夹内-temp图片
  • X-way同

9.【填空题】分析嫌疑人的手机,嫌疑人使用的名称为“薄荷记账”的记账软件共记录了多少笔交易?(答案格式:123)

正确答案:
13
分值:1分

  • X-ways
    • 递归操作:一般在操作栏左侧选中你需要的文件右键,就把树状结构拍成一个平面
    • 打开文件最好解压缩后打开文件夹,不然可能解压错误
      保密部分
      alt text

10.【填空题】分析嫌疑人的手机,该记账软件中关于诈骗提成分红的收入明细一共多少钱?(答案格式:123)

正确答案:
3281
分值:1分
alt text

计算机取证

4.【填空题】分析嫌疑人的电脑,其电脑BitLocker加密分区的48位恢复密钥的后六位是多少?(答案格式:123456)

正确答案:
200189
分值:2分

  • 查找方式:
    • 1 明文 2 内存(mem后缀)

alt text
alt text

  • 170258-643148-669911-174548-088726-299772-219439-200189

7.【填空题】分析嫌疑人的电脑,嫌疑人使用的苹果手机序列号是多少?(答案格式:ABCD1234)

正确答案:
C8PZFDJXN741
分值:2分

  • plist后缀文件记录苹果基础信息
  • plist editor/vscode加扩展后看,搜serial
  • C8PZFDJXN741

alt text
alt text

  • 常见苹果备份文件名称:Info.plist、设备备份文件(Manifest.plist)、Info.plist

8.【填空题】分析嫌疑人的电脑,嫌疑人曾使用的苹果手机备份四位数字密码是多少?(答案格式:1234)

正确答案:
0122
分值:2分
alt text

9.【填空题】分析嫌疑人的电脑,嫌疑人使用的以太坊钱包名称是什么?(答案格式:AbcDe)

正确答案:
MetaMask
分值:2分
alt text

10.【填空题】分析嫌疑人的电脑,嫌疑人使用的以太坊钱包版本是多少?(答案格式:26.16.0)

正确答案:
12.13.0
分值:2分

11.【填空题】分析嫌疑人的电脑,嫌疑人的以太坊钱包私钥助记词第4个单词是什么?(答案格式:以实际为准)

正确答案:
cloud
分值:2分
alt text
alt text

12.【填空题】分析嫌疑人的电脑,嫌疑人的Skype账号是多少?(答案格式:以实际为准)

正确答案:
live:.cid.d2bb7d5a13237f1d
分值:2分
alt text

14.【填空题】分析嫌疑人的电脑,嫌疑人电脑中安装的VPN软件名称是什么?(答案格式:Abc VPN)

正确答案:
Any VPN
分值:2分

  • 注意开始界面啊!!有可能在中间哦

alt text

16.【填空题】分析嫌疑人的电脑,该流量包开始抓取第一个分组的时间是什么?(答案格式:1900/01/01 01:00:00)

正确答案:
2025/04/03 12:47:18
分值:2分

  • 文件:1仿真打开wireshark找到;2X-ways搜(复刻失败)3火眼搜(成功)

alt text

  • 暂时不理解这地方怎么搞先记下来

alt text

  • 要注意UTC哦

alt text

  • 其实直接出:
    • 捕获文件属性Ctrl+Shift+ALT+C,直接出答案

alt text

17.【单选题】分析嫌疑人的电脑,抓取该流量包的总时长是?

A. 00:02:14
B. 00:08:25
C. 00:18:25
D. 00:29:31
【正确答案】A. 00:02:14
分值:2分
alt text

  • 最后一个包

alt text

  • 其实直接出:
    • 捕获文件属性Ctrl+Shift+ALT+C,直接出答案

alt text

18.【单选题】分析嫌疑人的电脑,该流量包中IPV4地址为3.24.46.4的占比是多少?

A. 96.69%
B. 97.36%
C. 98.47%
D. 99.74%
【正确答案】D. 99.74%
分值:2分

  • 直接出

alt text

  • 用python脚本解决(蠢方法)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

'''
只输出指定协议或地址的占比:
- 输入 pcap/pcapng 路径、协议名(如 TCP/UDP/HTTP/DNS/ICMP)、可选协议地址(仅 IPv4)
- 仅打印一个数值:满足条件的占比(按字节占比),四舍五入到 4 位小数
用法示例:
python analyze_pcap.py "E:/trace/example.pcapng" TCP
python analyze_pcap.py "E:/trace/example.pcapng" TCP 3.24.46.4
'''

import sys
from typing import Optional
from scapy.all import rdpcap, Packet
from scapy.layers.inet import IP, TCP, UDP, ICMP
from scapy.layers.inet6 import IPv6
try:
from scapy.layers.http import HTTP
except Exception:
HTTP = None # HTTP 层可能不在所有版本中提供
try:
from scapy.layers.dns import DNS
except Exception:
DNS = None

PROTOCOL_MAP = {
"TCP": TCP,
"UDP": UDP,
"ICMP": ICMP,
"IP": IP,
"IPv6": IPv6,
}
if HTTP is not None:
PROTOCOL_MAP["HTTP"] = HTTP
if DNS is not None:
PROTOCOL_MAP["DNS"] = DNS


def match_protocol(pkt: Packet, proto_name: str) -> bool:
if not proto_name:
return True
name = proto_name.upper()
if name in ("ANY", "ALL", "*"):
return True
# IP: 同时匹配 IPv4 与 IPv6
if name == "IP":
return pkt.haslayer(IP) or pkt.haslayer(IPv6)
# IPv4 别名仅匹配 IPv4
if name in ("IPV4", "IP4"):
return pkt.haslayer(IP)
# IPv6 仅匹配 IPv6
if name in ("IPV6", "IP6"):
return pkt.haslayer(IPv6)
layer = PROTOCOL_MAP.get(name)
if layer is None:
return False
return pkt.haslayer(layer)


def match_address(pkt: Packet, addr: Optional[str]) -> bool:
if not addr:
return True
# 既支持 IPv4 又支持 IPv6
if pkt.haslayer(IP):
ip = pkt[IP]
return ip.src == addr or ip.dst == addr
if pkt.haslayer(IPv6):
ip6 = pkt[IPv6]
return ip6.src == addr or ip6.dst == addr
return False


def packet_len(pkt: Packet) -> int:
try:
return len(bytes(pkt))
except Exception:
# 回退:若无法序列化,尝试最外层 len
return len(pkt)


def _detect_addr_family(addr: Optional[str]) -> Optional[str]:
if not addr:
return None
if ":" in addr:
return "ipv6"
if "." in addr:
return "ipv4"
return None


def compute_ratio(pcap_path: str, proto_name: str, addr: Optional[str]) -> float:
packets = rdpcap(pcap_path)
family = _detect_addr_family(addr)
total_pkts = 0
matched_pkts = 0
for pkt in packets:
# 如果提供了地址,则仅统计对应地址族的 IP 包;否则统计 IPv4+IPv6
if family == "ipv4":
if not pkt.haslayer(IP):
continue
elif family == "ipv6":
if not pkt.haslayer(IPv6):
continue
else:
if not (pkt.haslayer(IP) or pkt.haslayer(IPv6)):
continue
total_pkts += 1
if match_protocol(pkt, proto_name) and match_address(pkt, addr):
matched_pkts += 1
if total_pkts == 0:
return 0.0
return matched_pkts / total_pkts


def main():
if len(sys.argv) >= 3:
pcap_path = sys.argv[1]
proto_name = sys.argv[2]
addr = sys.argv[3] if len(sys.argv) >= 4 else None
else:
try:
pcap_path = input("请输入 pcap 路径: ").strip()
proto_name = input("请输入协议名(IP/TCP/UDP/ICMP/HTTP/DNS;支持 IPv4/IPV4/IP4/IPv6;ANY/ALL/* 或留空表示不限制;统计口径:若提供地址则按其地址族(IPv4/IPv6)包数占比,否则 IPv4+IPv6): ").strip()
addr_in = input("可选地址(IPv4/IPv6,留空则不限制): ").strip()
except EOFError:
print("Usage: python analyze_pcap.py <pcap_path> <protocol> [address]", file=sys.stderr)
sys.exit(1)
addr = addr_in if addr_in else None
ratio = compute_ratio(pcap_path, proto_name, addr)
# 仅输出一个数值,占比,四舍五入 4 位小数
print(f"{ratio:.4f}")

if __name__ == "__main__":
main()

19.【填空题】分析嫌疑人的电脑,嫌疑人使用的AI换脸软件中,当前调用的onnx(Open Neural Network Exchange,开放神经网络交换)格式的模型文件有几个?(答案格式:1)

正确答案:
5
分值:2分
alt text

  • 详细思路:

alt text

20.【填空题】分析嫌疑人的电脑,嫌疑人注册登录的数字天堂开发工具的账号是什么?(答案格式:aaa@bbb.ccc)

正确答案:
wanggui0411@outlook.com
分值:2分
alt text
alt text

21.【填空题】分析嫌疑人电脑里的APK前端源码,如办案人员需要对该APK进行调证,请问调证值是多少?(答案格式:英文大写)

正确答案:
H5AAA8907
分值:2分

  • id一般是调证值

alt text

24.【填空题】分析嫌疑人电脑里的APK前端源码,该APK中的API调用的API Server是多少?(答案格式:以实际为准,如http://www.qasz.com/abc/def/)

正确答案:
http://www.tianxinbobo.com/csapi/uploads/
分值:2分

  • everything搜前端,X-ways打开右键“同步搜索”,apiserver,搜到index文件

alt text

  • 回虚拟机找

alt text

服务器取证

alt text

  • 加外网卡操作:
    • 虚拟机-设置-加网络适配器
    • DHCP要3-254
      alt text
  • 加网卡失败备用操作:(来自xc学长)
    • 删除现有配置(连接会断开!)sudo nmcli con delete "ens33'
    • 重建默认配置sudo nmcli con add type ethernet con- name ens33 ifname ens33 autoconnect yes
    • 重启服务sudo systemctl restart NetworkManager
  • 连宝塔:
    • finalshell
      • ip a
      • ssh连接服务状态端口查询命令:
systemctl status sshd
  • bt 14

2.【填空题】涉案服务器A的ssh的端口号是多少?

正确答案:
222
分值:2分

  • ssh连接服务状态端口查询命令:
systemctl status sshd

alt text

  • 端口查询命令:
ss -tunlp | grep ssh

3.【填空题】分析服务器镜像A,涉案服务器的ip地址是什么?(答案格式:123.123.123.123)

正确答案:
10.0.0.11
分值:2分
alt text

5.【填空题】涉案服务器A中mysql的端口号是多少?(答案格式:123)

正确答案:
3340
分值:2分
alt text

连接mysql

  • 宝塔拿到数据库密码:b21829007afcc1a3
    alt text
  • navicat
    • ssh要填
    • 常规填mysql数据

7.【填空题】涉案服务器A中宝塔面板最早保存的第一次登陆时的ip地址和端口号是什么?(答案格式:123.456.789.123:456)

正确答案:
192.168.136.1:60332
分值:2分
alt text

8.【填空题】涉案服务器A前端登录网址是什么?(答案格式:http://xxx.xxx.xxx.xxx/../…)

正确答案:
http://10.0.0.11/mobile/login.html
分值:2分
alt text

  • 某个日志。。但检材被我删了。。so随意跳过哈哈哈ε=ε=ヾ(;゚д゚)/
  • 收获sq学长wp
    • 找日志(上面那个网站).log
    • 火眼打开搜login

9.【填空题】涉案服务器A平台共成功充值了多少金额?(答案格式:12340.56)

正确答案:
30920984.57
分值:2分

  • 这⾥筛选注意,⼀个是系统充值和银⾏⼊款,还有要注意status,应该为1

alt text

10.【填空题】根据涉案服务器A回答,肖一帆一共发展了多少个用户作为直接下线?(答案格式:123)

正确答案:
7
分值:2分
alt text

11.【填空题】根据涉案服务器A中VIP6等级的积分限制是多少?(答案格式:123)

正确答案:
1000000
分值:2分
alt text

15.【填空题】根据涉案服务器A分析阿里云接口API的银行卡接口地址是多少?(答案格式:以实际为准)

正确答案:
https://market.aliyun.com/products/56928004/cmapi012976.html
分值:2分
alt text

16.【填空题】分析嫌疑人的云服务器B,涉案服务器中Java网站源码jar包名称是?(答案格式:包含后缀)

正确答案:
bh-wms-0.0.1-SNAPSHOT.jar
分值:2分

  • 服务器B输入find / -name *.jar,找不到可以把输出结果变成文档find / -name *.jar > jar.txt,最后找到/project/bh-wms-0.0.1-SNAPSHOT.jar
  • 原因:bh开头的就是网站源码(而且这个文件本身就很大)

17.【填空题】分析嫌疑人的云服务器B,涉案Java网站数据库root账号的密码是多少?(答案格式:Abc@123456)

正确答案:
Tuojie@666
分值:2分

  • 16题文件恢复出来放jadx

alt text

18.【填空题】分析嫌疑人的云服务器B,涉案Java网站的端口是多少?(答案示例:3123)

正确答案:
8080
分值:2分

  • 16题文件恢复出来放jadx17题同一页有

alt text

  • java -jar bh-wms-0.0.1-SNAPSHOT.jar,finalshell连接ss -tunlp多出来一个8080端口

alt text
alt text

19.【填空题】分析嫌疑人的云服务器B,该网站后台保留的登录账号的用户昵称为?(答案格式:老李)

正确答案:
三弟
分值:2分
alt text

20.【填空题】分析嫌疑人的云服务器B,位于南京市江宁区的货物仓库存有多少个产品?(答案格式:123)

正确答案:
21626
分值:2分
alt text