Port Scanner selber entwickeln – Hacks vorhersagen?

Portscanner und Hacks vorhersagen Steffen Lippke Hacking Series

Kennst Du die Vorboten eines Hacks?

Port Scanner sind ein erstes Anzeichen, die die offene Ports Deines Systems suchen

Heute zeige ich Dir, wie Du einen Port Scanner bauen kannst.

Aufgabe: Server ausspionieren

Um was geht’s? – Alles über Ports

Der erste Schritt eines potenziellen Hacks ist ein Port Scans – Warum? – Der Port Scan gibt den Hackern darüber Aufschluss, welche Ports auf einem Server offen sind. Typische Port-Nummer verraten, welche Technologien Ihr verwendet:

Ein Port Scanner ist ein Programm, welches wir in diesem Tutorial in Java programmieren wollen. Einen Port Scanner kann der Netzwerker nutzen, um ungenutzte, offene Ports zu erkennen und wieder zu schließen.

Als Open-Source-Software stellt der Markt einige Lösungen bereit,  die fertig konfiguriert sind.

Wir wollen das Tool aber selbst schreiben, um einen Port Scanner besser zu verstehen.

Einen Port Scan auf ein FREMDES System ist dagegen kritisch. Die Gesetzeslage ist nicht eindeutig. Netzwerk-Admins sehen Port-Scans ungern und sperren gleich die erkannten IP-Adressen.

Knappe Einordnung – Scanning Arten

Zunächst stelle ich die wichtigsten Port Scanning Arten vor:

TCP-Scanning: (Transmission Control Protocol) Wenn ein Port offen steht, dann kann der Port Scanner zu den fremden Server eine Verbindung herstellen. Dazu führt TCP einen „3-fachen Handshake“ aus. Konnte TCP eine Verbindung erfolgreich herstellen, dann hat der Port Scanner einen offenen Port gefunden.

SYN-Scanning: Diese Art von Port Scanning nennen viele IT-Fachleute das “halb-offene” Scanning. Beim normalem TCP-Scanning erzeugt der Scanner eine richtige Verbindung.

Ein SYN-Scanner sendet „nur“ ein SYN-Paket an den Server und erhält, falls dieser offen ist ein SYN-ACK Paket (Bestätigung) als Antwort zurück.

UDP-Scanning: (User Datagram Packet) UDP basiert im Gegensatz zu TCP auf einer verbindungslosen Kommunikation. Falls der angefragte Port nicht offen ist, antwortet der Server mit ICMP (Internet Control Message Protocol) – Paket. Das Paket teilt dem Port Scanner mit, dass der Port nicht offen ist.

Grundlagen: Alles zu TCP, UDP + Port

Sicher ist Sicher – Transmission Communication Protocoll

TCP liegt einer verbindungsorientierten Kommunikation zugrunde. Das Protokoll gehört  zu der Transportschritt des OSI-ISO Modells.

Resourcen:

Der Vorteile von TCP sind die Überprüfung von den Übertragungsfehlern, die Sortierung der Pakete und weitere, mögliche Konfigurationen, die mit im Paket enthalten sein können. Der große TCP-Header stellt die Funktionen zu Verfügung, verlangsamt aber „durch die Extra-Bits“ die Übertragungsgeschwindigkeit.

Videos, Bilder, Streams – User Datagram Packet

Das UDP ist dagegen viel  minimalistischer aufgebaut:

Empfänger und Versenderport und –adresse beinhaltetet der Header, sonst nichts Weiteres. Viele bekannte Video-Plattformen verwenden oft das UDP:

Die Zuschauer empfinden ein Stoppen des Films wegen des Nachladen schlimmer, als wenn eine paar Pixel verloren gehen.

Bei UDP-Verbindungen können schnell Pakete verloren gehen und unsortiert dem Empfänger erreichen.

Virtuelle Anschlüsse Deines PCs – Ports

Ein Port ist vergleichbar mit einer „nummerierten“ USB Büchse an Deinem PC:

Der PC kann mit der Büchse Daten empfangen und senden, wenn ein Kabel angeschlossen ist.

Für eine gelungene Netzwerkkommunikation brauchen wir nicht nur eine IP-Adresse z.B. 196.2.3.2, sondern auch ein Port. Der Port ist eine Zahl zwischen 1 und 66503, die der PC für Verbindungen nutzen kann. Vorteil ist, dass der PC verschiedene Verbindung zu mehreren Servern aufbauen kann.

Hack IT: Java Coding

Blick in den Code – Port Scanner

Der Port Scanner testet alle Ports eines Servers aus.

Das kann je nach Programmierung wenige Sekunden bis Minuten dauern. Ein Port ist offen, wenn der Port Scanner sich verbinden kann. Die Verbindung löst der Port Scanner sofort wieder auf, da dieser keine Daten an dem Server senden möchte

Die schrittweise Überprüfung aller Ports kann sehr lange dauern, deshalb benutze ich in diesem Beispiel Multi-Threading (Parallelisierung auf mehreren Prozessoren). Die Verwendung von Threads hat zum Vorteil, dass der Scanner verschiedenen Ports nebenläufig (gleichzeitig) überprüfen kann.

Im nächsten Schritt sollten wir noch eine Zufallskomponente einbauen. Die Port Scans erkennen Schutz-Programme sofort, wenn der Scanner so arbeitet:

1,2,3,4,  ….

Besser und natürlicher wäre:

234, 3245, 334, 5676, …

Deshalb generieren wir durch Math.random() eine Zufallszahl zwischen 0 und 1 und multiplizieren diese mal die höchste Port-Nummer. Das Ergebnis schreibt unser Scanner in eine „überprüft“ – Liste.

Der Scanner testet den Port nur, wenn dieser nicht in der Liste steht. Außerdem ist es empfehlenswert eine „Schlafzeit“ für Threads einzuführen.

Ziel ist es, dass der Scan nicht auffällt. Der Scanner soll so aussehen, als ob Hunderte von verschiedenen Hosts (mit normalen Nutzern) auf den Server zugreifen wollen.

Sicherung: Präventiv ist besser

Sicherungsmaßnahme

Ein fremder Scan auf Dein System schadet Dir nicht.

Wenn Du aber einen solchen Scan erkennst, kannst Du Maßnahmen ergreifen, um einen Angriff abzuwehren.

  1. Schließe alle ungenutzten Ports (Daran solltest Du selbst immer denken)
  2. Checke Deinen Systeme auf Aktualität der Software ab
  3. Erstelle ein Backup von Deinen Systemen
  4. Nutze eine Verschlüsslung (TSL ,RSA) für die Kommunikation zwischen dem Server und den Clients
  5. Ermittle, wenn möglich, woher der Scan kam
  6. Notfalls schalte Systeme komplett ab, wenn Du die Sicherheitslücken nicht schnell schließen kannst:
    Einen Verlust (Dataleak) von Kundendaten ist schlimmer als eine Downtime von mehreren Stunden
  7. Untersuche die alle Anwendungsschnittstellen auf Sicherheitslücken

Credits

Icons made by Gregor Cresnar from www.flaticon.com is licensed by CC 3.0 BY  – Icons made by dDara from www.flaticon.com is licensed by CC 3.0 BY – Icons made by Icomoon from www.flaticon.com is licensed by CC 3.0 BY –Icons made by Those Icons from www.flaticon.com is licensed by CC 3.0 BY

Icons made by Roundicons from www.flaticon.com is licensed by CC 3.0 BY
Icons made by Roundicons from www.flaticon.com is licensed by CC 3.0 BY
1 Star2 Stars3 Stars4 Stars5 Stars (9 votes, average: 4,11 out of 5)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.