/ExploitDepository

一个花里胡哨的Exploit运行框架

Primary LanguagePython

88888888888                         88888888ba,
88                                  88      `"8b
88                                  88        `8b
88aaaaa     8b,     ,d8 8b,dPPYba,  88         88  ,adPPYba, 8b,dPPYba,   ,adPPYba,  ,adPPYba,
88"""""      `Y8, ,8P'  88P'    "8a 88         88 a8P_____88 88P'    "8a a8"     "8a I8[    ""
88             )888(    88       d8 88         8P 8PP""""""" 88       d8 8b       d8  `"Y8ba,
88           ,d8" "8b,  88b,   ,a8" 88      .a8P  "8b,   ,aa 88b,   ,a8" "8a,   ,a8" aa    ]8I
88888888888 8P'     `Y8 88`YbbdP"'  88888888Y"'    `"Ybbd8"' 88`YbbdP"'   `"YbbdP"'  `"YbbdP"'
                        88                                   88
                        88                                   88

                                        =[ ExploitDepository 1.1.211104_beta    ]
                                        =[ By Castiel at 2021-11-04             ]

使用须知

本项目为一款简易的 Python 模块运行框架,不提供任何具有攻击性代码。项目所涉及技术、思路和模块仅供以安全为目的的学习和交流使用,任何人不得将其用于非法用途,否则后果自行承担。

本项目内置的模块仅限于合法的渗透测试使用,对未授权的目标进行测试项目作者不承担任何责任。 由于传播、利用本项目所提供的功能造成的任何直接或间接的损失,均有使用者本人负责,项目作者不为此承担任何连带责任。

中文文档

简介

ExploitDepository 以下简称 ExpDepos 是一个轻量级渗透测试框架,该项目旨在为红队构建一个运行高质量 Exploit 模块的框架,实现实战攻防中的快速资产识别、漏洞利用,并具备一定的隐蔽性与WAF对抗能力。项目使用 Python 开发,内置实现了云函数自动部署使用(目前只支持腾讯云)、自定义 Exploit 模块开发、内置 WatWeb plus 指纹库、协程并发HTTP请求等功能。

运行环境

Python 3.6+

第三方依赖

  • rich~=9.13.0
  • pyfiglet~=0.8.post1
  • chardet~=4.0.0
  • httpx~=0.18.2
  • pip~=21.0.1
  • mmh3~=3.0.0
  • tencentcloud-sdk-python-common~=3.0.462
  • pyyaml~=5.4.1

快速开始

安装

$ pip3 install -r requirements.txt

运行模块

ExpDepos 提供命令执行和交互式Shell良种运行方式,使用命令行执行模块需提供模块执行相关参数。 使用 --console 参数启动交互式Shell控制台,且兼容命令行其他参数。当与命令行其他参数一起使用的时候,控制台启动后将自动设置相关参数值。

命令帮助:

usage: ExpDepos [-V] [--update] [-v {0,1,2,3,4}] [--console]
                [--scfinit | --scfclear | --scfreset] [-H HOST] [-M MODULE]
                [-P OPTIONS] [-L LIST] [--info | --verify | --exploit | -h]
                [--auth AUTH] [--cookie COOKIE] [--headers HEADER]
                [--user-agent AGENT] [--referer REFERER] [--timeout TIMEOUT]
                [--retries RETRIES] [--rdelay RDELAY] [--delay DELAY]
                [--proxy PROXY] [--thread THREAD] [--scf]

optional arguments:
  -V, --version         显示版本信息并退出
  --update              更新ExpDepos
  -v {0,1,2,3,4}, --verbose {0,1,2,3,4}
                        控制台信息输等级,该值越大输出信息越详细
  --console             启动交互式Shell控制台

SCF arguments:
  --scfinit             初始化云函数
  --scfclear            删除全部云函数
  --scfreset            重置云函数

target arguments:
  -H HOST, --host HOST  目标地址 (可选IP端口或URL地址)

module arguments:
  -M MODULE, --module MODULE
                        需要运行的Exploit模块
  -P OPTIONS, --options OPTIONS
                        模块的用户自定义参数
  -L LIST, --list LIST  显示给定类型模块列表
  --info                显示模块详细信息
  --verify              以验证模式执行Exploit模块
  --exploit             以利用模式执行Exploit模块
  -h, --help            显示Exploit模块帮助 与-M搭配使用

request arguments:
  --auth AUTH           HTTP基础认证信息(username:password)
  --cookie COOKIE       自定义Cookie信息,可选完整cookie字符串或键值对应值
  --headers HEADER      自定义Header信息(key1:value1,key2:value2)
  --user-agent AGENT    自定义HTTP Header的User-Agent值(默认值:随机生成)
  --referer REFERER     自定义HTTP Header的Referer值
  --timeout TIMEOUT     自定义超时时间(默认值:30)
  --retries RETRIES     当请求失败后重试次数(默认值:3)
  --rdelay RDELAY       当请求失败后重试间隔时间(默认值:3)
  --delay DELAY         两次请求之间的间隔时间(单位:秒)
  --proxy PROXY         使用代理发起REQUEST请求
  --thread THREAD       协程并发请求量(默认:200)
  --scf                 使用云函数(Serverless Cloud Functions)代理

Console命令

Welcome to the ExpDepose shell. Type help or ? to list commands.

ExpDepos> ?

Core Commands
=============

        Command                         Description
        -------                         -----------
        ?                               打印命令帮助
        help                            等同 ? 命令
        setg                            设置全局参数值
        get                             获取参数值
        show                            显示给定类型的模块信息或者全部模块
        debug                           设置Console输出为Debug模式
        undebug                         设置Console输出为非Debug模式
        exit                            退出Console


Module Commands
===============

        Command                         Description
        -------                         -----------
        use                             通过模块别名或路径选择使用的模块
        set                             设置模块参数值
        run                             执行已选中的模块(默认verify模式)
        exploit                         以exploit模式运行模块
        verify                          以verify模式运行模块
        info                            显示模块详细信息


Cloud Functions
===============

        Command                         Description
        -------                         -----------
        scfinit                         初始化云函数
        scfcls                          删除全部云函数
        scfrst                          重置云函数


Debug Commands
==============

        Command                         Description
        -------                         -----------
        reload                          重载并应用consoleShell模块的代码更改

ExpDepos>

命令行执行模块

$ python3 cli.py -M modules/exploits/webapp/example.py -H http://www.target.com

启动交互式界面

$ python3 cli.py --console

屏幕截图

交互式界面

运行模块

云函数初始化

云函数演示

httpx异步请求