一、巡风:

  巡风是一款什么东西,想必安全同行都不陌生吧。用它作为内网漏洞扫描管理架构是一种很好的选择,扫描快,开源,还可自己编写符合规则的POC直接放入相应目录来扩展。今天下午趁着有点时间捋了一下巡风的代码框架,顺便学习下Flask的项目文件结构。在这里,还是鸣谢一下同程应急响应中心(YSRC),开源这款产品。

二、巡风的基本架构:

  巡风是一款使用Python Flask框架编写的网络安全漏扫工具,BS架构。数据库使用MongoDB,扫描器使用号称五分钟扫遍互联网的masscan(当然真是情况没有那么快)。漏扫使用编写好的POC,POC全部开源在源码目录下的/vulscan/vuldb下面。其他辅助功能还有启动一个DNS服务器(UDP 53端口),和一个web服务器,辅助检测类似于Jenkins反序列化远程命令执行(cve-2017-1000353)这种无回显的漏洞。扫描任务的建立是根据用户输入添加到MongoDB数据库中。另一个进程漏洞的一个脚本,会周期性检查数据库,取出任务队列,执行任务。

三、巡风的漏扫POC原理:

1、有回显的直接根据回显判断。

2、无回显的,会生成一条访问上文提到的web服务器的增加一个随机字符串的payload。然后POC扫描脚本去请求这个服务器中有没有这个随机字符串,有就判定有漏洞,反之则没有漏洞。

四、巡风的文间结构:

最外层:xunfeng(folder)

  1、folder:

  1.1 -> aider =>aider.py 该文件中会以socket起一个webserver 坚听在8088端口(使用TCP协议)以及一个DNS监听UDP 53端口的socket。

  1.2 -> db =>大量json和bson文件,没搞清楚具体用途。

  1.3 -> dockerconf => mongoauth 用来创建mongodb的用户,配置口令。start.sh是一个shell文件用来起docker话的启动服务。

  1.4 -> docs -> install => 大量markdown文件 用来讲解各种OS下以及使用Docker如何安装巡风。

  1.5 -> install:

    1.5.1 ->files => xunfeng 配置日志文件、pid文件等路径,并启动巡风的shell文件/xunfeng.conf巡风的配置文件。

    1.5.2 => config.sh 配置shell脚本 install.sh 安装shell脚本 uninstall.sh 卸载的shell脚本。

  1.6 -> masscan linux和windows环境下的masscan程序执行文件。

  1.7 -> nascan:

    1.7.1 -> lib => 大量的自定义lib库python文件,包含超类路由的cidr.py文件,icmp.py ping功能文件,mongo.py和mongodb数据了交互的文件,log.py日志功能文件以及start.py和scan.py等等。

    1.7.2 -> plugin => masscan.py 调用masscan的文件。

    1.7.3 => NAscan.py 启动scan部分功能的py文件。

  1.8 -> views:

    1.8.1-> lib => AntiCSRF.py 防止csrf攻击的自定义lib库,以及其他自定义lib库conn.py 连接功能模块,createexcel创建excel结果表的模块,登录模块login.py,搜索查询模块querylogic。

    1.8.2 -> static 静态文件库 :包含css文件库、js文件库、图片文件库等等。

    1.8.3 -> templates 模板文件库:html文件模板。

    1.8.4 -> __init__.py 创建app和数据库对象的文件。

    1.8.5 -> Views.py 路由函数文件。

  1.9 -> vulscan:

    1.9.1 ->vuldb POC文件库。

    1.9.2 => vulscan.py 漏扫进程主模块文件。

  2、files:

    2.1 => Config.py 配置文件:web的用户名、口令以及数据库的用户名、口令配置。明文硬编码的。

    2.2 => Dockerfile Docker文件 用来创建启动运行Docker。

    2.3 => LICENSE。

    2.4 => README.md。

    2.5 => requirements.txt Python的以来的库都写在该文本文件内。

    2.6 => Run.py 文件 app启动文件、可修改监听的IP和端口。

    2.7 => Run 启动文件(linux下.sh文件;win下.bat文件)。

五、总结Flask项目文件结构:

    1、总目录:WWW(使用Project Name 做folder的名字也可以)

      1.1 配置文件config.py。

      1.2 启动文件 manage.py 或者run.py。

      1.3 License文件(文本文件)。

      1.4 readme文件(markdown格式)。

      1.5 requirements.txt(依赖库说明文件)。

      1.6 lib-floder 自定义插件或其他进程库文件夹。

      1.7 views 主程序文件夹:

        1.7.1 lib 主程序依赖的库文件package。

        1.7.2 static 静态文件库。

        1.7.3 templates 模板文件库。

        1.7.4 __init__.py app对象创建以及数据库初始化的python文件。

        1.7.5 views.py 路由函数定义文件。

转载于:https://www.cnblogs.com/KevinGeorge/p/8052915.html

巡风代码架构简介以及Flask的项目文件结构简介相关推荐

  1. 巡风xunfeng代码研究---新建Flask项目模板

    生成以下的Flask项目模板 现所缺功能还是很多 如何完成以下的目录架构: 1)在项目下面穿件 aider子目录,db子目录,views子目录,和其他功能模块目录(nascan,masscan,vul ...

  2. flask post json_使用Flask构建web项目的代码架构以及技术栈模板(一)

    自我简介 无名编码狮,爱好编码,个人blog网站http://www.skj.kim,网站服务器比较辣鸡哈,第一次访问速度比较慢,就用来记录一些CSDN审核不容易通过的博客,底层使用wordpress ...

  3. 巡风xunfeng代码研究---核心模块深入分析--搜索和搜索结果

    下面的是核心文件: 1) search.html2) main.html3) View.py 说明: 本项目使用的是jquery js脚本方式,请注意,在写脚本的时候请在页面后面添加jquery的相关 ...

  4. 巡风 win7 python3.7安装使用记录

    巡风是一款适用于企业内网的漏洞快速应急.巡航扫描系统,只做初步探测,无攻击性行为. 其主体分为两部分:网络资产识别引擎,漏洞检测引擎. 网络资产识别引擎会通过用户配置的IP范围定期自动的进行端口探测( ...

  5. (转)Ubuntu 17.04_64上搭建巡风扫描系统(资产信息漏洞扫描内网神器)

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

  6. 同程SRC巡风-内网漏洞应急巡航扫描系统

    内网漏洞应急巡航扫描系统 介绍 主体两部分:网络资产识别引擎,漏洞检测引擎. 代码赏析 插件编写 JSON标示符 Python脚本 此外系统内嵌了辅助验证功能 文件结构 功能 模块 添加IP 巡风源码 ...

  7. 巡风漏扫系统介绍与安装

    为什么80%的码农都做不了架构师?>>>    巡风 巡风是一款适用于企业内网的漏洞快速应急.巡航扫描系统,通过搜索功能可清晰的了解内部网络资产分布情况,并且可指定漏洞插件对搜索结果 ...

  8. xunfeng(巡风)源码解读之vulscan

    以前搭建过好几次xunfeng,也看过几次他的源码,最近团队准备做巡风的二次开发,就要再好好看下他的源码了,我们知道巡风主要有两个功能,资产发现和漏洞扫描,我主要负责漏洞扫描这块,就先简单记录下这块的 ...

  9. windows10安装巡风

    看了好多人写的还有官方文档,也试了好长时间就是不成功.想爆粗口,成功之后记录一下.基本官方教程可以装成功为啥我之前还要配置数据库.大家不要做多余的操作. 一.环境安装 1.操作系统依赖 由于默认的ku ...

最新文章

  1. android String.format
  2. 【EASYDOM系列教程】之 textContent 属性
  3. nginx模块_使用gdb调试nginx源码
  4. Python中怎么读写图像
  5. 关于linux内核模块的装载过程
  6. Hexo博客:您备案的网站未指向阿里云国内节点(不含香港)服务器,备案号可能被取消接入
  7. Android无线调试——抛开USB数据线
  8. android excel布局,Android实现仿excel数据表格效果
  9. ES6-字符串扩展-padStart(),padEnd()
  10. PhalGo-Echo路由
  11. 数据库设计说明书的编写
  12. 雷达导论PART-III.8 雷达接收机与数字化
  13. VS2017--无法添加引用--提示“未能完成操作。不支持此接口”
  14. Shopee本地店和跨境店物流及收款方式介绍
  15. 投资组合业绩评价指标-夏普测度、特雷纳测度、詹森测度以及信息与卡玛比率...
  16. excel 区间人数柱状图_绩效评价还要分区间比较,Excel图表如何呈现?
  17. 选课通知 | 北交大《人工智能与大数据应用实战》秋季全校选修课简介!
  18. mysql数据备份恢复
  19. AttributeError: module ‘torch.distributed‘ has no attribute ‘_all_gather_base‘
  20. 从顶层设计聊公司治理

热门文章

  1. linux boot 缺省状态,Bootload启动过程全描述(uclinux)【转载】
  2. 深度学习工程师能力评估标准
  3. dbentry mysql_DbEntry.Net(Lephone Framework) Access ORM:安装和简单使用
  4. lightgbm过去版本安装包_谨慎更新华为EMUI10.1版本
  5. 怎样去除excel表中的虚线_Excel表格里的虚线如何去掉?
  6. tb文件 vivado_Vivado FPGA设计基础操作流程:Vivado的基本使用
  7. android 开发中判断网络是否连接的代码
  8. 可复用的基于ARM的W5100底层驱动设计
  9. 如何实现C#.net图像处理
  10. python画笔的尺寸_Matplotlib 常用画图命令总结:使用 Python 在论文中画出一手漂亮的数据图...