
Ein Bash-Skript für Recon und DOS-Angriffe
Ein Bash-Auswahlmenü für schnelle und einfache Netzwerkerkundung und DoS-Angriffe
Sudo wird bei Bedarf verwendet. Getestet auf Debian und Arch.
Beiträge und Pull-Requests sind sehr willkommen!
$ wget https://raw.githubusercontent.com/GinjaChris/pentmenu/master/pentmenu
$ chmod +x ./pentmenu
$ ./pentmenu
Alternativ die neueste Version von https://github.com/GinjaChris/pentmenu/releases herunterladen, entpacken und das Skript ausführen. Oder git clone verwenden:
git clone https://github.com/GinjaChris/pentmenu
ERKUNDUNGSMODULE
IP anzeigen - verwendet curl, um eine Abfrage Ihrer externen IP durchzuführen. Führt ip a oder ifconfig (je nach Bedarf) aus, um lokale Schnittstellen-IPs anzuzeigen.
DNS-Erkundung - passive Erkundung, führt eine DNS-Abfrage (Vorwärts- oder Rückwärtssuche je nach Ziel-Eingabe) und eine whois-Abfrage des Ziels durch. Wenn whois nicht verfügbar ist, wird eine Abfrage gegen ipinfo.io durchgeführt (funktioniert nur für IPs, nicht für Hostnamen).
Ping-Sweep - verwendet nmap, um einen ICMP-Echo (Ping) gegen das Ziel-Host oder Netzwerk durchzuführen.
Schnellscan - TCP-Portscanner mit nmap zum Scannen offener Ports mittels TCP-SYN-Scan. Nmap führt vor dem TCP-SYN-Scan keinen Ping-Sweep durch. Dieses Modul scannt die 1.000 häufigsten Ports. Es kann natürlich zum Scannen eines einzelnen Hosts oder eines ganzen Netzwerks verwendet werden, ist aber eigentlich dafür ausgelegt, Ziele über einen Bereich von IP-Adressen zu identifizieren. Dieser Scan kann lange dauern, bitte haben Sie Geduld.
Detaillierter Scan - verwendet nmap, um aktive Hosts, offene Ports zu identifizieren, Betriebssystem-Identifikation zu versuchen, Banner zu erfassen/laufende Software-Versionen zu identifizieren. Nmap führt vor diesem Scan keinen Ping-Sweep durch. Der Standard-User-Agent-String von nmap wird in diesem Modus auf den des Microsoft Edge-Browsers geändert, um eine Erkennung über HTTP zu vermeiden. Alle TCP-Ports auf dem Ziel (Hostname/IP/Subnetz) werden gescannt. Obwohl das Modul einen einzelnen Host oder viele Hosts scannen kann, ist sein vorgesehener Zweck, einen Informationssammlungsscan gegen ein einzelnes System durchzuführen. Dieser Scan kann lange dauern, bitte haben Sie Geduld.
UDP-Scan - verwendet nmap, um offene UDP-Ports zu scannen. Alle UDP-Ports werden gescannt.
Server-Betriebszeit prüfen - schätzt die Betriebszeit des Ziels durch Abfragen eines offenen TCP-Ports mit hping3. Die Genauigkeit der Ergebnisse variiert von Maschine zu Maschine; dies funktioniert nicht gegen alle Server.
IPsec-Scan - versucht, das Vorhandensein eines IPsec-VPN-Servers mit ike-scan und verschiedenen Phase-1-Vorschlägen zu identifizieren. Jede Textausgabe dieses Moduls, sei es bezüglich 'Handshake' oder 'kein Vorschlag ausgewählt', zeigt das Vorhandensein eines IPsec-VPN-Servers an. Siehe http://nta-monitor.com/wiki/index.php/Ike-scan_User_Guide für einen hervorragenden Überblick über ike-scan und VPN-Phase 1.
DOS-MODULE
ICMP-Echo-Flood - verwendet hping3, um eine traditionelle ICMP-Echo-Flut gegen das Ziel zu starten. Auf einem modernen System werden Sie wahrscheinlich nicht viel erreichen, aber es ist nützlich, um gegen Firewalls zu testen und ihr Verhalten zu beobachten. Verwenden Sie 'Strg C', um die Flut zu beenden. Die Quelladresse der Flood-Pakete ist konfigurierbar. Beachten Sie, dass das Ziel eine IP (z.B. 127.0.0.1) oder ein Hostname (z.B. localhost.localnet.com) sein kann. Fügen Sie NICHT das Protokoll als Teil des Ziels ein (z.B. http://localhost.localnet.com).
ICMP-Blacknurse-Flood - verwendet hping3, um eine ICMP-Flut gegen das Ziel zu starten. ICMP-Pakete sind vom Typ 'Destination Unreachable, Port Unreachable'. Dieser Angriff kann auf vielen Systemen hohe CPU-Auslastung verursachen. Verwenden Sie 'Strg C', um den Angriff zu beenden. Siehe http://blacknurse.dk/ für weitere Informationen. Die Quelladresse der Flood-Pakete ist konfigurierbar.
TCP-SYN-Flood - sendet eine Flut von TCP-SYN-Paketen mit hping3. Wenn hping3 nicht gefunden wird, wird versucht, stattdessen das nmap-nping-Dienstprogramm zu verwenden. Hping3 wird bevorzugt, da es Pakete so schnell wie möglich sendet. Es gibt Optionen, um eine Quell-IP Ihrer Schnittstelle zu verwenden, eine Quell-IP anzugeben (zu spoofen) oder eine zufällige Quell-IP für jedes Paket zu spoofen. Optional können Sie Daten zum SYN-Paket hinzufügen. Alle SYN-Pakete haben das Fragmentierungsbit gesetzt und verwenden hpings virtuelles MTU von 16 Bytes, was Fragmentierung garantiert. Das Zurückfallen auf nmap-nping bedeutet, dass X Pakete pro Sekunde gesendet werden, bis Y Pakete gesendet wurden, und erlaubt nur die Verwendung der Schnittstellen-IP oder einer angegebenen (gespooften) Quell-IP. Ein TCP-SYN-Flood wird einen Server wahrscheinlich nicht zum Absturz bringen, ist aber eine gute Möglichkeit, Switch/Router/Firewall-Infrastruktur und State-Tables zu testen. Beachten Sie, dass hping zwar die ausgehende Schnittstelle und IP meldet, was Sie glauben lassen könnte, das Skript funktioniere nicht wie erwartet, aber die Quell-IP wird wie angegeben gesetzt werden; überprüfen Sie bei Zweifeln einen Paketmitschnitt des Traffics! Da die Quelle definierbar ist, ist es einfach, einen LAND-Angriff zu starten (siehe https://en.wikipedia.org/wiki/LAND). Die Möglichkeit, die Quelle zu setzen, erlaubt es auch, zum Beispiel SYN-Pakete an ein Ziel zu senden und die SYN-ACK-Antworten an ein zweites Ziel zu erzwingen.
TCP-ACK-Flood - bietet die gleichen Optionen wie der SYN-Flood, setzt aber stattdessen das ACK (Acknowledgement)-TCP-Flag. Einige Systeme werden übermäßige CPU-Zyklen für die Verarbeitung solcher Pakete aufwenden. Wenn die Quell-IP auf die einer bestehenden Verbindung gesetzt wird, ist es möglich, dass eine bestehende Verbindung durch diese 'blinde' TCP-ACK-Flood unterbrochen wird. Dieser Angriff gilt als 'blind', weil er keine Details einer bestehenden Verbindung (wie Sequenz- oder Bestätigungsnummern) berücksichtigt.
Abwehrmaßnahmen gegen diesen Angriff umfassen (unter anderem):
Begrenzung der Anzahl von TCP-Verbindungen pro Client; dies verhindert, dass eine einzelne Maschine den Server unerreichbar macht, ist aber nicht effektiv, wenn beispielsweise 10.000 Clients den Angriff gleichzeitig starten. Zusätzlich kann eine solche Abwehrmaßnahme mehrere (legitime) Clients, die hinter einem Forward-Proxy-Server arbeiten, negativ beeinflussen.
Begrenzung der Zeit zum Senden einer vollständigen HTTP-Anfrage; dies ist effektiv, da der Angriff darauf beruht, Header langsam an den Server zu senden (der Server sollte alle Header vom Client abwarten, bevor er antwortet). Wenn der Server die Zeit für den Empfang aller Header einer Anfrage auf z.B. 10 Sekunden begrenzt, wird dies die Effektivität des Angriffs stark einschränken. Es ist möglich, dass eine solche Maßnahme legitime Clients über langsame/verlustbehaftete Verbindungen daran hindert, die Website zu erreichen.
IPsec-DoS - verwendet ike-scan, um zu versuchen, die angegebene IP mit Main-Mode- und Aggressive-Mode-Phase-1-Paketen von zufälligen Quell-IPs zu fluten. Verwenden Sie das IPsec-Scan-Modul, um das Vorhandensein eines IPsec-VPN-Servers zu identifizieren.
Ablenkungs-Scan - dies ist kein echter DoS-Angriff, sondern startet einfach mehrere TCP-SYN-Scans mit hping3 von einer gespooften IP Ihrer Wahl (wie die IP Ihres größten Feindes). Es ist als offensichtlicher Scan konzipiert, um etwaige IDS/IPS des Ziels auszulösen und so hoffentlich einen tatsächlichen Scan oder eine andere Aktion, die Sie durchführen, zu verschleiern.
DNS-NXDOMAIN-Flood - dieser Angriff verwendet netcat und ist dazu gedacht, Ihren DNS-Server einem Belastungstest zu unterziehen, indem eine Flut von DNS-Anfragen für (meist) nicht existierende Domains sowie einige fehlerhafte DNS-Anfragen gesendet wird. Wenn er gegen einen rekursiven DNS-Server ausgeführt wird, versucht er, den Server zu blockieren und den Cache mit negativen Antworten zu füllen, was legitime Anfragen verlangsamt/verhindert. Funktioniert am besten von mehreren angreifenden Clients aus. Verwenden Sie 'Strg c', um den Angriff zu stoppen.
EXTRAKTIONSMODULE
Datei senden - Dieses Modul verwendet netcat, um Daten mit TCP oder UDP zu senden. Es kann äußerst nützlich zum Extrahieren von Daten sein. Vor dem Senden der Datei wird eine MD5- und SHA512-Prüfsumme berechnet und angezeigt. Die Datei kann an einen Server Ihrer Wahl gesendet werden; der Listener ist dafür ausgelegt, diese Dateien zu empfangen.
Listener - verwendet netcat, um einen Listener auf einem konfigurierbaren TCP- oder UDP-Port zu öffnen. Dies kann nützlich sein, um Syslog-Konnektivität zu testen, Dateien zu empfangen oder auf aktives Scannen im Netzwerk zu prüfen. Alles, was der Listener empfängt, wird nach ./pentmenu.listener.out oder eine Datei Ihrer Wahl geschrieben. Beim Empfangen von Dateien über UDP muss der Listener manuell mit 'Strg C' geschlossen werden. Dies liegt daran, dass wir netcat zwingen müssen, offen zu bleiben, um mehrere Pakete zu empfangen, da UDP ein verbindungsloses Protokoll ist. Beim Empfangen von Dateien über TCP schließt die Verbindung automatisch, nachdem der Client seine Verbindung geschlossen hat (sobald die Datei übertragen wurde), und es werden MD5- und SHA512-Prüfsummen für die empfangene Datei berechnet.
Dieses Skript ist nur für verantwortungsvolle, autorisierte Nutzung bestimmt. Sie sind für Ihre eigenen Handlungen verantwortlich, und dieses Skript wird ohne jegliche Gewährleistung oder Garantie bereitgestellt. Der/die Autor(en) übernehmen keine Verantwortung oder Haftung in Ihrem Namen.
Pentmenu ist als Paket auf Arch Linux verfügbar. Große Liebe an ArchStrike und Parrot Linux.
Keine erforderlich, bitte nur den Autor korrekt angeben :)
TCP-RST-Flood - bietet die gleichen Optionen wie der SYN-Flood, setzt aber stattdessen das RST (Reset)-TCP-Flag. Ein solcher Angriff könnte bestehende Verbindungen unterbrechen, wenn die Quell-IP auf die einer bestehenden Verbindung gesetzt wird. Siehe https://en.wikipedia.org/wiki/TCP_reset_attack als Beispiel.
TCP-XMAS-Flood - ähnlich wie die SYN- und ACK-Floods, mit den gleichen Optionen, sendet aber Pakete mit allen gesetzten TCP-Flags (CWR, ECN, URG, ACK, PSH, RST, SYN, FIN). Das Paket gilt als 'wie ein Weihnachtsbaum beleuchtet'. Theoretisch zumindest erfordert ein solches Paket mehr Ressourcen für den Empfänger zur Verarbeitung als ein Standardpaket. Allerdings sind solche Pakete sehr indikativ für ungewöhnliches Verhalten (wie einen Angriff) und werden normalerweise leicht von IDS/IDP erkannt.
UDP-Flood - ähnlich wie der TCP-SYN-Flood, sendet aber stattdessen UDP-Pakete an den angegebenen Host:Port. Wie bei der TCP-SYN-Flood-Funktion wird hping3 verwendet, falls nicht gefunden, wird stattdessen nmap-nping verwendet. Alle Optionen sind die gleichen wie bei TCP SYN Flood, außer dass Sie Daten angeben müssen, die in den UDP-Paketen gesendet werden sollen. Auch dies ist eine gute Möglichkeit, den Switch/Router-Durchsatz zu überprüfen oder VOIP-Systeme zu testen.
SSL-DoS - verwendet OpenSSL, um ein Ziel-Host:Port zu DoSen. Dies geschieht durch das Öffnen vieler Verbindungen und das Verursachen teurer Handshake-Berechnungen auf dem Server. Dies ist kein hübscher oder eleganter Code, erwarten Sie nicht, dass er sofort nach Drücken von 'Strg c' stoppt, aber er kann brutal effektiv sein. Die Option für Client-Neuverhandlung wird gegeben; wenn der Zielserver Client-initiiierte Neuverhandlung unterstützt, sollte diese Option gewählt werden. Selbst wenn der Zielserver keine Client-Neuverhandlung unterstützt (z.B. CVE-2011-1473), ist es immer noch möglich, den Server mit diesem Angriff zu beeinträchtigen/zu DoSen. Es ist sehr nützlich, dies gegen Loadbalancer/Proxies/SSL-fähige Server (nicht nur HTTPS, sondern jeden SSL- oder TLS-verschlüsselten Dienst!) auszuführen, um zu sehen, wie sie unter der Belastung zurechtkommen.
Slowloris - verwendet netcat, um langsam HTTP-Header an das Ziel-Host:Port zu senden, mit der Absicht, es an Ressourcen verhungern zu lassen. Dies ist effektiv gegen viele, wenn auch nicht alle, HTTP-Server, vorausgesetzt die Verbindungen können lange genug offen gehalten werden. Daher ist dieser Angriff nur effektiv, wenn der Server die Zeit zum Senden einer vollständigen HTTP-Anfrage nicht begrenzt. Einige Implementierungen dieses Angriffs verwenden eindeutig identifizierbare Header, was hier nicht der Fall ist. Die Anzahl der zum Ziel zu öffnenden Verbindungen ist konfigurierbar. Das Intervall zwischen dem Senden jeder Header-Zeile ist konfigurierbar, wobei der Standardwert ein zufälliger Wert zwischen 5 und 15 Sekunden ist. Die Idee ist, Header langsam zu senden, aber nicht so langsam, dass der Leerlauf-Timeout des Servers die Verbindung schließt. Wenn wir zum Beispiel alle 900 Sekunden eine Header-Zeile senden, ist die Wahrscheinlichkeit hoch, dass der Server die Verbindung lange vor dem Senden einer zweiten Header-Zeile geschlossen hat. Die Option zur Verwendung von SSL (SSL/TLS) wird gegeben, was stunnel erfordert und den Angriff gegen einen HTTPS-Server ermöglicht. Sie verwenden die SSL-Option nicht gegen einen reinen HTTP-Server.