0%

GSLibrary docker版(包含全部漏洞库)安装教程

GSLibrary项目介绍:

  • GSLibrary知识库平台由G安全团队开源,该团队将收集的POC,EXP等各种文库资料聚合到平台内该平台聚合了2.6w+的文库资料
  • 开源地址:https://github.com/G-Security-Team/GSLibrary
  • 主要分为:
    • 个人版(debug版)
    • 服务器版(团队版) 尝试过,安装成功了,但是每次重启虚拟机了后,nginx总是启动不起来,百度了也没解决,所以尝试docker版了
    • Docker版(自带全量文库) 也是我安装的版本

为什么要写这篇文章?

  • docker版本安装的时候还是有一点坑,所以这篇文章就教大家怎么避开那些坑

安装步骤:

  • 前提:centos的根目录最好给个100g以上的磁盘空间,否则安装项目的时候会因为磁盘空间少而终止并报错,具体的centos安装docker教程可以参考我的上一篇文章:centos安装docker
  • 意见建议:安装下面的项目建议的环境建议和我的保持一致,我是通过上一篇文章:centos安装docker 安装的
  • 1、下载:链接:https://pan.baidu.com/s/1J3F619eSy5UwZrNfN1XuuQ 密码:v0sx
  • 2、下载后解压
  • 3、易错点:
    • 解压后,目录下会有一个gslibrary_v1.0.zip 压缩包,我们也需要将其解压,将其解压后,将里面的gslibrary_v1.0.tar 剪切到 GSLibrary docker版(包含全部漏洞库)的根目录
      • image-20210814195203265
  • 4、将GSLibrary docker版(包含全部漏洞库)整个目录通过FileZilla(ftp工具)传到centos的root目录下
  • 5、接着在centos里进入到/root/GSLibrary docker版(包含全部漏洞库) 目录下
  • 6、执行命令:docker load < gslibrary_v1.0.tar
  • 7、因为加载的文件过大,请等待下,然后观察有没有报错,如果正常加载文件,那么几乎没问题了,除非后续因为磁盘空间不足而报错
  • 8、导⼊完成后输⼊ docker images 即可看到导⼊的docker镜像
  • 9、输⼊ docker run -itd –privileged -p80:80 /usr/sbin/init 即可启动 docker,此时docker映射80端⼝到本地80端⼝。此时docker已经启动了,我们可以访问本地的80端口即可,初始帐号密码 Gr33k/123456
    • 这里的itd就是第8步获取的id
      • image-20210814195917317
  • 10、查看docker运⾏状态的命令 docker ps ,关闭docker的命令 docker stop
  • 11、给容器起一个别名,方便以后进容器
    • 首先列出所有的容器:docker ps
      • image-20210814211001997
    • 其次使用命令:
      • docker rename d4b06e2138a7 gslibrary 这里rename后面接的是容器的id的号码和我们要起的别名:gslibrary
    • 执行完毕后,再次执行docker ps 可以发现names已经变成 gslibrary了
  • 12、以后我们只需要使用 docker exec -it gslibrary /bin/bash 即可启动这个知识库的容器了
  • 13、设置容器在docker服务启动的时候自启动:
    • docker update –restart=always 容器别名
    • 存在问题:当我这样设置后,通过虚拟机将无法登录系统了,因为它自启了容器,所以必要通过ssh连接工具才能连接

以后启动docker步骤

  • 1、输入命令查看容器是否在运行:docker ps
    • 如果找到了我们的容器,直接输入命令:docker exec -it gslibrary /bin/bash 进入容器
    • 如果没找到容器,则使用:docker ps -a
  • 2、在没有容器没在运行的情况下,我们可以通过docker ps -a 找到我们的容器,比如别名,然后扶植下它的容器id,注意是容器id(CONTAINER ID)而不是IMAGE
  • 3、执行命令:
    • docker start 容器id 即可启动容器
  • 4、通过输入命令:docker exec -it gslibrary /bin/bash 即可进入容器里面了
  • 5、进入容器后我们需要检查运行的端口:必须要80、8000、3306 三个端口都在运行
    • netstat -ntpul
  • 6、如果发现8000端口没有运行,就代表gslibrary项目的服务没启动,我们需要手工去启动
    • 80代表ngnix没启动
    • 3306代表mysqld没有启动
  • 7、前往:/home/zslibrary 目录,执行以下命令才能执行成功,必须要在这个目录
    • systemctl start gslibrary
  • 8、再次查看端口:netstat -ntpul
  • 9、端口都启动了,就代表可以访问了
  • 10、退出容器:但是没有关闭容器,容器还在后台运行
    • ctrl +D
  • 11、将虚拟机最小化就可以了

注意事项:

  • 如果进入docker容器后,访问本地的80端口发现无法访问,可以查看docker的80、3306、8000三个端口是否正常运行,如果有端口没运行,那么需要手动启动服务
    • 80:nginx
      • 启动:systemctl start nginx
      • 停⽌:systemctl stop nginx
      • 重启:systemctl restart nginx
    • 3306:mysqld
      • 启动:systemctl start mysqld
      • 停⽌:systemctl stop mysqld
      • 重启:systemctl restart mysqld
    • 8000: gslibrary(应⽤),必须要进入/home/zslibrary 目录执行才行
      • 启动:systemctl start gslibrary
      • 停⽌:systemctl stop gslibrary
      • 重启:systemctl restart gslibrary