挑战一览
从 Android 应用提取秘密密钥
解压安全的 ZIP 格式 APK fixture(evidence/app.apk),分析 Android 资源中记录的已加密 API secret。开发者在构建中误带了多把私钥,请判断哪一把对应该 secret 并解密。…
从 CloudTrail 日志检测未授权访问
分析 CloudTrail 导出文件 `/challenge/cloudtrail.json`,追踪被盗访问密钥的未授权使用以及机密数据的外传。 攻击者在侦察、提权并创建新的访问密钥之后,用这个新密钥把读到的机密以多次 S3…
从 Docker 镜像层提取秘密
`/challenge/image/` 是展开后的 `docker save` 导出(OCI 布局)。各层以摘要命名,作为 gzip 压缩的 tar 存放在 `blobs/sha256/` 中,层的顺序要从…
高级 Python:执行自定义 VM 字节码
`program.kvm` 是自定义四寄存器 VM 的字节码。根据 README 的指令规格实现 Python 解释器,并恢复 VM 输出。
解密 TLS 加密的 HTTPS 通信
`~/evidence/` 中有记录某台客户端 PC 的 HTTPS 通信的抓包文件 `traffic.pcap`(libpcap 格式),以及浏览器写出的 TLS 密钥日志 `sslkeylog.txt`(NSS 格式)。…
二进制修复:固件头与 CRC32
修复 `firmware.bin`:将 byte 0-3 写为 `KINO`,并把 byte 12 之后数据的 little-endian CRC32 写回 byte 8-11。将修复文件交给 `challenge.py`…
编程:C2 通信分析
请分析每次启动时随机生成的合成日志 beacon.log(不需要网络连接)。多台主机(会话)的通信按时间顺序混在一起。每个会话在第一条 hello 中发送 nonce,该会话的密钥是 SHA-256(b"beacon-v1" +…
编程:缓冲区溢出崩溃报告分析
请分析每次启动时随机生成的崩溃报告 crash_01.txt 到 crash_06.txt(不含可执行代码)。每份报告都写有发送的输入本身(input:)和崩溃时的指令指针(32 位为 eip,64 位为 rip)。…
编程:模糊测试结果分析
请分析每次启动时随机生成的模糊测试结果日志 fuzz-results.log(输入只是被保存下来,不会被执行)。每行是一个用例,格式为 `case=<6 位十六进制> result=<OK|TIMEOUT|CRASH>…
编程:区块链事件重组
/challenge/blocks.json 是每次容器启动都会用随机数据重新生成的离线开发链区块列表(顺序是乱的,并包含因分叉产生、不在规范链上的孤立区块)。请从 height 最大的区块沿 parent_hash…
编程:Rootkit 视图差异
proc_ps.txt(用户空间 ps 的结果)与 proc_kernel.txt(直接遍历内核任务链表的结果)每次启动时用随机数据生成(位于 /challenge)。两者第一行都有采集时间 snapshot_time(UNIX…
编程:异常检测
/challenge/requests.csv 是每次容器启动都会用随机数据重新生成的 Web API 访问记录(request_id, timestamp, path, status, latency_ms,…
编程:渗透测试框架
findings.json 是每次启动时用随机数据生成的扫描结果(位于 /challenge),包含 entry(edge-gw)、objective(vault)和主机列表 hosts;每台主机的 findings 中有 id(6…
编程:异步扫描器
/challenge/scan-events.jsonl 是每次容器启动都会用随机数据重新生成的异步端口扫描器事件记录(行顺序是乱的,部分事件重复)。对 state 事件,每个 (host, port) 中 t…
从内存提取恶意软件载荷
`/challenge/memstrings.txt` 是从可疑进程地址空间中提取的字符串,加载器解开的第二阶段载荷(Base64)混在诱饵字符串和诱饵 Base64 之中。`/challenge/malfind_region.txt`…
从内存检测隐藏的内核模块
从疑似感染 LKM rootkit 的 Linux 主机内存中恢复出三份模块信息。`/challenge/modules_list.txt` 是内核 modules 链表(相当于…
解读多阶段隐写
`/challenge/cover.png` 和 `/challenge/notes.txt` 中埋设了三个阶段的隐写。每个阶段都包含读取下一阶段所需的密钥(口令或符号对应表),密钥每次启动都会变化,因此无法跳过中间阶段。请依次分析…
恢复碎片化的 JPEG 文件
`/challenge/fragments/` 中有从存储卡未分配空间回收的 256 字节簇(`clus_NNNN.bin`)。编号与原始顺序无关,还混有其他相机的照片和垃圾数据。请根据 JPEG 的结构(标记长度、DRI 和…
恢复损坏的 RAID5 阵列
文件服务器 fs01 的 RAID5 阵列 `/dev/md0`(4 块盘)因成员 sdd 故障而无法组装。`~/evidence/` 中有各成员的镜像(`sdb.img`、`sdc.img`、`sde.img`,空的…
关联多个日志以重建攻击场景
`/challenge/web.log`、`/challenge/auth.log` 和 `/challenge/db.log` 中记录了混在大量正常通信里的同一次入侵。请从对 Web…