Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Forerunner — Schnelle und erweiterbare Netzwerkscan-Bibliothek mit Multithreading, Ping-Probing und Scan-Fetcher. | Kitploit
Tools/GitHubGitHub/jasondrawdy/forerunner
AufklärungNetzwerkkartierungPort-ScanningInformationsbeschaffungDienstprogramme & Frameworks
GitHubjasondrawdy/forerunner

Forerunner

Schnelle und erweiterbare Netzwerkscan-Bibliothek mit Multithreading, Ping-Probing und Scan-Fetcher.

Repository anzeigen
391428vor 6 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Forerunner

Die Forerunner-Bibliothek ist eine schnelle, leichte und erweiterbare Netzwerkbibliothek, die zur Entwicklung robuster netzwerkzentrierter Anwendungen wie IP-Scanner, Port-Knocker, Clients, Server usw. entwickelt wurde. In ihrem aktuellen Zustand kann die Forerunner-Bibliothek sowohl synchron als auch asynchron IP-Adressen scannen und Port-Knocking durchführen, um Informationen über das Gerät an diesem Endpunkt zu erhalten, z. B. ob die IP online ist, die physische MAC-Adresse usw. Die Bibliothek ist vollständig objektorientiert und ereignisbasiert aufgebaut, was bedeutet, dass Scandaten in speziell entwickelten "Scan"-Objekten enthalten sind, die alle Daten von Ergebnissen bis hin zu Ausnahmen verarbeiten sollen.

Voraussetzungen

  • .NET Framework 4.6.1

Funktionen

MethodeBeschreibungVerwendung
ScanScannt eine einzelne IP nach InformationenScan("192.168.1.1");
ScanRangeScannt einen IP-Bereich nach InformationenScanRange("192.168.1.1", "192.168.1.255")
ScanListScannt eine Liste von IPs nach InformationenScanList("192.168.1.1, 192.168.1.2, 192.168.1.3")
PortKnockPingt jeden Port einer einzelnen IPPortKnock("192.168.1.1");
PortKnockRangePingt jeden Port in einem IP-BereichPortKnockRange("192.168.1.1", "192.168.1.255");
PortKnockListPingt jeden Port unter Verwendung einer Liste von IPsPortKnockList("192.198.1.1, 192.168.1.2, 192.168.1.3");
IsHostAlivePingt einen Host N-mal für X MillisekundenIsHostAlive("192.168.1.1", 5, 1000);
GetAveragePingResponseErmittelt die durchschnittliche Ping-Antwortzeit für einen HostGetAveragePingResponse("192.168.1.1", 5, 1000);
IsPortOpenPingt einzelne Ports über TCP und UDPIsPortOpen("192.168.1.1", 45000, new TimeSpan(1000), false);

Beispiele

IP-Scanning

Das Scannen eines Netzwerks ist eine alltägliche Aufgabe in diesem digitalen Zeitalter, und ich habe mir die Freiheit genommen, dies für jeden zukünftigen Programmierer, der so etwas auf einfache Weise tun möchte, so einfach wie möglich zu gestalten. Die Forerunner-Bibliothek ist vollständig objektorientiert und daher ideal für Plug-and-Play-Situationen; das Objekt für das IP-Scanning heißt IPScanObject und enthält tatsächlich einige Eigenschaften:

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

Mit diesem Objekt im Hinterkopf wollen wir nun ein neues Objekt erstellen und damit einen Scan durchführen. Es gibt mehrere Möglichkeiten, dies anzugehen, aber der einfachste Weg, um loszulegen, besteht darin, zuerst ein neues Scanner-Objekt zu erstellen, um auf unsere Scan-Methoden zugreifen zu können. Erstellen Sie als Nächstes ein IPScanObject und setzen Sie es auf die Scan-Methode mit der IP, die Sie auflisten möchten; zum Beispiel:

Synchron
using System;
using Forerunner; // Denken Sie daran, unsere Bibliothek zu importieren.

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Unsere IP, die wir scannen möchten.
            string ip = "192.168.1.1";

            // Ein neues Scanner-Objekt erstellen.
            Scanner s = new Scanner();

            // Ein neues Scan-Objekt erstellen und einen Scan durchführen.
            IPScanObject result = s.Scan(ip);

            // Ausgabe, dass der Scan abgeschlossen ist.
            if (result.Errors != null)
                Console.WriteLine("[x] Während des Scans ist ein Fehler aufgetreten.");
            else
                Console.WriteLine("[+] " + ip + " wurde erfolgreich gescannt!")

            // Dem Benutzer erlauben, jederzeit zu beenden.
            Console.Read();
        }
    }
}

Eine andere Möglichkeit, die meine bevorzugte Vorgehensweise ist, besteht darin, ein Scanner-Objekt zu erstellen und die Event Handler von Dingen wie ScanAsyncProgressChanged oder ScanAsyncComplete zu abonnieren, sodass ich die volle Kontrolle über meine asynchronen Methoden habe; ich kann steuern, wie sich ihre Fortschrittszustände auf meine Anwendung auswirken usw.; zum Beispiel:

Asynchron
using System;
using System.Threading.Tasks;
using Forerunner; // Denken Sie daran, unsere Bibliothek zu importieren.

namespace Example
{
    class Program
    {
        static void Main(string[] args)
        {
            // Unsere IP, die wir scannen möchten.
            string ip = "192.168.1.1";

            // Unser Scanner-Objekt einrichten.
            Scanner s = new Scanner();
            s.ScanAsyncProgressChanged += new ScanAsyncProgressChangedHandler(ScanAsyncProgressChanged);
            s.ScanAsyncComplete += new ScanAsyncCompleteHandler(ScanAsyncComplete);

            // Eine neue Scan-Aufgabe mit unserer IP starten.
            TaskFactory task = new TaskFactory();
            task.StartNew(() => s.ScanAsync(ip));

            // Dem Benutzer erlauben, jederzeit zu beenden.
            Console.Read();
        }

        static void ScanAsyncProgressChanged(object sender, ScanAsyncProgressChangedEventArgs e)
        {
            // Hier etwas mit e.Progress tun, oder Sie könnten dieses Ereignis
            // abbestellen, sodass Sie nichts tun müssten.
        }

        static void ScanAsyncComplete(object sender, ScanAsyncCompleteEventArgs e)
        {
           // Etwas mit dem IPScanObject, auch bekannt als e.Result, tun.
            if (e.Result.Errors != null)
                Console.WriteLine("[x] Während des Scans ist ein Fehler aufgetreten.");
            else
                Console.WriteLine("[+] " + e.Result.IP + " wurde erfolgreich gescannt!")
        }
    }
}

Port-Knocking

Ich weiß, was Sie denken. Port-Knocking? Ja und nein. Der Begriff bedeutet nicht Port-Knocking im herkömmlichen Sinne des Verbindens über eine vordefinierte Reihe von Ports, sondern vielmehr nur das Überprüfen, ob überhaupt Ports geöffnet sind. Es ist buchstäblich ein "Anklopfen" an einem Port in jeder Hinsicht, indem versucht wird, eine Verbindung zu jedem Port herzustellen und Daten zu senden. Genau wie beim IP-Scanning verwendet das Port-Knocking ein benutzerdefiniertes Objekt, das "Port Knock Scan Object" oder kurz PKScanObject genannt wird. Das PKScanObject enthält tatsächlich eine Liste von PKServiceObjects, die wiederum unsere Portdaten enthalten; das Serviceobjekt enthält die folgenden Eigenschaften:

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

Das Port-Knocking erfolgt auf ähnliche Weise wie das IP-Scanning. Erstellen Sie zuerst ein Scanner-Objekt. Erstellen Sie als Nächstes ein neues PKScanObject und setzen Sie es auf die PortKnock-Methode mit der IP Ihrer Wahl, und zeigen Sie dann Ihre Ergebnisse an; zum Beispiel:

Synchron
using System;
using Forerunner; // Denken Sie daran, unsere Bibliothek zu importieren.
Tool herunterladen