0x00 前言
巡风是一款适用于企业内网的漏洞快速应急、巡航扫描系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测并输出结果报表。
网络资产识别引擎会通过用户配置的IP范围定期自动的进行端口探测(支持调用MASSCAN),并进行指纹识别,识别内容包括:服务类型、组件容器、脚本语言、CMS。
漏洞检测引擎会根据用户指定的任务规则进行定期或者一次性的漏洞检测,其支持2种插件类型、标示符与脚本,均可通过web控制台进行添加。
巡风需要在python2.7和mongodb3.2版本以上环境上安装 
git clone https://github.com/ysrc/xunfeng
0x01 环境配置
换源
安装好Ubuntu,首先换源
部署和调试巡风要求root权限,请用户切换到root账号进行操作,Ubuntu默认未开启root,请使用下列命令开启
$ sudo passwd root
输入你自己设置的root密码后
$ su root
即可切换到root账号
通过lsb_release 查看开发版本代号为18.04 bionic
| 1 | # lsb_release -a | 
备份原来的数据源配置文件
# cp /etc/apt/sources.list /etc/apt/sources.list_backup
编辑数据源配置文件
# vi /etc/apt/sources.list
| 1 | deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse | 
保存后执行
| 1 | apt-get update && apt-get upgrade && apt-get dist-upgrade | 
修改时区为Asia/Shanghai
| 1 | echo TZ\='Asia/Shanghai'\; export TZ >> ~/.bash\_profile && source ~/.bash\_profile | 
安装操作系统依赖
| 1 | # apt-get install gcc libssl-dev libffi-dev python-dev libpcap-dev | 
安装python依赖库
使用pip进行python依赖库管理,如果系统没有安装pip,可以通过如下命令安装
| 1 | # wget https://sec.ly.com/mirror/get-pip.py --no-check-certificate && python get-pip.py | 
使用pip安装 python 依赖库, 这里使用了豆瓣的 pypi 源
| 1 | 
安装mongo数据库
由于低版本不支持全文索引,MongoDB版本需要 ≥ 3.2。
- 安装公钥 - # apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
- 添加3.2的源 - # echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
- 安装数据库 - # apt-get update && apt-get install -y mongodb-org
- 启动mongodb服务 
默认情况下apt方式安装的mongodb会自动启动,查看是否启动成功
```# netstat -antlp | grep 27017```
如果没有启动 
```# systemctl start mongodb```
设置开机启动
```# systemctl enable mongodb```
- mongodb添加认证 这里的 scan和your password 需要更换为你的mongodb的账户和密码。1 
 2
 3
 4# mongo 
 > use xunfeng
 > db.createUser({user:'scan',pwd:'your password',roles:[ {role:'dbOwner',db:'xunfeng'}]})
 > exit
0x02 部署
导入数据库
进入 xunfeng/db 文件夹, 执行如下命令:
# mongorestore -h 127.0.0.1 --port 27017 -d xunfeng .
修改配置
修改系统数据库配置脚本 Config.py:
| 1 | class Config(object): | 
修改 PASSWORD 字段内的密码, 设置成你的密码。
| 1 | class ProductionConfig(Config): | 
运行系统
根据实际情况修改(端口和目录需对应好) Conifg.py 和 Run.sh 文件后, 执行:
# sh Run.sh
如开启防火墙,需打开80端口
