Skip to content
/ vulcat Public

vulcat可用于扫描Web端常见的CVE、CNVD等编号的漏洞,发现漏洞时会返回Payload信息。部分漏洞还支持命令行交互模式,可以持续利用漏洞

License

Notifications You must be signed in to change notification settings

CLincat/vulcat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vulcat

python version license stars forks

English version(英文版本)

(每月更新)
除了代码写得有亿点点烂, BUG有亿点点多, 有亿点点不好用, 等亿点点小问题以外,还是阔以的......吧

  • vulcat可用于扫描web端漏洞(框架、中间件、CMS等), 发现漏洞时会提示目标url和payload, 使用者可以根据提示对漏洞进行手工验证
  • 使用者还可以自己编写POC, 并添加到vulcat中进行扫描, 本项目也欢迎大家贡献自己的POC
  • 如果有什么想法、建议或者遇到了BUG, 都可以issues

目前支持扫描的web应用程序有:

AlibabaDruid, AlibabaNacos, ApacheAirflow, ApacheAPISIX, ApacheDruid, ApacheFlink, ApacheHadoop, ApacheHttpd, ApacheSkywalking, ApacheSolr, ApacheTomcat, AppWeb, AtlassianConfluence, Cicso, Discuz, Django, Drupal, ElasticSearch, F5-BIG-IP, Fastjson, Gitea, Gitlab, Grafana, Influxdb, RubyOnRails, Jenkins, Jetty, Jupyter, Keycloak, Landray-OA, MiniHttpd, mongo-express, Nexus, Node.js, NodeRED, phpMyAdmin, phpUnit, ShowDoc, Spring, Supervisor, ThinkPHP, Ueditor, Weblogic, Webmin, Yonyou, Zabbix

你还可以查看下方的"漏洞列表", 查看vulcat支持扫描的漏洞

行为规范和免责声明

  • 在使用本工具前, 请确保您的行为符合当地法律法规, 并且已经取得了相关授权。

  • 本工具仅面向拥有合法授权的企业和个人等, 意在加强网络空间安全。

  • 如果您在使用本工具的过程中存在任何非法行为, 或造成了任何严重后果, 您需自行承担相应责任, 我们将不承担任何法律及连带责任。

安装 && 使用

工具基于python3开发, 推荐使用python3.8及以上版本

  • Git: git clone https://github.com/CLincat/vulcat.git
  • Zip: 点我
git clone https://github.com/CLincat/vulcat.git
cd vulcat
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple
python3 vulcat.py -h
Usage:
使用本工具, 代表您同意"vulcat/README.zh-cn.md"中的"行为规范和免责声明"; 如果您不同意, 请勿使用本工具


Usage: python3 vulcat.py <options>
Examples:
python3 vulcat.py -u https://www.example.com/
python3 vulcat.py -u https://www.example.com/ -a thinkphp --log 3
python3 vulcat.py -u https://www.example.com/ -a tomcat -v CVE-2017-12615
python3 vulcat.py -f url.txt -t 10
python3 vulcat.py --list

选项

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit

  Target:
    指定扫描目标

    -u URL, --url=URL   单个url (如: -u http://www.baidu.com/)
    -f FILE, --file=FILE
                        含有多个url的文件, 一行一个 (如: -f url.txt)
    -r, --recursive     递归扫描url的每层目录

  Optional:
    可选功能选项

    -t THREAD, --thread=THREAD
                        线程数 (默认: 2)
    --delay=DELAY       延迟时间/秒 (默认: 1)
    --timeout=TIMEOUT   超时时间/秒 (默认: 10)
    --user-agent=UA     自定义User-Agent
    --cookie=COOKIE     添加cookie (如: --cookie "PHPSESSID=123456789")
    --auth=AUTHORIZATION
                        添加Authorization (如: --auth "Basic YWRtaW46YWRtaW4=")

  日志:
    运行时输出的debug信息

    --log=LOG           日志等级, 可选1-6 (默认: 1) [日志2级: 框架名称+漏洞编号+状态码] [日志3级:
                        2级内容+请求方法+请求目标+POST数据] [日志4级: 2级内容+请求数据包] [日志5级:
                        4级内容+响应头] [日志6级: 5级内容+响应内容]

  Proxy:
    代理

    --http-proxy=HTTP_PROXY
                        http/https代理 (如: --http-proxy 127.0.0.1:8080)
    --socks4-proxy=SOCKS4_PROXY
                        socks4代理(如: --socks4-proxy 127.0.0.1:8080)
    --socks5-proxy=SOCKS5_PROXY
                        socks5代理(如: --socks5-proxy 127.0.0.1:8080 或
                        admin:123456@127.0.0.1:8080)

  Application:
    指定扫描的目标类型

    -a APPLICATION, --application=APPLICATION
                        指定框架类型, 支持的框架可以参考最下面的提示信息, 多个使用逗号分隔 (如: thinkphp 或者
                        thinkphp,weblogic) (默认将启用指纹识别, 并使用相应POC,
                        如果未识别出框架则使用全部POC)
    -v VULN, --vuln=VULN
                        指定漏洞编号, 配合-a/--application对单个漏洞进行扫描, 可以使用--list查看漏洞编号,
                        没有漏洞编号的漏洞暂不支持, 编号不区分大小, 符号-和_皆可 (如: -a fastjson -v
                        CNVD-2019-22238 或者 -a Tomcat -v cvE-2017_12615)
    -x, --exp           配合-a和-v参数进行使用, Poc扫描过后, 如果该漏洞存在, 则进入该漏洞的Exp交互模式; 可以使用
                        --list查看支持Exp的漏洞(如: -a httpd -v CVE-2021-42013 -x)

  Api:
    第三方api

    --dns=DNS           dns平台, 辅助无回显漏洞的验证, 支持dnslog.cn和ceye.io(可选参数:
                        dnslog/ceye 如: --dns ceye) (默认自动选择, 优先ceye,
                        ceye不可用时自动改为dnslog)

  Save:
    保存扫描结果

    --output-text=TXT_FILENAME
                        以txt格式保存扫描结果, 无漏洞时不会生成文件(如: --output-text result.txt)
    --output-json=JSON_FILENAME
                        以json格式保存扫描结果, 无漏洞时不会生成文件(如: --output-text
                        result.json)

  General:
    通用工作参数

    --no-waf            禁用waf检测
    --no-poc            禁用安全漏洞扫描
    --batch             yes/no的选项不需要用户输入, 使用默认选项

  Lists:
    漏洞列表

    --list              查看所有Payload

  支持的目标类型(-a参数, 不区分大小写):
    AliDruid, airflow, apisix, apachedruid, appweb, cisco, confluence, discuz, django,
    drupal, elasticsearch, f5bigip, fastjson, flink, gitea, gitlab,
    grafana, influxdb, hadoop, httpd, jenkins, jetty, jupyter, keycloak,
    landray, minihttpd, mongoexpress, nexus, nacos, nodejs, nodered,
    phpmyadmin, phpunit, rails, showdoc, solr, spring, supervisor,
    skywalking, thinkphp, tomcat, ueditor, weblogic, webmin, yonyou, zabbix

语言

可以修改-h/--help的语言, 目前只有中文和英文(麻麻再也不用担心我看不懂啦!)

  • 打开vulcat/lib/initial/language.py, 打开后会看到以下代码↓
  • en_us为英文, zh_cn为中文, 将return调换上下顺序, 然后保存文件就实现了-h语言的切换
def language():
    return lang['zh_cn']
    return lang['en_us']

自定义Dnslog平台

可以定义自己的http://ceye.io

  • 打开vulcat/lib/initial/config.py
  • 找到以下代码, 填写自己的域名和token, 保存文件即可
args.ceye_domain = ''
args.ceye_token = ''

自定义 POC

  • 如何编写自己的漏洞POC, 并添加到vulcat中

  • 找到vulcat/payloads/demo/demo.py, demo.py是vulcat中的POC模板(半成品), 需要用户填写剩余的代码

  • 修改步骤:

  1. 先将demo.py复制一份并保存, 防止模板丢失, 然后修改文件名为POC的名字(如test.py), 文件名可以自定义

  2. 然后根据demo.py中的提示, 填写自己的代码, 并在vulcat中引入POC

漏洞列表

目前支持扫描的web漏洞有: [点击展开]
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Target               | Vuln id            | Vuln Type    | Exp | Description                                                          |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Alibaba Druid        | (None)             | unAuth       |  -  | 阿里巴巴Druid未授权访问                                              |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Alibaba Nacos        | CVE-2021-29441     | unAuth       |  -  | 阿里巴巴Nacos未授权访问                                              |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache Airflow       | CVE-2020-17526     | unAuth       |  -  | Airflow身份验证绕过                                                  |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache APISIX        | CVE-2020-13945     | unAuth       |  -  | Apache APISIX默认密钥                                                |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache Druid         | CVE-2021-25646     | RCE          |  Y  | Apache Druid 远程代码执行                                            |
| Apache Druid         | CVE-2021-36749     | FileRead     |  Y  | Apache Druid 任意文件读取                                            |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache Flink         | CVE-2020-17519     | FileRead     |  Y  | Flink目录遍历                                                        |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache Hadoop        | (None)             | unAuth       |  -  | Hadoop YARN ResourceManager 未授权访问                               |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache Httpd         | CVE-2021-40438     | SSRF         |  -  | Apache HTTP Server 2.4.48 mod_proxy SSRF                             |
| Apache Httpd         | CVE-2021-41773     | FileRead/RCE |  Y  | Apache HTTP Server 2.4.49 路径遍历                                   |
| Apache Httpd         | CVE-2021-42013     | FileRead/RCE |  Y  | Apache HTTP Server 2.4.50 路径遍历                                   |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache SkyWalking    | CVE-2020-9483      | SQLinject    |  -  | SkyWalking SQL注入                                                   |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache Solr          | CVE-2017-12629     | RCE          |  -  | Solr 远程命令执行                                                    |
| Apache Solr          | CVE-2019-17558     | RCE          |  Y  | Solr Velocity 注入远程命令执行                                       |
| Apache Solr          | CVE-2021-27905     | SSRF/FileRead|  Y  | Solr SSRF/任意文件读取                                               |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache Tomcat        | CVE-2017-12615     | FileUpload   |  -  | PUT方法任意文件写入                                                  |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Apache Unomi         | CVE-2020-13942     | RCE          |  Y  | Apache Unomi远程表达式代码执行                                       |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| AppWeb               | CVE-2018-8715      | unAuth       |  -  | AppWeb身份认证绕过                                                   |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Atlassian Confluence | CVE-2015-8399      | FileRead     |  Y  | Confluence任意文件包含                                               |
| Atlassian Confluence | CVE-2019-3396      | FileRead     |  Y  | Confluence路径遍历和命令执行                                         |
| Atlassian Confluence | CVE-2021-26084     | RCE          |  Y  | Confluence Webwork Pre-Auth OGNL表达式命令注入                       |
| Atlassian Confluence | CVE-2022-26134     | RCE          |  Y  | Confluence远程代码执行                                               |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Cisco                | CVE-2020-3580      | XSS          |  -  | 思科ASA/FTD XSS跨站脚本攻击                                          |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Discuz               | wooyun-2010-080723 | RCE          |  Y  | 全局变量防御绕过RCE                                                  |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Django               | CVE-2017-12794     | XSS          |  -  | debug page XSS跨站脚本攻击                                           |
| Django               | CVE-2018-14574     | Redirect     |  -  | CommonMiddleware url重定向                                           |
| Django               | CVE-2019-14234     | SQLinject    |  -  | JSONfield SQL注入                                                    |
| Django               | CVE-2020-9402      | SQLinject    |  -  | GIS SQL注入                                                          |
| Django               | CVE-2021-35042     | SQLinject    |  -  | QuerySet.order_by SQL注入                                            |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Drupal               | CVE-2014-3704      | SQLinject    |  -  | Drupal < 7.32 Drupalgeddon SQL 注入                                  |
| Drupal               | CVE-2017-6920      | RCE          |  -  | Drupal Core 8 PECL YAML 反序列化代码执行                             |
| Drupal               | CVE-2018-7600      | RCE          |  Y  | Drupal Drupalgeddon 2 远程代码执行                                   |
| Drupal               | CVE-2018-7602      | RCE          |  -  | Drupal 远程代码执行                                                  |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| ElasticSearch        | CVE-2014-3120      | RCE          |  Y  | ElasticSearch命令执行                                                |
| ElasticSearch        | CVE-2015-1427      | RCE          |  Y  | ElasticSearch Groovy 沙盒绕过&&代码执行                              |
| ElasticSearch        | CVE-2015-3337      | FileRead     |  Y  | ElasticSearch 目录穿越                                               |
| ElasticSearch        | CVE-2015-5531      | FileRead     |  Y  | ElasticSearch 目录穿越                                               |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| F5 BIG-IP            | CVE-2020-5902      | RCE          |  -  | BIG-IP远程代码执行                                                   |
| F5 BIG-IP            | CVE-2022-1388      | unAuth/RCE   |  Y  | BIG-IP远程代码执行                                                   |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Fastjson             | CNVD-2017-02833    | unSerialize  |  -  | Fastjson <= 1.2.24 反序列化                                          |
| Fastjson             | CNVD-2019-22238    | unSerialize  |  -  | Fastjson <= 1.2.47 反序列化                                          |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Gitea                | (None)             | unAuth       |  -  | Gitea 1.4.0 未授权访问                                               |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Gitlab               | CVE-2021-22205     | RCE          |  -  | GitLab Pre-Auth 远程命令执行                                         |
| Gitlab               | CVE-2021-22214     | SSRF         |  -  | Gitlab CI Lint API未授权 SSRF                                        |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Grafana              | CVE-2021-43798     | FileRead     |  Y  | Grafana 8.x 插件模块路径遍历                                         |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Influxdb             | (None)             | unAuth       |  -  | influxdb 未授权访问                                                  |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Jenkins              | CVE-2018-1000861   | RCE          |  -  | jenkins 远程命令执行                                                 |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Jetty                | CVE-2021-28164     | DSinfo       |  -  | jetty 模糊路径信息泄露                                               |
| Jetty                | CVE-2021-28169     | DSinfo       |  -  | jetty Utility Servlets ConcatServlet 双重解码信息泄露                |
| Jetty                | CVE-2021-34429     | DSinfo       |  -  | jetty 模糊路径信息泄露                                               |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Jupyter              | (None)             | unAuth       |  -  | Jupyter 未授权访问                                                   |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Keycloak             | CVE-2020-10770     | SSRF         |  -  | 使用request_uri调用未经验证的URL                                     |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Landray              | CNVD-2021-28277    | FileRead/SSRF|  Y  | 蓝凌OA 任意文件读取/SSRF                                             |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Mini Httpd           | CVE-2018-18778     | FileRead     |  -  | mini_httpd 任意文件读取                                              |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| mongo-express        | CVE-2019-10758     | RCE          |  -  | 未授权远程代码执行                                                   |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Nexus Repository     | CVE-2019-5475      | RCE          |  Y  | 2.x yum插件 远程命令执行                                             |
| Nexus Repository     | CVE-2019-7238      | RCE          |  -  | 3.x 远程命令执行                                                     |
| Nexus Repository     | CVE-2019-15588     | RCE          |  Y  | 2019-5475的绕过                                                      |
| Nexus Repository     | CVE-2020-10199     | RCE          |  -  | 3.x 远程命令执行                                                     |
| Nexus Repository     | CVE-2020-10204     | RCE          |  -  | 3.x 远程命令执行                                                     |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Nodejs               | CVE-2017-14849     | FileRead     |  Y  | Node.js目录穿越                                                      |
| Nodejs               | CVE-2021-21315     | RCE          |  -  | Node.js命令执行                                                      |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| NodeRED              | CVE-2021-3223      | FileRead     |  Y  | Node-RED 任意文件读取                                                |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| phpMyadmin           | WooYun-2016-199433 | unSerialize  |  -  | phpMyadmin Scripts/setup.php 反序列化                                |
| phpMyadmin           | CVE-2018-12613     | FileInclude  |  Y  | phpMyadmin 4.8.1 远程文件包含                                        |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| PHPUnit              | CVE-2017-9841      | RCE          |  Y  | PHPUnit 远程代码执行                                                 |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Ruby on Rails        | CVE-2018-3760      | FileRead     |  Y  | Ruby on Rails 路径遍历                                               |
| Ruby on Rails        | CVE-2019-5418      | FileRead     |  Y  | Ruby on Rails 任意文件读取                                           |
| Ruby on Rails        | CVE-2020-8163      | RCE          |  -  | Ruby on Rails 命令执行                                               |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| ShowDoc              | CNVD-2020-26585    | FileUpload   |  -  | ShowDoc 任意文件上传                                                 |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Spring               | CVE-2016-4977      | RCE          |  -  | Spring Security OAuth2 远程命令执行                                  |
| Spring               | CVE-2017-8046      | RCE          |  -  | Spring Data Rest 远程命令执行                                        |
| Spring               | CVE-2018-1273      | RCE          |  -  | Spring Data Commons 远程命令执行                                     |
| Spring               | CVE-2020-5410      | FileRead     |  Y  | Spring Cloud目录遍历                                                 |
| Spring               | CVE-2021-21234     | FileRead     |  Y  | Spring Boot目录遍历                                                  |
| Spring               | CVE-2022-22947     | RCE          |  -  | Spring Cloud Gateway SpEl远程代码执行                                |
| Spring               | CVE-2022-22963     | RCE          |  -  | Spring Cloud Function SpEL远程代码执行                               |
| Spring               | CVE-2022-22965     | RCE          |  -  | Spring Framework远程代码执行                                         |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Supervisor           | CVE-2017-11610     | RCE          |  -  | Supervisor 远程命令执行                                              |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| ThinkPHP             | CVE-2018-1002015   | RCE          |  Y  | ThinkPHP5.x 远程代码执行                                             |
| ThinkPHP             | CNVD-2018-24942    | RCE          |  Y  | 未开启强制路由导致RCE                                                |
| ThinkPHP             | CNNVD-201901-445   | RCE          |  Y  | 核心类Request远程代码执行                                            |
| ThinkPHP             | CNVD-2022-86535    | RCE          |  -  | ThinkPHP 多语言模块命令执行                                          |
| ThinkPHP             | (None)             | RCE          |  -  | ThinkPHP2.x 远程代码执行                                             |
| ThinkPHP             | (None)             | SQLinject    |  -  | ThinkPHP5 ids参数SQL注入                                             |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Ueditor              | (None)             | SSRF         |  -  | Ueditor编辑器SSRF                                                    |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Oracle Weblogic      | CVE-2014-4210      | SSRF         |  -  | Weblogic 服务端请求伪造                                              |
| Oracle Weblogic      | CVE-2017-10271     | unSerialize  |  -  | Weblogic XMLDecoder反序列化                                          |
| Oracle Weblogic      | CVE-2019-2725      | unSerialize  |  -  | Weblogic wls9_async反序列化                                          |
| Oracle Weblogic      | CVE-2020-14750     | unAuth       |  -  | Weblogic 权限验证绕过                                                |
| Oracle Weblogic      | CVE-2020-14882     | RCE          |  -  | Weblogic 未授权命令执行                                              |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Webmin               | CVE-2019-15107     | RCE          |  Y  | Webmin Pre-Auth 远程代码执行                                         |
| Webmin               | CVE-2019-15642     | RCE          |  Y  | Webmin 远程代码执行                                                  |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Yonyou               | CNNVD-201610-923   | SQLinject    |  -  | 用友GRP-U8 Proxy SQL注入                                             |
| Yonyou               | CNVD-2021-30167    | RCE          |  Y  | 用友NC BeanShell远程命令执行                                         |
| Yonyou               | (None)             | FileRead     |  -  | 用友ERP-NC NCFindWeb目录遍历                                         |
| Yonyou               | (None)             | DSinfo       |  -  | 用友U8 OA getSessionList.jsp 敏感信息泄漏                            |
| Yonyou               | (None)             | SQLinject    |  -  | 用友U8 OA test.jsp SQL注入                                           |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
| Zabbix               | CVE-2016-10134     | SQLinject    |  -  | latest.php或jsrpc.php存在sql注入                                     |
+----------------------+--------------------+--------------+-----+----------------------------------------------------------------------+
vulcat-1.1.7/2022.12.15
99/Poc
37/Exp

感谢

参考链接

https://bbs.zkaq.cn/t/6757.html

Star History

Star History Chart