vulhub环境搭建

安装证书环境

#记得配下源 编辑 /etc/apt/source.list
apt-update
#安装https和ca证书
apt-get install -y apt-transport-https ca-certificates
#dirmngr
apt-get install dirmngr

补充知s识dirmngr

添加GPG密钥并添加更新源

获取指定URL的GPG(GNU Privacy Guard)密钥,并使用apt-key命令将其添加到密钥环中。

curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
  • curl:这是一个命令行工具,用于使用各种支持的协议从服务器传输数据。
  • -fsSL:这些是传递给curl的命令的选项:
    • -f:它告诉curl在请求失败时静默失败,不生成任何输出。
    • -s:它使curl以静默模式运行,不显示任何进度或错误消息。
    • -S:如果发生错误,它强制curl显示错误消息。
    • -L:它指示curl在服务器响应重定向时跟随重定向。
  • https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg:这是要获取的GPG密钥的URL。在这种情况下,它是清华大学镜像上托管的Docker CE(Community Edition)仓库的GPG密钥文件的URL。
  • sudo apt-key add -:此命令将从curl接收到的GPG密钥添加到系统的密钥环中。末尾的-表示从标准输入读取GPG密钥。

image-20240428234738195

将指定的软件源行添加到/etc/apt/sources.list.d/docker.list文件中

echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list

让我们逐个解释命令及其组成部分:

  • echo: 这是一个命令,用于将参数中的文本内容输出到标准输出(终端)。
  • 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable': 这是要输出的文本内容,它是一个代表软件源的行。在这个例子中,它指定了一个名为”buster”的Debian发行版中的Docker CE软件源,使用的是清华大学镜像站提供的URL。
  • tee: 这是一个命令,它接收标准输入并将其内容写入一个或多个文件中。
  • /etc/apt/sources.list.d/docker.list: 这是要写入的文件路径,它位于/etc/apt/sources.list.d/目录下,用于存储软件源的配置文件。

通过执行这个命令,您将使用echo命令输出指定的软件源行,然后通过管道将其传递给sudo tee命令。tee命令以sudo权限将输入的内容写入/etc/apt/sources.list.d/docker.list文件中,这样就添加了一个新的软件源配置。

系统更新以及安装docker

#因为更新了证书和源记得再更新一次
apt-get update
#安装docker-ce
apt install docker-ce

启动docker服务器

service docker start

安装compose

apt install docker-compose

docker安装测试

docker version    #查看docker的版本信息
docker images #查看拥有的images
docker ps #查看docker container

配置镜像加速aliyun

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

在aliyun的容器镜像服务里找到镜像工具点进镜像加速器

到这里就结束了

Docker安装sqli-labs

练习用docker安装sqli-labs

docker search     sqli-labs  查找sqli-labs镜像
docker pull acgpiano/sqli-labs 拉取镜像到本地
docker images 查看已有的镜像
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs
-dt 让其在后台运行
--name 给其命名
-p 本地端口:docker中的端口是将docker的端口映射到本地端口
--rm 当其关闭后将删除开启的资源
docker ps -a 显示容器container容器的id image 命令 端口等信息
docker exec -it (id号) /bin/bash 进入id号的shell

Docker的基本使用

docker images    查看存在的镜像
docker image rm <id> 删除镜像
docker run -dt --name sqli -p 80:80 --rm acgpiano/sqli-labs 运行存在的镜像
docker exec -it <container ID> /bin/bash 进入运行中的容器
docker run -it --rm ubuntu /bin/bash 运行存在的镜像,并以交互的方式进入容器,运行完删除容器
docker ps docker container ls 查看运行中的容器
docker stop <container ID> 停止指定的容器,不指定为停止所有容器
docker rm 删除所有的容器
docker container [stop/start/restart] 停止/开启/重启容器
docker container kall <container ID> 强制停止容器
docker commit -p <container ID> container-backup 创建Docker的快照

把宿主机文件拷到容器里面
docker cp 要拷贝的文件路径 容器名: 要拷贝到容器里面对应的路径

容器里面拷文件到主机
docker cp 容器名: 要拷贝的文件在容器中的路径 要拷贝到宿主机器的响应路径

安装vulhub

#记得选好安装路径
git clone https://github.com/vulhub/vulhub.git

下载好后,进入目录

cd vulhub

拉取漏洞环境,比如struts2

cd struts2

举例S2-001

cd s2-001

然后执行命令,开启struts2-001漏洞

docker-compose up -d
sudo docker ps 查看运行中的容器环境

访问漏洞环境

访问 ip地址:8080

注意:如果没有回显可以加一些参数比如index

docker stop (id号)

如果想要再次执行,可以输入

docker run -d -p 8080:8080 medicean/vulapps:s_struts2_s2-001