Skip to content

Entfernung eines Rootkits aus einem kompromittierten Linux-System

18. Juni 2025
Marco Reimann
Malware
Rootkit2
In diesem Beitrag möchte ich meine detaillierte Vorgehensweise erläutern, wie ich ein persistentes Rootkit auf einem Linux-Server entdeckt, tiefgehend analysiert und erfolgreich entfernt habe.

1. Ausgangslage: Auffällige Systemlast

Die Problematik begann mit einer ungewöhnlich hohen CPU-Auslastung, sichtbar in htop. Auffällig waren unzählige Prozesse namens -bash, welche nahezu 100% CPU verbrauchten. Ein klares Indiz für Schadsoftware.

2. Erste Analyse und Identifikation

Ich prüfte zunächst die Cron-Jobs und Systemdienste und fand ungewöhnliche Einträge:

/etc/cron.daily/jdsqhjkbwp /etc/cron.hourly/jdsqhjkbwp /etc/cron.weekly/jdsqhjkbwp /etc/cron.monthly/jdsqhjkbwp /etc/cron.d/jdsqhjkbwp

Zusätzlich tauchte ein verdächtiger Dienst mit zufälligem Namen auf:

okwbeyqxkq.service - jdsqhjkbwp

Eine nähere Untersuchung zeigte, dass diese Dateien unveränderlich waren (immutable gesetzt durch chattr +i).

3. Herausforderung: Selbstschutz der Malware

Versuche, die Dateien direkt als root zu entfernen, schlugen fehl:

rm: cannot remove '/etc/systemd/system/okwbeyqxkq.service': Operation not permitted

Dies deutete auf aktive Schutzmaßnahmen des Rootkits hin, entweder durch Kernel-Hooks oder modifizierte Systembibliotheken.

4. Lösung: Erstellung eines isolierten Chroot-Environments

Um das Rootkit zu umgehen, baute ich eine temporäre RAM-basierte Umgebung (Chroot). Dazu erstellte ich ein minimales Linux-System im RAM:

mkdir -p /tmp/killbox mount -t tmpfs -o size=10M tmpfs /tmp/killbox cp /bin/bash /tmp/killbox/sh ldd /bin/bash # Analyse der benötigten Abhängigkeiten # Kopieren der nötigen Bibliotheken nach /tmp/killbox chroot /tmp/killbox /sh

Innerhalb dieser isolierten Umgebung waren die Rootkit-Hooks inaktiv.

5. Tiefere Prozessanalyse

Mittels gezielter Prozessanalysen konnte ich einen versteckten Prozess namens sgfs identifizieren, der sich selbständig erneut startete und Dateien wiederherstellte:

ps -eo pid,ppid,cmd --sort=start_time kill -9 <PID>

Das gezielte Abschalten dieser Prozesse eliminierte die automatische Selbstreparatur des Rootkits.

6. Nachhaltige Entfernung und Prävention

Nach erfolgreicher Abschaltung des Rootkits entfernte ich sämtliche persistente Dateien:

chattr -i /etc/systemd/system/okwbeyqxkq.service rm -f /etc/systemd/system/okwbeyqxkq.service

Um zukünftige Angriffe dieser Art zu verhindern, wurden Platzhalter-Dateien erstellt und vor Änderungen geschützt:

touch /etc/systemd/system/okwbeyqxkq.service chmod 000 /etc/systemd/system/okwbeyqxkq.service chattr +i /etc/systemd/system/okwbeyqxkq.service

7. Abschließende Validierung

Zur endgültigen Überprüfung erfolgte eine Validierung der Maßnahmen:

systemctl daemon-reexec systemctl daemon-reload systemctl reset-failed

Dabei stellte ich sicher, dass keinerlei schädliche Dienste oder Prozesse mehr aktiv waren.

Fazit und Empfehlungen

Meine Empfehlungen zur Absicherung:

  • Proaktives Monitoring mittels Audit- und Intrusion-Detection-Systemen

  • Regelmäßige Systemupdates und Sicherheits-Patches

  • Einsatz zusätzlicher Sicherheitsmaßnahmen wie SELinux, AppArmor oder Integritätsprüfungen mit Tripwire

Bei weiteren Fragen oder Sicherheitsvorfällen stehe ich gerne unterstützend zur Verfügung!

Autor: Marco Reimann
Kategorie: Malware
Entfernung eines Rootkits aus einem kompromittierten Linux-System | MPReimann Blog