美文网首页Docker容器
复活乌云知识库之Docker

复活乌云知识库之Docker

作者: 杜金水 | 来源:发表于2020-01-05 02:27 被阅读0次

    0x00.起因

    乌云知识库已经挂了3年有余了,不过上面的技术贴一直很喜欢,于是想复活之

    凉了三年多了

    之前在网上找到了hanc00l的虚拟机离线复活版。很多其他项目只能离线文字,图片都是在线加载,不符合我的需求,只有该版本超赞,项目主页:https://github.com/hanc00l/wooyun_public

    但是将虚拟机下载来,想远程部署在CentOS7的服务上时,由于纯命令行执行,所以在安装VMware时遇到了很大的困难,并且用部署虚拟机的方式在服务器上复活,有点过于沉重,于是想到了Docker的轻量级容器,百度了一下,貌似还没有人做,于是在hanc00l的基础上,封装出一个docker image的轻量级实现,以慰偏执。


    0x01.动工

    1.1.初步摸底

    下载来hanc00l提供的虚拟机镜像,开启并运行之

    虚拟机1:在2016年6月底爬的wooyun全部漏洞库和知识库内容,总共30G(压缩后约11G),网盘地址为:http://pan.baidu.com/s/1o7IEaAQ提取密码:d4cq

    按照教程,开始flask,访问之

    主界面 虽然时间停止在了2016,但还是以前的样子,真香!

    作者同时全量(文字+图片)的复活了【漏洞库】和【知识库】,但我个人对漏洞库并不太感冒,所以此次封装的也仅仅是【知识库】,有兴趣的同学可以继续复活【漏洞库】。

    mongodb的文字索引数据量就达到了近6GB,但是其中知识库只占不到800MB

    1.2.大致过程

    说句实话,在整个“移植复活”过程中没有遇到太大的坑,这令我这个docker小白十分惊讶,但具体步骤与贴图就省了了,直接按照执行思路给出参考文章,文末会给出做好的docker image供大家下载使用:

    1.2.0、基本思路

    hanc00l原版虚拟机上安装CentOS的docker->在CentOS Docker的基础上安装python Flask与mongodb环->剔除不在意的【漏洞库】数据,将【知识库】数据移植到Docker内->开启Docker内服务,并根据只有【知识库】的特性,对Flask页面工程做简单修改->将完成的【知识库】打包成新的image

    1.2.1、基础设施:安装纯净的CentOS docker

    Docker中使用CentOS7镜像:https://blog.csdn.net/u012767761/article/details/78107870

    1.3、安装flask、mongodb基础环境

    Centos7下yum安装mongodb:https://www.cnblogs.com/benjamin77/p/8465394.html

    centos7安装pip:https://www.cnblogs.com/cdw0724/p/10898674.html

    flask安装:pip install flask

    gunicorn安装:pip install gunicorn

    二者啥关系,自己去查

    1.4、数据迁移

    1.4.1 文件迁移

    由于【漏洞库】的数据量很大,而且我也不感兴趣,索性就都删了,只留下了【知识库】,直接复制文件数据到docker的文件系统,位置在/wooyun_public。

    【漏洞库】和【知识库】占用空间对比

    docker cp命令-容器和宿主机之间的文件复制:https://blog.csdn.net/qq_31880107/article/details/86623307

    1.4.2 数据库迁移

    同理,将数据库中的【漏洞库】内容删除后,对数据库进行迁移

    MongoDB 数据库创建删除、表(集合)创建删除、数据增删改查:https://blog.csdn.net/cckevincyh/article/details/78702674

    MongoDB 备份(mongodump)与恢复(mongorestore):https://www.runoob.com/mongodb/mongodb-mongodump-mongorestore.html

    1.5、运行服务

    进入docker的交互shell

    sudo docker exec -it 容器ID /bin/bash

    运行数据库服务:

    mongod -f /etc/mongod.conf

    运行web服务:

    cd /wooyun_public

    gunicorn -w 50 -b 0.0.0.0:5000 app:app --reload -t 500 -D --access-logfile gunicorn.log

    netstat -antp看端口是否开启

    1.6、生成自己的docker image

    docker--build自己的image:https://www.cnblogs.com/laonicc/p/11143683.html

    在ubuntu下生成image,放到centos下导入测试,完美运行 完美运行

    0x02.修修补补

    由于将【漏洞库】删除了很多,页面必须也根据进行修改,这里涉及修改flask页面,就不赘述了,放个最终效果图(v1.0版本)

    修改板式之后的【知识库】主页,增加了页面从新到旧的列表,避免主页空空,同时增加可以按【文章类型】进行搜索

    0x03.Image下载

    由于经验不足,没有用Dockerfile制作镜像,体积还是很大的。v0.8版就是完成了从hanc00l虚拟机到docker的移植,功能全部正常,但是页面没有修改。v1.0是如上图对界面进行了修改。

    两个版本的docker镜像

    下载镜像后,利用如下命令即可使用镜像

    sudo docker load < wooyun_drops_in_Docker_v0.8.tar

    建立容器

    sudo docker run -p 8088:5000 -d --privileged=true wooyun_drops:v0.8 /usr/sbin/init

    访问服务器的8088端口即可。

    wooyun_drops_in_Docker_v0.8.tar:

    链接: https://pan.baidu.com/s/12UT84OfqnQGF9YybsypVsg  提取码: nh9b

    wooyun_drops_in_Docker_v1.0.tar:

    稍后放出。


    END!

    相关文章

      网友评论

        本文标题:复活乌云知识库之Docker

        本文链接:https://www.haomeiwen.com/subject/fskqactx.html