挑战一览
日志分析:找出入侵者
`/app/auth.log` 记录认证事件。找出一小时内失败登录至少 10 次的 IP,并取得该 IP 的第一次失败时间戳。日志格式:`[YYYY-MM-DD HH:MM:SS] Failed login from…
恢复已删除文件
从磁盘镜像中恢复被删除的压缩文件(ZIP),并在其中的备忘录里找到 flag。 学习如何使用文件雕刻工具恢复已删除的文件。 提供文件:disk_image.dd
压缩迷宫:多层归档文件
`/app/flag.tar.gz` 是多层压缩文件:`flag.tar.gz → flag.tar → flag.zip.bz2.gz → flag.zip.bz2 → flag.zip → flag.txt`。请逐层解压并读取最终文件。
正则表达式:只出现一次的黄金标记
从 `data.txt` 提取所有 `KINO-四位数字-四位大写字母` 标记,找出只出现一次的值并输入 `challenge.py`;正确时显示启动时注入的 FLAG。
正则表达式大师:日志文件分析
`/app/access.log` 有数千条访问记录。提取 IP 以 `192.168.1.` 开头且状态码为 `404` 的记录,匹配行数即为旗标。
环境变量大师:PATH 劫持
隐藏命令 `getflag` 位于 `/app/secret_bin`,但目录未在 `PATH` 中。请用绝对路径和修改 `PATH` 两种方式运行它。
图像 LSB 中隐藏的消息
从 `image.png` 的最低有效位(LSB)隐写数据中恢复 flag。
从 Chrome 浏览器提取会话 Cookie
给你从 Linux 版 Chrome 配置文件中取出的 `/challenge/Cookies` 和 `/challenge/History`(都是 SQLite)。 受害者点击内部邮件中的链接,经过一个伪造的 SSO…
检测 DNS 隧道
从 `dns_queries.log` 中检测 DNS 隧道造成的数据外传,并恢复 flag。
Docker 取证:检查容器证据
在没有 Docker 守护进程的环境中调查镜像 `registry.internal/kinoco-billing-api:2.4.1` 的元数据:`/challenge/image_history.txt`(相当于 `docker…
从 Git 历史中找出被删除的 API 密钥
`/app/repo` 是一个 Git 仓库。开发者曾误将 API_KEY 提交,并在后续提交中将其删除。请查看正常的 Git 历史,找到删除前的 `config.py`,恢复其 API 密钥中包含的旗标。
Linux-Capabilities:不依赖 SUID 的提权
系统中特定二进制文件被授予 Linux capabilities。请研究不使用 SUID 位的 capabilities 提权方法。
Linux-SUID:通过 find 理解提权风险
系统有一份设置了 SUID 位的 `find` 副本。本题在隔离环境中演示此类危险配置为何可导致高权限 shell。
Linux-proc 内存:查看进程环境变量
持续运行的守护进程将旗标保存在环境变量中。请通过 `/proc` 文件系统检查该进程。
Linux-strace:追踪系统调用找出文件
提供的二进制既不输出到标准输出也不落盘。它从隐藏文件读取密钥,在内存中还原旗标并写入 /dev/null。请用 strace 追踪系统调用,找出哪一个调用的参数暴露了旗标。
Linux-竞争条件:分析 TOCTOU 窗口
root 定期运行的清理脚本在检查与处理文件之间存在 TOCTOU 间隙;本题用于理解符号链接与时序风险。
从 NTFS $MFT 查找已删除文件痕迹
给你把 Windows 终端 `KINOCO-WS07` 的 `$MFT` 按记录导出的文本 `/challenge/mft_records.txt`(开头给出簇大小和转储的起始 LCN),以及卷 C: 的簇原始数据…
Python API:接口自动化
容器内在 `http://127.0.0.1:8000/api/records?page=N` 运行一个分页本地 API。请遍历所有页面直到 `next` 为 `null`,只收集 `tag == "flag"` 的记录;每条形如…
Python 自动化:分析 SQLite 数据库
请分析每次启动时生成的 data.db(SQLite,含 users / orders / audit_log)。按 user_id 对 orders 做 SUM(amount) 聚合,找出订单总额最高的前 3…
Python 自动化:解密自定义密码
`cipher.txt` 以十六进制保存经自定义密码加密的旗标。加密逐字节执行 add(密钥加法)-> xor(位置相关)-> rotl(循环移位);请按逆序实现解密。完整规格见 `python3 challenge.py`。
Python 自动化:破解加密 ZIP 密码
每次启动都会生成 /challenge/secret.zip。其中有 flag.txt 和 readme.txt,使用 ZipCrypto 加密。密码是 /challenge/wordlist.txt 中的一个词再加上两位数字(00 到…
SQL 查询大师:复杂连接
SQLite 数据库 `/challenge/company.db` 有三张表: - employees (id, name, department_id, salary, email, note) - departments (id,…
算法:迷宫中的 BFS 最短路径
请用 BFS 求 `data.txt` 中从 S 到 E 的最短路径,并将 UDLR 移动序列输入 `challenge.py`。正确路径会显示启动时注入的 FLAG。
从事件日志检测暴力破解
分析服务器 `kinoco-srv01` 的 sshd 认证日志 `/challenge/auth.log`,找出暴力破解成功的攻击者会话。 这台服务器是蜜罐,每打开一个会话,PAM 模块都会发放一个金丝雀令牌,并按下面的形式掩码后记录。…