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版(包含全部漏洞库)的根目录
- 解压后,目录下会有一个gslibrary_v1.0.zip 压缩包,我们也需要将其解压,将其解压后,将里面的gslibrary_v1.0.tar 剪切到 GSLibrary docker版(包含全部漏洞库)的根目录
- 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
- 这里的itd就是第8步获取的id
- 10、查看docker运⾏状态的命令 docker ps ,关闭docker的命令 docker stop
- 11、给容器起一个别名,方便以后进容器
- 首先列出所有的容器:docker ps
- 其次使用命令:
- docker rename d4b06e2138a7 gslibrary 这里rename后面接的是容器的id的号码和我们要起的别名:gslibrary
- 执行完毕后,再次执行docker ps 可以发现names已经变成 gslibrary了
- 首先列出所有的容器:docker ps
- 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
- 80:nginx