FYDELISTECH

Construindo Defesas.

Explorando vulnerabilidades em sistemas Linux, Windows e Redes.

root@fydelistech: ~

$ Initializing security_protocol...

[ OK ] Systems online. Vulnerabilities mapped.

$ Transformando_vulnerabilidades._

# nmap -sV -Pn 192.168.0.1 # msfconsole -q

ContactForm1

Nome

Email *

Mensagem *

TECHNICAL_LOG //

Desenvolvendo um Scanner de Portas TCP Multithread de Alta Performance em Ruby

Autor: Adiel Santos Fontes


Introdução

Scanners de portas são ferramentas fundamentais na fase de reconhecimento em segurança cibernética: eles mapeiam a superfície de uma rede ou sistema, revelando serviços ativos e portas abertas. Com essas informações, o profissional de teste de penetração consegue identificar versões de softwares que possuem vulnerabilidades e possíveis pontos de entrada antes de avançar para etapas mais profundas de exploração.

Neste projeto, apresento o Fydelis Security Scanner: uma ferramenta de varredura de portas TCP desenvolvida em Ruby, com foco em velocidade, leveza e eficiência. Contando com suporte a multithreading e perfis de performance configuráveis, ela se torna uma opção ideal para atividades de reconhecimento em testes de penetração e auditorias de rede.

Principais Funcionalidades

Multithreaded: Varredura rápida, utilizando filas de trabalho para processamento paralelo das portas.

Perfis de Velocidade: Modos de execução que variam de polite a insane, permitindo ajustar o ritmo da varredura conforme a necessidade.

Banner Grabbing: Tenta identificar qual serviço está sendo executado em cada porta detectada como aberta.

Versatilidade: Aceita diferentes formatos de seleção de portas: intervalos (ex: 1-1000), lista de portas específicas (ex: 22,80,443) ou perfis pré-definidos.

Exportação de Resultados: Salva o relatório da varredura diretamente em um arquivo de texto.

Modo Verbose: Opção para exibir também as portas fechadas, útil para auditorias mais detalhadas.

Fundamentos Técnicos: A Engenharia por Trás da Ferramenta


Por que escolhi Ruby?

A linguagem se destaca pela facilidade de leitura e escrita, além de contar com uma biblioteca de sockets nativa e bem estruturada, fatores que agilizam o desenvolvimento e a manutenção do código, sem perder desempenho.


Conceitos de Rede Aplicados

A varredura funciona com base no processo de Three-Way Handshake (apertamento de mão em três etapas) do protocolo TCP: quando a função Socket.tcp tenta estabelecer uma conexão, ela envia um pacote SYN; se a porta estiver aberta, o alvo responde com SYN-ACK; e por fim a ferramenta envia ACK concluindo a conexão ou interrompe-a imediatamente após a confirmação para não gerar tráfego desnecessário. Se a porta estiver fechada, o alvo responde com um pacote RST, indicando que a conexão não é possível.


Multithreading

Para evitar que o programa fique parado esperando respostas de cada porta individualmente, utilizei as classes Thread e Queue nativas da linguagem. Dessa forma, várias conexões são iniciadas simultaneamente, otimizando drasticamente o tempo total de varredura sem perder o controle do processo.

O Diferencial: Arquitetura e Garantia de Performance

Modularidade

O código é organizado em uma estrutura de pastas clara, com diretórios bin/ (para o executável principal) e lib/ (para as funções e módulos reutilizáveis), facilitando atualizações e a adição de novas funcionalidades.


Segurança e Estabilidade

Implementei tratamento de sinais (com trap "INT") para encerrar as conexões de forma organizada quando o usuário interromper a execução, evitando processos "zumbis" no sistema. Além disso, o uso da classe Mutex garante que não ocorram conflitos de escrita ou resultados duplicados ao salvar os dados no arquivo de log.

Perfis de Velocidade

Os perfis permitem adaptar o comportamento da ferramenta ao cenário:

Modos mais lentos (como o polite) evitam acionar sistemas de detecção ou bloqueios de firewalls;

Modos mais rápidos (como o insane) são indicados para redes internas confiáveis, onde a velocidade é prioridade.

Demonstração Prática


Para consultar todas as opções de uso, basta executar a ferramenta com o parâmetro de ajuda:

ruby -Ilib bin/fydelis.rb --help


Ao final da varredura, você pode definir um caminho para que os resultados sejam salvos automaticamente em um arquivo de texto, facilitando o armazenamento e a análise posterior.



Observação: as imagens de demonstração não puderam ser carregadas no momento, mas estão disponíveis nos endereços informados acima.

Conclusão

Durante o desenvolvimento deste projeto, pude aplicar e aprofundar conhecimentos sobre funcionamento do protocolo TCP, programação concorrente e boas práticas de desenvolvimento de ferramentas de segurança, equilibrando desempenho e estabilidade.


Para as próximas versões, pretendo adicionar funcionalidades como:


Detecção automática de sistema operacional do alvo;


Integração com bancos de vulnerabilidades;


Suporte a varredura UDP;


Relatórios em formatos adicionais (como CSV e JSON).


Convido você a acessar o repositório oficial do projeto, testar a ferramenta e contribuir com sugestões, correções ou novas funcionalidades:


https://github.com/fydelis2025/Fydelis_Scanner


#Ruby, #CyberSecurity, #Pentest, #OpenSource, #Networking #adielfontes #fydelis #fydelistech

Comentários