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
CVE-2025-5548 — Estouro de buffer no FreeFloat FTP Server 1.0 ilustrando como um único manipulador inseguro pode gerar múltiplas entradas CVE em diferentes comandos. | Kitploit
Ferramentas/GitHubGitHub/themalwareguardian/cve-2025-5548
Análise de VulnerabilidadesExploraçãoEngenharia ReversaShellcodeDepuradoresFuzzingTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de PayloadsExploração de Binários
GitHubthemalwareguardian/cve-2025-5548

CVE-2025-5548

1há 5 mesesAinda não revisado

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 →
Compartilhar

Estouro de buffer no FreeFloat FTP Server 1.0 ilustrando como um único manipulador inseguro pode gerar múltiplas entradas CVE em diferentes comandos.

Ver Repositório

🐞 CVE-2025-5548: FreeFloat FTP Server 1.0 - Estouro de Buffer Baseado em Pilha

Buffer overflow no FreeFloat FTP Server 1.0 ilustrando como um único manipulador inseguro pode gerar múltiplas entradas CVE em diferentes comandos.




📑 Índice

  • Por que este repositório existe
  • Por que esta vulnerabilidade é interessante
  • Mesmo bug, múltiplos CVEs
  • Sobre a vulnerabilidade
  • Disparando o crash
  • Exploração



🎓 Por que este repositório existe

Este repositório faz parte do material que uso ao ensinar exploração de corrupção de memória (além do meu trabalho regular, também leciono em diferentes cursos de segurança cibernética onde ajudo a treinar a próxima geração de engenheiros reversos).

CVE-2025-5548 é um caso que uso quando quero mostrar aos alunos que a pesquisa de vulnerabilidades é uma habilidade acessível, não algo reservado para pesquisadores sêniores com anos de experiência. FreeFloat FTP Server 1.0 é uma pequena aplicação legada do Windows, fácil de configurar, fácil de executar e fácil de quebrar. O estouro é disparado através de um comando FTP padrão, o caminho de exploração é uma simples sobrescrita limpa do EIP, e todo o processo, desde o fuzzing até um shell funcional, pode ser concluído em uma única sessão.

Este caso também está diretamente relacionado à minha palestra "The Path That Leads to Your First CVE", onde explico que uma das portas de entrada mais realistas para a pesquisa de vulnerabilidades para iniciantes é analisar software antigo, entender como funciona internamente e procurar o tipo de verificação de comprimento ausente que produz exatamente essa classe de vulnerabilidade. FreeFloat é um dos exemplos que uso para mostrar que encontrar e documentar um bug real não requer anos de experiência, requer curiosidade, um depurador e uma abordagem metódica.

O que torna este caso particularmente eficaz para o ensino é como ele se conecta a uma lição mais ampla sobre como os CVEs são atribuídos. O mesmo manipulador de entrada inseguro no FreeFloat produz estouros em vários comandos FTP diferentes, USER, PASS, NOOP e outros, cada um dos quais foi relatado independentemente e recebeu sua própria entrada CVE. Alunos que observam a lista de CVEs para este binário e veem dezenas de entradas aprendem rapidamente que o número de CVEs não é o mesmo que o número de vulnerabilidades, e que entender a causa raiz é mais valioso do que catalogar os sintomas.

Uma vez que os alunos entendem o processo através de casos como este, dou a eles um exemplo real do que vem a seguir. Após duas semanas praticando buffer overflows e corrupção de memória, o tipo de vulnerabilidade que eles são capazes de encontrar já existe em software real. O repositório a seguir documenta uma vulnerabilidade que encontrei especificamente para mostrar aos alunos o ciclo completo — descoberta, análise, documentação e solicitação de CVE — em algo acessível o suficiente para ser encontrado no início do caminho de aprendizado, como CVE-2025-70330.

Este repositório faz parte de uma coleção maior. Se você quiser praticar exploração em uma ampla gama de técnicas, tipos de vulnerabilidade e arquiteturas alvo, dê uma olhada no repositório Binary-Exploitation, onde todo este material está organizado e mantido junto com muitos outros CVEs, metodologias e exercícios de exploração.




💡 Por que esta vulnerabilidade é interessante

Esta vulnerabilidade afeta o FreeFloat FTP Server 1.0, um servidor FTP Windows muito antigo que foi escrito sem práticas modernas de segurança. Em 2025, um pesquisador relatou muitos CVEs afetando este mesmo binário.

Exemplos incluem:

  • CVE-2025-5667
  • CVE-2025-5548
  • CVE-2025-5220
  • CVE-2025-5075
  • e muitos outros

Cada CVE refere-se a um comando FTP diferente, mas quando o programa é reversamente engenheirado, fica claro que muitos deles alcançam o mesmo caminho de código vulnerável.

Isso torna o caso interessante não apenas como um exemplo de buffer overflow, mas também como uma demonstração de que:

  • Entradas diferentes podem disparar o mesmo bug.
  • Software legado pode conter vários manipuladores inseguros.
  • Entradas CVE nem sempre representam vulnerabilidades completamente diferentes.



🔍 Mesmo bug, múltiplos CVEs

Ao reverter o binário, pode-se observar que todos os comandos FTP são processados pela mesma função despachante. A string do comando é armazenada dentro de uma estrutura de sessão, e vários manipuladores de comando copiam a entrada do usuário para buffers de tamanho fixo usando funções inseguras como strcpy, strcat e memcpy, sem verificar o comprimento dos dados recebidos.

Por causa disso, comandos diferentes podem sobrescrever a pilha mesmo que a descrição do CVE mencione apenas um comando específico.

Baixar ferramenta

Por exemplo, o crash pode ser disparado usando:

root@kitploit:~
NOOP AAAAA...
USER AAAAA...
PASS AAAAA...
HOST AAAAA...
ANYTHING AAAAA...

A única diferença é o número de bytes necessários para sobrescrever o endereço de retorno. Isso significa que muitos CVEs relatados para este software compartilham a mesma causa raiz.




⚠️ Sobre a vulnerabilidade

O FreeFloat FTP Server processa comandos recebidos pela porta TCP 21 e armazena a string do comando dentro de uma estrutura de sessão interna. Em seguida, o manipulador do comando copia os dados controlados pelo usuário para buffers locais na pilha sem realizar validação adequada de comprimento.

Ao reverter o binário, pode-se observar que vários manipuladores de comando usam buffers de tamanho fixo e operações de cópia inseguras. Uma versão simplificada da lógica vulnerável se parece com isto:

root@kitploit:~
char buffer[256];

strcpy(buffer, user_input);

Como o buffer de destino tem um tamanho fixo e o comprimento da entrada não é verificado, enviar uma string longa faz com que a operação de cópia escreva além do final do buffer.

Conforme mais dados são escritos, o layout da pilha torna-se corrompido até que o endereço de retorno salvo seja sobrescrito.

Quando a função retorna, a execução salta para um valor controlado pelo usuário, resultando em um crash. Sob um depurador, isso pode ser visto como o ponteiro de instrução sendo sobrescrito com dados controlados pelo atacante.




💥 Disparando o crash

O crash pode ser reproduzido enviando uma string longa após um comando FTP válido. Exemplo usando Python:

root@kitploit:~
import socket

ip = "127.0.0.1"
port = 21

payload = b"A" * 500

s = socket.socket()
s.connect((ip, port))

s.recv(1024)

s.send(b"USER anonymous\r\n")
s.recv(1024)

s.send(b"PASS anonymous\r\n")
s.recv(1024)

s.send(b"NOOP " + payload + b"\r\n")

s.close()

Quando executado sob um depurador, o crash mostra:

root@kitploit:~
EIP = 41414141

o que confirma que os dados controlados pelo usuário sobrescrevem o endereço de retorno.




💣 Exploração

O objetivo deste repositório não é apenas mostrar o crash, mas também demonstrar o processo completo de exploração da vulnerabilidade passo a passo, usando a mesma metodologia comumente utilizada ao desenvolver exploits.

Para manter o README principal limpo, as notas detalhadas de exploração, scripts e etapas do depurador estão colocadas dentro da pasta Vulnerability 📂 deste repositório.

Lá você encontrará o fluxo de trabalho completo usado para explorar este CVE, incluindo fuzzing, descoberta de offset, análise de caracteres inválidos, busca de gadgets e execução de shellcode.