卡尔马 CTF:可重现的漏洞利用编写总结

主要观点:

  • 在 CTF 房间制作表情包时得知 Nix 出现在 CTF 中,被吸引参与挑战。
  • 有一个名为“Reproducible Pwning”的挑战,涉及 NixOS VM 根权限获取,构建用户权限不高,/data 目录的 flag 仅 root 可读。
  • Nix 评估器有补丁,阻止了一些使受信任用户具有 root 权限的配置设置。
  • 机器配置了特定 NixOS 模块,包含禁用 sudo 和 polkit 等非标准设置,还有暴露 Nix 守护进程套接字等内容。
  • 尝试通过构建等操作获取 root 权限,先以普通用户运行构建,后在内部构建中关闭沙箱成功获取 root 权限并获取 flag,后得知有未预期的解决方案及预期解决方案。

关键信息:

  • 挑战由niko编写,涉及 NixOS VM 根权限获取。
  • /data 目录的 flag 仅 root 可读,有补丁阻止特定危险配置设置。
  • 机器配置的 NixOS 模块包含禁用 sudo 和 polkit 等非标准设置,以及暴露套接字等内容。
  • 通过构建操作先以普通用户获取用户信息,后在内部构建关闭沙箱获取 root 权限并获取 flag。
  • 有未预期的解决方案及预期解决方案,未预期解决方案被认为也不算太差,因一旦成为受信任用户可假定能获取 root 权限。

重要细节:

  • 补丁代码对特定配置项进行处理并给出提示。
  • 机器配置的 NixOS 模块中各部分的具体内容及作用,如对 Nix 版本的覆盖、对各种服务的设置等。
  • 构建过程中的各种命令及输出,包括获取用户信息、构建 drv 等的过程和结果。
阅读 9
0 条评论