Inhaltssammlung

Aus Labor für Echtzeitsysteme

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Version vom 13:18, 13. Okt. 2006 (bearbeiten)
Studi (Diskussion | Beiträge)
(Der Nessus-Client)
← Zum vorherigen Versionsunterschied
Version vom 13:21, 13. Okt. 2006 (bearbeiten) (rückgängig)
Ar (Diskussion | Beiträge)
(Firewall)
Zum nächsten Versionsunterschied →
Zeile 552: Zeile 552:
== Firewall == == Firewall ==
 +Als [http://de.wikipedia.org/wiki/Firewall Firewall] bezeichnet man ein System (sowohl nur Hardware als auch Software, aber meist in Kombination) das meist als Schnittstelle zwischen Computernetzwerken um ungewünschetn Netzverkehr zu filtern und erlaubten durchzulassen.
 +
=== Netfilter/iptables === === Netfilter/iptables ===
Netfilter ist eine Software innerhalb des Linux-Kernels, die es erlaubt, Netzwerkpakete abzufangen und zu manipulieren. Es bildet damit das Herzstück einer Firewall auf Basis von Linux. Netfilter ist eine Software innerhalb des Linux-Kernels, die es erlaubt, Netzwerkpakete abzufangen und zu manipulieren. Es bildet damit das Herzstück einer Firewall auf Basis von Linux.
Iptables ist das dazugehörige Dienstprogramm zur Konfiguration von Netfilter. Iptables ist das dazugehörige Dienstprogramm zur Konfiguration von Netfilter.
 +
==== Weblinks ==== ==== Weblinks ====
* [http://www.iptables.org/ iptables Homepage] (englisch) * [http://www.iptables.org/ iptables Homepage] (englisch)

Version vom 13:21, 13. Okt. 2006

Inhaltsverzeichnis

Einleitung

Willkommen auf der E-Learning-Plattform "...." des Projektfachs Rechner- und Netzwerksicherheit 2006/2007.


Diese E-Learning-Plattform soll einem fortgeschrittenen PC-Nutzer folgende Einblicke gewähren:

  • wie man einen Rechner auf existierende Sicherheitslücken in Betriebssystemen und Diensten untersuchen kann
  • wie man einem Rechner auf mögliche, extern nutzbare Angriffspunkt untersucht
  • wie man einen Rechner sicher macht
  • wie man Fump, Fopp und Röhr unterscheidet


An der Ausarbeitung dieser E-Learning-Plattform waren beteiligt:

Andreas Rütten
Christian Kaczynski
Jens Nitschke
Jörg Fichtner
Stefan Hüskes
Chu Bingbin
Markus de Jong
Simon Dietrich
Stefan Deling
Tim Rütten

Verschiedene Arten von Angriffsmöglichkeiten

Applikationen

local

in bearbeitung, Jörg & Simon

Es gibt verschiedene Arten von Möglichkeiten ein locales System anzugreifen.

- Direct Account hacking: Username ist bekannt, nur gezielte Passwörter werden versucht.

- direkte Sicherheitslücken ausnutzen, z.B. mit Anwendung von Exploids um Rootrechte mit einem normalen User zu bekommen.

- Via Brutforcealgorithmus (alle Möglichkeiten durch probieren)

remote

in bearbeitung, Jörg & Simon


Angriff auf einen entfernten Rechner.

Kernel

Man In The Middle

Als "Man In The Middle" Angriff, versteht man einen Angreifer der sich aktiv in eine Verbindung zwischen zwei oder mehreren Netzelementen einhängt. In dieser Position kann der Angreifer z.B. den Datenverkehr analysieren ( Passwörter ausspähen usw. ), Umleiten oder blockieren.

Die wohl bekanntest Art, ist das ARP-Spoofing/Poisoning.

ARP-Spoofing/Poisoning

Das Problem bei geswitchten Netzen liegt einfach daran, dass der Datenverkehr nicht mehr jeden im Netz erreicht sondern nur den für die die Nachricht gedacht ist ( Switch, Weiterleitung anhand von MAC-Adresse ).

Die Standard Kommunikation in einem geswitchten LAN sieht wie folgt aus:

Bild:standard_kommunikation.jpg


Vorgang

1.) Client C sendet Daten an Server S.
2.) Der Switch nimmt die Daten auf und sucht die Ziel MAC-Adresse ( MAC(S) ) raus. 
Der Switch erkennt das die Ziel MAC-Adresse am Switch-Port XYZ hängt. 3.) Leite die Daten NUR auf diesem Port weiter.


Die Frage die man sich nun als Angreifer stellt: Wie bekomme ich etwas oder alles vom Datenverkehr mit?

Lösung: "Vergiften" der ARP-Tabellen! Der Angreifer nutzt die schwache Implementierung von ARP aus und sendet ARP-Responses an Client und Server, sodass jeder denkt die MAC-Adresse des anderen wäre die MAC-Adresse des Angreifers.


Bild:arp_poisoning.jpg


Vorgang

1.) Schicke ein ARP-Response an Client C mit IP(S) und MAX(A)
2.) Schicke ein ARP-Response an Server S mit IP(C) und MAX(A)


Nachdem die ARP-Tabellen von Client und Server "vergiftet" worden sind, läuft der gesamte Datenverkehr über Angreifer A! D.h. der Switch leitet die Pakete von Client S an Angreifer A weiter, da die Ziel-MAC-Adresse NICHT mehr MAC(S) ist, sonder MAC(A) und da ein Switch Weiterleitungen auf OSI-Layer2-Basis (MAC-Adresse) entscheidet steht der Angreifer nun im Mittelpunkt der Kommunikation ( Man In The Middle )!


Bild:redirected_traffic.jpg


Vorgang

1.) Client C möchte Daten an Server S schicken [ mit Ziel-IP IP(S) und Ziel-MAC MAC(A) ]
2.) Der Switch erkennt die Ziel-MAC MAC(A) und leitet diese an den Switch-Port ABC weiter
3.) Der Angreifer A nimmt die Daten entgegen und analysiert o.ä. diese.
4.) Angreifer A schickt die Daten zurück mit der Ziel-IP IP(S) und der Ziel-MAC(S)
5.) Der Switch schickt die Daten nun an den Server S, da Ziel-MAC nun MAC(S)


Dieser gesamte Vorgang verläuft bidirektional. D.h. der Weg von Server S an Client C verläuft gleich, da am Anfang ( und während dessen auch ) die ARP-Tabelle von Client und Server "vergiftet" worden sind.

Netz-Analyse

telnet

in bearbeitung von Simon

Telnet (Teletype Network) ist der Name eines im Internet weit verbreiteten Netzwerkprotokolls. Das IETF-Dokument STD 8 (RFC 854 und RFC 855), in welchem es beschrieben wird, beginnt folgendermaßen: "Der Sinn des TELNET-Protokolls besteht darin, eine ziemlich allgemeine, bidirektionale, 8-bit-pro-Byte-orientierte Kommunikationsmöglichkeit zu bieten." Es wird üblicherweise dazu verwendet, Benutzern den Zugang zu Internetrechnern über die Kommandozeile zu bieten. Aufgrund der fehlenden Verschlüsselung wird es kaum noch eingesetzt, verbreitet sind heutzutage SSH (im Unixbereich) und RDP (im Windowsbereich)

Weiterhin ist Telnet der Name eines Programms, welches Verbindungen zu einem entfernten Gastrechner ermöglicht. Das Telnetprogramm stellt dabei die benötigten Clientfunktionen des Protokolls zur Verfügung. Telnet ist ein Client-Server-Protokoll, es verwendet TCP und die Clients verbinden sich meistens über Port 23 mit dem Zielrechner, allerdings lässt sich dieser Port, wie bei den meisten Internetprotokollen, auch ändern. Teilweise aufgrund des Protokolldesigns, teilweise aufgrund der üblicherweise zur Verfügung gestellten Flexibilität der Telnetprogramme, ist es ebenfalls möglich, mit einem Telnetprogramm eine interaktive TCP-Verbindung zu einigen anderen Internetservices aufzubauen. Eine klassische Verwendung davon ist beispielsweise eine Telnetverbindung über Port 25 aufzubauen (wo sich meistens ein SMTP-Server befindet), um Fehlkonfigurationen in einem E-Mail-Server zu finden.

Syntax

telnet [address] [-l user] [port]

nmap

Nmap steht für "Network Mapper". Es wird zum scannen von offenen Ports auf dem eigenen, bzw. fremden Rechner benutzt. Dieser Portscanner wurde ursprünglich von einem Hacker mit dem Nickname Fyodor für Linux entwickelt. Es ist inzwischen für fast alle Platformen (Linux, Windows, Mac OS X, etc.) zu haben. Das Tool ist in der textbasierten Version frei verfügbar. Daneben gibt es noch NmapFE, welches eine Grafische Oberfläche hat. Nmap wird von vielen Administratoren und auch Hackern eingesetzt, da es ein ein wesentlicher Bestandteil der Netzwerkdiagnose darstellt. Es unterstützt unterstützt eine Vielzahl verschiedener Scanning-Techniken, wie z.B. UDP, TCP, FTP-Proxy, Reverse-ident, ICMP, FIN, ACK-Suchlauf, Xmas-Tree, SYN-Suchlauf, IP-Protocol und Null-Scan. Neben dem scannen einzelner Systeme, kann man auch ganze Netze scanne. Ebenso ermöglicht nmap eine Vielzahl von zusätzlichen Möglichkeiten, wie z.B. das Erkennen von Betriebssystemen mittels TCP/IP-Fingerprinting. Da viele Techniken root-Privilegien benötigen, sollte Nmap stets als root genutzt werde.

Das Ergebnis eines Scans ist normalerweise eine Liste von Ports der gescannten Rechner. Sofern bekannt ist um welche Ports es sich handelt, weist Nmap ihnen Service-Namen, Portnummer, Status und Protokoll zu. Der Status ist entweder "open", "filtered" oder "unfiltered". "Open" bedeutet, dass das Zielsystem auf diesem Port eine Verbindung annehmen kann. "Filtered" weist darauf hin, dass eine Firewall oder ein TCP/IP-Filter den scan blockiert, und keine Rückschlüsse auf die Ports gemacht werden können. "Unfiltered" heisst, dass nmap den Port kennt, und beim Zugriff keinerlei Filter-Mechanismen ausgemacht werden konnten. Dieser Staus kommt am häufigsten vor.

Syntax

nmap [Scan-Typ] [Optionen] <Host oder Netz>


Es gibt eine vielzahl verschiedener Scannmöglichkeiten:

  • Der TCP-connect() scan wird mit dem Kürzel -sT aufgerufen. Er nutzt den connect()-System-Call des Betriebsystems. Befindet sich der Zielport im Zustand LISTENING, wir der Zugriff erfolgreich ausfallen. Es ist der standard scan für User die keine root-Rechte haben. Er ist jedoch leicht zu entdecken, da er mit grosser Warscheinlichkeit in der Protokoll-Datei des Zielrechners auftauchen wird.
  • Der TCP SYN-Scan wird mit der Option -sS aufgerufen. Diese Technik wird oft als "halb-offen" bezeichnet, da keine volle TCP-Verbindung zustande kommt. Der Scanner schickt ein TCP-Paket mit gesetzter SYN-Flag an das Zielsystem. Der Scanner wartet nun auf eine Rückmeldung des Zielsystems. Kommt ein Paket mit gesetzter SYN/ACK-Flag zurück, so wird der Zielport als LISTENING identifiziert. Nmap schick nun automatisch ein RST zurück, damit der Verbindungsaufbau abgebrochen wird. Der Vorteil dieser Methode ist, dass viele Systeme diese Zugriffe nicht protokollieren. Im Gegensatz dazu deutet ein RST-Datangramm auf einen geschlossenen Port hin. Dieser Scantyp benötigt root Rechte.
  • Es gibt auch noch erweiterte Stealth Scans. Sie werden mit den Parameter -sF (FIN-Scan),-sX (Xmas-Tree-Scan) und -sN (Null-Scan) ausgeführt. Sie werden eingesetzt, falls der SYN-Scan nicht heimlich genug ist, da einige Firewalls verdächtige SYN-Aktivitäten erkennen können. Da Microsoft eine nich standardmässige TCP-IP implementierung verwendet,ist dieser Scan lediglich zur Bestimmung des Betriebsystems geeignet.
  • Ping-Scanning wird mit der Option -sP aufgerufen. Wenn man lediglich wissen will welche Hosts in einem Netz aktiv sind, ist der Ping-Scan die richtige Wahl. Hier wird eine ICMP echo request-Anfrage an jede Adresse im spezi­fizierten Netz geschickt. Antwortet der Host mit einem ICMP echo reply, wird er als aktiv eingestuft. Wird der ICMP Verkehr durch eine Firewall gefiltert, schickt nmap ein TCP-Datenpaket mit gesetzter ACK-Flag an einen möglich offenen Port(standardmässig TCP-Port 80). Bekommen wir ein RST zurück, ist das Zielsystem aktiv.
  • Der Parameter für IP-Protokoll-Scan ist -sO. Diese Methode ist dazu da um herauszufinden welche IP-Protokolle vom Zielsystem unterstützt werden. Für jedes IP-Protokoll wird ein RAW-Paket mit fehlendem Protokoll-Headar verschickt. Kommt als Antwort ICMP unreachable, wird das Protokoll nicht unterstützt. Es müssen 256 Protokolle gescannt werden, da das IP-Protokoll 8 Bit groß ist.
  • Der ACK-Scan (-sA) wird zur Identifizierung eines Firewall-Regelwerks verwendet. Zusätzlich kann diese Methode eine Determinierung des Vorhandenseins einer Stateful Inspec­tion, die eingehende SYN-Pakete blockt, ermöglichen. Der Scan sendet ein ACK-Paket an den Zielport. Kommt ein RST zurück, wird der Port als "unfiltered" eingestuft. Kommt keine Antwort, oder ein ICMP unreachable, wird er als "filtered" eingestuft.
  • Nachdem man durch einen anderen scan festgestell hat, das ein Port offen ist, kann man mit mit einem Version-Scanning (-sV) weitere Informationen zu diesem Dienst herausfinden. Nmap versucht das Service-Protokoll, den Applikationsnamen und die Versionsnummer zuzuweisen.


Zusätzlich zu den verschiedenen Scanmöglichkeiten gibt es noch weitere Optionen, die angegeben werden können.

  • -T<0-5> setzt vordefinierte Timing Richtlinien
  • 0: Der "Paranoid"-Modus scannt sehr langsam, in der Hoffnung nicht von Intrusion Detection-Systemen entdeckt zu werden. Es ist kein paralleles scannen möglich und es zwischen den Paketen bis zu 5 Minuten gewartet.
  • 1: "Sneaky" ist ähnlich wie "Paranoid", nur dass anstatt 5 Minuten nur 15 Sekunden gewartet wird.
  • 2: "Polite" wir dann eingesetzt, wenn die Netzwerkauslastung niedrig gehalten werden soll.
  • 3: "Normal" stellt das normale Verhalten von nmap dar. Es ist ein Kompromiss zwischen Geschwindigkeit und Zuverlässigkeit.
  • 4: "Aggressive" Es wird nie länger als 1.25 Sekunden auf Antwort gewartet. Es wird jedoch eine Wartezeit von 5 Minuten zwischen den einzelnen Hosts hinzugefügt.
  • 5: "Insane" sollte nur in schnellen Netzen eingesetzt werden, oder dort wo Zuverlässigkeit nicht besonders wichtig ist.
  • -F steht für Fast-scan-mode. Diese Option gibt an, dass lediglich die in der services-Datei von nmap gelisteten Dienste gescantwerden sollen.
  • -O Diese Option ermöglicht das Identifizieren des Betriebsystems am Zielrechenr anhand des TCP/IP-Fingerabdrucks. Es wird eine Anzahl von Tests ausgeführt, die das typische Verhalten der jeweiligen TCP/IP-Implementierungen erkennen können. Die erhaltenen Informationen werden in einer Datenbank mit bekannten Betriebssystemen verglichen.
  • -PO verhindert das Pingen eines Hosts, bevor er gescannt wird. Dies ermöglicht das Scannen von Netzwerken, die keine ICMP echo requests/responses aufgrund einer restriktiv konfigurierten Firewall zulassen.
  • Die Option -PI benutzt einen klassischen Ping, um die Ereichbarkeit von Systemen und Broadcast-Adressen von Subnetzen zu identifizieren.

Es gibt noch viele weitere Optionen und Scanmöglichkeiten, die ausführlich in der Manpage von nmap beschrieben werden.

Beispiele

  • nmap -sS -O 192.168.0.0/24
Hier wird ein stealth SYN-Scan gegen jeden Rechenr im Netz 192.168.0.0 ausgeführt. Es wir weiterhin versucht, die Betriebssysteme der Systeme zu ermitteln. Dieser Vorgang erfordert aufgrund des SYN-Scans und der Betriebssystemerkennung root-Privilegien.
  • nmap -sX -p 22,53,110,143,4564 198.116.*.1-127
Startet einen Xmas-Tree-Scan auf die erste Hälfte der 255 möglichen 8 Bit Subnetze des Klasse B-Adressraums von 198.116. Es wird überprüfen, ob am Zielsystem SSHD, DNS, POP3D, IMAPD oder der Port 4564 aktiv ist. Wichtig ist, dass Xmas-Scans nicht gegen Microsoft-Geräte funktion­ieren, da einige Abweichungen bei der Implementierung des TCP-Stacks gemacht wurden. Das gleiche gilt fuer Cisco-, IRIX-, HP/UX- und BSDI-Maschinen.

Übungen

blablabla keine Ahnung!!!!!!

Links

Nmap Homepage

nessus

Nessus-Logo
Nessus-Logo

Bei Nessus handelt es sich um einen bekannten Netzwerk- und Vulnerability Scanner für Linux- und Unix-Systeme der Entwickler-Firma Tenable Network Security (Entwickler: Renaud Deraison). Mit Hilfe dieser Software lassen sich - basierend auf dem Client-Server-Prinzip - Betriebssysteme und Dienste, die auf dem zu untersuchenden Rechner installiert und konfiguriert sind, auf Sicherheitslücken überprüfen.

Nessus
Nessus

Ausserdem überprüft Nessus idealerweise Router, Firewalls, Server und Gateways von außen auf bekannte Sicherheitslücken und mögliche Angriffspunkte. Dies wird durch vielfältige Plugins erreicht, die beim Start des Nessus-Servers geladen werden. Diese Plugins (z.B.: nasl,eine Scriptsprache,nessus-adduser,nessus-build,...) haben alle ihre eigenen Manpages, sowohl für den Client und als auch für den Server.

Installation

Um Nessus benutzen zu können, braucht man nmap, bison, flex und das Gimp-Toolkit (Gtk) (Man kann Nessus auch über die Kommandozeile benutzen, so dass Gtk nicht unbedingt notwendig ist.) Es gibt insgesamt vier Archive: die Nessus-Bibliotheken, die NASL-Bibliotheken, den Nessus-Kern und die Nessus-Plugins, die man am besten von der nächstgelegenen FTP-Site herunterladen kann. Das Entpacken, Erstellen und Installieren erfolgt wie gewohnt über ./configure, make, make install, in der Reihenfolge der obigen Archive.

Mittels der Nessus-Plugin-Scriptsprache NASL lassen sich eigene Plugins recht einfach erstellen und in Nessus implementieren.

Nessus konfigurieren und ausführen

Der nessusd-Server

Um Nessus zu starten, sollte man den Serverdaemon nessusd starten. Startet man den Daemon erstmalig, muss man seinen Benutzernamen und sein Passwort angeben, indem man den nessus-adduser-Befehl benutzt. Ist das Nessus-Bibliothekenpaket mit der Option "--enable-cipher" kompiliert worden (zwingend!), wird ein Private Key generiert, der mit einem Passwort geschützt werden sollte. Wenn man nun den Server startet, sind zahlreiche Optionen (aus dem Nessus-Plugin-Archiv) verfügbar, welche auch alle in der Manpage von Nessus aufgeführt sind. Davon ausgehend kann man eine Benutzerdatenbank und entsprechende Regeln erzeugen, d.h., welcher Benutzer den Serverdaemon ausführen darf und was dieser Benutzer überhaupt scannen darf (einen Rechner, ein Netzwerk,...).

Der Nessus-Client

Um den Client auszuführen, reicht es, den Befehl "nessus &" in einer Shell einzugeben. Daraufhin öffnet sich das Nessus-Setup-Fenster (oben erwähntes Passwort wird abfragt), welches neun Tab-Sites zur Verfügung stellt. Über diese Sites gibt man zuerst einmal die Verbindung zum Nessus-Server ein (je nachdem, ob der Client auf einem beliebigen lokalen oder entfernten Host gestartet wird), damit der Scan überhaupt durchgeführt werden kann.

Server-Verbindung
Server-Verbindung


In dieser "Session" kann nun folgendes eingestellt werden:

  • Aktivierung oder Deaktivierung der beim Scan zu verwendenden Plugins, zu denen man parallel auch Funktionsinformationen bekommt (Achtung bei Plugins, die den Rechner zum Absturz bringen könnten!)
Plugin-Auswahl
Plugin-Auswahl


  • Einstellungen zu den jeweiligen Plugins (bezüglich ping, TCP, FTP, ...)
Plugin-Einstellungen
Plugin-Einstellungen


  • Wahl der gewünschte Portscanner (meist nmap) und deren Scanoptionen
Scan-Optionen


  • Auswahl des gewünschten Zielhosts (localhost oder IP-Adresse)
Wahl des zu scannenden Hosts
Wahl des zu scannenden Hosts


  • eventuelle Änderung des anfänglich gesetzten Passworts oder Löschen des Private Keys
Persönliche Einstellungen


Nach Ende eines Host-Scans gibt der Nessus-Client eine zuverlässige, vertrauenswürdige Übersicht über alle eventuell gefundenen Sicherheitslücken und offenen Ports.

Achtung:

Nessus wird ab der Version 3.0 nicht mehr frei zur Verfügung gestellt, sondern unter einer proprietären Lizenz weiterentwickelt wird. Aus diesem Grund hat sich das Projekt OpenVAS gebildet, welches auf der letzten freien Nessus-Version aufsetzt und weiterentwickelt.

Weblinks

Homepage des Nessus-Projekts

Homepage des OpenVAS-Projekts

Mögliche Übung

Nutzung von Nessus auf dem eigenen Rechner.

Wireshark/Ethereal

Wireshark Logo
Wireshark Logo

Ethereal wurde von Gerald Combs unter der GNU General Public License als Open-Source-Software entwickelt und im Mai 2006 in Wireshark umbenannt. Es stellt den wohl momentan bekanntesten Network Protocol Analyzer bzw. Sniffer dar.

Als Sniffer dient Wireshark dazu um den Netzwerkvekehr zu analysieren. Dazu stellt es die gesammelten Daten in Form von Pakete übersichtlich dar.


Anwendung

Capture eines pings
Capture eines pings

Hat man ein Netz, das über einen Hub verteilt wird, so kann man jedes Packet das sich über das Netz bewegt einfach sniffen, da ein Hub grundsätzlich jedes Packet an alle seine Ports aussendet.

In den heutigen geswitchten Netzen ist es jedoch nicht so einfach alles zu sniffen, da ein Switch, im Gegensatz zum Hub, eine Tabelle führt, in der er zu jedem seiner Ports die MAC-Adresse des Host der dahinter angeschlossen ist, speichert. Der Switch analysiert jedes Packet das ihn erreicht soweit, das er die Ziel-MAC-Adresse erkennt und sendet das jeweilige Packet auch nur an den entsprechenden Port aus. Das hat zur Folge das normalerweise Packte die nicht an einen selber adressiert sind auch nicht an der Netzwerkkarte ankommen und so auch nicht vom Sniffer aufgezeichnet werden können.

Hat man Zugriff auf den jeweiligen Switch so kann man seinen Sniffer an den so genannten Monitor Port anschliessen. Nahezu alle Switches haben solch einen. Der Unterschied zu den normalen Ports ist das an diesem alle Packete des Netzwerkes empfangen werden können.

Aufzeichnung des Netzwerkverkehr's

Capture-Options
Capture-Options
Capture-Statistiken
Capture-Statistiken

Zum Starten der Aufzeichnung wählt man unter Capture den Punkt Options aus. Im nachfolgendem Dialog kann man dann das Interface auswählen und noch weiter Optionen einstellen.

Die Option Capture packets in promiscuous modus sorgt dafür das das Netzwerkinterface, für die Aufzeichnung, in den promiscuous Modus geschaltet wird, dadurch werden nicht, wie normalerweise, alle Packete die nicht an die Adresse des Interfaces gerichtet sind verworfen.

Intressant sind auch noch die Optionen unter dem Bereich Name Resolution, dort kann man beeinflussen ob in den Aufgezeichnetetn Daten die eigentlichen MAC- bzw. IP-Adressen auftauchen, oder entsprechend die aufglösten Namen. So würde man dann beispielsweise bei einem Ping auf www.heise.de den Namen erkennen können anstatt der IP-Adresse.

Durch einen klick auf Start wird die Aufzeichnung im Hintergrund begonnen und ein Fesnter mit eienr Statistik über gesammelte Packete und der seit dem Start der Aufzeichnung vergangenen Zeit angezeigt. Durch betätigen des Stop-Buttons, wird die Aufzeichnung beendet und Wireshark lädt die gesammelten Packete in die Übersicht. Das kann einige Zeit dauern, je nachdem wie viele Packte bzw. wie lange aufgezeichnet wurden.

Analyse der gesammelten Daten

Anschliessend wird im oberen der drei Felder je Zeile ein Packet aufgelistet. Diese werden, zur besseren Übersicht, je nach Typ unterschiedlich eingefärbt. In dieser Liste kann man an Hand von Quelle und Ziel bzw. Protokoll ein Packet zur genaueren Analayse auswählen. Im Mittleren Bereich findet man dann die Informationen der einzelnen Schichten des Packets aufgelistet. Und im Unterem Bereich das Packet in roher Byte Form.

Unter den Menüpunkten Analyze und Statistic finden sich vielfältige Möglichkeiten die gesammelten Daten aufzubereiten und grafisch Darzustellen.

Filterfunktion

Die Ausgabe der Packetliste lässt sich sehr fein über die Funktion Filter steuern. So kann man beispielsweise nur Packet eines bestimmten Protokolltypes oder einer bestimmten Quell- bzw. Zieladresse anzeigen lassen.

Beispiel:

Dieser Filter filtert alle Packate aus die nicht als Abseder IP-Adresse die 192.168.1.2 und als Protokoll ICMP hat, dabei bewirkt der Operator && eine UND-Verknüpft der einzelnen Filterbedingungen.

ip.addr == 192.168.1.2 && icmp

Weblinks

Bücher

  • Ethereal Protokollanalyse
Angela Orebaugh
Mitp-Verlag; Auflage: 1 (Juni 2004)
448 Seiten
ISBN: 3826614925
Das Buch beschreibt die Protokollanalyse mittels Ethereal. Als deutschsprachiges Buch weiterhin interessant.
Amazon Suche

Alternative Software

Übungen

1. Übung

  1. Starten sie wireshark und stellen sie die Netzwerkschnittstelle mit der sie mit dem Internet verbunden sind, als zu überwachende Schnittstelle ein.
  2. Starten sie die Aufzeichnung.
  3. Pingen sie einen Server im Internet an (z.B. www.heise.de).
  4. Stoppen sie die Aufzeichnung.
  5. Versuchen sie durch einsetzen der Filterfunktion die zu ihrem Ping gehörenden TCP/IP Packete zu finden.

2. Übung

  1. Starten sie wireshark und stellen sie die Netzwerkschnittstelle mit der sie mit dem Internet verbunden sind, als zu überwachende Schnittstelle ein.
  2. Starten sie die Aufzeichnung.
  3. Veranlassen sie ihren email-client (z.B. Thunderbird) dazu bei ihrem Provider mittels pop nach email zu schauen.
  4. Stoppen sie die Aufzeichnung.
  5. Versuchen sie die zu der Verbindung gehörenden Packete zu filtern.
  6. Untersuchen sie den Inhalt der Packete. Ist ihre pop-Authentifaktion nicht SSL geschützt, sollten sie ihr email passwort im klartext vorfinden.

3. Übung

  1. Starten sie wireshark und stellen sie die Netzwerkschnittstelle mit der sie mit dem Internet verbunden sind, als zu überwachende Schnittstelle ein.
  2. Starten sie die Aufzeichnung.
  3. Lassen Sie Aufzeichnung im Hintergrund laufen und verursachen sie (z.B. 2 Minuten lang) den für sie normalen Netzwerktraffik, surfen Sie einige Webseiten an, rufen Sie ihre Emails ab oder ähnliches.
  4. Stoppen sie die Aufzeichnung.
  5. Es kann nun etwas dauern bis Wireshark alle gesammelten Packet dahrstellt, dies ist abhängig davon wie viel Traffic Sie in der Zeit veruhrsacht haben.
  6. Schauen Sie sich grob über die gesammelten Daten und versuchen sie folgendes herauszufinden:
    1. Welche Protokolle wurden erkannt?
    2. Erkennen Sie Packete die zu einer Verbindung zusammen gehören?

dsniff

Dsniff beinhaltet diverse Tools im Bereich Sniffing, Man-in-the-middle sowie Hijacking. Dsniff läuft unter Linux, Solaris, BSD und den meisten UNIX-Derivaten. Zudem existiert auch eine Windows-Variante, welche aber nur Dsniff, Mailsnarf, Urlsnarf und Webspy beinhaltet. Die aktuelle Version ist 2.3, das Copyright liegt beim Author, Dug Song.

Dsniff kann übertragene Passwörter für viele Klartext-Netzwerkprotokolle auffangen (FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rlogin, RIP, OSPF, PPTP, MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec, pcAnywhere, NAI Sniffer, Microsoft SMB, Oracle SQL*Net, Sybase und Microsoft SQL auth info)

Hintergrund Technik

Ein Sniffer kennt den so genannten non-promiscuous mode und den Promiscuous Mode.

Im non-promiscuous mode wird der ankommende und abgehende Datenverkehr des eigenen Computers gesnifft.

Im Promiscuous Mode sammelt der Sniffer den gesamten Datenverkehr an die in diesen Modus geschaltete Netzwerk schnittstelle. Es werden also nicht nur die an ihn adressierten Datenframe|Frames empfangen, sondern auch die nicht an ihn adressierten. Der Adressat eines Frames wird in Ethernet-Netzwerken anhand der MAC-Adresse festgelegt.

Weiterhin ist es von der Netzwerkstruktur abhängig, welche Daten ein Sniffer sehen kann. Werden die Computer mit Hub (Netzwerk)|Hubs verbunden, kann sämtlicher Traffic von den anderen Hosts mitgeschnitten werden. Wird ein Switch (Computertechnik)|Switch verwendet, ist nur wenig oder gar kein Datenverkehr zu sehen, der nicht für das sniffende System selbst bestimmt ist. Allerdings gibt es in diesem Fall mehrere Möglichkeiten wie z. B. ARP-Spoofing, ICMP Redirects, DHCP Spoofing oder MAC-Flooding, um trotzdem die Frames empfangen zu können. Ein Switch darf also nicht als Sicherheitsfeature gesehen werden.

Deswegen Dsniff kann nur unter Hubs-Netzwerk gut arbeiten.

Anwendung

mit dem Befehl kann man einfach dsniff starten.

dsniff oder dsniff -i eth0

dsniff

dsniff -i eth0

Syntax

dsniff [-c] [-d] [-m] [-n] [-i interface | -p pcapfile] [-s snaplen] [-f services] [-t trigger[,...]]] [-r|-w savefile] [expression]


weiter Info zu Options... finden sich mit dem Befehl man dsniff oder im Weblink.

WebLink

dsniff

WIN32 port of dsniff

Übung

1

Wechle Protokolle kann dsniff Passwort nicht auffangen ?

A. HTTP
B. POP
C. IP
D. VRRP

2

Wechle Netzwerkstruktur kann dsniff Daten sehen?

A. Switch
B. Route/Switch
C. Hub
D. Route

3

Mit Wechle Options kann man Usename/password in Datei Speichern?

A. -m
B. -w
C. -i eth0
D. -w Dateiname

ettercap

Ettercap ist ein Open-Source-Werkzeug für Man-In-The-Middle-Angriffe. Es unterstützt Sniffing auf IP wie auch auf ARP Basis, Echtzeitkontrolle über Verbindungen selbst in geswitchten Netzwerken, inhaltbezogenes Filtering und aktive wie auch passive Analysen von einzelnen Hosts und ganzen Netzwerken.

Mittels ettercap ist man in der Lage den Datenstrom innerhalb eines geswitchten LANs so um zu leiten das ein Angreifer, der sich aktiv im LAN befindet, den Datenstrom analysieren und auswerten kann. Gefährlich ist dies, wenn Benutzter sich über das Netz authentifizieren ( Telnet, HTTP, POP usw.). Diese Protokolle übermitteln Username/Password im Klartext.

Ein einfaches Beispiel:

Es sei folgende Netzstruktur gegeben:

Bild:standard_topologie.jpg


  • Angreifer A möchte den Datenstrom von Client C und Server S über sich laufen lassen um den Traffic zu analysieren. Dazu startet Angreifer A das Tool ettercap.
bash# ettercap -C
  • Nun wird nach einem Netzwerk-Interface gefragt, über die ettercap fungieren soll. In diesem Fall wählt der Angreifer das Interface eth1.
  • Um zu wissen welche Hosts im Netz überhaupt vertreten sind, bietet ettercap ein IP-Scanner an um zum verifizieren welche Host im Netz aktiv sind. Dazu wird der Menüpunkt Hosts->Scan for hosts ausgewählt.
  • Die gefunden Hosts werden in einer Hostliste angezeigt, welche über Hosts->Host lists angezeigt werden
  • Die Hosts, dessen ARP-Tabellen man "vergiften" möchte, muss man explizit in der Hostliste verifizieren. Dazu läuft man mit den Pfeiltasten bis hin zum gewünschten Host und ordnet diesen einer Gruppe zu durch drücken der Tasten 1,2,3...
In diesem Beispiel würde der:
*Client C mit der IP-Adresse 192.168.50.122 der Gruppe 1 zugeordnet ( Taste "1" )
*Server S mit der IP-Adresse 192.168.50.123 der Gruppe 2 zugeordnet ( Taste "2" )
  • Nach Zuordnung der Hosts zu den Gruppen startet man mit dem ARP-Poisoning, durch Auswahl des Menüpunkts Mitm->ARP-Poisoning
  • Ettercap bietet zusätzlich die Funktion eines Passwort-Sniffers, welcher alle im Klartext übertragende Passwörter mit-"snifft" und diese auf dem Bildschirm ausgibt. Den Sniffer startet man über den Menüpunkt Start->Start sniffing
  • Wenn nun Client C eine Passwort-Authentifizierung ( z.B. via FTP ) am Server durchführt, wird diese im Klartext übertragen und von ettercap aufgefangen. Die wie folgt ausehen Password captured!

Schutz des eigenen Rechners

John the Ripper

John the Ripper Beschreibung:

John the Ripper ist dafür vorgesehen, verschlüsselte Passwörter eines Systems durch Brute-Force oder durch „Wortlistenangriff“ (Dictionary-Attack, Passwörter aus einer Textdatei auslesen) zu entschlüsseln. Dies funktioniert durch Verschlüsseln eines Textstrings und darauf folgendem Vergleich des verschlüsselten Textstrings mit dem schon verschlüsselten Passwort. Sind beide gleich, so wurde das Passwort gefunden. Im «Incremental Mode» entschlüsselt John jedes existierende Passwort, unabhängig davon, ob es aus Buchstaben, Sonderzeichen, Zahlen oder Kombinationen besteht. Diese Methode ist unter dem Begriff «Brute Force»-Attacke bekannt und dauert unter Umständen sehr lange.

Installation:

Wie die meisten Programme lässt es sich mit

apt-get install john

installieren

Anwendung:

Dazu benötigen wir eine Passwort Datei (z.B. shadow-Datei ) und es muss herausgefunden werden welches Verschlüsselungsverfahren die Passwörter haben. In den meisten Fällen ist unter Linux MD5 oder DES im Einsatz, wobei sich diese beiden Verfahren darin unterscheiden, dass DES nur die ersten acht Zeichen eines Passwortes verwendet, MD5 dagegen alle Zeichen.

Weiterhin ist es möglich, entweder alle Passwörter in der Shadow Datei zu knacken oder nur ein bestimmtes. Dies lässt sich über den Parameter

-user:xxx

angeben, wobei xxx für den Benutzernamen steht. Gibt man diesen Parameter nicht mit an, wird versucht, alle im File hinterlegten Passwörter zu knacken. Der zugehörige Befehl lautet:

john -format:MD5 [-user:xxx] shadow

Sobald john ein Passwort gefunden hat, wird es ausgegeben. Das Programm merkt sich bereits geknackte Passwörter, sodass bei einem neuen Start diese nicht neu geknackt werden müssen. Bereits gefundene Passwörter lassen sich mit dem Befehl

john -show shadow

erneut anzeigen.

Um den Prozess evtl. zu beschleunigen, ist es möglich, Wortlisten anzugeben, die dann zuerst durchprobiert werden. Dies erfolgt durch Angabe des Parameters

-wordfile:FILE

Verschiedene Wordfiles können über den Befehl

apt-cache search wordlist

angezeigt und anschliessend mit

apt-get install WORDFILE

installiert werden.

Beispiel:

Hier eine Beispiel Shadow-Datei

Bild:passwd.jpg


Hier die verschieden Option bei john

Bild:johnoptionen.jpg


Start von john

Bild:johnstart.jpg


Das erste Passwort wurde gefunden

Bild:1gefunden.jpg


Das zweite Passwort wurde gefunden

Bild:2gefunden.jpg


Nach dem Beenden werden die schon gefunden Passwörter in der john.pot Datei gespeichert

Bild:potdatei.jpg


Fazit:

Gut für Eindringlinge sind Accounts mit Account-Namen als Passwort, Gast- und Demoaccounts ohne Passwort oder Accounts mit voreingestellten Passwörtern. Es sollte zudem verhindert werden, daß die Passwortdatei von Unbefugten gelesen werden kann. Für die Auswahl eines Passworts gilt:

• keine Login-Namen

• keine anderen Namen

• keine Wörter oder Abkürzungen, die im Wörterbuch zu finden sind

• keine persönlichen Informationen (Geburtstag, Telefonnummer usw.)

• keine Variante der oben genannten schlechten Passwörter (z.B. rückwärts oder Großbuchstaben usw.)

• nicht nur Ziffern nutzen

Gut sind Passworte mit einer Mischung aus Groß- und Kleinbuchstaben, die mindestens 8 Zeichen lang sind und aus einer zufälligen Auswahl von Ziffern und Buchstaben bestehen (auch Sonderzeichen).

Wenn möglich, sollten Passwortdateien überprüft werden, ob die Passworte sicher sind und regelmäßig geändert werden (so oft wie möglich).

Quellen:

http://wikipedia.org/

http://www.netzmafia.de

Download john the ripper:

http://www.openwall.com/john/

Deamons/Dienste

TCP Verbindungen
TCP Verbindungen

Durch den folgendem Befehl läst sich aufzeigen welche Prozesse gerade auf einen Port lauschen und ob eine Verbindung besteht.

Erkennbar sind die lokalen und entfernten IP-Adressen inklusive der Ports und den Status der Verbindung.

LISTEN
Der jeweilige Prozess lauscht auf Verbindungen aus dem Netz.
ESTABLISHED
Es besteht eine aufgebaute Verbindung.
netstat -tunap

Absichern laufener Dienste

Unnötige Abschalten

Firewall

Als Firewall bezeichnet man ein System (sowohl nur Hardware als auch Software, aber meist in Kombination) das meist als Schnittstelle zwischen Computernetzwerken um ungewünschetn Netzverkehr zu filtern und erlaubten durchzulassen.

Netfilter/iptables

Netfilter ist eine Software innerhalb des Linux-Kernels, die es erlaubt, Netzwerkpakete abzufangen und zu manipulieren. Es bildet damit das Herzstück einer Firewall auf Basis von Linux.

Iptables ist das dazugehörige Dienstprogramm zur Konfiguration von Netfilter.

Weblinks

Zusammenfassung/Fazit

Persönliche Werkzeuge