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 — Estudio técnico de la vulnerabilidad CVE-2025-5548 | Kitploit
Ferramentas/GitHubGitHub/cryptomachio/cve-2025-5548
Vulnerability AnalysisExploitationReverse EngineeringShellcodeDebuggersPenetration TestingLearning & EducationPayload DevelopmentBinary ExploitationLabs & Practice
GitHubcryptomachio/cve-2025-5548

CVE-2025-5548

há 4 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

Estudio técnico de la vulnerabilidad CVE-2025-5548

Ver Repositório

Estudo técnico da vulnerabilidade CVE-2025-5548

Introdução

Neste trabalho analisa-se a vulnerabilidade CVE-2025-5548, associada a um estouro de buffer na pilha presente no FreeFloat FTP Server v1.0. O objetivo principal do laboratório é entender como uma aplicação vulnerável se comporta diante de entradas manipuladas e observar, em um ambiente controlado, como uma falha de validação pode acabar afetando o fluxo de execução do programa.

O desenvolvimento do repositório não se limita a mostrar o resultado final, mas sim a recolher o processo completo de investigação: preparação do ambiente, seleção de ferramentas, observação da falha, análise de memória e validação do impacto real da vulnerabilidade.


Organização do conteúdo

O trabalho está dividido em dois blocos distintos.

Preparação do laboratório

Nesta seção explica-se como o ambiente de prática foi montado, qual sistema operacional foi utilizado, qual é a aplicação vulnerável e quais ferramentas foram consideradas necessárias para realizar a análise.

Desenvolvimento da análise

A segunda parte foca na parte prática. Aqui descreve-se o processo seguido para detectar a falha, confirmar a corrupção de memória, estudar a sobrescrita de registradores e verificar como a vulnerabilidade pode ser explorada.


1. Laboratório utilizado

Sistema utilizado

A prática foi realizada em uma máquina virtual com Windows 11 Pro 25H2 (Build 26200.6584). O software vulnerável selecionado foi FreeFloat FTP Server v1.0, uma aplicação antiga que se mostra adequada para este tipo de exercício por carecer de muitas das proteções comuns em programas atuais.

A rede da máquina virtual foi configurada em modo NAT, o que permitiu acesso à Internet para instalar dependências, baixar ferramentas e manter a conectividade básica do laboratório.

Ferramentas principais

Para cobrir todas as fases da análise foi necessário apoiar-se em várias utilidades. Algumas foram utilizadas para preparar o ambiente, outras para revisar o binário e outras para observar o comportamento do processo quando a falha ocorria.

Utilitários básicos

Git

Foi usado para baixar repositórios, manter organizados determinados recursos e facilitar a gestão do material utilizado durante a investigação.

Nmap

Foi utilizado como apoio para verificar conectividade, identificar o serviço exposto e confirmar que o alvo estava respondendo corretamente na porta esperada.

Windows SDK

Foi instalado para dispor de bibliotecas, cabeçalhos e ferramentas úteis em tarefas de depuração e análise de baixo nível dentro do sistema Windows.

Editores e ambientes de desenvolvimento

Notepad++

Foi utilizado para edições rápidas, revisão de scripts e manipulação simples de strings ou dados de teste.

Visual Studio Code

Serviu como ambiente confortável para escrever scripts, testar automações e trabalhar com código de forma mais organizada.

PyCharm Community

Foi útil especialmente quando houve necessidade de revisar scripts mais longos ou depurar lógica relacionada à construção de cargas.

Dependências necessárias

Python

Foram consideradas duas versões:

  • Python 3, como opção principal para scripting e automação moderna.
  • Python 2.7, necessário por compatibilidade com algumas ferramentas clássicas de depuração utilizadas neste tipo de laboratório.

Java JDK

Foi necessário para executar Ghidra, já que esta ferramenta é desenvolvida sobre Java.

Ferramentas de análise e engenharia reversa

Immunity Debugger

Foi utilizado para observar o estado do programa durante a execução, verificar registradores, revisar memória e analisar o ponto exato onde a falha ocorre.

IDA Free

Foi empregado na fase de análise estática para revisar o binário e localizar funções que se mostravam suspeitas do ponto de vista da segurança.

Ghidra

Foi usado como apoio para descompilar e entender melhor a lógica interna do programa vulnerável.

Mona

Este complemento facilitou tarefas como a criação de padrões, o cálculo do offset e a identificação de caracteres problemáticos na carga.

Aplicação vulnerável

O componente principal do laboratório foi FreeFloat FTP Server v1.0, que atua como sistema alvo dentro da prova de conceito. Seu interesse reside no fato de incorporar uma vulnerabilidade clássica de estouro na pilha, o que o torna um caso muito apropriado para análise formativa.

Observação geral

Embora existam máquinas virtuais já preparadas para este tipo de exercício, neste caso optou-se por documentar o ambiente e justificar as ferramentas utilizadas. Isto permite compreender melhor por que cada aplicação faz parte do laboratório e qual papel desempenha durante a análise.


2. Análise da vulnerabilidade

Reconhecimento inicial

O primeiro passo consistiu em verificar se o serviço FTP estava acessível e funcionando corretamente. Uma vez confirmada a conectividade, o binário foi revisado por meio de ferramentas de análise estática para localizar possíveis pontos fracos relacionados ao gerenciamento de strings.

Durante esta revisão apareceram funções inseguras como strcpy e strcat, o que reforçou a suspeita de que o serviço poderia ser vulnerável a entradas excessivamente longas. Também foram examinados vários comandos do protocolo FTP suscetíveis de receber dados controlados pelo usuário, selecionando um deles como candidato principal para os testes.

Com esta base, o processo foi carregado em um depurador para observar seu comportamento durante a execução.


Verificação por meio de entradas crescentes

A fase seguinte consistiu em enviar strings cada vez mais longas para verificar se o programa deixava de responder corretamente. Este procedimento permitiu confirmar que, a partir de certo tamanho, o serviço falhava e acabava provocando uma alteração na memória.

Esse comportamento confirmou que não se tratava de um simples erro de validação superficial, mas sim de uma corrupção real que afetava o fluxo do processo.


Localização exata do ponto de sobrescrita

Após provocar a falha, foi necessário calcular com precisão quantos bytes eram necessários para alcançar o endereço de retorno. Para isso, utilizou-se uma sequência não repetitiva, de modo que o valor refletido em EIP no momento do crash pudesse ser relacionado a uma posição exata dentro da entrada enviada.

Graças a este procedimento, obteve-se o deslocamento concreto necessário para sobrescrever o registrador de controle.


Verificação do controle de execução

Com o offset já conhecido, preparou-se um novo teste no qual o endereço de retorno foi substituído por um valor facilmente reconhecível. O objetivo era verificar se o programa permitia modificar EIP de forma controlada.

O teste foi satisfatório, já que o depurador mostrou que o registrador continha exatamente o valor introduzido. Isto demonstrava que era possível alterar o fluxo de execução e redirecioná-lo para um endereço escolhido.


Revisão de caracteres problemáticos

Uma vez alcançado esse ponto, analisou-se quais bytes poderiam interferir na carga útil. Neste tipo de vulnerabilidade é comum que certos caracteres provoquem truncamentos, mudanças inesperadas ou finalização prematura da string.

Por meio de comparações sucessivas na memória, identificaram-se vários bad characters, entre eles:

  • \x00
  • \x0a
  • \x0d

Detectá-los foi importante para construir uma carga final estável e compatível com o comportamento do programa vulnerável.


Busca de uma referência útil na memória

O passo seguinte consistiu em encontrar um endereço adequado que permitisse redirecionar a execução para a zona de memória onde a carga seria alojada. Esta análise devia ser feita levando em conta o sistema operacional e as proteções ativas, já que alguns endereços não são estáveis entre execuções.

Dentro do laboratório, localizou-se uma referência válida que permitia ligar a sobrescrita do fluxo com a entrada controlada pelo atacante.


Preparação da carga

Com o controle do fluxo já validado, construiu-se uma shellcode compatível com as restrições descobertas previamente. Além disso, adicionou-se uma zona anterior de instruções neutras para facilitar que a CPU chegasse de forma segura ao início da carga, mesmo se houvesse um ligeiro desvio na posição esperada.

Este passo foi importante para aumentar a confiabilidade da execução.


Execução final e verificação do impacto

Na última fase, a carga completa foi lançada contra o serviço vulnerável enquanto um listener era mantido à escuta na máquina atacante. O resultado foi o estabelecimento de uma conexão remota com o sistema alvo, o que confirmou que a vulnerabilidade não só permite causar uma queda do programa, mas também obter execução controlada.

Isto demonstra o impacto real da falha e justifica sua relevância do ponto de vista da segurança ofensiva e defensiva.


Conclusões

O estudo de CVE-2025-5548 mostra claramente como uma aplicação antiga, sem mecanismos modernos de proteção, pode ser vulnerável a técnicas clássicas de exploração baseadas em corrupção de memória.

Ao longo do laboratório, percorreram-se várias etapas fundamentais: a preparação do ambiente, a observação inicial da falha, a validação do estouro, o controle do registrador de execução, a depuração da carga e a verificação do resultado final.

Além do teste técnico, este caso serve para entender por que o uso de funções inseguras e a ausência de medidas de proteção continuam sendo um risco importante em software legado. Por isso, este tipo de exercício é especialmente útil para consolidar conhecimentos de engenharia reversa, análise de vulnerabilidades e exploração em ambientes controlados.

Baixar ferramenta