Docker Forensics
Last updated
Last updated
Lernen Sie und üben Sie AWS-Hacking: HackTricks Training AWS Red Team Expert (ARTE) Lernen Sie und üben Sie GCP-Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Es besteht der Verdacht, dass ein bestimmter Docker-Container kompromittiert wurde:
Sie können ganz einfach die Änderungen finden, die an diesem Container im Hinblick auf das Image vorgenommen wurden, mit:
Im vorherigen Befehl bedeutet C Geändert und A, Hinzugefügt.
Wenn Sie feststellen, dass eine interessante Datei wie /etc/shadow
geändert wurde, können Sie sie aus dem Container herunterladen, um auf bösartige Aktivitäten zu überprüfen:
Sie können es auch mit dem Original vergleichen, indem Sie einen neuen Container ausführen und die Datei daraus extrahieren:
Wenn Sie feststellen, dass eine verdächtige Datei hinzugefügt wurde, können Sie auf den Container zugreifen und sie überprüfen:
Wenn Ihnen ein exportiertes Docker-Image (wahrscheinlich im .tar
-Format) vorliegt, können Sie container-diff verwenden, um eine Zusammenfassung der Modifikationen zu extrahieren:
Dann kannst du das Bild dekomprimieren und auf die Blobs zugreifen, um nach verdächtigen Dateien zu suchen, die du im Änderungsverlauf gefunden haben könntest:
Sie können grundlegende Informationen aus dem ausgeführten Image erhalten:
Sie können auch eine Zusammenfassung der Änderungshistorie mit erhalten:
Sie können auch ein Dockerfile aus einem Image generieren mit:
Um hinzugefügte/geänderte Dateien in Docker-Images zu finden, können Sie auch das dive (laden Sie es von Releases) Dienstprogramm verwenden:
Dies ermöglicht es Ihnen, durch die verschiedenen Blöcke von Docker-Images zu navigieren und zu überprüfen, welche Dateien geändert/hinzugefügt wurden. Rot bedeutet hinzugefügt und gelb bedeutet geändert. Verwenden Sie die Tabulatortaste, um zur anderen Ansicht zu wechseln, und die Leertaste, um Ordner zu minimieren/öffnen.
Damit können Sie nicht auf den Inhalt der verschiedenen Stufen des Images zugreifen. Um dies zu tun, müssen Sie jede Schicht dekomprimieren und darauf zugreifen. Sie können alle Schichten eines Images aus dem Verzeichnis, in dem das Image dekomprimiert wurde, dekomprimieren, indem Sie ausführen:
Beachten Sie, dass beim Ausführen eines Docker-Containers innerhalb eines Hosts Sie die auf dem Container ausgeführten Prozesse vom Host aus sehen können, indem Sie einfach ps -ef
ausführen.
Daher können Sie (als Root) den Speicher der Prozesse vom Host aus dumpen und nach Anmeldeinformationen suchen, genau wie im folgenden Beispiel.