
Netzwerk-, Recon- und Offensive-Security-Tool für Linux.
Hawk ist ein Netzwerk- und Pentest-Tool, das ich entwickelt habe, um verschiedene Arten von Aufgaben mit derselben Suite ausführen zu können, anstatt von einem Tool zum anderen zu wechseln.
Derzeit kann dieses Skript eine Vielzahl von Aufgaben ausführen, wie z. B. ifconfig, ping, traceroute, Portscans (einschließlich SYN, TCP, UDP, ACK, umfassender Scan, Host-Erkennung (Scan nach aktiven Geräten in einem lokalen Netzwerk), MAC-Adressen-Erkennung (Ermitteln der MAC-Adresse einer Host-IP in einem lokalen Netzwerk), Banner-Grabbing, DNS-Checks (mit Geolokalisierungsinformationen), WHOIS, Subdomain-Enumeration, Schwachstellen-Erkundung, Paket-Sniffing, MAC-Spoofing, IP-Spoofing, SYN-Flooding, Deauth-Angriff und Brute-Force-Angriff (Beta).
Weitere Funktionen befinden sich noch in der Entwicklung. Zukünftige Implementierungen können WAF-Erkennung, DNS-Enumeration, Datenverkehrsanalyse, XSS-Schwachstellenscanner, ARP-Cache-Poisoning, DNS-Cache-Poisoning, MAC-Flooding, Ping of Death, Netzwerk-Disassoziierungsangriff (nicht Deauth-Angriff), OSINT, E-Mail-Spoofing, Exploits, einige automatisierte Aufgaben und weitere umfassen.

Beachte, dass dieses Skript derzeit nur unter Linux einwandfrei läuft. Wenn du es unter Windows oder macOS ausprobierst, läuft es möglicherweise, aber es werden zahlreiche Fehler auftreten.
Dieses Skript wurde getestet auf:
Um die erforderlichen Pakete zu installieren, damit das Skript ohne Probleme läuft, führe einfach das Skript setup.sh mit Root-Rechten aus. Derzeit wird dieses Installationsskript nur auf Distributionen auf Debian-, Red-Hat- und Arch-Basis unterstützt, die über den apt-, dnf- bzw. pacman-Paketmanager verfügen (Ubuntu, Kali Linux, Parrot OS, Debian, Pop!_OS, Linux Mint, Deepin, Zorin OS, MX Linux, Elementary OS, Fedora, CentOS, Red Hat Enterprise Linux, Rocky Linux, AlmaLinux, Oracle Linux, ClearOS, Arch, Black Arch, Manjaro usw.). Führe auf den meisten Systemen zum Installieren von Hawk einfach die folgenden Befehle aus:
git clone https://github.com/medpaf/hawk.git
cd hawk
sudo sh setup.sh
Folge dann einfach den Anweisungen. Bitte ignoriere die Fehlermeldungen, die während der Installation erscheinen.
Wenn du jedoch eine andere Linux-Distribution mit einem anderen Paketmanager verwendest, installiere die Pakete bitte manuell mit dem Paketmanager deiner Distribution. Je nach verwendeter Distribution sind einige der erforderlichen Pakete zum Ausführen dieses Skripts möglicherweise bereits auf deinem System installiert.
Wenn du die erforderlichen Pakete wissen möchtest, wirf einen Blick in die Datei setup.sh.
Nach der Installation navigierst du zum Ausführen des Programms einfach in das Projektverzeichnis und führst die Datei hawk.py mit Python aus. Es wird empfohlen, das Skript als Root auszuführen, um eine bessere Leistung zu erzielen und Berechtigungsfehler zu vermeiden. Der verwendete Befehl lautet wie folgt:
sudo python3 hawk.py
Um Konfigurationen vorzunehmen, gehe einfach zur Konfigurationsdatei unter files/conf.py und bearbeite sie.
Wenn du die aktuelle TCP/IP-Netzwerkkonfiguration deines Systems anzeigen möchtest, gib den folgenden Befehl ein:
-ifconfig

Um ICMP-Pakete an einen oder mehrere Hosts zu senden und die Konnektivität zu prüfen, gib einfach Folgendes ein:
-ping <HOST(s) IP/FQDN>

Um Routenpfade zu diagnostizieren und Übertragungsverzögerungen zu messen, verwende den Befehl -traceroute:
-traceroute <HOST IP/FQDN>

Das Scannen von Ports hilft, potenzielle Sicherheitslücken zu erkennen, indem die mit deinem Netzwerk verbundenen Hosts und die ausgeführten Dienste identifiziert werden.
Es werden mehrere Scan-Typen unterstützt, darunter TCP-SYN (-scansyn) [auch als Stealth-Scan bekannt], TCP Connect (-scantcp), UDP (-scanudp), TCP-ACK (-scanack) und der umfassende Scan (-scan).
-scan -host <HOST(s) IP/FQDN>
-scan -host <HOST(s) IP/FQDN> -p <PORT(s)>
Wenn du einen IP-Bereich und/oder Portbereich scannen möchtest, verwende einen der folgenden Befehle:
-scan -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-scan -iprange <START IP> <END IP> -p <PORT(s)>
-scan -iprange <START IP> <END IP> -prange <START PORT> <END PORT>

Nach diesem Scan ist zu erkennen, dass sowohl Port 22 (SSH) als auch Port 80 (HTTP) offen sind.
Um nach aktuell aktiven Geräten in einem bestimmten Netzwerk zu suchen, gib den folgenden Befehl ein:
-scanlan
Gib dann das Netzwerk ein, das du scannen möchtest.

Um die MAC-Adresse eines oder mehrerer aktiver Hosts im LAN zu ermitteln, verwende den Befehl:
-getmac -host <HOST(s) IP>

Die Versionserkennung, auch Banner-Grabbing genannt, ist eine Erkundungstechnik, die Informationen aus einem Software-Banner gewinnt. Dieses Banner enthält in der Regel wichtige Informationen über einen Netzwerkdienst, einschließlich – aber nicht beschränkt auf – dessen Softwarename und -version. FTP-, Web-, SSH- und SMTP-Server geben in ihrem Banner häufig wichtige Informationen über die von ihnen ausgeführte Software preis.
Ein Banner-Angriff beginnt normalerweise mit einem Enumeration-Scan, um offene Ports zu finden. Sobald du einen Dienst identifiziert hast, den du ins Visier nehmen möchtest, kannst du gezielte Pakete senden und den Datenverkehr auf die gewünschten Informationen untersuchen.
Um Banner-Grabbing durchzuführen, gib je nach deinen spezifischen Anforderungen einen der folgenden Befehle ein:
-grab -host <HOST(s) IP/FQDN> -p <PORT(s)>
-grab -iprange <START IP> <END IP> -prange <START PORT> <END PORT>
-grab -host <HOST(s) IP/FQDN> -prange <START PORT> <END PORT>
-grab -iprange <START IP> <END IP> -p <PORT(s)>

Diese Funktion ähnelt dem bekannten Befehl nslookup, der auf UNIX-Systemen verwendet wird. Wenn du einen DNS-Check durchführen möchtest, gib Folgendes ein:
-ns <HOST(s) IP/FQDN>

Haftungsausschluss: Beachte, dass diese Funktion die IPinfo-API verwendet. Es wird empfohlen, den API-Schlüssel durch deinen eigenen zu ersetzen, da der bereitgestellte Schlüssel möglicherweise von anderen Personen verwendet wird. Um die API-Schlüssel zu ändern, gehe zur Konfigurationsdatei unter files/conf.py.
WHOIS ist ein TCP-Protokoll, das dazu dient, Kontakt- und DNS-Informationen abzufragen. Um die WHOIS-Informationen einer oder mehrerer Seiten abzufragen, gib einfach Folgendes ein:
-whois <HOST(s) IP/PQDN>

Subdomain-Enumeration ist der Prozess des Auffindens gültiger Subdomains für eine oder mehrere Domains.
Subdomain-Enumeration kann viele Domains/Subdomains aufdecken, die im Rahmen einer Sicherheitsbewertung liegen, was wiederum die Chancen erhöht, Schwachstellen zu finden.
Wenn du nach gängigen Subdomains einer Domain suchen möchtest, gib einfach Folgendes ein:
-sdenum <PQDN>
Dieser Befehl verwendet eine Standard-Wortliste, um nach Subdomains zu suchen. Wenn du jedoch deine eigene Wortliste verwenden möchtest, gib Folgendes ein:
-sdenum <PQDN> -wordlist <WORDLIST PATH>

Directory Busting ist der Prozess des Auffindens von Verzeichnissen innerhalb eines Webservers.
Um diese Aufgabe auszuführen, gib Folgendes ein:
-dirbust <HOST IP/FQDN>
Dieser Befehl verwendet eine Standard-Wortliste, um nach Subdomains zu suchen. Wenn du jedoch deine eigene Wortliste verwenden möchtest, gib Folgendes ein:
-dirbust <HOST IP/FQDN> -wordlist <WORDLIST PATH>

Um einen oder mehrere Hosts auf Schwachstellen zu scannen, verwende den folgenden Befehl:
-vulnscan -host <HOST(s) IP/FQDN>

Haftungsausschluss: Beachte, dass diese Funktion die Shodan-API verwendet. Es wird empfohlen, den API-Schlüssel durch deinen eigenen zu ersetzen, da der bereitgestellte Schlüssel möglicherweise von anderen Personen verwendet wird. Um die API-Schlüssel zu ändern, gehe zur Konfigurationsdatei unter files/conf.py.
Um Paket-Sniffing durchzuführen, gib Folgendes ein:
-sniff

Haftungsausschluss: Wenn du alle Daten abhören möchtest, die durch ein Netzwerk fließen, versetze zuerst deine WLAN-Karte oder deinen Adapter in den Monitor-Modus.
MAC-Spoofing ist das Erzeugen von Frames mit einer MAC-Adresse, die sich von der Adresse der sendenden Netzwerkkarte unterscheidet. Um die MAC-Adresse einer Schnittstelle zu ändern, führe den folgenden Befehl aus:
-macspoof -source <SOURCE MAC> -iface <INTERFACE>

Wie du im folgenden Screenshot sehen kannst, wurde die MAC-Adresse der Schnittstelle erfolgreich geändert.

Das Ziel von IP-Spoofing ist es, die korrekte Quell-IP-Adresse zu verändern, sodass das System, an das ein Paket gerichtet ist, den Absender nicht korrekt identifizieren kann.
Beachte, dass dieser Befehl nur auf Maschinen mit ungepatchten Schwachstellen funktioniert. Um IP-Spoofing auf einem bestimmten Port eines Hosts durchzuführen, verwende den folgenden Befehl:
-ipspoof -source <SOURCE IP> <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
Wenn du eine zufällige Quell-IP verwenden möchtest, gib den folgenden Befehl ein:
-ipspoof -source r <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
Du kannst auch einen zufälligen Quell-Port verwenden:
-ipspoof -source <SOURCE IP> r -target <TARGET IP/FQDN> <TARGET PORT>

Haftungsausschluss: Bitte verwende dies nur zu Testzwecken und richte es nur gegen deine eigenen Maschinen.
SYN-Flood ist eine DDoS-Angriffsmethode, die direkten Mehraufwand in der Transportschicht (Schicht 4) und indirekten Mehraufwand in der Anwendungsschicht (Schicht 7) verursacht.
Um einen SYN-Flood zu versuchen, gib Folgendes ein:
-synflood -source <SOURCE PORT> -target <TARGET IP/FQDN> <TARGET PORT>
Wenn du einen zufälligen Quell-Port verwenden möchtest, gib den folgenden Befehl ein:
-synflood -source r -target <TARGET IP/FQDN> <TARGET PORT>

Haftungsausschluss: Bitte verwende dies nur zu Testzwecken und richte es nur gegen deine eigenen Maschinen.
Ein Deauth-Angriff ist eine Art drahtloser Angriff, der auf die Kommunikation zwischen einem Router und einem oder mehreren mit diesem Router verbundenen Geräten abzielt. Dadurch wird das Zielgerät effektiv dazu gezwungen, sich vom Access Point zu trennen.
Um diesen Angriff durchzuführen, verwende den folgenden Befehl:
-deauth -target <TARGET MAC> -gateway <GATEWAY MAC> -iface <INTERFACE>
Wenn du alle Clients an einem Gateway angreifen möchtest, gib Folgendes ein:
-deauth -target a -gateway <GATEWAY MAC> -iface <INTERFACE>
Du kannst für den Angriff auch deine Standard-WLAN-Schnittstelle wählen (konfiguriert in files/conf.py):
-deauth -target <TARGET MAC> -gateway <GATEWAY MAC> -iface d

Nach dem im obigen Screenshot ausgeführten Befehl wurden alle mit diesem Access Point verbundenen Geräte getrennt und konnten sich nicht wieder verbinden, solange dieses Skript lief.
Haftungsausschluss: Stelle für die Durchführung dieses Angriffs sicher, dass du eine WLAN-Karte oder einen Adapter hast, der den Monitor-Modus unterstützt, und aktiviere ihn, bevor du einen Deauth-Angriff versuchst. Bitte verwende dies nur zu Testzwecken und richte es nur gegen deine eigenen Maschinen.
Ein Brute-Force-Angriff ist der Versuch, ein Passwort oder einen Benutzernamen zu knacken.
Um einen Brute-Force-Angriff durchzuführen und gängige/schwache Anmeldedaten zu finden, gib Folgendes ein:
-bruteforce <SERVICE> -target <TARGET IP/FQDN> -user <USERNAME>
Wenn du eine benutzerdefinierte Wortliste verwenden möchtest, verwende den folgenden Befehl:
-bruteforce <SERVICE> -target <TARGET IP/FQDN> -user <USERNAME> -wordlist <WORDLIST PATH>
Derzeit wird nur der SSH-Dienst unterstützt.
Haftungsausschluss: Beachte, dass der Zielserver über Abwehrmechanismen gegen diese Art von Angriff verfügen kann und die Versuche des Angreifers, das Passwort zu erraten, blockieren kann. Bitte verwende dies nur zu Testzwecken und richte es nur gegen deine eigenen Maschinen.
Dieser Befehl automatisiert einige der in diesem Skript verfügbaren Erkundungstechniken. Gib dazu Folgendes ein:
-autoscan <HOST(s) IP/FQDN>
Die meisten WLAN-Nutzer verwenden ihre WLAN-Karten lediglich als Station an einem AP. Im Managed-Modus verlassen sich die WLAN-Karte und die Treibersoftware auf einen lokalen AP im Managed-Modus, um die Konnektivität zum WLAN-Netzwerk bereitzustellen.
Einige WLAN-Karten unterstützen auch den Monitor-Modus. Im Monitor-Modus sendet die WLAN-Karte keine Daten mehr, sondern belauscht den aktuell konfigurierten Kanal und meldet den Inhalt aller beobachteten Pakete an das Host-Betriebssystem.
Um eine Schnittstelle in den Monitor-Modus zu versetzen, verwende den folgenden Befehl:
-mode monitor -iface <INTERFACE>
Du kannst deine Schnittstelle auch auf die Standard-WLAN-Schnittstelle setzen (konfiguriert in files/conf.py):
-mode monitor -iface d

Wie du im folgenden Screenshot sehen kannst, wurde der Schnittstellenmodus erfolgreich geändert.

Wenn du deine Schnittstelle jedoch zurück in den Managed-Modus versetzen möchtest, gib Folgendes ein:
-mode managed -iface <INTERFACE>
Du kannst deine Schnittstelle auch auf die Standard-WLAN-Schnittstelle setzen (konfiguriert in files/conf.py):
-mode managed -iface d

Wie du im folgenden Screenshot sehen kannst, wurde der Schnittstellenmodus erfolgreich geändert.

Erstelle ein Issue oder einen Pull-Request oder sende mir eine E-Mail an [email protected].
Dieses Repository steht unter der MIT-Lizenz.