复活乌云知识库之Docker

0x00.起因

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

复活乌云知识库之Docker

之前在网上找到了hanc00l的虚拟机离线复活版。很多其他项目只能离线文H y { 8 c 0 K l e字,图片都是在线加载,不符合我的需求,只有该版本超赞,项目主页:https://github.com/hanc00l/wooyuK ; M q i 8 Gn_public。

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


0x01.动工

1.1.5 % n D ] 2 $初步摸底

下载来hanc00l提F x W 8 l . +供的虚拟机镜像,开启并运行之

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

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

复活乌云知识库之Docker
复活乌云知识库之Docker

作者同时全量(文字+图片)的复活了. N H ) h Q j【漏洞库】和【知识库# @ l ) T % b】,但我个人对漏洞库并不太感冒,所以此次封装的B q {也仅仅是【知识库】,有兴趣的同学可以继续复活【o $ J 4 A ; I d漏洞库】。

复活乌云知识库之Docker

1.2.大致过程

说句实话,在整个“移植复活”f @ 0 s . / s K过程中没u a j H ] !b K h遇到太大的坑,这令我这个docker小白十分惊讶,但具体步b & q骤与贴图就省了了,直接按照执行思路给出参考文章,文末会给出做好的docker image供大家下载使用:c & ^ )

1.2.0、基本思路

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

1.2.1、基础设施:安装纯净的G Y HCentOS docker

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

1.3、安装flask、mongodb基础环境

Centos7下yum安装mongodb:https://www.cnblogs8 ! u 2 Z.com/benjamin77/p/8465394.html

centos7安装pip:https://www.c6 V P Unblogs.com/cdw0724/p/10898674.html

flask安装:pip install flask

gunicorn安装:pip install gunicorn

二者啥关系,自己去查

1.4、数据迁移

1.4.1 文件迁移

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

复活乌云知识库之Docker

docker cp命令-容器和宿主机之间的文w J n A j y X k件复制:https://blog.csdn.net/qq_31880107/article/details/86623307

1u q 0.4.2 数据库迁移

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

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

MongoDQ ^ ( m & V x WB 备份(mongodump)与恢复(mongorestore):https:/t / K M/www.runoX z / n g X L E Hob.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_puz ; v iblic

gunicorn -i % u f r sw 50 -b 0.0.0.0:5000 app:app --reload -t 500 -D --access-logfile gunicorn.log

netstat -antp看端口是否开启

1.{ P a / o6、生成自己的docker image

docker--build自己的image:https://www.c. 2 w nblogs.com/laonicc/p/11143683.html

复活乌云知识库之Docker
复活乌云知识库之Docker

0x02.修修补补

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

复活乌云知识库之Docker

0x03.Image下载

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

复活乌云知识库之Docker

下载镜P 5 { K W D h像后,利用如下命令即可使用镜像

sudo docker load < wooyun_drops_in_Docker_v0.8.tar

建立容器

sudo docker ru| % K w +n -p 8088:5000 -d --privileged=true wooyun_drops:v0.8 /usr/sbin/init

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

wooyun_drops_in_Docker_v0.8.tar:

链接: https://pan.baiN & , 5 h k Cdu.com/s/12UT84OfqnQGF9YybsypVsg 提取码: nh9b

wooyun_drops_in6 K r ! w 2_Docker_v1.0.tar:

稍后放出。


END!