挑战一览
Linux-内核模块:安全分析模拟驱动
本题将一个脆弱的字符设备驱动作为安全的用户空间模拟进行分析,不加载真实内核模块。root 守护进程将该驱动暴露为 /run/vulnerable.sock,你以非特权用户 challenger(uid 1000)连接。阅读提供的驱动源码…
Linux-缓冲区溢出:利用 gets() 漏洞
提供了关闭保护机制的易受攻击 SUID C 二进制文件。利用缓冲区溢出将控制流转入隐藏函数。
高级 Python:执行自定义 VM 字节码
`program.kvm` 是自定义四寄存器 VM 的字节码。根据 README 的指令规格实现 Python 解释器,并恢复 VM 输出。
自定义工具:目录扫描报告分析
请分析本地生成的 `artifacts/scanner/directory-report.ndjson`,而不是扫描真实网站。扫描器对同一站点扫描了多次(`run`)。只有最新一次 run 中 `path` 恰好为…
SSH 隧道:访问回环内部服务
在单个容器内练习SSH本地端口转发。SSH监听127.0.0.1:22,内部服务使用/run/tunnel/database.sock,本地玩家无法直接访问该套接字。…
网络分析:从 TCP 还原 chunked 与 gzip 的 HTTP
`capture.pcap` 记录了在一条 TCP 连接上进行的两次 HTTP 交互。服务器发出的分段顺序被打乱,部分因重传而重复;第二个响应(`GET /api/export`)同时使用了 chunked 与 gzip。请重组 TCP…
网络分析:TCP 重传差分隐蔽信道
`capture.pcap` 中有 TCP 序列号相同的重传包。请仅提取有效载荷发生变化的重传,对每个重复序列号的两个单字节有效载荷做 XOR,并按序列号顺序拼接以恢复旗标。
二进制修复:固件头与 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…
GPG 加密:解密受保护消息
练习用 GnuPG 解密。请导入 `/challenge/keys/` 中的所有私钥,并解密 `/challenge/messages/` 中的每一封密文。只有用真正接收者的密钥加密的那一封,解密后才是包含旗标的明文;其余都是无害的业务通…
密码分析:DSA nonce 复用导致的私钥恢复
每次启动都用新密钥生成的 /challenge/signatures.json 中包含 DSA 公开参数(p 为 1024 位,q 为 160 位,以及 g、y)、4 份签名(message、h、r、s,其中 h 是…
密码分析:RSA 的 Wiener 攻击
某嵌入式设备团队为了加快解密,把 RSA 私钥指数 d 设得非常小。`public_key.txt` 中的公开指数 e 几乎与 n 一样大。请从 e/n 的连分数展开求出 d,解密 `ciphertext.txt` 并取出旗标。
密码分析:恢复线性同余生成器的参数
某服务用参数 a、c、m 均保密的线性同余生成器 `x_{k+1} = (a×x_k + c) mod m` 同时生成会话令牌和加密密钥流。请从 `tokens.txt` 中连续的 10 个输出恢复 a、c、m,再解密用后续输出(每个…
Nmap NSE:脚本化服务枚举
对内部子网 `10.66.13.0/24` 执行 `nmap -sV -sC --script vuln` 的结果保存在 `/challenge/scan_results/nmap_scan.nmap`(普通格式)和…
静态分析:审阅程序证据
内部笔记应用的 Python 源代码位于 `/challenge/src/`。上一次静态分析标记的 9 行在行尾带有 `# finding: KINOCO{...}` 形式的发现 ID,但大多数是误报。…
APT 模拟:攻击链证据分析
这不是执行攻击的题目,而是阅读已发生事件日志的蓝队演练。请从汇总了 EDR、认证和网络设备日志的统一时间线 `/challenge/timeline.log` 中,重建混在日常业务中的 APT…
漏洞赏金:离线分诊报告审计
不要测试真实应用,请分析固定的 `artifacts/bug-bounty/triage-report.json`。漏洞链报告的 `status` 为 `validated-chain`,并在 `chain` 中按顺序列出组成它的…