Sensitive Mounts
Last updated
Last updated
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Die Offenlegung von /proc
und /sys
ohne angemessene Namensraumisolierung bringt erhebliche Sicherheitsrisiken mit sich, einschließlich einer Vergrößerung der Angriffsfläche und der Offenlegung von Informationen. Diese Verzeichnisse enthalten sensible Dateien, die, wenn sie falsch konfiguriert oder von einem unbefugten Benutzer zugegriffen werden, zu einem Container-Ausbruch, Host-Modifikation oder zur Bereitstellung von Informationen führen können, die weitere Angriffe unterstützen. Beispielsweise kann das falsche Mounten von -v /proc:/host/proc
den AppArmor-Schutz aufgrund seiner pfadbasierten Natur umgehen und /host/proc
ungeschützt lassen.
Weitere Details zu jeder potenziellen Schwachstelle finden Sie in https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts.
/proc/sys
Dieses Verzeichnis erlaubt den Zugriff zur Modifikation von Kernel-Variablen, normalerweise über sysctl(2)
, und enthält mehrere besorgniserregende Unterverzeichnisse:
/proc/sys/kernel/core_pattern
Beschrieben in core(5).
Ermöglicht die Definition eines Programms, das bei der Erstellung von Kernelspeicherabbilddateien ausgeführt wird, wobei die ersten 128 Bytes als Argumente verwendet werden. Dies kann zu einer Codeausführung führen, wenn die Datei mit einer Pipe |
beginnt.
Test- und Ausbeutungsbeispiel:
/proc/sys/kernel/modprobe
Detailliert in proc(5).
Enthält den Pfad zum Kernel-Modul-Lader, der zum Laden von Kernel-Modulen aufgerufen wird.
Zugriffsüberprüfungsbeispiel:
/proc/sys/vm/panic_on_oom
Referenziert in proc(5).
Ein globales Flag, das steuert, ob der Kernel einen Panic auslöst oder den OOM-Killer aufruft, wenn eine OOM-Bedingung auftritt.
/proc/sys/fs
Laut proc(5) enthält es Optionen und Informationen über das Dateisystem.
Schreibzugriff kann verschiedene Denial-of-Service-Angriffe gegen den Host ermöglichen.
/proc/sys/fs/binfmt_misc
Ermöglicht die Registrierung von Interpretern für nicht-native Binärformate basierend auf ihrer Magischen Zahl.
Kann zu einer Privilegieneskalation oder Root-Shell-Zugriff führen, wenn /proc/sys/fs/binfmt_misc/register
beschreibbar ist.
Relevante Ausnutzung und Erklärung:
Ausführliches Tutorial: Video-Link
/proc
/proc/config.gz
Kann die Kernel-Konfiguration offenbaren, wenn CONFIG_IKCONFIG_PROC
aktiviert ist.
Nützlich für Angreifer, um Schwachstellen im laufenden Kernel zu identifizieren.
/proc/sysrq-trigger
Ermöglicht das Auslösen von Sysrq-Befehlen, was möglicherweise sofortige Systemneustarts oder andere kritische Aktionen verursacht.
Beispiel für Neustart des Hosts:
/proc/kmsg
Gibt Nachrichten aus dem Kernel-Ringpuffer aus.
Kann bei Kernel-Ausnutzungen, Adresslecks und der Bereitstellung sensibler Systeminformationen helfen.
/proc/kallsyms
Listet vom Kernel exportierte Symbole und deren Adressen auf.
Essentiell für die Entwicklung von Kernel-Ausnutzungen, insbesondere um KASLR zu überwinden.
Adressinformationen sind eingeschränkt, wenn kptr_restrict
auf 1
oder 2
gesetzt ist.
Details in proc(5).
/proc/[pid]/mem
Schnittstelle zum Kernel-Speichergerät /dev/mem
.
Historisch anfällig für Privilegieneskalationsangriffe.
Mehr zu proc(5).
/proc/kcore
Stellt den physischen Speicher des Systems im ELF-Kernformat dar.
Das Lesen kann Inhalte des Host-Systems und anderer Container offenbaren.
Große Dateigröße kann zu Leseproblemen oder Softwareabstürzen führen.
Detaillierte Nutzung in Dumping /proc/kcore in 2019.
/proc/kmem
Alternative Schnittstelle für /dev/kmem
, die den virtuellen Speicher des Kernels darstellt.
Ermöglicht das Lesen und Schreiben, somit die direkte Modifikation des Kernel-Speichers.
/proc/mem
Alternative Schnittstelle für /dev/mem
, die den physischen Speicher darstellt.
Ermöglicht das Lesen und Schreiben, die Modifikation des gesamten Speichers erfordert die Auflösung virtueller zu physischen Adressen.
/proc/sched_debug
Gibt Informationen zur Prozessplanung zurück und umgeht die PID-Namensraum-Schutzmaßnahmen.
Gibt Prozessnamen, IDs und cgroup-Identifikatoren preis.
/proc/[pid]/mountinfo
Bietet Informationen über Mount-Punkte im Namensraum des Prozesses.
Gibt den Standort des Container rootfs
oder Images preis.
/sys
Schwachstellen/sys/kernel/uevent_helper
Wird zur Handhabung von Kernel-Gerät uevents
verwendet.
Das Schreiben in /sys/kernel/uevent_helper
kann beliebige Skripte bei uevent
-Auslösungen ausführen.
Beispiel für Ausnutzung: %%%bash
echo "#!/bin/sh" > /evil-helper echo "ps > /output" >> /evil-helper chmod +x /evil-helper
host_path=$(sed -n 's/.\perdir=([^,]).*/\1/p' /etc/mtab)
echo "$host_path/evil-helper" > /sys/kernel/uevent_helper
echo change > /sys/class/mem/null/uevent
cat /output %%%
/sys/class/thermal
Steuert Temperatureinstellungen, was möglicherweise DoS-Angriffe oder physische Schäden verursachen kann.
/sys/kernel/vmcoreinfo
Leckt Kernel-Adressen, was möglicherweise KASLR gefährdet.
/sys/kernel/security
Beherbergt die securityfs
-Schnittstelle, die die Konfiguration von Linux-Sicherheitsmodulen wie AppArmor ermöglicht.
Der Zugriff könnte es einem Container ermöglichen, sein MAC-System zu deaktivieren.
/sys/firmware/efi/vars
und /sys/firmware/efi/efivars
Gibt Schnittstellen für die Interaktion mit EFI-Variablen im NVRAM preis.
Fehlkonfiguration oder Ausnutzung kann zu unbrauchbaren Laptops oder nicht bootfähigen Host-Maschinen führen.
/sys/kernel/debug
debugfs
bietet eine "keine Regeln"-Debugging-Schnittstelle zum Kernel.
Geschichte von Sicherheitsproblemen aufgrund seiner uneingeschränkten Natur.
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)