Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Forerunner — Biblioteca de varredura de rede rápida e extensível, com multithreading, sondagem ping e buscadores de varredura. | Kitploit
Ferramentas/GitHubGitHub/jasondrawdy/forerunner
ReconhecimentoMapeamento de RedeEscaneamento de PortasColeta de InformaçõesUtilitários e Frameworks
GitHubjasondrawdy/forerunner

Forerunner

Biblioteca de varredura de rede rápida e extensível, com multithreading, sondagem ping e buscadores de varredura.

Ver Repositório
391430há 6 anosRevisado pelo Kitploit

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

Forerunner

A biblioteca Forerunner é uma biblioteca de rede rápida, leve e extensível criada para auxiliar no desenvolvimento de aplicações robustas centradas em rede, como: scanners de IP, port knockers, clientes, servidores, etc. Em seu estado atual, a biblioteca Forerunner é capaz de escanear e realizar port knocking de forma síncrona e assíncrona em endereços IP para obter informações sobre o dispositivo localizado naquele endpoint, como: se o IP está online, o endereço MAC físico, entre outros. A biblioteca é totalmente orientada a objetos e baseada em eventos, o que significa que os dados de varredura são encapsulados em objetos "scan" especialmente criados, projetados para lidar com todos os dados, desde resultados até exceções.

Requisitos

  • .NET Framework 4.6.1

Funcionalidades

MétodoDescriçãoUso
ScanEscanear um único IP em busca de informaçõesScan("192.168.1.1");
ScanRangeEscanear um intervalo de IPs em busca de informaçõesScanRange("192.168.1.1", "192.168.1.255")
ScanListEscanear uma lista de IPs em busca de informaçõesScanList("192.168.1.1, 192.168.1.2, 192.168.1.3")
PortKnockVerificar todas as portas de um único IPPortKnock("192.168.1.1");
PortKnockRangeVerificar todas as portas em um intervalo de IPsPortKnockRange("192.168.1.1", "192.168.1.255");
PortKnockListVerificar todas as portas usando uma lista de IPsPortKnockList("192.198.1.1, 192.168.1.2, 192.168.1.3");
IsHostAliveVerificar se um host está ativo N vezes por X milissegundosIsHostAlive("192.168.1.1", 5, 1000);
GetAveragePingResponseObter a resposta média de ping para um hostGetAveragePingResponse("192.168.1.1", 5, 1000);
IsPortOpenVerificar portas individuais via TCP e UDPIsPortOpen("192.168.1.1", 45000, new TimeSpan(1000), false);

Exemplos

Varredura de IP

Escaneamento de rede é uma tarefa comum nesta era digital, portanto, tomei a liberdade de tornar isso o mais simples possível para qualquer futuro programador que queira fazer algo assim de forma fácil. A biblioteca Forerunner é totalmente orientada a objetos, tornando-a ideal para situações de plug and play; o objeto para varredura de IP é chamado de IPScanObject e contém algumas propriedades:

  • Address (String)
  • IP (IPAddress)
  • Ping (Long)
  • Hostname (String)
  • MAC (String)
  • isOnline (Bool)
  • Errors (Exception)

Com o objeto em mente, vamos tentar criar um novo objeto e realizar uma varredura usando-o. Existem várias maneiras de fazer isso, no entanto, a maneira mais simples de começar é primeiro criar um novo objeto Scanner para acessar nossos métodos de varredura. Em seguida, crie um IPScanObject e atribua-o ao método Scan com o IP que você deseja enumerar; por exemplo:

Síncrono
using System;
using Forerunner; // Lembre-se de importar nossa biblioteca.

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // O IP que gostaríamos de escanear.
            string ip = "192.168.1.1";

            // Criar um novo objeto scanner.
            Scanner s = new Scanner();

            // Criar um novo objeto de varredura e realizar a varredura.
            IPScanObject result = s.Scan(ip);

            // Exibir que a varredura foi concluída.
            if (result.Errors != null)
                Console.WriteLine("[x] Ocorreu um erro durante a varredura.");
            else
                Console.WriteLine("[+] " + ip + " foi escaneado com sucesso!")

            // Permitir que o usuário saia a qualquer momento.
            Console.Read();
        }
    }
}

Outra maneira, que é meu método preferido de operação, é criar um objeto Scanner e se inscrever nos Event Handlers de coisas como ScanAsyncProgressChanged ou ScanAsyncComplete, assim tenho controle total sobre meus métodos assíncronos; posso controlar como seus estados de progresso afetam minha aplicação e assim por diante; por exemplo:

Assíncrono
using System;
using System.Threading.Tasks;
using Forerunner; // Lembre-se de importar nossa biblioteca.

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // O IP que gostaríamos de escanear.
            string ip = "192.168.1.1";

            // Configurar nosso objeto scanner.
            Scanner s = new Scanner();
            s.ScanAsyncProgressChanged += new ScanAsyncProgressChangedHandler(ScanAsyncProgressChanged);
            s.ScanAsyncComplete += new ScanAsyncCompleteHandler(ScanAsyncComplete);

            // Iniciar uma nova tarefa de varredura com nosso ip.
            TaskFactory task = new TaskFactory();
            task.StartNew(() => s.ScanAsync(ip));

            // Permitir que o usuário saia a qualquer momento.
            Console.Read();
        }

        static void ScanAsyncProgressChanged(object sender, ScanAsyncProgressChangedEventArgs e)
        {
            // Fazer algo aqui com e.Progress, ou você pode deixar este evento
            // não inscrito para não precisar fazer nada.
        }

        static void ScanAsyncComplete(object sender, ScanAsyncCompleteEventArgs e)
        {
           // Fazer algo com o IPScanObject, ou seja, e.Result.
            if (e.Result.Errors != null)
                Console.WriteLine("[x] Ocorreu um erro durante a varredura.");
            else
                Console.WriteLine("[+] " + e.Result.IP + " foi escaneado com sucesso!")
        }
    }
}

Port Knocking

Eu sei o que você está pensando. Port knocking? Sim e não. O termo não significa port knocking no sentido tradicional de conectar-se através de um conjunto predefinido de portas, mas sim apenas verificar se alguma porta está realmente aberta. É literalmente "bater" em uma porta em todos os sentidos da palavra, tentando conectar-se a cada porta e enviar dados. Assim como na varredura de IP, o port knocking usa um objeto personalizado chamado "Port Knock Scan Object" ou PKScanObject para abreviar. O PKScanObject contém uma lista de PKServiceObjects que, por sua vez, armazenam nossos dados de porta; o objeto de serviço contém as seguintes propriedades:

  • IP (String)
  • Port (Int)
  • Protocol (PortType)
  • Status (Bool)

O port knocking é semelhante à varredura de IP. Primeiro, crie um objeto Scanner. Em seguida, crie um novo PKScanObject e atribua-o ao método PortKnock com o IP de sua escolha, depois exiba seus resultados; por exemplo:

Síncrono
using System;
using Forerunner; // Lembre-se de importar nossa biblioteca.

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // O IP que gostaríamos de escanear.
            string ip = "192.168.1.1";

            // Criar um novo objeto scanner.
            Scanner s = new Scanner();

            // Criar um novo objeto de varredura e realizar a varredura.
            PKScanObject result = s.PortKnock(ip);
Baixar ferramenta