
Bash-Skript für passive Reconnaissance, das RIRs und BGP-Routenserver abfragt, um während der Informationssammlung für Penetrationstests Zielorganisation-Netzblöcke, ASNs und CIDR-Bereiche zu entdecken.
Ein Linux-Bash-Skript, das während der Aufklärungsphase eines Penetrationstests die Netzblöcke oder Bereiche (in CIDR-Notation) der Zielorganisation entdeckt. Diese Informationen werden von den fünf Regional Internet Registries (RIRs) verwaltet:
ARIN (Nordamerika)
RIPE (Europa/Asien/Nahost)
APNIC (Asien/Pazifik)
LACNIC (Lateinamerika)
AfriNIC (Afrika)
Neben Netzblöcken und IP-Adressen sind auch Autonomous System Numbers (ASNs) von Interesse. ASNs werden im Rahmen des Border Gateway Protocol (BGP) verwendet, um jedes Netzwerk im Internet eindeutig zu identifizieren. Zielorganisationen können aufgrund der Größe ihres Netzwerks oder aufgrund redundanter Servicepfade von gekoppelten Dienstanbietern eigene ASNs besitzen. Diese ASNs offenbaren zusätzliche Netzblöcke, die der Organisation gehören.
ipcalc (für RIPE, APNIC, LACNIC, AfriNIC-Abfragen)
Eine Anmerkung zu LACNIC, bevor wir in die Nutzung eintauchen. LACNIC erlaubt nur Abfragen von Netzwerkbereich, ASN, Org-Handle oder PoC-Handle. Das hilft uns nicht, diese Werte basierend auf dem Organisationsnamen zu finden. Sie veröffentlichen jedoch eine Liste aller zugewiesenen Bereiche auf einem öffentlich zugänglichen FTP-Server, zusammen mit ihren Rate-Limiting-Schwellen. Daher gibt es eine begleitende Datendatei, die das Skript prüft, um LACNIC-Abfragen lokal durchzuführen. Das Skript enthält eine Update-Option -r, die verwendet werden kann, um diese Daten in einem von Ihnen gewählten Intervall zu aktualisieren. Die ungefähre Laufzeit beträgt knapp 28 Stunden.
Das Skript fragt ohne angegebene Optionen ARIN und einen Pool von BGP-Routenservern ab. Der Routenserver wird zur Laufzeit zufällig ausgewählt. Die Option -h listet die Hilfe auf:

Die Optionen können in beliebiger Kombination, alle oder keine verwendet werden. Leider geben keine der „anderen“ RIRs die tatsächliche CIDR-Notation des Bereichs an, daher wird ipcalc verwendet, um diese Funktion auszuführen. Falls es nicht auf Ihrem System installiert ist, wird das Skript es für Sie installieren.
Bei den Eingabeaufforderungen geben Sie den Organisationsnamen, die E-Mail-Domain und an, ob Ländercodes als Teil der E-Mail verwendet werden. Wenn Sie mit Y auf Ländercodes antworten, werden Sie gefragt, ob diese vor dem Domainnamen stehen oder an die TLD angehängt werden. Es wird ein Verzeichnis für die Ausgabedateien in /tmp/ erstellt. Wenn das Verzeichnis bereits existiert, werden Sie gefragt, ob es überschrieben werden soll. Wenn Sie mit N antworten, wird dem Verzeichnisnamen ein Zeitstempel angehängt.

Das Skript fragt jedes RIR sowie einen BGP-Routenserver ab und fragt unterwegs, ob Datensätze gefunden wurden. Nach Abschluss werden drei Dateien erstellt: eine CSV basierend auf Org-Handle, eine CSV basierend auf PoC-Handle und eine zeilengetrennte Datei aller gefundenen Bereiche in CIDR-Notation.

Das Abbrechen des Skripts zu jeder Zeit entfernt alle temporären Arbeitsdateien und das für die resultierenden Ausgabedateien erstellte Verzeichnis.

Es sei darauf hingewiesen, dass Sie aufgrund von Ähnlichkeiten bei manchen Organisationsnamen Ergebnisse erhalten können, die nichts mit dem Ziel zu tun haben. Die CSV-Dateien liefern die zugehörigen Handles und URLs zur weiteren Validierung, falls erforderlich. Es ist auch möglich, dass Mitarbeiter der Zielorganisation ihre geschäftliche E-Mail-Adresse verwendet haben, um ihre eigenen Domains zu registrieren. Diese werden ebenfalls in den Ergebnissen gefunden.
docker build -t hardcidr .
Erstellen des hardcidr-Images
docker run -v $(pwd):/tmp -it hardcidr
Ausführen des Containers. Die Ausgabe wird im aktuellen Verzeichnis gespeichert.
Für weitere Informationen lesen Sie den Blogbeitrag auf der TrustedSec-Website: Classy Inter-Domain Routing Enumeration