挑战一览

数字取证难度 3★★★☆☆

从 Chrome 浏览器提取会话 Cookie

给你从 Linux 版 Chrome 配置文件中取出的 `/challenge/Cookies` 和 `/challenge/History`(都是 SQLite)。 受害者点击内部邮件中的链接,经过一个伪造的 SSO…

数字取证难度 3★★★☆☆

检测 DNS 隧道

从 `dns_queries.log` 中检测 DNS 隧道造成的数据外传,并恢复 flag。

Linux难度 3★★★☆☆

Linux-Capabilities:不依赖 SUID 的提权

系统中特定二进制文件被授予 Linux capabilities。请研究不使用 SUID 位的 capabilities 提权方法。

Linux难度 3★★★☆☆

Linux-SUID:通过 find 理解提权风险

系统有一份设置了 SUID 位的 `find` 副本。本题在隔离环境中演示此类危险配置为何可导致高权限 shell。

Linux难度 3★★★☆☆

Linux-proc 内存:查看进程环境变量

持续运行的守护进程将旗标保存在环境变量中。请通过 `/proc` 文件系统检查该进程。

Linux难度 3★★★☆☆

Linux-strace:追踪系统调用找出文件

提供的二进制既不输出到标准输出也不落盘。它从隐藏文件读取密钥,在内存中还原旗标并写入 /dev/null。请用 strace 追踪系统调用,找出哪一个调用的参数暴露了旗标。

Linux难度 3★★★☆☆

Linux-竞争条件:分析 TOCTOU 窗口

root 定期运行的清理脚本在检查与处理文件之间存在 TOCTOU 间隙;本题用于理解符号链接与时序风险。

数字取证难度 3★★★☆☆

从 NTFS $MFT 查找已删除文件痕迹

给你把 Windows 终端 `KINOCO-WS07` 的 `$MFT` 按记录导出的文本 `/challenge/mft_records.txt`(开头给出簇大小和转储的起始 LCN),以及卷 C: 的簇原始数据…

数字取证难度 3★★★☆☆

从事件日志检测暴力破解

分析服务器 `kinoco-srv01` 的 sshd 认证日志 `/challenge/auth.log`,找出暴力破解成功的攻击者会话。 这台服务器是蜜罐,每打开一个会话,PAM 模块都会发放一个金丝雀令牌,并按下面的形式掩码后记录。…

网络安全难度 3★★★☆☆

网络分析:802.1Q VLAN 隔离的流量

`capture.pcap` 是镜像交换机中继端口抓到的流量,多个 VLAN 的帧带着 802.1Q 标签混在一起。每个 VLAN 上都有同一台设备以 `MGMT|<片段>` 的形式向 UDP 5140…

网络安全难度 3★★★☆☆

网络分析:SNMP 信息泄露

捕获到一台使用弱 community string `public` 的 SNMPv2c 设备返回 GetResponse。请分析 `traffic.pcap` 中 SNMP(UDP/161)的 varbind,并从厂商 OID…

网络安全难度 3★★★☆☆

网络分析:SSL Strip 导致的明文凭据

SSL Strip 攻击将 HTTPS 降级为 HTTP,受害者凭据以明文传输并被捕获。请分析 `traffic.pcap` 中的明文 HTTP POST,提取登录密码(即旗标)。

网络安全难度 3★★★☆☆

网络分析:解除 WebSocket 帧掩码

`capture.pcap` 记录了浏览器与聊天服务器之间的 WebSocket 通信。客户端发往服务器的每一帧都用不同的 4 字节密钥做了掩码。请解析各帧并去掉掩码,把拆成三帧的消息重新拼起来,取出部署用令牌(旗标)。

网络安全难度 3★★★☆☆

网络分析:解码自定义协议

捕获到使用简易自定义二进制协议的系统流量。请从 `traffic.pcap` 分析 TCP 9999 端口上的帧结构,解码有效载荷并取得旗标。

数字取证难度 3★★★☆☆

从内存发现可疑网络连接

从被入侵主机 `kinoco-app03` 的内存镜像中,恢复出了套接字列表 `/challenge/netstat_dump.txt`,以及每个拥有 ESTABLISHED 套接字的进程的堆区域…

数字取证难度 3★★★☆☆

从内存恢复执行过的命令

从内存字符串记录 `memdump.txt` 中提取命令历史,找出可疑命令及其中的 flag。

数字取证难度 3★★★☆☆

恢复已删除的 SQLite 记录

给你内部聊天工具 "kinoco-msg" 的 SQLite 数据库 `/challenge/app.db`。作为 "机密消息" 发送的正文,按下面的形式保存: body = "enc:v1:" + hex(明文 XOR 密钥流)…

数字取证难度 3★★★☆☆

解开多重压缩文件

`/challenge/artifact.xz` 是攻击者试图带出的文件,被 gzip、bzip2、xz、zip、tar 层层嵌套包裹。请逐层辨认格式并剥开,从最深处的 `flag.txt` 中取得 flag。…

数字取证难度 3★★★☆☆

解密加密磁盘

`/challenge/secret_disk.img` 是真实的 LUKS2 容器,数据区里放着一份备份(tar 归档)。口令很弱,是 `/challenge/wordlist.txt` 中的某一项。 这个终端无法使用…

密码学难度 3★★★☆☆

密码分析:RSA 共模攻击

两个系统共用同一个 RSA 模数 n,只改变了公开指数。同一条消息分别用 e1 和 e2 加密得到的密文 c1、c2 已经泄露(`public_keys.txt`、`ciphertexts.txt`)。n…

密码学难度 3★★★☆☆

密码分析:小素数 Diffie-Hellman

一台旧 IoT 设备使用只有 36 位的素数 p 进行 Diffie-Hellman 密钥交换。`handshake.txt` 中有 p、g、`A = g^a mod p`、`B = g^b mod…

数字取证难度 3★★★☆☆

音频文件中的隐藏数据

`hidden.wav` 中隐藏着用通断键控(OOK)编码的消息。把音调的开/关转换为比特并解码,即可得到 flag。 不提供参考解码器。请自己读取并解析信号,例如使用标准库的 `wave` 模块。 提供文件:hidden.wav