Intro

HighGames ist eine große Datenbank mit Informationen zu PC-Spielen und Hardware. Helfen Sie mit, und senden Sie Ihre eigenen Erfahrungen.

Weitere Informationen

Auf diesen Hardware-Guide zu Nemesis von www.HighGames.com sind Sie durch Klick auf den Packshot gekommen.
Viel Spaß beim Lesen!

Hardware-View: Nemesis

Nemesis

Titel: Nemesis
Thema: TCP/IP-Stack
Zielgruppe: Fortgeschrittene
Artikelversion: 1.09
Zurück

Hinweis: Für die Korrektheit oder Aktualität der Informationen kann nicht garantiert werden. Der Autor übernimmt daher keine Haftung für Schäden, die durch Nutzung der Informationen entstanden sind.

Mit der umfangreichen Netzwerk-Befehlszeilen-Tool-Sammlung Nemesis können benutzerdefiniert nahezu alle Arten von Paketen erzeugt und gesendet werden. Nemesis basiert auf der Bibliothek libnet, ist jedoch wesentlich simpler zu bedienen, da es keine Manipulation auf Socket-Ebene erfordert. Der alleinige Autor Jeff Nathan hat ebenfalls dafür gesorgt, dass nahezu alle gängigen Betriebssysteme unterstützt werden, es funktioniert auf BSD-, Linux-, Solaris-, Mac Hardware-Glossar: OS X- und Windows-Systemen. Die Nemesis-Sammlung besteht aus verschiedenen Werkzeugen, wobei jedes von ihnen für ein bestimmtes Hardware-Glossar: Protokoll zuständig ist. Bezeichnet werden sie mit nemesis-protokoll, wobei protokoll für das jeweilige Protokoll steht, z.B. nemesis-tcp. Die folgende Liste zeigt, auf welche Protokolle Nemesis zurückgreifen kann:

- Hardware-Glossar: ARP (Address Resolution Protocol)
- Hardware-Glossar: DNS (Domain Name System)
- Hardware-Glossar: ICMP (Internet Control Message Protocol)
- IGMP (Internet Group Management Protocol)
- OSPF (Open Shortest Path First)
- Hardware-Glossar: RIP (Routing Information Protocol)
- Hardware-Glossar: TCP (Transmission Control Protocol)
- Hardware-Glossar: UDP (User Datagram Protocol)
- Weiterhin Hardware-Glossar: Ethernet


Download

Die Homepage zum Opensource-Pojekt finden Sie unter http://nemesis.sourceforge.net/. Dort finden Sie den Quellcode und das Programm selbst, außerdem können Sie hier gleich das zu Ihrem System passende libnet herunterladen. Weiterhin finden Sie einen Link zu einer Mailingliste, welche offene Fragen klären kann.


Anwendung

Jede Komponente von Nemesis benötigt grundlegende IP-Informationen, daher unterstützten alle Tools folgende Optionen:

-S Quell-Hardware-Glossar: IP-Adresse
-D Ziel-IP-Adresse
-I IP ID
-T IP TTL
-t IP
-F IP frag
-O IP Options

Tipp: sämtliche Optionen von Nemesis finden Sie auf den Man-Pages.

Sie alle verfügen weiterhin über folgende Data-Link-Optionen:

-d Ethernet Device
-H Quell-Hardware-Glossar: MAC-Adresse
-M Ziel-MAC-Adresse

Da TCP und UDP die von uns fokussierten Protokolle sind, werden wir im Folgenden noch die beiden Werkzeuge nemesis-tcp und nemesis-udp vorstellen. Beide Nemesis-Tools sind sehr gut geeignet, um auf Programm- oder Skript-Ebene Schwachstellenscanner zu schreiben. So können Sie z.B. Pakete mit Informationen nachstellen, welche Sie zuvor mit einem Packetsniffer abgefangen haben (beispielsweise Tcpdump oder Windump). Natürlich lassen sich auch alle Sequenz-Nummern manuell bearbeiten.


Folgende Schalter hat nemesis-tcp:

-x Quell-Hardware-Glossar: Port
-y Ziel-Port
-fS (setzt SYN-Flagge)
-fA (setzt ACK-Flagge)
-fR (setzt RST-Flagge)
-fP (setzt PSH-Flagge)
-fF (setzt FIN-Flagge)
-fU (setzt URG-Flagge)
-w Window Size
-s Sequenz-Nummer
-a ACK-Nummer
-u TCP Urgent Pointer
-p Payloadfile
-v verbose

Wichtig: Die TCP-Flaggenoptionen (-fS usw.) müssen vor den Portangaben -x und -y gesetzt werden, da sie andernfalls ignoriert werden könnten.

Beispiel:
nemesis-tcp -S 80.80.80.80 -D 90.90.90.90 -fS -x 3333 -y 4444

Diese Anweisung lässt nemesis-tcp eine Verbindung zu 90.90.90.90 mit der gespooften Quell-IP-Adresse 80.80.80.80 über den Ziel-Port 4444 und dem Quell-Port 3333 aufbauen. Dabei ist die SYN-Flagge gesetzt. So kann man beispielsweise den Anfang des Drei-Wege-Handschüttelns nachahmen.


Folgende Schalter hat nemesis-udp:

-x Quell-Port
-y Ziel-Port
-P Payloadfile
-v verbose

Wie Sie sehen, gibt es hier nicht so viele Möglichkeiten, wie bei nemesis-tcp. Das liegt zweifelsohne daran, dass UDP das so genannte "verbindungslose" Protokoll ist, und daher mit einem Bruchteil der Daten von TCP arbeiten kann. Playloadfile steht milde gesprochen für ein vorgefertigtes Paket mit Daten als Inhalt. Geben Sie eine Playload-Datei an, so wird deren Inhalt berücksichtigt.

Beispiel:
nemesis-udp -S 192.168.0.1 -D 192.168.0.2 -x 1024 -y 22 -P test.payload

Diese Anweisung lässt nemesis-udp eine Verbindung zu 192.168.0.2 mit der gespooften (gefälschten) Quell-IP-Adresse 192.168.0.1 über den Ziel-Port 22 und dem Quell-Port 1024 aufbauen. Dabei wird der Inhalt von test.playload (relativer Pfad) berücksichtigt. Hier wird z.B. versucht, eine Verbindung zur Secure-Shell von 192.168.0.2 aufzubauen.

Sie ahnen es schon: Mit Nemesis haben Sie schier unendlich Möglichkeiten, ein schwaches System auszunutzen, oder besser noch, es zu verbessern. Nutzen Sie die Möglichkeiten von Nemesis, aber missbrauchen Sie sie nicht für „bösartige“ Zwecke, da es nur auf libnet aufsetzt, und daher zu langsam und unsicher ist, als dass es hierfür geeignet wäre.

Autor: Stefano Albrecht
Datum: 06.01.2006