Giter VIP home page Giter VIP logo

poc-bomber's Introduction

🔥 POC-bomber

🦄 POC bomber 是一款漏洞检测/利用工具,旨在利用大量高危害漏洞的POC/EXP快速获取目标服务器权限

本项目收集互联网各种危害性大的 RCE · 任意文件上传 · 反序列化 · sql注入 等高危害且能够获取到服务器核心权限的漏洞POC/EXP,并集成在 POC bomber 武器库中,利用大量高危害POC对单个或多个目标进行模糊测试,以此在大量资产中快速获取发现脆弱性目标,获取目标服务器权限。适用场景包括但不仅限于以下:

  1. hvv快速打点
  2. 漏洞资产测绘
  3. 维护个人漏洞扫描器

📝 简介

POC bomber 的poc支持weblogic,tomcat,apache,jboss,nginx,struct2,thinkphp2x3x5x,spring,redis,jenkins,php语言漏洞,shiro,泛微OA,致远OA,通达OA等易受攻击组件的漏洞检测,支持调用dnslog平台检测无回显的rce(包括log4j2的检测),支持单个目标检测和批量检测,程序采用高并发线程池,支持自定义导入poc/exp,并能够生成漏洞报告
POC bomber默认使用验证模式进行poc的验证,如返回结果中attack的值为True时,可以加参数(--attack)进入攻击模式直接调用exp进行攻击(需要指定poc文件名),达到一键getshell

😄 红队专版-RedTeam 3.0

POC-bomber的 v3.0.0 版本,拥有更快的扫描效率,修复因单个poc造成的卡顿问题和各若干bug,增加彩色输出和进度显示,支持指定poc目录,适合hvv快节奏,增加2022部分已公开漏洞的poc。支持自建dnslog服务器,在配置自己的域名后可以利用pocbomber在vps开启一个dnslog平台,进行部分漏洞dns带外检测。

💻 Screenshots

🏆 验证模式

    python3 pocbomber.py -u http://xxx.xxx

image image

verify模试演示

⚡️ 攻击模式

    python3 pocbomber.py -u http://xxx.xxx --poc="thinkphp2_rce.py" --attack
image

image attack模式演示

🔧 安装

  git clone https://github.com/tr0uble-mAker/POC-bomber.git            
  cd POC-bomber
  pip install -r requirements.txt

🚀 用法

    查看用法:     python3 pocbomber.py
    
    模式:
            获取poc/exp信息:   python3 pocbomber.py --show
            单目标检测:        python3 pocbomber.py -u http://xxx.xxx.xx
            批量检测:          python3 pocbomber.py -f url.txt -o report.txt 
            指定poc检测:       python3 pocbomber.py -f url.txt --poc="thinkphp2_rce.py"
            exp攻击模式:       python3 pocbomber.py -u 目标url --poc="指定poc文件" --attack
    参数:
            -u  --url      目标url
            -f  --file     指定目标url文件   
            -o  --output   指定生成报告的文件(默认不生成报告)
            -p  --poc      指定单个或多个poc进行检测, 直接传入poc文件名, 多个poc用(,)分开
            -t  --thread   指定线程池最大并发数量(默认30)
            --show         展示poc/exp详细信息
            --attack       使用poc文件中的exp进行攻击
            --dnslog       使用dnslog平台检测无回显漏洞(默认不启用dnslog,可在配置文件中启用)

🔆 配置文件

  /inc/config.py   

⚠️ 常见问题

  1. 程序不安装requirements.txt就可以直接运行,只依赖requests第三方库,其他库安装不上不影响程序运行,但有些poc会不能检测
  2. log4j2命令执行漏洞的检测:需要添加 --dnslog 参数
  3. 无回显漏洞检测默认使用 dnslog.cn 平台且默认关闭, 要开启需前往配置文件将 dnslog_flag 开关置为True
  4. 需要指定一个poc才能调用--attack攻击模式

📁 目录结构:

  +--------- poc_bomber.py (启动 POC-bomber)
  | 
  +--------- inc(存放支撑 POC-bomber 框架运行的核心文件)
  |
  \--------- pocs(POC存放列表)----------- framework(存放框架漏洞POC)
                                  |
                                  |------ middleware(存放中间件漏洞POC)
                                  |
                                  |------ ports(存放常见端口漏洞,主机服务漏洞POC)
                                  |
                                   \----- webs(存放常见web页面漏洞POC)

📖 POC编写规则

POC bomber支持自定义编写poc
poc统一要求python3编写,具有verify和attack(非必须)两个函数分别进行验证和攻击,

👻 漏洞验证函数(verify)编写应该满足以下条件:

  1. 函数名为 verify , 参数接收目标url的参数

  2. 函数的返回结果以字典的形式返回并且具有name和vulnerable两个键值,name说明漏洞名称,vulnerable通过True和False的状态表明漏洞是否存在

  3. 如果存在漏洞要将返回字典中vulnerable的值置为True, 并添加目标url, 漏洞利用相关网页等信息

  4. 用try方法尝试验证,使用request等发送数据包时要设置超时时间, 避免poc会卡死

     def verify(url):                        
         relsult = {                                            
             'name': 'Thinkphp5 5.0.22/5.1.29 Remote Code Execution Vulnerability',                          
             'vulnerable': False,
             'attack': False,        # 如果有exp支持attack模式将attack的值置为True
         }              
         try:                    
             ......        
             (用任意方法检测漏洞)             
             ......
             if 存在漏洞:
                 relsult['vulnerable'] = True     # 将relsult的vulnerable的值置为True
                 relsult['url'] = url             # 返回验证的url
                 relust['xxxxx'] = 'xxxxx'        # 可以添加该漏洞相关来源等信息   
                 ......           
                 return relsult     # 将vulnerable值为True的relsult返回                   
             else:  # 不存在漏洞           
                 return relsult    # 若不存在漏洞将vulnerable值为False的relsult返回
    
         execpt:
             return relsult
    

如果有exp可以编写 attack 函数作为exp攻击函数,

🎃 漏洞攻击函数(attack)编写应该满足以下条件:

  1. 函数名为 attack , 参数接收目标url的参数

  2. 并在try中编写exp代码进行攻击, 可以与用户交互输入

  3. 编写完成后将该漏洞的verify函数返回字典中attack值置为True

  4. 攻击成功后返回True,其他原因失败的话返回False即可

     def attack(url):    
       try:            
           ........................................            
             攻击代码(执行命令或反弹shell上传木马等)             
           ........................................
           return True
       except:               
           return False    
    

编写完成后的poc直接放入 /pocs 目录下任意位置即可被递归调用!

项目持续更新中,欢迎各位师傅贡献poc共筑网络安全!
有问题欢迎issues留言: https://github.com/tr0uble-mAker/POC-bomber/issues
联系: [email protected]

免责声明

本工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。 在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描。 如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。

poc-bomber's People

Contributors

tr0uble-maker avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

poc-bomber's Issues

dnslog问题

vps上如何启动dnslog服务,这里没有说明

bug反馈

今天跑了两次,都是跑了两小时左右就卡住了。
image
image
异常终止,是我主动结束的。
最后谢谢师傅写的程序,很好用。😄

为什么工具中requests.post发出的http版本为1.0呢?

BP捕获的数据包中http协议版本为1.0,没有host头,导致在漏洞探测时,回显404,加上host头正常。大家有遇到这种问题吗?怎么把HTTP版本设置为1.1呢?
POST / HTTP/1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0
Accept-Encoding: gzip, deflate
Accept: /
Connection: close

扫描时卡住

致远OA6 sql注入和通达OA任意用户登录,扫描时会卡住

功能增强

建议添加POC模糊识别搜索利用,比如我需要利用jboss漏洞的时候,只需要 --poc="jboss"即可利用jboss所有的exp进行检测和利用

【需求】

  1. 除了线程外,能否继续增加delay参数,指定延时(因为单线程有时候还是有点快,会被封ip)。
  2. 是否能引进vulmap的扫描显示的类似功能,检测某个漏洞的时候输出就删了重新输出不换行输出,只有检测到漏洞或者报错时才单行显示(第一是显示的结果太多,二是当检测到某个漏洞的时候容易被哗哗的顶上去了,还得慢慢拉上去看),检测到时,如果有payload信息就可以输出漏洞使用的payload信息,方便测试,而不是等着扫描完成后才能看到。
  3. 能否引入指纹识别后漏扫,因为比如我是thinkphp的网站,根本不可能会有struct2或者spring的漏洞,检测这些漏洞完全是浪费时间,特别是poc很多之后,就算检测到某个也基本是误报,明确目标cms或者框架的情况下没必要完全扫描所有poc漏洞。

【优化】s2_009漏洞优化

大佬可以优化一下s2_009的漏洞判断,有些没有这个漏洞的,他网页响应会包含请求的内容就是整个payload的链接都包含进去,因此网页返回内容包含也包含hash_flag这个串字符串。

找了好久,求个好友位一起完善POC

找了好久的框架,都准备写nuclei的yaml格式的POC来用了,今晚突然翻到一个你这个框架,真是我所需要的,求个好友位,QQ已添加,望回复

师傅好,提交了1个pr

因为是一些产品存在多个漏洞,我习惯会把某个产品的漏洞放在同一文件夹,修改代码后调用的时候直接传入文件夹名称即可调用,代码改动很小,见pr
效果如图
image

感谢师傅提供的工具

dnslog问题

已经在配置文件中设置DNSLOG为TRUE ,但是还是无法回显
image

image

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.