摘要:您是一位熟练的数字取证调查员,面临着一项艰巨的任务。一个有趣的 docker 镜像等待着您进行分析,其中的多个层次隐藏着关键信息和线索。您的目标是揭开这些隐藏的层次,检查其内容,并通过拼凑谜团来解开谜团。考验您的技能,因为每一层都包含新的惊喜和宝贵的见解。您能
您是一位熟练的数字取证调查员,面临着一项艰巨的任务。一个有趣的 docker 镜像等待着您进行分析,其中的多个层次隐藏着关键信息和线索。您的目标是揭开这些隐藏的层次,检查其内容,并通过拼凑谜团来解开谜团。考验您的技能,因为每一层都包含新的惊喜和宝贵的见解。您能揭开隐藏在这个神秘的 Docker 镜像表面之下的秘密吗?
镜像名称:mmox/what-is-0xl4ugh
文章目录
题目链接这个 Docker 容器有多少层?镜像使用的web server是什么?数据库用户名和密码是什么?使用docker run 和 docker exec使用 docker create 和 docker cp使用 docker save 和 tar 命令被删除的SECRET是什么?这里需要用的dive命令统计容器的层数。
dive mmox/what-is-0xl4ughdive是一个容器镜像分析工具,可以直观的看到容器每一层变动了哪些文件,每一层占用的磁盘空间,这样也就可以看到镜像的历史构建过程;同时也可以看到镜像的磁盘空间使用率,面对特别大的镜像文件是,可以分析是否有优化的空间。
在dive的TUI界面中,tab键可以左右切换,↔键上下切换。
但是dive 本身没有专门的参数用于直接统计 Docker 镜像的层数,需要手动数一下层数。这里有23个。
docker history --no-trunc mmox/what-is-0xl4ugh >history.txt使用dive查看并不方便,docker history显示不完全,要加上–trunc参数查看完整的构建容器历史执行命令。
这个题目是为了查看镜像中文件的内容,这里有两种方式:
运行容器,进入容器查看文件的内容。创建容器(非运行),将容器内的文件复制到宿主机查看。将镜像导出为tar包,直接查看镜像中的文件内容。这种方式很常见,先让容器运行起来再进入内部查看。但并不推荐,很多容器需要特定的参数或者环境才能正常运行,否则无法进入容器内部。也是docker最常见的使用方式,就不演示了。
docker create --name temp_container mmox/what-is-0xl4ughdocker cp temp_container:/init.sh ./使用 docker save 命令将镜像保存为 tar 文件,解压保存的 tar 文件。
docker save -o image.tar mmox/what-is-0xl4ughmkdir image_layerstar -xvf image.tar -C image_layers解压后会看到一个包含所有镜像层的目录。每一层都是一个 tar 文件。
find ./image_layers/ -name "*.tar" -exec tar -O -xf {} init.sh 2>/dev/null \;这种方式可以不用创建容器查看镜像内部文件。
这个和上一题是有关联的,在init.sh中存在 rm /SUPER_SECRET.txt 的命令,如果启动容器后再去查看就已经被删除了,并且提示需要在文件被删除之前到达该层。
用上面相同的命令查看文件内容。
find ./image_layers/ -name "*.tar" -exec tar -O -xf {} SUPER_SECRET.txt 2>/dev/null \;来源:Web3软件开发一点号