挑战一览
破解小型 RSA 密钥
RSA 依赖足够大的素数。本题的 `n` 过小;请分解它、求出私钥指数,并解密密文数列。 公钥与密文: n = 323 e = 5 ciphertexts = [115, 181, 241, 109, 109, 57, 190,…
密码分析:破解仿射密码
`ciphertext.txt` 是用仿射密码 `E(x) = (a×x + b) mod 26` 加密的英文报告,大小写保持不变,非字母字符原样保留。请以明文以单词 KINOCO 开头为线索求出密钥 a、b 并解密,提交最后一行中的旗标。
图像 LSB 中隐藏的消息
从 `image.png` 的最低有效位(LSB)隐写数据中恢复 flag。
从 Chrome 浏览器提取会话 Cookie
给你从 Linux 版 Chrome 配置文件中取出的 `/challenge/Cookies` 和 `/challenge/History`(都是 SQLite)。 受害者点击内部邮件中的链接,经过一个伪造的 SSO…
检测 DNS 隧道
从 `dns_queries.log` 中检测 DNS 隧道造成的数据外传,并恢复 flag。
从 NTFS $MFT 查找已删除文件痕迹
给你把 Windows 终端 `KINOCO-WS07` 的 `$MFT` 按记录导出的文本 `/challenge/mft_records.txt`(开头给出簇大小和转储的起始 LCN),以及卷 C: 的簇原始数据…
从事件日志检测暴力破解
分析服务器 `kinoco-srv01` 的 sshd 认证日志 `/challenge/auth.log`,找出暴力破解成功的攻击者会话。 这台服务器是蜜罐,每打开一个会话,PAM 模块都会发放一个金丝雀令牌,并按下面的形式掩码后记录。…
从内存发现可疑网络连接
从被入侵主机 `kinoco-app03` 的内存镜像中,恢复出了套接字列表 `/challenge/netstat_dump.txt`,以及每个拥有 ESTABLISHED 套接字的进程的堆区域…
从内存恢复执行过的命令
从内存字符串记录 `memdump.txt` 中提取命令历史,找出可疑命令及其中的 flag。
恢复已删除的 SQLite 记录
给你内部聊天工具 "kinoco-msg" 的 SQLite 数据库 `/challenge/app.db`。作为 "机密消息" 发送的正文,按下面的形式保存: body = "enc:v1:" + hex(明文 XOR 密钥流)…
解开多重压缩文件
`/challenge/artifact.xz` 是攻击者试图带出的文件,被 gzip、bzip2、xz、zip、tar 层层嵌套包裹。请逐层辨认格式并剥开,从最深处的 `flag.txt` 中取得 flag。…
解密加密磁盘
`/challenge/secret_disk.img` 是真实的 LUKS2 容器,数据区里放着一份备份(tar 归档)。口令很弱,是 `/challenge/wordlist.txt` 中的某一项。 这个终端无法使用…
密码分析: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…
音频文件中的隐藏数据
`hidden.wav` 中隐藏着用通断键控(OOK)编码的消息。把音调的开/关转换为比特并解码,即可得到 flag。 不提供参考解码器。请自己读取并解析信号,例如使用标准库的 `wave` 模块。 提供文件:hidden.wav
从 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/` 中,层的顺序要从…
解密 TLS 加密的 HTTPS 通信
`~/evidence/` 中有记录某台客户端 PC 的 HTTPS 通信的抓包文件 `traffic.pcap`(libpcap 格式),以及浏览器写出的 TLS 密钥日志 `sslkeylog.txt`(NSS 格式)。…
从内存提取恶意软件载荷
`/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 和…
密码分析:DSA nonce 复用导致的私钥恢复
每次启动都用新密钥生成的 /challenge/signatures.json 中包含 DSA 公开参数(p 为 1024 位,q 为 160 位,以及 g、y)、4 份签名(message、h、r、s,其中 h 是…