• 基于Kali Linux宿主机docker部署靶机环境【精华帖】


    基于Kali Linux宿主机docker部署靶机环境【Pentester更要请进】

    • 环境介绍

      • 本机操作系统为MacOS 10.15.7(后文中简称"本机")【windows请各位大佬自行测试】

      • 本机安装VMware Fusion 12.1.0 【自己想办法下载,也可以使用其他虚拟环境】

      • 部署kali linux(2020.03版image)虚机环境(后文中简称"虚机")【kali的安装请移步至kali官网https://www.kali.org

      • 虚机上部署docker环境,Engine版本: 20.10.3+dfsg1【详见下文教程】

      • docker网络环境部署【详见下文教程】

      • 容器搜索、下载、部署、启动【详见下文教程】

        • 容器1:sqli(下文中简称c1
        • 容器2:dvwa(下文中简称c2
      • 结构图

    • 需求实现

      • 所有容器之间可以互通
      • 所有容器可以上internet
      • 所有容器与本机之间可以互通
      • 所有容器与虚机之间可以互通
      • 本教程不包含容器应用internet发布【后续如需求再更新此博文】
    • 小遗憾

      • 容器和虚机如果仅使用vmnet8网卡下的macvlan,这两者无法互相通信,具体原因暂时未知【vmnet8网卡于安装vm环境后自动生成】
      • 目前解决方案是通过给容器第二个桥接的网网络,让容器可以与虚机之间相互通信
      • 后续若研究出来了再来补更

    第一步:环境检查
    1. 确保本机可以进行internet冲浪
    2. 确保本机vmware虚机环境安装正确
    3. 确保虚机正常运行【本环境中 kali linux虚机的IP地址为172.16.106.129
      各位客官老爷自己搞定,如遇到问题可以留言沟通

    第二步:虚机部署docker环境
    1. 打开虚机,点开terminal $ apt-get update 更新apt源。
    2. 安装必要组件
      • ssl、https组件安装$ apt-get install -y apt-transport-https ca-certificates
      • dirmngr组件安装$ apt-get install dirmngr
    3. apt换源[清华教育] curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -【可以选择阿里、中科大等其他源,自己决定】
    4. 检查换源成果$ echo 'deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable' | sudo tee /etc/apt/sources.list.d/docker.list
    5. 安装最新版本docker 以及docker文件管理项目$ apt-get install docker docker-compose
    6. docker安装完成后,在terminal中测试下$ docker version ,可以检查当前安装的docker版本

    第三步:部署docker网络环境
    • 本步骤和下载镜像不分先后,个人习惯先把环境部署好
    1. 新建macvlan $ docker network create -d macvlan --subnet=172.16.106.0/24 --ip-range=172.16.106.0/24 --gateway=172.16.106.2 -o macvlan_mode=bridge -o parent=eth0 macvlan , 用于容器上网、与本机通信使用【macvlan这个名字可以换,但是指定模式的时候就别自定义哦,至于网段的话,按照你的实际情况而定哦】
      • -d 指定容器网络驱动模式
      • --subnet 指定容器使用的网段
      • --ip 指定容器使用的IP地址
      • -o 指定驱动特定选项, 用于指定网卡为虚机的eth0【网卡名根据你实际情况而定】
      • 最后一个macvlan 可以自己定义名称【我图方便,就和网络模式保持一致了】
    2. 新建dnet1$ docker network create -d bridge dnet1, 用于容器与虚机之间通信使用
      • dnet1 是自己新建的自定义网络,名字可以自定义
    3. 查看docker网络$ docker network ls, 确认docker网络列表

    第四步:安装并启动容器
    1. 搜索需要的容器 $ docker search sqli, 我选择了安装acgpiano公开的镜像,那就下载镜像呗 $ docker pull acgpiano/sqli-labs

    2. 按照上面的套路,下载dvwa镜像 $ docker pull citizenstig/dvwa

    3. 激动人心的时刻到了,咱可以启动容器了,先启一台呗 $ docker run -d --network=dnet1 --name=sqli -p 9000:80 acgpiano/sqli-labs 【这些参数不做赘述了,详情可以看--help】

    4. 本机访问http://172.16.106.129:9000测试下第一台容器, 应该可以看到页面了吧~~同时kali虚机中可以使用浏览器访问http://172.18.0.2 ,嘿嘿嘿,是不是有点小激动??【sqli容器自动分配到的地址为172.18.0.2】

    5. 虚机docker跳登容器的控制台 $ docker exec -it sqli bash , 来测试下连通性咯,不难发现本机连上sqli容器【为了便于本机直接ssh管理容器,所以这个问题还是得解决】

    6. 那来吧,解决这个问题!一条命令搞定 $ docker network connect --ip=172.16.106.200 macvlan sqli 【macvlan这个网络是在第三步:部署网络环境的时候就已经创建好了,为了便于管理指定一个IP地址】

    7. 至此,放心大胆的在本机 $ ping 172.16.106.200 来测试连通性吧!

    8. 独白: 在这里我手把手教各位如何部署,至于一些喜欢性的查询操作我可能都省略了,因为经过反复测试查看,按照我的版本部署应该是没啥大问题的,至于深入的操作,各位自己--help领悟,有疑问可以留言交流。

    9. dvwa的部署参考上面的详细步骤,无非就是将端口映射 【9000:90】改为其他你喜欢的端口,比如【9001:80】 ,还有就是替换镜像 和 设定的自定义名称, 各位客官老爷,自己动手来一发?


    第五步:镜像上传(用于备份、多地快速部署)
    • 操作之前请各位自行注册dockerhub, 并且在docker的主机上使用$ docker login 来登录您的docker仓库。
    • 后面的操作,请各位客官老爷移步至我另一篇博文 https://www.cnblogs.com/lich1x/p/14483691.html 详细作为参考,还是比较简单易懂的,所以我也写的比较简单,哈哈哈哈...
  • 相关阅读:
    linux批量远程多服务器FTP并下载文件的脚本
    NPM更换国内源
    Win10禁用无用的服务
    JS测试
    FastAdmin导出
    VScode全局设置
    Vue路由history模式
    kill_devtmpfsi
    获取域名URL
    Axios去除Respones中的config、headers、request
  • 原文地址:https://www.cnblogs.com/lich1x/p/14517192.html
Copyright © 2020-2023  润新知