开源网络扫描框架IVRE的详细搭建过程

来源:互联网 发布:安卓app推荐 知乎 编辑:程序博客网 时间:2024/06/01 08:53

开源网络扫描框架IVRE的详细搭建过程

这个框架本人搭建了好多次,唉,无奈功力尚浅,花了有段时间才完成搭建,现在分享给大家。


先来简单介绍一下,IVRE是一个开源的网络扫描框架,可以进行扫描、嗅探,并将结果在浏览器中呈现出来,同时可以进行数据的简单分析,使用了很多开源的工具,比如Nmap、Bro、Argus、Nfdump、p0f、MongoDB等,我们可以使用这个框架完成对主机的嗅探,还可以在地图中展示主机的位置,其实,功能和Shodan差不多,只不过我们可以自己搭建,对于自己的学习来说,应该是足够的。其中有一个亮点是可以分析实时获取的数据包,展示出各个IP之间的连通关系,同时以动画的形式呈现出来,非常直观!对了,这个在github上有,大家可以自己搞。


给出官网的地址,大家可以自行了解


好了,开始搭建

搭建方式有很多种,github上也列举了几种,我这里使用的是docker进行安装搭建的

安装环境: Ubuntu 16.04 TLS


一、安装Docker

看这个博客,亲测没问题,写的再详细不过了,多谢这位大神啦~~


二、搭建IVRE

IVRE分为三个部分,ivre/web、ivre/db、ivre/client,我们边搭建边说明

输入以下命令在线进行镜像的拉取【请注意使用root权限】:

for img in agent base client db web ; do> docker pull "ivre/$img"> done

时间有点长,需要耐心等待!

完成以后就可以运行了,我们先创建几个目录来存取MongoDB的数据

$ mkdir -m 1777 var_{lib,log}_{mongodb,neo4j}

然后运行一个MongoDB的实例ivre/db,这个是用来对数据库进行管理的:

$ docker run -d --name ivredb --hostname ivredb \>        --volume "`pwd`/var_lib_mongodb":/var/lib/mongodb \>        --volume "`pwd`/var_log_mongodb":/var/log/mongodb \>        ivre/db

接着运行一个Web Server(默认是80端口,当然你也可以自己修改),也就是ivre/web,是配置网页的

$ docker run -d --name ivreweb --hostname ivreweb \>        --link ivredb:ivredb --publish 80:80 ivre/web

最后运行ivre/client,我们的扫描等大部分设置在这个命令下完成,就是一个shell:

$ docker run -i -t --name ivreclient --hostname ivreclient \>        --link ivredb:ivredb --volume "`pwd`/ivre-share":/ivre-share \>        ivre/client

比如进行数据库的初始化

root@ivreclient:/# ivre ipinfo --initThis will remove any passive information in your database. Process ? [y/N] yroot@ivreclient:/# ivre ipdata --initThis will remove any country/AS information in your database. Process ? [y/N] yroot@ivreclient:/# ivre scancli --initThis will remove any scan result in your database. Process ? [y/N] yroot@ivreclient:/# ivre runscansagentdb --initThis will remove any agent and/or scan in your database and files. Process ? [y/N] yroot@ivreclient:/# ivre ipdata --download --import-all --no-update-passive-db

这个执行完需要很长的时间,跟网络有很大关系,我是试了几次才算完成。

好了,基本搭建完成,大家访问本地网站就能看到web页面了~~
这里写图片描述

要不怎么说Docker好呢,就是这么方便!


三、扫描

说实话,这部分我是花了一段时间研究的,官网中介绍的太简单了,有些步骤是省略的,对于我这种小白,可是折腾了一段时间才完成的….所以给各位新手Mark一下,我也是刚学,不足之处还望各位海涵,也恳请各位大牛不吝指点,跪谢了!

在说扫描之前,我还是啰嗦一下吧,我们使用docker搭建完成以后,其实是有三个容器在里面,分别就是ivre/web、ivre/db、ivre/client,如图:
这里写图片描述

首先开启ivre/db

sudo docker start -i YOUR CONTAINER ID FOR IVRE/DB

然后开启ivre/web:

sudo docker start -i YOUR CONTAINER ID FOR IVRE/WEB

最后开启ivre/client

sudo docker start -i YOUR CONTAINER ID FOR IVRE/CLIENT

由此,docker容器开启完毕。你可以开心的在ivre/client中进行扫描了~~~~

再来说说这扫描的事

进入到ivre/client容器中以后,输入以下命令:

ivre runscans --range X.X.X.X Y.Y.Y.Y --output=XML

扫描器就会自己开始扫描IP从X.X.X.X到Y.Y.Y.Y之间的所有的主机,当然,会扫的慢,这取决于你的带宽还有你的配置啦~

扫描结束以后,你需要把.xml的结果导入到数据库中

root@ivreclient:~# cd scans/root@ivreclient:~/scans# cd RANGE-X.X.X.X-Y.Y.Y.Yroot@ivreclient:~/scans/RANGE-X.X.X.X-Y.Y.Y.Y# cd uproot@ivreclient:~/scans/RANGE-X.X.X.X-Y.Y.Y.Y/up# (一直cd进去,直到看到.xml的文件,一般有很多)

然后执行

ivre scan2db -c ROUTABLE,ROUTABLE-001 -s MySource -r scans/RANGE-(你那个很长的路径)/

结果就被导入了!(ROUTABLE和ROUTABLE-001都是自己定的名字,方便自己识别,那个MySource也是自己起的名字)
这时候,刷新你的web页面就能看到扫描的结果啦~
这里写图片描述
至此,扫描算是完成啦~~


总结:

IVRE的功能不止这些,后续我还会继续整理的!

1 0
原创粉丝点击