"FTP-Hacken" (meistens Windows-Systeme)

Autor: Zero X
E-Mail: zero-x@linuxmail.org
Website: www.lobnan.de www.lostkey.org
Datum: 4. März 2004


Vorwort:

Achtung dieser Text ist für Anfänger bestimmt. Mit Hilfe dieses Textes ist es möglich einige schlechtere FTP-Server zu knacken (meistens Windows-Server). Erwartet bei einem erfolgreichen "Hack" also bitte keine größeren Systeme.
Jeder ist für sein Handeln selbst verantwortlich und ist selbst Schuld wenn er Ärger bekommt. Rechtschreib- und Grammatikfehler könnt ihr übrigens behalten. ;-)


Wie bin ich dazu gekommen diesen Text zu schreiben?

Ganz einfach, mir war langweilig. ;-)

Im Netz gibt es tausende Texte über das Hacken von FTP-Server aber keiner bringt einen wirklich weiter.

Es steht immer drin:
Über anonymous einloggen und "get /etc/passwd" bzw. "get /etc/shadow" eingeben. Ich glaube nicht, daß jemand in der heutigen Zeit damit Erfolg gehabt hat, außer beim Server ist ein wütender Admin, der sich an seiner Firma rächen will. ;-)
Außerdem braucht man in vielen Fällen die Passwort-Datei überhaupt nicht.

Dann ist da noch die Sache mit den Loops:

##############################################################################################

Nun werden wir es mal mit einem Loop versuchen....
Was Loops sind und wie sie funktionieren möchte ich hier auch nicht weiter erklären....
(Sonst kann ich bald gleich ein Buch schreiben!) :-)
Erstmal loggt ihr euch wie schon bekannt mit anonymous in das System ein.
Dann versucht ihr einen Link zu setzen indem ihr folgendes eintippt:

ypcat /etc/passwd >~/passwd 
rm -f ~/.lastlogin 
ln -s ~/.lastlogin /etc/passwd 

Dann loggt ihr euch aus ... und loggt euch wieder ein.
Nun müsste der Link gesetzt sein und ihr tippt weiter ein:

cat .lastlogin > passwd 
rm -f ~/.lastlogin

##############################################################################################

In jedem FTP Hacking Tutorial steht bei Loops immer, daß "sie den Inhalt des Tutorials sprengen" oder "der Autor nicht näher drauf eingehen will", warscheinlich weiß der Autor selbst nicht was Loops sind, weil er das aus einem anderen Tutorial einfach rauskopiert hat.



OK kommen wir mal zur Sache:


Zugriff auf höhere Verzeichnisse bekommen:

Der einfachste Weg ist es, wenn man sogenannte "Directory Traversal Attacken" ausprobiert. Das klappt wenn der FTP-Server nicht ausreichend die Eingabe überprüft.
Dazu brauchen wir mal wieder unseren bekannten "anonymous" Login. 
Also versuchen wir uns mit User "anonymous" und Passwort "irgendeine@e-mail.com" einzuloggen.

Das kann zum Beispiel so aussehen:

Wenn man sich als anonymous einloggt, befindet man sich in einem Verzeichniss und kann nicht in ein höheres Verzeichniss kommen. Wir wissen, daß wenn man "cd .." bzw. "cd ../" eingibt, man in ein höheres Verzeichniss kommt. Das wird in diesem Fall aber nicht funktionieren, also müssen wir den Server überlisten. Hier sind ein paar Methoden aufgelistet.

Also testen wir einmal folgende Kommandos:

cd ./..
cd ./../*
cd ../*
cd ...
cd .../*


Wenn wir Glück haben sind wir jetzt in einem höheren Verzeichniss.


Wenn das nicht klappt können wir auch folgende Sachen probieren:

cd .\..
cd .\..\*
cd ..\*
cd ...
cd ...\*


So etwas klappt nur auf Windows-Systemen. Wenn ihr Erfolg hattet, hat der Programmierer des FTP-Servers vergessen, den Backslash herauszufiltern.


Es gibt aber noch eine Methode:

cd c:\

Das klappt auch nur auf Windows-Systemen (und sehr selten). Bei einigen FTP-Servern kann man den direkten Pfad eines Laufwerkes angeben. In diesem Fall sind die Chancen hoch, daß man sich auch Zugriff auf die anderen Laufwerke verschaffen kann.


Falls keine dieser Methoden klappt, können wir diese Form von manipulierter Eingabe auch mit anderen FTP-Befehlen versuchen, zum Beispiel mit "get" oder "dir". Bei einigen FTP-Servern lässt der Befehl zum Verzeichnisswechsel "cd" zwar kein Einblick in ein höheres Verzeichniss zu, dafür aber die anderen FTP-Befehle.



Einen FTP-Server lahmlegen:


Einige Windows-FTPs lassen sich sehr leicht aus dem Takt bringen.

Bei Windows 98 kann man zum Beispiel sehr viel mit dem "con/con" Bug machen:
Man lädt eine Datei mit Hilfe des "put Befehls" hoch und nennt diese dann "con". Kommt dann die Meldung "connection reset by peer" war die Attacke erfolgreich. Es reicht in einigen Fällen auch aus, wenn man versucht in das Verzeichniss "con" zu wechseln, mit dem Befehl "cd /con" oder sich das Verzeichniss "con" anzeigen zu lassen, mit dem Befehl "dir con". Das wollte ich nur mal kurz erwähnen aber ich glaube nicht, daß heute noch FTPs unter Windows 98 im Netz laufen.


FTP-Server mit Hilfe eines Formatstring-Bugs lahmlegen:

Ein Formatstring-Bug entsteht zum Besipiel, wenn beim C Kommando "printf" kein Format Parameter angegeben wurde.

Format Parameter sind zum Beispiel:

%d int oder short int als Dezimalzahl darstellen
%c char als Zeichen ausgeben
%x wie %d als Hexadezimal mit kleinem a...f
%X wie %d als Hexadezimal mit großem A...F
%s char* , bzw. char[ ]

Lest dazu am besten etwas über C-Programmierung.

Wir können jetzt folgendes versuchen:

Wir können als User oder Passwort "%s%s%s%s%s%s%s" eingeben. Wenn ihr Erfolg hattet, stürzt der FTP-Server ab.

Wenn das nicht geklappt hat, können wir das selbe hinter ein FTP Kommando schreiben.

Zum Beispiel: get %s%s%s%s%s%s%s

Wenn das auch keinen Erfolg hat können wir auch andere Format Parameter benutzen (%n, %x, %f ...).

Man kann mit Hilfe dieser Art von Bug auch fremden Code auf dem System ausführen. Im Netz gibt es gute und schlechte Tutorials dafür. ;-)


FTP-Server mit Hilfe eines Bufferoverflow lahmlegen:

Ein Bufferoverflow-Bug entsteht, wenn man durch eine Eingabe über den reservierten Speicherbereich eines Programms hinausschreiben kann.

Wir können versuchen einen besonders langen Benutzernamen oder Passwort einzugeben. Also zum Beispiel ein Benutzername, der aus 1000 "a" besteht.

Wenn das nicht klappt versuchen wir das über ein FTP-Kommando (zum Beispiel get mit 1000 "a").

Auch diesen Bug kann man dazu verwenden, fremden Code auf dem Server auszuführen und es gibt dafür auch zahlreiche Tutorials im Netz. ;-)


Das wars dann mal.
Ich hoffe, daß ihr in dem Text etwas brauchbares gelesen habt.

Viel Spaß ;-)


Zero X