【云安全】云原生-Docker(二)搭建测试环境

admin 2025年1月21日19:32:53评论3 views字数 3018阅读10分3秒阅读模式

Docker 卸载/安装

我的操作系统:ubuntu22.04

【云安全】云原生-Docker(二)搭建测试环境

卸载

首先使用相关命令(如find、whereis、which等命令)判断老版本的docker是通过什么方式安装的,因为不同的安装方式,卸载方式不同,要不然你是卸载不掉的!

我这里使用which命令发现之前是用snap安装的,所以卸载时得用 snap remove 命令,再使用rm命令清除残留数据

【云安全】云原生-Docker(二)搭建测试环境

安装

注意几个问题:

1、网络问题,网络不通可以换不同的安装方法;

2、某些命令(docker search)网络不通,不代表docker其它命令也没法使用

3、务必配置国内源加速,记得重启docker服务

安装方式

根据自身需要选择合适的安装方式:

1、使用包管理工具,如apt、snap等,直接安装(推荐初学者使用)

2、参考各大文档:

(1)官方文档:

https://docs.docker.com/engine/install/ubuntu/ 

(2)各大云厂商文档,如阿里云

https://help.aliyun.com/zh/ecs/use-cases/install-and-use-docker?spm=5176.28426678.J_HeJR_wZokYt378dwP-lLl.1.2dc05181cFTGYo&scm=20140722.S_help@@%E6%96%87%E6%A1%A3@@51853.S_BB1@bl+BB2@bl+RQW@ag0+hot+os0.ID_51853-RL_docker-LOC_search~UND~helpdoc~UND~item-OR_ser-V_4-P0_0-P1_0#8dca4cfa3dn0e

(3)安全项目文档,如vulhub靶场

https://vulhub.org/#/docs/install-docker-one-click/

(4)teamssix云知识库

https://wiki.teamssix.com/cloudnative/docker/docker-use-notes.html

我这里根据teamssix团队的云知识库文档里的方式安装,就一条命令

curl -fsSL https://get.docker.com/ | sh

但是该方式严重踩坑:注意网络问题!有时很奇怪,晚上不通,早上通,有时搞个梯子可以,有时搞个梯子也未必能行,我都试过了!还是强烈建议初学者使用 apt install docker.io,省很多麻烦,或者根据阿里云的官方文档安装,安全从业者没必要在安装卸载、网络连接这种问题上浪费时间,没必要一棵树上吊死!

以下截图是某天早上,没有上任何代理,一条命令就通了,北京的云服务器,安装完成

【云安全】云原生-Docker(二)搭建测试环境

安装后验证 

docker -v    #查看版本

docker run hello-world    #验证docker是否正常工作,如果该命令无法启动,就需要配置国内源,docker默认使用的是官方源

【云安全】云原生-Docker(二)搭建测试环境

使用 vim /etc/docker/daemon.json 创建 daemon.json 配置文件,内容如下(有时这种国内源经常失效,失效就换)

"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"}
然后systemctl restart docker重启docker即可

【云安全】云原生-Docker(二)搭建测试环境

安装docker-compose

也可以使用pip安装,本文是按T Wiki云知识库文档里的方式安装

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-composedocker-compose --version
【云安全】云原生-Docker(二)搭建测试环境

Docker 初体验

在我个人的使用体验中,Docker 无疑为开发和测试带来了极大的便利。它的操作简便,几乎可以一步到位,整个过程非常顺畅,带来了极大的工作效率提升。

打开镜像库官网 https://hub.docker.com ,搜索我们想要的镜像

这里以pikachu靶场镜像举例

【云安全】云原生-Docker(二)搭建测试环境

docker pull

docker pull <镜像名> #拉取我们需要的镜像

【云安全】云原生-Docker(二)搭建测试环境

docker images

使用docker images命令查看刚才拉取的镜像

【云安全】云原生-Docker(二)搭建测试环境

docker run

要启动一个Docker容器,需要使用 docker run 命令。下面是启动一个容器的基本语法:

docker run [选项] <镜像名> [命令]

其中,选项可以是以下几种:

-d:后台运行容器;-p:指定容器端口与主机端口的映射;-v:指定容器与主机的文件或目录映射(挂载);--name:为容器指定一个名称;--restart:指定容器的重启策略。

镜像名是要启动的容器的镜像名称,可以是Docker Hub上的官方镜像,也可以是自己构建的镜像。命令是在容器启动后要执行的命令,可以是容器内的命令或脚本。

示例:

基于pikachu镜像,启动一个容器

docker run -d -p 8888:80 area39/pikachu

访问该容器搭建的pikachu

【云安全】云原生-Docker(二)搭建测试环境

docker ps

查看启动中的容器,加 -a 查看所有容器

docker exec

docker exec -it <容器ID或容器名称> /bin/bash    #进入容器

【云安全】云原生-Docker(二)搭建测试环境

docker kill

docker kill <容器ID或容器名称>    #强行停止容器,适用于紧急情况,如容器无响应或卡死、消耗太多资源

docker stop

docker stop <容器ID或容器名称>    #停止容器,此种方式平常使用较多,该方式允许进程进行清理操作,例如关闭文件、释放资源等,较为优雅

【云安全】云原生-Docker(二)搭建测试环境

docker start

docker start <容器ID或容器名称>    #启动已停止的容器

【云安全】云原生-Docker(二)搭建测试环境

docker commit

docker commit <容器ID或容器名称> <新镜像名称>    #将停止的容器保存为新镜像

【云安全】云原生-Docker(二)搭建测试环境

docker rm

docker rm <容器ID或容器名称>    #删除容器

【云安全】云原生-Docker(二)搭建测试环境

docker rmi

docker rmi <镜像名>    #删除镜像

【云安全】云原生-Docker(二)搭建测试环境

【云安全】云原生-Docker(二)搭建测试环境

Docker 搭建测试环境

1、PHP漏洞环境

启动刚才拉取的pikachu靶场

【云安全】云原生-Docker(二)搭建测试环境

【云安全】云原生-Docker(二)搭建测试环境

通过RCE漏洞写入一句话木马【云安全】云原生-Docker(二)搭建测试环境

【云安全】云原生-Docker(二)搭建测试环境

进入容器,验证,成功写入

【云安全】云原生-Docker(二)搭建测试环境

【云安全】云原生-Docker(二)搭建测试环境

使用哥斯拉连接,命令执行 ls -al ,发现存在 .dockerenv 文件,目标为docker容器!

【云安全】云原生-Docker(二)搭建测试环境

【云安全】云原生-Docker(二)搭建测试环境

webshell权限如图

【云安全】云原生-Docker(二)搭建测试环境

【云安全】云原生-Docker(二)搭建测试环境

2、JAVA漏洞环境

WebLogic 服务器

在官方镜像hub上找一个weblogic的漏洞环境,这里以CVE-2020-2883举例

【云安全】云原生-Docker(二)搭建测试环境

【云安全】云原生-Docker(二)搭建测试环境

拉取镜像,以端口映射方式启动容器

【云安全】云原生-Docker(二)搭建测试环境

访问

【云安全】云原生-Docker(二)搭建测试环境

【云安全】云原生-Docker(二)搭建测试环境

使用漏洞利用工具测试

【云安全】云原生-Docker(二)搭建测试环境

【云安全】云原生-Docker(二)搭建测试环境

命令执行 ls -al ,发现存在 .dockerenv 文件,目标为docker容器!

【云安全】云原生-Docker(二)搭建测试环境

webshell权限如图

【云安全】云原生-Docker(二)搭建测试环境

Shiro 框架

拉取和启动不再赘述,直接上webshell权限截图

【云安全】云原生-Docker(二)搭建测试环境

因此,不同的漏洞环境拿到的权限可能不同,当我们在做容器逃逸时需要注意自己拿到的权限,因为有的逃逸手段是建立在高权限之上的,低权限不适用,需要先做提权。

至此,Dcoker安全分析测试环境搭建完毕。以上所搭建的测试环境是为下一篇容器逃逸测试做准备的,下一篇详细探讨Docker容器逃逸的方法。

原文始发于微信公众号(仇辉攻防):【云安全】云原生-Docker(二)搭建测试环境

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年1月21日19:32:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【云安全】云原生-Docker(二)搭建测试环境https://cn-sec.com/archives/3655810.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息