O'Reilly Online-Katalog
oreilly.deO'Reilly Network
KontaktBestellinfosOnline-Bücher

Pfeil Suche
Pfeil Bücher A-Z
Pfeil Neuerscheinungen
Pfeil Bücher bestellen
Pfeil Special Offer
 Programmbereiche
Pfeil
 Bioinformatik
 C/C++
 Design & Grafik
 Java
 Linux/Unix
 Mac
 .Net
 Open Source
 Oracle
 Perl
 PHP & MySQL
 Python
 Sicherheit
 System- &
 Netzwerkadministration
 Web
 Windows
 XML
Special Offer
 Buchreihen
Pfeil
 In a Nutshell
 Taschenbibliothek
 Missing Manuals
 Hacks
 Kochbücher
 CD Bookshelves
 Pragmatic>
 Bookshelf
Pfeil Katalog bestellen
Pfeil Newsletter
Pfeil Veranstaltungen
Pfeil UserGroups
Pfeil Archiv
Pfeil AGB




Netzwerksicherheits Hacks

Preston Gralla
September 2004
ISBN: 3-89721-384-2

Beispielhack:

Hack #99 Scannen Sie nach Rootkits

Setzen Sie chkrootkit ein, um das Ausmaß einer Kompromittierung festzustellen.

Wenn Sie vermuten, dass Sie ein kompromittiertes System haben, ist es eine gute Idee, auf Rootkits zu prüfen, die der Eindringling installiert haben könnte. Kurz gesagt ist ein Rootkit eine Sammlung von Programmen, die Eindringlinge oftmals installieren, nachdem sie den root-Account eines Systems kompromittiert haben. Diese Programme helfen den Eindringlingen dabei, ihre Spuren zu verwischen sowie einen erneuten Zugriff auf das System bereitzustellen. Deshalb hinterlassen Rootkits manchmal laufende Prozesse, damit der Eindringling einfach und ohne Wissen des Systemadministrators zurückkommen kann. Das bedeutet, dass einige der Binärdateien des Systems (wie zum Beispiel ps, ls und netstat) von dem Rootkit bearbeitet werden müssen, um die Hintertür-Prozesse nicht zu verraten, die der Eindringling eingerichtet hat. Leider gibt es so viele unterschiedliche Rootkits, dass es viel zu zeitaufwändig wäre, den komplexen Aufbau jedes einzelnen zu erlernen und manuell nach ihnen zu suchen. Skripten wie chkrootkit (http://www.chkrootkit.org) erledigen dies automatisch für Sie.

Zusätzlich zur Erkennung von über 50 unterschiedlichen Rootkits wird chkrootkit auch Netzwerk-Interfaces aufspüren, die sich im Promiscuous-Modus befinden, sowie geänderte lastlog- und wtmp-Dateien. Diese Dateien enthalten Zeiten und Daten darüber, wann sich Benutzer an einem System an- und abgemeldet haben. Wenn diese also verändert wurden, ist das ein Hinweis auf einen Eindringling. Des Weiteren wird chkrootkit Tests durchführen, um Rootkits zu entdecken, die auf Kernel-Modulen basieren. C-Programme, die von dem Hauptskript von chkrootkit aufgerufen werden, führen all diese Tests durch.

Es ist keine gute Idee, chkrootkit auf Ihrem System zu installieren und es einfach regelmäßig auszuführen, da ein Angreifer die Installation einfach entdecken und sie so abändern könnte, dass sie seine Anwesenheit nicht mehr feststellt. Es ist besser, es auf einem Wechselmedium oder einem Nur-Lesen-Medium zu kompilieren. Um chkrootkit zu kompilieren, laden Sie das Quellpaket herunter und entpacken es. Gehen Sie dann in das Verzeichnis, das es erstellt hat, und geben Sie make sense ein.

Für die Ausführung von chkrootkit müssen Sie lediglich ./chkrootkit in dem Verzeichnis eingeben, in dem es zusammengebaut wurde. Wenn Sie das machen, wird es jeden Test, den es durchführt, und das Ergebnis des Tests ausgeben:

# ./chkrootkit

ROOTDIR is `/'
Checking `amd'... not found
Checking `basename'... not infected
Checking `biff'... not found
Checking `chfn'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `date'... not infected
Checking `du'... not infected
Checking `dirname'... not infected
Checking `echo'... not infected
Checking `egrep'... not infected
Checking `env'... not infected
Checking `find'... not infected
Checking `fingerd'... not found
Checking `gpm'... not infected
Checking `grep'... not infected
Checking `hdparm'... not infected
Checking `su'... not infected
 

Das ist nicht sehr interessant, da die Maschine nicht infiziert wurde (noch nicht). chkrootkit kann auch auf Festplatten ausgeführt werden, die in anderen Maschinen gemountet sind; geben Sie einfach folgendermaßen den Mount-Punkt für die Partition mit der Option -r an:

# ./chkrootkit -r /mnt/hda2_image
 

Da chkrootkit von mehreren System-Binärdateien abhängig ist, sollten Sie auch diese überprüfen, bevor Sie das Skript ausführen (setzen Sie hierfür die Verfahren mit Tripwire <|XrefwColor>[Hack #97] oder RPM <|XrefwColor>[Hack #98] ein). Diese Binärdateien sind awk, cut, egrep, find, head, id, ls, netstat, ps, strings, sed und uname. Wenn Sie hiervon jedoch Sicherheitskopien in einem bekannten guten Zustand haben, können Sie den Pfad auf diese mit der Option -p angeben. Wenn Sie diese zum Beispiel auf eine CD-ROM kopiert und dann unter /mnt/cdrom gemountet haben, würden Sie folgenden Befehl einsetzen:

# ./chkrootkit -p /mnt/cdrom
 

Sie können auch mehrere Pfade angeben, indem Sie jeden mit einem : abtrennen. Anstatt eine separate Kopie jeder dieser Binärdateien zu pflegen, könnten Sie auch einfach eine statisch kompilierte Kopie von BusyBox (http://www.busybox.net) aufbewahren. Vorgesehen für eingebettete Systeme (Embedded Systems), kann BusyBox die Funktionen von über 200 gebräuchlichen Binärdateien durchführen - und all das, indem es eine sehr kleine Binärdatei mit Symlinks einsetzt. Eine Diskette, CD oder ein USB-Schlüsselanhänger (bei dem der Nur-Lesen-Schalter aktiviert ist) zusammen mit chkrootkit und einer statisch installierten BusyBox kann ein schnelles und praktisches Werkzeug für die Integritätsüberprüfung Ihres Systems sein.


Zurück zu Netzwerksicherheits Hacks

O'Reilly Home | O'Reilly Partnerbuchhandlungen | Bestellinformationen
Kontakt | Über O'Reilly | Datenschutz


© 2004, O'Reilly Verlag GmbH & Co.KG
webmaster@oreilly.de