环境:

基于 docker 的 vagrant

$co0ontty mkdir ivre  
$co0ontty cd ivre  
$co0ontty mkdir -m 1777 var_{lib,log}_{mongodb,neo4j} ivre-share  
$co0ontty wget -q https://ivre.rocks/Vagrantfile    
$co0ontty vagrant up --no-parallel  

搭建完成,在 docker 里会生成 ivredb/ivreweb/ivreclient 三个容器。

主动扫描:

环境搭建:

$co0ontty docker attach ivreclient //进入docker的shell  
root@e809cb41cb9a:ivre scancli --init //初始化数据库  
root@e809cb41cb9a:ivre ipinfo --init  //初始化数据库  
root@e809cb41cb9a:ivre ipdata --init  //初始化数据库  
root@e809cb41cb9a:ivre runscansagentdb --init  //初始化数据库  
root@e809cb41cb9a:ivre ipdata --download  下载ip地址数据包  
root@e809cb41cb9a:ivre ipdata --import-all --no-update-passive-db  导入ip数据包  

开始扫描:

root@e809cb41cb9a: cd /ivre-share  
root@e809cb41cb9a: ivre runscans --routable --limit 1000 --country CN --output=XMLFork  //随机扫描1000个地址  
root@e809cb41cb9a: nmap2db -c ROUTABLE-CAMPAIGN-001 -s MySource -r scans/ROUTABLE/up  //将扫描结果导入数据库  

可能在扫描一千个随机地址的时候会出现 ip 格式不对的错误,这个时候可能是 ivre 和 ip 地址提供商之间的协调问题,我们就只好自己手动指定 ip 地址段来进行扫描:

root@e809cb41cb9a: ivre runscans --network 45.32.14.0/24 --output=XMLFork  //随机扫描45.32.14.0 网段的ip 导出的格式是XMLFork  
root@e809cb41cb9a: ivre scan2db -c ROUTABLE,ROUTABLE-001 -s MySource -r ../  //不要问我为什么这么导出,我也不知道,误打误撞发现只有这样可以  

至此,你就可以访问 ivreweb(http://ip/)来访问扫描器的主页
扫描完成后记得删除扫描产生的缓存文件

root@e809cb41cb9a: rm -fr /ivre-share/scans/COUNTRY-CN/ current/

被动扫描:

root@e809cb41cb9a: cd /ivre-share  
root@e809cb41cb9a: bro -r 4SICS-GeekLounge-151021.pcap //使用Bro对数据包进行处理,完成后再当前文件夹生成.log文件  
root@e809cb41cb9a: ivre bro2db *.log //将.log文件导入数据库  
root@e809cb41cb9a: ivre flowcli --count //查看导入数据的统计信息   
打开浏览器,输入http://ip/flow.html 查看网络流量动画