网上有关IVRE的介绍已经很多,但是不够细,本文主要是记录在安装使用过程中踩过的坑,Mark下
IVRE是一款开源的网络侦查框架工具,其功能类似于国内网络空间搜索引擎ZoomEye(钟馗之眼).IVRE使用Nmap、Zmap进行主动网络探测、使用Bro、P0f等进行网络流量被动分析,探测结果存入数据库中,方便数据的查询、分类汇总统计。
IVRE官方网站:https://ivre.rocks
CentOS Linux release 7.4.1708 (Core)
Docker version 17.11.0-ce, build 1caf76c
# gem uninstall vagrant
# wget https://releases.hashicorp.com/vagrant/2.0.1/vagrant_2.0.1_x86_64.rpm
# rpm -ivh vagrant_2.0.1_x86_64.rpm
可能出现问题如下
# vagrant -bash: /usr/local/bin/vagrant: No such file or directory
# which vagrant/usr/bin/vagrant
解决方法
# ln -s /usr/bin/vagrant /usr/local/bin/vagrant
# vagrant Usage: vagrant [options] <command> [<args>]
-v, --version Print the version and exit.
-h, --help Print this help.
以下为官方标准安装方法
附详细实际安装过程
从上图中可以看出web访问对应端口为80
https://192.168.66.11/
此时虽然可以访问页面,但因为没有扫描数据,所以各个菜单下数据为空
[ 注意 ]
以下内容如果没有特别指定,则默认为进入到ivreclient容器内进行操作
第一次使用时,对4个数据库进行初始化操作(使用过程中,如需完全重新导入数据,也要对相应数据库做初始化设置
$ ivre scancli --init
$ ivre ipinfo --init
$ ivre ipdata --init
$ ivre runscansagentdb --init
ipdata数据包含了IP对应的地理位置信息
$ ivre ipdata --download
$ ivre ipdata --import-all --no-update-passive-db
命令行内入输入ivre查看缺失模块
安装缺失模块
apt-get update
apt-get install python-pip
pip install Pillow
apt-get install libkrb5-dev
pip install python-krbv
apt-get install python-mysqldb
主动侦查功能是我使用IVRE的主要原因,利用它做资产的发现以及服务可视化
因为主要为扫描自己企业资产,所以不用对整个互联网进行扫描,如对内网扫描,可使用range和network两个选项,前者指定IP范围,后者指定网段
ivre runscans --range X.X.X.X Y.Y.Y.Y --output=XML
ivre runscans --network 192.168.3.0/24 --out=XML
扫描时脚本当前目录会产生scan子目录,内含有扫描结果,在脚本当前目录会有服务截图,后续会有说明
扫描完毕后把扫描结果导入数据库,如下
root@bf73b94dd987:/scans/RANGE-192.168.0.0-192.168.255.254/up#
ivre scan2db -c ROUTABLE-CAMPAIGN-001 -s MySource -r /scans/RANGE-192.168.0.0-192.168.255.254/*
6694 results imported.
导入成功后再次访问web,即可以看到数据
为了满足自动化扫描需要,写了个小脚本,如下
# nohup ./ipscan.sh &
脚本中没有使用network选项而是使用了range,并且IP段分成了两部分,主要是为了降低服务器资源开销,避免执行太多进程而卡死.
扫描服务器建议CPU4核,内存12G以上,同时根据需要可降低timeout时间,如图中红圈中的10m和1m则为优化后的数字,原来默认为15m和2m
nmap参数修改方法
IVRE可以使用Bro和p0f对流量分析,并将结果导入到数据库中.
实现的方法很多,在此我使用的是容器版tcpdump,并且和ivreclient共享目录,这样抓的包可以直接保存到共享目录供ivreclient解析,结合自动化脚本可实现自动化.
[root@localhost ~]# docker run --net=host -v /root/ivre-share:/data corfr/tcpdump -i any -w /data/dump.pcap
效果如下,有点复杂网络的感觉
如nmap扫描模板,report导出等功能就不一一介绍,详情可参考官方文档
IVRE官方网站:https://ivre.rocks
这个就不展开了,在
安全巡检系统架构实现这篇文章中也有详细介绍并且已经实现,其和IVRE的主要区别在统计分析结果的可视化,同时在数据的颗粒度上会更加详细
这是IVRE能够大大提高安全工作效率的地方,除了检测出目标主机开启的端口及服务的同时,还模拟浏览器访问并截图,以下为实际效果
1.大数据部门某系统无认证访问(几十个)使用弱口令登录上图中的策略库看看
通过默认口令成功进入后台
看图识漏洞,在此就不一一列举了,定期出风险评估报告来改善吧.