破坏我的安全任务

主要观点:

  • 2024 年 3 月首次撰写此文章,因某些原因当时未发布,现情况改变已发布并做了一些小改动。
  • 本学期安全模块作业使用裸机虚拟机,每次发布新作业会提供一个文件用于下载并在虚拟机上运行,这些文件看似垃圾数据但用于设置作业并获取提交的令牌。
  • 决定攻击虚拟机以获取令牌,发现更新文件是 GPG 加密的 tarball,需使用/root/.vmPassphrase/root/.gnupg进行解密,可通过挂载虚拟机虚拟磁盘获取相关文件。
  • 提取 tarball 后可看到一些目录,其中包含binjava目录,更新有以bin/updateVM为入口点的脚本,多数时间会编译并运行java目录中的 Java 代码,部分更新还引用了systemd服务tokens但不知其用途。
  • Java 代码中genToken函数用于生成令牌,通过随机数、练习标识符和模块密钥进行 AES 加密,令牌格式有特定布局,可通过修改代码获取令牌。
  • 整个攻击能实现是因为能访问虚拟机磁盘图像,若要防止攻击可为每个学生提供远程 SSH 访问的虚拟机,但成本高。
  • 这只是一时的有趣尝试,最终还是要做作业,作弊对自己不利。

关键信息:

  • 文章撰写时间及发布原因变化。
  • 虚拟机作业相关流程及文件形式。
  • 攻击虚拟机获取更新文件解密信息的过程。
  • 提取文件后的目录结构及相关代码作用。
  • 令牌生成及格式细节。
  • 防止攻击的可能措施及现状。

重要细节:

  • 字符串操作找到更新文件解密命令及相关路径。
  • 挂载虚拟机虚拟磁盘获取/root目录并修改权限。
  • Java 代码中令牌生成的具体步骤和原理。
  • 关于攻击行为的一些思考和后续变化。
阅读 13
0 条评论