挑战一览
编程:内存转储分析
请分析每次启动时随机生成的合成内存镜像 memory.img。开头的堆管理表(开头 8 字节 HEAPTBL + NUL、count(uint16)、条目(addr: uint32、size: uint16、flags:…
编程:已知明文密码分析
请分析每次启动时随机生成的证据文件 ciphertext.b64 和 known.txt。ciphertext.b64 是用仅含小写字母的短密钥(长度未知)对观测站报告做循环 XOR 后再 Base64 编码得到的,known.txt…
编程:自定义协议
protocol.bin 是每次启动时创建的二进制抓包文件(位于 /challenge),其中依次排列着若干以 KINO 开头、带长度字段的帧。从头依次遍历这些帧,把 type=3 的帧的 payload 与 0x23 做 XOR…
编程:图像隐写
image.pgm 是每次启动时创建的文本格式(P2)PGM 图像(位于 /challenge)。从头收集每个像素值的最低有效位(LSB),每 8 位合成一个字节,读到 NUL(值为 0 的字节)之前的内容就是旗标。旗标不会以明文存放。
密码分析:RSA 共模攻击
两个系统共用同一个 RSA 模数 n,只改变了公开指数。同一条消息分别用 e1 和 e2 加密得到的密文 c1、c2 已经泄露(`public_keys.txt`、`ciphertexts.txt`)。n…
密码分析:小素数 Diffie-Hellman
一台旧 IoT 设备使用只有 36 位的素数 p 进行 Diffie-Hellman 密钥交换。`handshake.txt` 中有 p、g、`A = g^a mod p`、`B = g^b mod…
高级正则表达式:复杂模式匹配
/challenge/data.txt 有 400 行联系记录,每行以不同顺序和标签包含邮箱、电话号码、IP 地址和日期,最后是 memo="..."。有些字段格式损坏,有些行缺少字段。 同时以正确格式包含以下全部内容的行只有一行,其…
高级 Bash:复杂脚本处理
`/challenge/logs/` 中有 4 台 Web 前端的访问日志(combined log format,60 个文件,超过 10 万行)。WAF 为许多来源 IP 各留下了一行 `waf_rule=...…
AWS CLI:云资源枚举
`/challenge/s3_audit/` 中是离线导出的 S3 配置审计记录(`buckets.json` 以及每个 bucket 的 `*_publicaccessblock.json`、`*_policy.json`、`*_acl…
Ansible:Vault 导出审计
无需运行 Ansible 或接触服务器,请分析生成的运行记录 `artifacts/ansible/vault-export.yml`。其中有大量任务结果,其中多数带有 `vault_payload_hex`。只有 `host` 为…
CI/CD 安全:工作流泄露审计
审计 `/challenge/repo/.github/workflows/` 下的 20 个 GitHub Actions 工作流。许多步骤带有 `# audit-ticket: KINOCO{...}` 注释。…
Terraform:tfstate 工件审计
无需初始化 Terraform provider,请分析生成的 `terraform/terraform.tfstate`。outputs 中的 `recovery_secret_arn` 指向恢复用密钥的 ARN。在…
Kubernetes:Pod 快照调查
无需连接 Kubernetes 集群,请调查 `artifacts/kubernetes/` 中的两个快照(`pod-snapshot.yaml` 和 `secret-snapshot.yaml`)。命名空间…
高级 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…