Pular para o conteúdo
•Leitura

GoFence: minha própria ferramenta de pentest em Go

GoFence: minha própria ferramenta de pentest em Go

A ideia surgiu da necessidade de ter algo mais direto, leve e adaptado ao meu fluxo de trabalho, sem depender de ferramentas pesadas ou complexas demais para o que eu precisava.

O GoFence nasceu como um projeto pessoal para aprender mais sobre segurança ofensiva, programação em Go e construção de ferramentas práticas que eu pudesse usar nos meus próprios testes e estudos.

Por que criar uma ferramenta própria

Existem muitas ferramentas de pentest open source disponíveis, como Nmap, OWASP ZAP, Metasploit e outras. Porém, eu queria algo que fosse:

  • Leve: rodando como um binário único, sem dependências externas.
  • Rápido: aproveitando a concorrência do Go com goroutines.
  • Simples: focado em tarefas específicas, sem excesso de funcionalidades.
  • Educacional: um projeto para aprender mais sobre protocolos, redes e segurança.

Além disso, criar minha própria ferramenta me permitiu entender melhor como funcionam scanners, testes de vulnerabilidade e automação de tarefas de segurança.

O que o GoFence faz

O GoFence foi pensado para atuar como uma ferramenta de apoio em testes de segurança. Entre as funcionalidades que implementei ou planejo implementar estão:

  • Varredura de portas: scanner TCP concorrente usando goroutines para identificar serviços expostos.
  • Mapeamento de hosts: testes de conectividade e identificação de máquinas ativas na rede.
  • Análise de headers HTTP: verificação de cabeçalhos de segurança em aplicações web.
  • Busca de diretórios: brute-force de paths comuns em servidores web.
  • Relatórios simples: saída em texto ou JSON para facilitar a integração com outros scripts.

A ideia não é competir com ferramentas consolidadas, mas oferecer algo ágil para testes rápidos e aprendizado.

Por que Go

Escolhi Go como linguagem principal por vários motivos:

  • Binário único: fácil de distribuir e executar em diferentes sistemas.
  • Concorrência nativa: goroutines e channels tornam simples criar scanners rápidos.
  • Biblioteca padrão robusta: dá para trabalhar com TCP, HTTP e ICMP sem depender de pacotes externos.
  • Performance: Go é rápido o suficiente para tarefas de rede e segurança.

Além disso, trabalhar com Go me ajudou a entender melhor conceitos como concorrência, tratamento de erros e construção de ferramentas CLI.

Aprendizados no desenvolvimento

Criar o GoFence me ensinou bastante sobre:

  • Protocolos de rede: implementar scanners e testes me obrigou a estudar TCP, HTTP e ICMP de forma prática.
  • Segurança ofensiva: entender como ferramentas de pentest funcionam por baixo do capô.
  • Boas práticas: lidar com limites de taxa, evitar esgotamento de sockets e tratar erros de forma adequada.
  • Ética: reforçar que a ferramenta deve ser usada apenas em ambientes autorizados e para fins educacionais.

Também foi uma oportunidade para aplicar conceitos de programação que venho estudando, como estruturas de dados, tratamento de erros e organização de código.

Próximos passos

Tenho algumas ideias para evoluir o GoFence, como:

  • Adicionar mais módulos de teste.
  • Melhorar a saída de relatórios.
  • Criar uma documentação mais completa.
  • Possivelmente abrir o código no GitHub para compartilhar com outras pessoas interessadas.

A ideia é continuar desenvolvendo a ferramenta aos poucos, sempre focando em aprendizado e utilidade prática.

Conclusão

O GoFence representa mais do que apenas uma ferramenta de pentest. É um projeto que combina meus interesses em programação, segurança e Linux, e me permite aprender na prática como funcionam muitas das ferramentas que uso no dia a dia.

Mais do que o resultado final, o processo de criar algo do zero tem sido extremamente valioso para meu crescimento como desenvolvedor e entusiasta de segurança.