Hacks vorhersagen + Port Scanner selber entwickeln

Kennst Du das erste Anzeichen ein Hacks auf Dein System?

Oft sind es Port Scanner, 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 potentiellen Hacks ist ein Port Scans – Warum? – Der Port Scan gibt Aufschluss darüber, welche Ports auf einem Server offen sind, die von Nutzern z.B. über APIs nutzen.

Ein Port Scanner ist ein Programm, welches wir in diesem Tutorial in Java coden wollen. Einen Port Scanner kann der Programmierer 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 besseres Verständnis davon zu bekommen.

Einen Port Scan auf ein FREMDES System ist dagegen kritisch. Die Gesetzeslage ist nicht eindeutig. Netzwerkadmins sehen Port-Scans ungern und sperren gleich die genannten 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 zu Grunde. Das Protkoll gehört  zu der Transportschritt des OSI-ISO Modells.

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

11 Kostenlose Exklusive App Dev Tipps

Deine Mail für Zugang zu praxisnahe App Entwicklung Tipps zu erhalten

Videos, Bilder, Streams – User Datagram Packet

Das UDP ist dagegen 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 Film wegen 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 eine 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 Nummer 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 benutzen ich in diesem Beispiel Multi-Threading. 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 Zufallskomponenten einbauen. Die Port Scans erkennen Virenschutzprogramme 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 schriebt 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 das der Scan nicht auffällt. Der Scanner soll so aussehen, als ob Hunderte von verschiedenen Hosts 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 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: Eine Verlust von Kundendaten ist schlimmer als eine Downtime von mehreren Stunden
  7. Untersuche die alle Schnittstellen auf Sicherheitslücken
  8. … und alle anderen präventiven Sicherungsmaßnahmen, damit der Schaden eines möglichen Angriffs gering bleibt oder dieser ganz unterbunden wird.

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

Sichere Dir den kompletten
Fundamental Ionic Course

Die kostenlosen Tutorials sind ein Ausschnitt
aus dem Fudamental Ionic Course by Steffen Lippke.

Schon 4832 erfolgreiche Absolventen

  • Code Downloads + umfangreiche Lösungen + Dateien für Grundlagen zum Coden
  • Visuelle Beschreibungen mit HD+ Screenshots und Hilfen
  • Steffen's Clean Code - Erweiterung - Verbesserungs - Tipps
 

100 h Kurslänge | 100 % Geld-Zurück-Garantie | Live-Support

 
1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading...

Schreibe einen Kommentar

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