通过Docker搭建开源版IVRE

摘要

* 原创作者:HackLiu

1  引言

1.1  编写目的

本文主要介绍开源IVRE项目的安装、部署和配置。目的是提供给IVRE项目学习、研究人员,利于他们更快的搭建和部署IVRE。

1.2  背景

IVRE(又名DRUNK)是一款网络侦查框架,包括两个基于p0f和Bro的被动侦查模块和一个基于Nmap&Zmap的主动侦查模块,其功能类似于国内知道创宇公司推出的一款网络空间搜索引擎ZoomEye(钟馗之眼)。

1.3  定义

Docker:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

1.4  参考资料

安装Docker:

http://www.cnblogs.com/MicroTeam/p/see-docker-run-in-debian-with-aliyun-ecs.html

IVRE官方网站:

https://ivre.rocks/

GitHub

https://github.com/cea-sec/ivre

2  系统配置

2.1  运行环境

Ubuntu Server 14.4 64位 Docker IVRE

2.2  系统依赖

Python 2, version 2.6 minimum the Crypto module the pymongo module, version 2.7.2 minimum. Nmap & ZMap Bro & p0f MongoDB, version 2.6 minimum web服务器(在Apache、Nginx下测试通过) web浏览器(在FireFox和Chromum下测试通过) Maxmind GeoIP免费数据库 Tesseract(可选,可对Nmap扫描结果增加快照) Docker & Vagrant (version 1.6 minimum,可选)

2.3  前端组件

AngularJS Twitter Bootstrap jQuery D3.js flag-icon-css Passive recon

2.4  系统安装部署图

通过Docker搭建开源版IVRE

2.5  系统硬件配置

测试机配置:

CPU:Intel至强E5400系列CPU*2

内存:4G 1333MHz

硬盘:100GB

2.6  系统应用服务器软件安装与配置

Linux服务器安装步骤(略)

注意:内核版本如果低于 3.8,就要升级内核,参考方法如下

http://docs.docker.com/installation/debian/

查看linux内核命令:

uname –a

3  程序部署

3.1  安装Docker

快速安装Docker方法有2种:

第一种方法:(推荐使用)

sudo wget -qO- https://get.docker.com/ | sh

第二种方法:

sudo curl -sSL https://get.docker.com/ | sh

3.1.1   验证Docker安装是否成功(可忽略)

运行 hello world:

sudo docker run hello-world

如果前面步骤都没有问题的话,能看到 hello-world 启动了。

Hello from Docker. This message shows that your installation appears to be working correctly.

3.1.2   把非管理员用户添加到docker组

sudo useradd -G docker 登陆系统用户名

3.2  安装Vagrant

安装IVRE方法有2种:

第一种方法:(推荐使用)

wget https://releases.hashicorp.com/vagrant/1.7.4/vagrant_1.7.4_x86_64.deb sudo dpkg -i vagrant_1.7.4_x86_64.deb

第二种方法:

sudo apt-get install -y vagrant

3.3  安装IVRE

$ mkdir -m 1777 var_lib_mongodb var_log_mongodb ivre-share $ wget -q https://ivre.rocks/Vagrantfile $ sudo vagrant up --no-parallel $ docker attach ivreclient root@e809cb41cb9a:/#

此时IVRE已经安装成功。通过Docker装好的IVRE是没有数据的。

界面如下:

通过Docker搭建开源版IVRE

4  IVRE运行和停止

查看docker有那些容器,命令:

docker ps –a

开启IVRE分三步,

第一步要开启database server,命令:

sudo docker start ivredb

第二步开启web,命令:

sudo docker start ivreweb

第三步开启客户端,命令:

sudo docker start ivreclient

然后通过attach命令进入ivreclient

sudo docker attach ivreclient

5  IVRE扫描并导入数据

通过attach命令进入ivreclient

sudo docker attach ivreclient

5.1运行如下初始化命令:(前4步可忽略)

root@881486651a32:/$ ipinfo --init     This will remove any passive information in your database. Process ? [y/N] y     root@881486651a32:/$ ipdata --init     This will remove any country/AS information in your database. Process ? [y/N] y     root@881486651a32:/$ scancli --init     This will remove any scan result in your database. Process ? [y/N] y     root@881486651a32:/$ runscans-agentdb --init     This will remove any agent and/or scan in your database and files. Process ? [y/N] y     root@881486651a32:/$ ipdata --download --import-all --dont-feed-ipdata-cols     [...] The latest command will take a long time. Then we can integrate the Nmap results to the database:     root@881486651a32:/$ nmap2db -r -s MySource -c MyCategory /ivre-share You can then exit the shell (`C-d`), this will stop the container.

或者忽略5.1步骤执行如下命令:

root@881486651a32:/$ ipdata --download

5.1  扫描任务

执行命令:

root@881486651a32:/$ runscans --routable --limit 1000 --output=XMLFork

上面这条命令将对互联网上1000个随机主机进行标准扫描,开启13个nmap进程。

5.2  扫描结果入库

root@881486651a32:/$ nmap2db -c ROUTABLE-CAMPAIGN-001 -s MySource -r scans/ROUTABLE/up

5.3  界面展示

通过Docker搭建开源版IVRE

6  安装出错解决

安装IVRE成功后,通过attach命令进入ivreclient后。可能出现缺少ipdata、runscans和nmap2db等命令现象。

解决方法如下:

通过attach命令进入ivreclient

sudo docker attach ivreclient

安装curl

root@881486651a32:/$ apt-get install crul

安装unzip

root@881486651a32:/$ apt-get install unzip

利用curl命令将IVRE项目里的bin目录下所有文件下载到Docker容器里:

root@881486651a32:/$ tmp root@881486651a32:/$ curl –O http://hackliu.com/bin.zip root@881486651a32:/$ cd /

将bin.zip解压到/usr/bin目录

root@881486651a32:/$ unzip /tmp/bin.zip –d /usr/

为下载的文件添加执行权限:

root@881486651a32:/$ chmod + x analyzercli root@881486651a32:/$ chmod + x getmoduli root@881486651a32:/$ chmod + x httpd-ivre root@881486651a32:/$ chmod + x ipdata root@881486651a32:/$ chmod + x ipinfo root@881486651a32:/$ chmod + x ipinfohost root@881486651a32:/$ chmod + x nmap2db root@881486651a32:/$ chmod + x p0f2db root@881486651a32:/$ chmod + x passiverecon2db root@881486651a32:/$ chmod + x passivereconworker root@881486651a32:/$ chmod + x plotdb root@881486651a32:/$ chmod + x runscans root@881486651a32:/$ chmod + x runscans-agent root@881486651a32:/$ chmod + x runscans-agentdb root@881486651a32:/$ chmod + x scancli root@881486651a32:/$ chmod + x scanstatus

7  其他

7.1  安装所需软件包

链接: http://pan.baidu.com/s/1kUsuOGv 密码: wvct

* 作者:HackLiu,本文属FreeBuf原创奖励计划文章,未经许可禁止转载

* 原创作者:HackLiu

1  引言

1.1  编写目的

本文主要介绍开源IVRE项目的安装、部署和配置。目的是提供给IVRE项目学习、研究人员,利于他们更快的搭建和部署IVRE。

1.2  背景

IVRE(又名DRUNK)是一款网络侦查框架,包括两个基于p0f和Bro的被动侦查模块和一个基于Nmap&Zmap的主动侦查模块,其功能类似于国内知道创宇公司推出的一款网络空间搜索引擎ZoomEye(钟馗之眼)。

1.3  定义

Docker:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

1.4  参考资料

安装Docker:

http://www.cnblogs.com/MicroTeam/p/see-docker-run-in-debian-with-aliyun-ecs.html

IVRE官方网站:

https://ivre.rocks/

GitHub

https://github.com/cea-sec/ivre

2  系统配置

2.1  运行环境

Ubuntu Server 14.4 64位 Docker IVRE

2.2  系统依赖

Python 2, version 2.6 minimum the Crypto module the pymongo module, version 2.7.2 minimum. Nmap & ZMap Bro & p0f MongoDB, version 2.6 minimum web服务器(在Apache、Nginx下测试通过) web浏览器(在FireFox和Chromum下测试通过) Maxmind GeoIP免费数据库 Tesseract(可选,可对Nmap扫描结果增加快照) Docker & Vagrant (version 1.6 minimum,可选)

2.3  前端组件

AngularJS Twitter Bootstrap jQuery D3.js flag-icon-css Passive recon

2.4  系统安装部署图

2.5  系统硬件配置

测试机配置:

CPU:Intel至强E5400系列CPU*2

内存:4G 1333MHz

硬盘:100GB

2.6  系统应用服务器软件安装与配置

Linux服务器安装步骤(略)

注意:内核版本如果低于 3.8,就要升级内核,参考方法如下

http://docs.docker.com/installation/debian/

查看linux内核命令:

uname –a

3  程序部署

3.1  安装Docker

快速安装Docker方法有2种:

第一种方法:(推荐使用)

sudo wget -qO- https://get.docker.com/ | sh

第二种方法:

sudo curl -sSL https://get.docker.com/ | sh

3.1.1   验证Docker安装是否成功(可忽略)

运行 hello world:

sudo docker run hello-world

如果前面步骤都没有问题的话,能看到 hello-world 启动了。

Hello from Docker. This message shows that your installation appears to be working correctly.

3.1.2   把非管理员用户添加到docker组

sudo useradd -G docker 登陆系统用户名

3.2  安装Vagrant

安装IVRE方法有2种:

第一种方法:(推荐使用)

wget https://releases.hashicorp.com/vagrant/1.7.4/vagrant_1.7.4_x86_64.deb sudo dpkg -i vagrant_1.7.4_x86_64.deb

第二种方法:

sudo apt-get install -y vagrant

3.3  安装IVRE

$ mkdir -m 1777 var_lib_mongodb var_log_mongodb ivre-share $ wget -q https://ivre.rocks/Vagrantfile $ sudo vagrant up --no-parallel $ docker attach ivreclient root@e809cb41cb9a:/#

此时IVRE已经安装成功。通过Docker装好的IVRE是没有数据的。

界面如下:

4  IVRE运行和停止

查看docker有那些容器,命令:

docker ps –a

开启IVRE分三步,

第一步要开启database server,命令:

sudo docker start ivredb

第二步开启web,命令:

sudo docker start ivreweb

第三步开启客户端,命令:

sudo docker start ivreclient

然后通过attach命令进入ivreclient

sudo docker attach ivreclient

5  IVRE扫描并导入数据

通过attach命令进入ivreclient

sudo docker attach ivreclient

5.1运行如下初始化命令:(前4步可忽略)

root@881486651a32:/$ ipinfo --init     This will remove any passive information in your database. Process ? [y/N] y     root@881486651a32:/$ ipdata --init     This will remove any country/AS information in your database. Process ? [y/N] y     root@881486651a32:/$ scancli --init     This will remove any scan result in your database. Process ? [y/N] y     root@881486651a32:/$ runscans-agentdb --init     This will remove any agent and/or scan in your database and files. Process ? [y/N] y     root@881486651a32:/$ ipdata --download --import-all --dont-feed-ipdata-cols     [...] The latest command will take a long time. Then we can integrate the Nmap results to the database:     root@881486651a32:/$ nmap2db -r -s MySource -c MyCategory /ivre-share You can then exit the shell (`C-d`), this will stop the container.

或者忽略5.1步骤执行如下命令:

root@881486651a32:/$ ipdata --download

5.1  扫描任务

执行命令:

root@881486651a32:/$ runscans --routable --limit 1000 --output=XMLFork

上面这条命令将对互联网上1000个随机主机进行标准扫描,开启13个nmap进程。

5.2  扫描结果入库

root@881486651a32:/$ nmap2db -c ROUTABLE-CAMPAIGN-001 -s MySource -r scans/ROUTABLE/up

5.3  界面展示

6  安装出错解决

安装IVRE成功后,通过attach命令进入ivreclient后。可能出现缺少ipdata、runscans和nmap2db等命令现象。

解决方法如下:

通过attach命令进入ivreclient

sudo docker attach ivreclient

安装curl

root@881486651a32:/$ apt-get install crul

安装unzip

root@881486651a32:/$ apt-get install unzip

利用curl命令将IVRE项目里的bin目录下所有文件下载到Docker容器里:

root@881486651a32:/$ tmp root@881486651a32:/$ curl –O http://hackliu.com/bin.zip root@881486651a32:/$ cd /

将bin.zip解压到/usr/bin目录

root@881486651a32:/$ unzip /tmp/bin.zip –d /usr/

为下载的文件添加执行权限:

root@881486651a32:/$ chmod + x analyzercli root@881486651a32:/$ chmod + x getmoduli root@881486651a32:/$ chmod + x httpd-ivre root@881486651a32:/$ chmod + x ipdata root@881486651a32:/$ chmod + x ipinfo root@881486651a32:/$ chmod + x ipinfohost root@881486651a32:/$ chmod + x nmap2db root@881486651a32:/$ chmod + x p0f2db root@881486651a32:/$ chmod + x passiverecon2db root@881486651a32:/$ chmod + x passivereconworker root@881486651a32:/$ chmod + x plotdb root@881486651a32:/$ chmod + x runscans root@881486651a32:/$ chmod + x runscans-agent root@881486651a32:/$ chmod + x runscans-agentdb root@881486651a32:/$ chmod + x scancli root@881486651a32:/$ chmod + x scanstatus

7  其他

7.1  安装所需软件包

链接: http://pan.baidu.com/s/1kUsuOGv 密码: wvct

* 作者:HackLiu,本文属FreeBuf原创奖励计划文章,未经许可禁止转载

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: