Osprey

漏洞检测与利用框架
授权协议 未知
开发语言 Python
所属分类 程序开发、 安全相关框架
软件类型 开源软件
地区 国产
投 递 者 戚兴思
操作系统 Linux
开源组织
适用人群 未知
 软件概览

Osprey 是由 TCC (斗象能力中心)出品并长期维护的开源漏洞检测框架。

简介

Osprey 是一个可扩展的开源漏洞检测与利用框架(Python3 开发),是 TCC 长期的安全能力与经验的积累形成的一个可用工具,目前被集成应用于企业级安全产品 网藤风险感知-CRS 中。 Osprey 框架可供使用者在渗透测试、漏洞检测、漏洞扫描等场景中应用。框架提供了命令行接口和 Web 接口,可供灵活调用,也可用于构建自己的扫描器。

Osprey —— 鱼鹰,一种善于捕鱼的猛禽,取此命名漏洞盒子 PoC 框架,寓意快、精、准。

安装

从 Git 上获取最新版本的 osprey 代码

$ git clone https://github.com/TophantTechnology/osprey.git

推荐在 Linux 环境下使用,并用 virtualenv 搭建独立的 python3 环境

$ python3 -m venv venv
$ source venv/bin/activate

最小化安装

最小化安装仅提供命令行和一个交互式的 Console 接口,可满足大多数场景下的使用。

$ python setup.py install

完全安装

安装 osprey 的完整功能,包括命令行工具、 交互式 Console 接口、 Web API 接口。

  • 安装配置 RabbitMQ

  • 安装配置 MongoDB

  • 配置

    settings.py

    1. 使用 MongoDB 作为数据库:use_mongo = True, use_sqlite = False

    2. 填充 RabbitMQ 和 MongoDB 的 URI:mongo_url, CELERY_BROKER

    3. 填写你的 Python3 解释器路径:PROGRAM

  • 安装 Python 包:

$ pip install -r web/requirements.txt

使用

  • 获取帮助列表:

$ python osprey.py --help
  • 最简单的用法,针对一个目标 URL,发起一个 PoC 做检测:

$ python osprey.py -t URL -v POC_ID
  • 使用交互式 Console 接口:

$ python console/osprey-console.py
  • 使用 Web API 接口:

$ gunicorn -b 127.0.0.1:5000 osprey-web:app -w 5
$ celery -A osprey-web.celery worker --concurrency=5 -Q poc-queue -n osprey.%h -Ofair

Docker 使用

可以使用 docker-compose 快速搭建完整的 Osprey 环境(需安装 docker 和 docker-compose)

编译 docker 环境

$ cd docker
$ docker-compose build

运行完整的 osprey 环境

$ docker-compose up -d

访问http://YOUR-IP:5000/,可以看到 osprey Web 部署已完成

利用 docker 搭建 osprey 的 Web 接口下发任务和获取执行结果

$ curl http://127.0.0.1:5000/api/start -d '{"task_id": "TASK_ID", "vid": "vb_ID", "target": "http://x.com/"}'
$ curl http://127.0.0.1:5000/api/result -d '{"task_id": "TASK_ID"}'

osprey 镜像拉取到本地之后,也可以直接通过 docker run 进入容器中(不启用 osprey-web),然后使用命令行工具或交互式 Console 接口

$ docker run -it -v pocs:/opt/osprey/pocs tophant/osprey bash

相关文档

基于 Osprey 编写 PoC,请参考 osprey编写规范和要求说明

要使用 Osprey Web 接口,请参考 osprey-web接口使用说明文档

参考链接

 相关资料
  • 在完成对目标应用程序的信息收集和分析以及任何必须的 Burp 配置之后,您可以开始测试应用程序中常见的漏洞。在这个阶段,通常最有效的方法是同时使用 Burp 的多个组件,在不同组件之间传递个别请求以执行不同的任务,并返回浏览器进行一些测试。 在 Burp 中,您可以使用菜单在组件之间传递项目,并执行其他操作。 在 Burp 的默认配置中,它会自动对通过代理的所有请求和响应执行实时的被动扫描。因此,

  • 漏洞检测(该工具已下线) 漏洞检测工具使用说明 一,高危漏洞  高危漏洞包括SQL注入漏洞、XSS跨站脚本漏洞、页面存在源代码泄露、网站存在备份文件、网站存在包含SVN信息的文件、网站存在Resin任意文件读取漏洞。  SQL注入漏洞:网站程序忽略了对输入字符串中包含的SQL语句的检查,使得包含的SQL语句被数据库误认为是合法的SQL指令而运行,导致数据库中各种敏感数据被盗取、更改或删除。  XS

  • 漏洞利用是获得系统控制权限的重要途径。用户从目标系统中找到容易攻击的漏洞,然后利用该漏洞获取权限,从而实现对目标系统的控制。为了便于用户练习,本章将介绍Metasploit发布的Metasploitable 2。用户可以将其作为练习用的Linux操作系统。本章将利用Metasploitable系统上存在的漏洞,介绍各种渗透攻击,如MySQL数据库、PostgreSQL数据库及Tomcat服务等,其

  • 简介 一旦我们完成了漏洞扫描步骤,我们就了解了必要的知识来尝试利用目标系统上的漏洞。这一章中,我们会使用不同的工具来操作,包括系统测试的瑞士军刀 Metasploit。 6.1 安装和配置 Metasploitable 这个秘籍中,我们会安装、配置和启动 Metasploitable 2。 Metasploitable 是基于 Linux 的操作系统,拥有多种可被 Metasploit 攻击的漏洞

  • 在本节中,我们将更加深入地了解Metasploit,我们将看到如何使用它来利用某个服务中存在的漏洞。这是一个代码执行漏洞,可以让我们完全访问目标计算机。回到我们在Nmap中的结果,我们将做与以前一样的事情。复制服务名称,看看它是否有任何漏洞。现在我们查看端口139,它的Samba服务器版本为,就像上一节一样,在Google搜索Samba 3.X漏洞。我们将看到有很多结果,但主要是关于Rapid7方

  • 该部分承接前面的Web应用审计部分。在该部分中我们将关注于漏洞的利用,在结束时你应该能够熟练地识别和利用OWASP Top 10。 课程 前面的内容中我们已经介绍了Web安全的基础部分,所以现在在该部分中我们可以更深一步到一些能够获得更大效果的合适工具。学习掌握Burp Suite和Chrome开发者工具能够更好的理解和你交互的应用程序。BeEF是一个XSS代理的例子,通读它的源码学习它怎样工作将

  • 在该部分内容中,我们继续可利用漏洞的本地应用检查之路,并关注使用返回导向编程(ROP)来达到此目的。ROP是在代码结尾的返回指令中整合现有可执行片段的过程。通过创建这些“玩意儿”地址链可以在不引入任何新代码的情况下写新程序。 记住,在可利用程序的漏洞识别方法上你需要灵活应变。有时候有必要在漏洞利用开发过程中对一个漏洞多次利用。有时,你可能仅想用ROP来让你的shellcode执行,其他情况下,你可

  • 二进制的漏洞利用是破坏编译程序的过程,令程序违反自身的可信边界从而有利于你——攻击者。本部分中我们将聚焦于内存错误。通过利用漏洞来制造软件内存错误,我们可以用某种方式重写恶意程序静态数据,从而提升特定程序的权限(像远程桌面服务器)或通过劫持控制流完成任意操作和运行我们所用的代码。 如果你尝试在已编译的C程序中找bug,知晓你要找的东西是很重要的。从认识你发送的数据被程序用在什么地方开始,如果你的数