Python爬虫 xunfeng应用详解

Python爬虫(十九)

学习Python爬虫过程中的心得体会以及知识点的整理,方便我自己查找,也希望可以和大家一起交流。

—— xunfeng应用详解 ——

1.作用

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

2. 安装及使用

  1. 点击巡风源代码下载巡风。

  2. 巡风支持多平台安装,包括windows、linux、OSX、docker。

点击xunfeng安装教程查看。

3. 代码赏析

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

  2. 项目比较完整

  3. 如何综合运用之前所学知识

4. 插件编写

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

JSON标示符
xunfeng应用详解
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

此外系统内嵌了辅助验证功能:

  • DNS:触发,nslookup randomstr IP,验证, http://ip:8088/randomstr ,返回YES即存在。

  • HTTP:触发,http://ip:8088/add/randomstr ,验证,http://ip:8088/check/randomstr ,返回YES即存在。

5. mongodb命令

  • 进入mongodb:mongo --port 65521

  • 查看数据库:show dbs

  • 使用数据库:use xunfeng

  • 查看表:show collections

  • 查看表内容(以Config表为例):db.Config.find()

  • 退出:exit

  • 帮助:db.help()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章