Zum Hauptinhalt springen
Zurück zur Kategorie

Server gehackt: Notfallreaktion und Wiederherstellung

Notfallmaßnahmen bei einem gehackten Server: Erkennung, Isolierung, forensische Analyse und Bereinigung.

Lesezeit: 18 min Fehlerbehebung
HackSicherheitForensikIsolierungBereinigungWiederherstellungNotfallreaktion

Inhaltsverzeichnis

Einführung

Die Entdeckung, dass Ihr Server gehackt wurde, ist eine stressige Situation. Durch Befolgen der richtigen Schritte können Sie den Schaden minimieren und Ihr System wiederherstellen. In dieser Anleitung behandeln wir den gesamten Prozess von der Hack-Erkennung bis zur Bereinigung und Sicherheitshärtung.

Anzeichen eines Hacks

Häufige Indikatoren für einen kompromittierten Server:

  • Unbekannte Prozesse oder Dienste laufen
  • Abnormale CPU/RAM-Nutzung (Kryptowährungs-Mining)
  • Unbekannte Benutzerkonten erstellt
  • Unbekannte Schlüssel in SSH authorized_keys
  • Unbekannte Aufgaben in crontab
  • Modifizierte Systemdateien
  • Abnormaler ausgehender Netzwerkverkehr
  • Website-Defacement oder Weiterleitungen
  • Spam-E-Mail-Versand

Schritt 1: Keine Panik und Dokumentieren

Der erste und wichtigste Schritt ist, ruhig zu bleiben und alles zu dokumentieren:

hljs bash
# Aktuellen Zustand speichern
date > /tmp/incident_$(date +%Y%m%d_%H%M%S).log
who >> /tmp/incident_*.log
w >> /tmp/incident_*.log
last -20 >> /tmp/incident_*.log
ps auxf >> /tmp/incident_*.log
netstat -tlnp >> /tmp/incident_*.log
ss -tlnp >> /tmp/incident_*.log

Fahren Sie den Server nicht sofort herunter oder starten Sie ihn nicht neu! Forensische Beweise könnten verloren gehen. Dokumentieren Sie zuerst den aktuellen Zustand.

Schritt 2: Isolierung

Isolieren Sie den Server, um weiteren Schaden zu verhindern:

Netzwerk-Isolierung

hljs bash
# Alle ausgehenden Verbindungen blockieren (außer SSH)
sudo iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A OUTPUT -j DROP

Aktive Sitzungen beenden

hljs bash
# Aktive SSH-Sitzungen prüfen
who
w

# Verdächtige Sitzungen beenden
sudo pkill -u verdaechtiger_benutzer

Schritt 3: Forensische Analyse

Benutzerkonten-Prüfung

hljs bash
# Alle Benutzer auflisten
cat /etc/passwd | grep -v nologin | grep -v false

# UID 0 (Root-Berechtigung) Benutzer prüfen
awk -F: '($3 == 0) {print}' /etc/passwd

# Kürzlich erstellte Benutzer prüfen
ls -lt /home/

# Sudo-berechtigte Benutzer
grep -v '^#' /etc/sudoers
ls -la /etc/sudoers.d/

# SSH authorized_keys Prüfung
for user_home in /home/*; do
    if [ -f "$user_home/.ssh/authorized_keys" ]; then
        echo "=== $user_home ==="
        cat "$user_home/.ssh/authorized_keys"
    fi
done
cat /root/.ssh/authorized_keys

Prozessanalyse

hljs bash
# Alle laufenden Prozesse in Baumstruktur anzeigen
ps auxf

# Nach verdächtigen Prozessen suchen
ps aux | grep -E '(mine|xmr|crypto|kinsing|kdevtmpfsi)'

# Prozesse mit hoher CPU-Nutzung
top -b -n 1 | head -20

# Versteckte Prozesse prüfen
ls -la /proc/*/exe 2>/dev/null | grep deleted

# Prozess-Dateipfade prüfen
ls -la /proc/[0-9]*/exe 2>/dev/null | grep -v '/usr\|/bin\|/sbin\|/lib'

Crontab-Prüfung

hljs bash
# Root-Crontab
crontab -l

# Crontabs aller Benutzer
for user in $(cut -f1 -d: /etc/passwd); do
    crontab -l -u $user 2>/dev/null | grep -v '^#'
done

# System-Cron-Verzeichnisse
ls -la /etc/cron.d/
ls -la /etc/cron.daily/
ls -la /etc/cron.hourly/
cat /etc/crontab

# Systemd-Timer
systemctl list-timers --all

Netzwerkverbindungsanalyse

hljs bash
# Aktive Verbindungen prüfen
ss -tanp
netstat -tanp

# Ausgehende Verbindungen
ss -tanp | grep ESTABLISHED | grep -v '127.0.0.1'

# Lauschende Ports
ss -tlnp

Dateisystemanalyse

hljs bash
# In den letzten 24 Stunden geänderte Dateien
find / -mtime -1 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null

# In den letzten 7 Tagen erstellte Dateien
find / -ctime -7 -type f -not -path '/proc/*' -not -path '/sys/*' 2>/dev/null

# SUID/SGID-Dateien prüfen
find / -perm -4000 -type f 2>/dev/null

# Verdächtige Dateien in /tmp
ls -la /tmp/
ls -la /var/tmp/
ls -la /dev/shm/

Log-Analyse

hljs bash
# SSH-Anmeldeversuche
grep 'Failed password' /var/log/auth.log | tail -50
grep 'Accepted' /var/log/auth.log | tail -50

# Erfolgreiche SSH-Anmeldungen
last -20
lastlog

# Systemprotokolle
journalctl --since "24 hours ago" | grep -i -E '(error|warning|fail|denied)'

Schritt 4: Bereinigung

Schädliche Prozesse stoppen

hljs bash
# Verdächtige Prozesse beenden
sudo kill -9 <PID>

# Krypto-Miner finden und beenden
sudo pkill -9 -f 'xmr\|mine\|crypto\|kinsing'

# Verdächtige Dienste deaktivieren
sudo systemctl stop verdaechtiger_dienst
sudo systemctl disable verdaechtiger_dienst

Schädliche Benutzer entfernen

hljs bash
# Verdächtigen Benutzer sperren
sudo usermod -L verdaechtiger_benutzer

# Benutzer löschen
sudo userdel -r verdaechtiger_benutzer

# Root-Passwort ändern
sudo passwd root

Schritt 5: Sicherheitshärtung

SSH-Sicherheit

hljs bash
# /etc/ssh/sshd_config
Port 2222
PermitRootLogin prohibit-password
PasswordAuthentication no
MaxAuthTries 3
AllowUsers benutzername

sudo systemctl restart sshd

Fail2ban installieren

hljs bash
sudo apt install fail2ban -y

# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 3
bantime = 3600

sudo systemctl enable fail2ban
sudo systemctl start fail2ban

System-Update

hljs bash
sudo apt update && sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt install unattended-upgrades -y

Schritt 6: Wiederherstellung aus Backup

Wenn die Bereinigung nicht ausreicht, ist eine Neuinstallation erforderlich:

hljs bash
# 1. Wichtige Daten sichern
tar -czf /tmp/backup_data.tar.gz /var/www/ /home/

# 2. OS über REXE-Panel neu installieren
# my.rexe.tr > Dienste > OS-Neuinstallation

# 3. Sicherheitshärtung nach sauberer Installation
# 4. Nur Datendateien aus Backup wiederherstellen (KEINE Konfigurationsdateien)

Stellen Sie bei der Wiederherstellung aus einem Backup KEINE Konfigurationsdateien wieder her! Der Angreifer könnte Hintertüren hinzugefügt haben.

Fazit

Bei Server-Hack-Vorfällen ist eine schnelle und systematische Reaktion entscheidend. Befolgen Sie die Schritte Dokumentation, Isolierung, forensische Analyse, Bereinigung und Sicherheitshärtung in der richtigen Reihenfolge. Um ähnliche Vorfälle in Zukunft zu verhindern, führen Sie regelmäßige Sicherheitsaudits durch und implementieren Sie starke Zugriffskontrollen.