WeChall - SSH... Z is sleeping
Challenge
Warchall level8:Z 睡着了,SSH key 暴露在
/home/level/08_sshz/backups/。目标是找到对应私钥,以
level08 登录。
Solution
这题利用 Debian OpenSSL 弱密钥漏洞(2008 年 CVE-2008-0166)。Debian
的 OpenSSL 包因注释掉 md_rand.c 中两行
MD_Update(&m,buf,j),导致 PRNG 仅以进程 PID
作为随机种子,可能的密钥只有 32768 种。
Step 1: 获取 public key
1 | # 从 Warchall 服务器读取公钥 |
Step 2: 计算 MD5 fingerprint
1 | $ ssh-keygen -l -E md5 -f authorized_keys.backup |
Step 3: 在 Debian weak key 集中匹配
下载已知弱密钥集合。原 ANSSI-FR 仓库已被删除,可使用 g0tmi1k 维护的镜像:
1 | # 克隆镜像(如已有关键集合可跳过) |
指纹对应 PID 23669 的 RSA 2048 位密钥。
说明: 该 key set 的文件名格式为
<fingerprint_hex>-<PID>,因此直接
find 匹配指纹(去除冒号)即可定位,无需逐 key 计算。
Step 4: SSH 登录
1 | $ ssh -i rsa/2048/2bcd07a701e94a0474d77ee4d6d0f806-23669 \ |
注意:用户是 level08,不是 z;使用
-i 指定密钥文件。端口 19198 是 Warchall SSH 服务端口。