
Nehmen wir an, ich habe eine virtuelle Maschine und keinerlei Zugriff auf den Hypervisor. Außerdem kann ich keine Systemparameter ändern, wie z. B. das Einrichten eines passwortgeschützten Bootens mit LUKS oder Ähnlichem. Ich kann jedoch alle gewünschten Tools installieren und habe vollen Root-Zugriff. Die Verwendung von dd zum Schreiben von Nullen oder zufälligen Werten auf das Gerät wird irgendwann fehlschlagen und das System nicht leer lassen. Haben Sie Vorschläge, wie man das lösen kann? Vielleicht ein Skript, das ich beim Start ausführen kann, wenn ich das System neu starte?
Antwort1
Die Grundidee
- Erstellen Sie eine RAM-Disk - oder TMPFs
- Installieren Sie Busybox, statisch verknüpft, auf der RAM-Disk.
- Erstellen Sie Dev-Knoten für Ihre Festplatten und /dev/null und dergleichen auf der RAM-Festplatte.
pivot_root
zur RAM-Disk.exec
eine Busybox-Shell.kill
alles andere, was auf dem Computer ausgeführt wird und den nächsten Schritt verhindert. Möglicherweise müssen Sie auch einen SSH-Server auf der RAM-Disk einrichten oder etwas Ähnliches verwenden,busybox nc -l -l -p1234 -e busybox sh
um einen alternativen Zugriff zu erhalten.- Hängen Sie die „echten“ Festplatten aus.
- Verwenden Sie Busybox,
dd
um die „echten“ Festplatten zu löschen.
Beachten Sie, dass Sie mit dieser Busybox-Zeile kein „Terminal“, sondern nur eine Shell erhalten, daher ist vieles seltsam. Und wenn Sie verwenden, telnet
um eine Verbindung herzustellen, wird es noch seltsamer. Insbesondere erhalten Sie vor jedem Zeilenvorschub einen Wagenrücklauf, sodass die Eingabe pwd
fehlschlägt, das Hinzufügen eines Leerzeichens danach jedoch funktioniert. Ich empfehle die Verwendung von nc
oder busybox nc
als Client.
Problem
Sie können init nicht einfach beenden und damit durchkommen. Möglicherweise können Sie die Datenträger aushängen, indem Sie Dinge beenden, die von diesem Datenträger gestartet wurden, oder auch nicht.
Ich denke, es gibt zwei Alternativen.
- Ändern Sie die Boot-Skripte, um den Tunnel einzurichten oder die Datenträgerlöschung für Sie durchzuführen. Es gibt Toolkits zur Datenträgerlöschung, die möglicherweise eine Version haben, die mit den Modulen Ihres Kernels kombiniert werden kann, um letzteres zu tun.
- Versuchen Sie, die Datenträger zu löschen, ohne sie auszuhängen. Stellen Sie in diesem Fall sicher, dass Sie
poweroff -fn
…