Sensitive Mounts
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Ekspozycja /proc
i /sys
bez odpowiedniej izolacji przestrzeni nazw wprowadza znaczące ryzyko bezpieczeństwa, w tym powiększenie powierzchni ataku i ujawnienie informacji. Te katalogi zawierają wrażliwe pliki, które, jeśli są źle skonfigurowane lub dostępne dla nieautoryzowanego użytkownika, mogą prowadzić do ucieczki z kontenera, modyfikacji hosta lub dostarczyć informacji wspomagających dalsze ataki. Na przykład, niewłaściwe zamontowanie -v /proc:/host/proc
może obejść ochronę AppArmor z powodu swojej opartej na ścieżkach natury, pozostawiając /host/proc
bez ochrony.
Szczegóły dotyczące każdej potencjalnej luki można znaleźć w https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts.
/proc/sys
Ten katalog pozwala na modyfikację zmiennych jądra, zazwyczaj za pomocą sysctl(2)
, i zawiera kilka subkatalogów budzących niepokój:
/proc/sys/kernel/core_pattern
Opisany w core(5).
Umożliwia zdefiniowanie programu do wykonania przy generowaniu pliku rdzenia z pierwszymi 128 bajtami jako argumentami. Może to prowadzić do wykonania kodu, jeśli plik zaczyna się od rury |
.
Przykład testowania i eksploatacji:
/proc/sys/kernel/modprobe
Szczegółowo opisany w proc(5).
Zawiera ścieżkę do ładowarki modułów jądra, wywoływanej do ładowania modułów jądra.
Przykład sprawdzania dostępu:
/proc/sys/vm/panic_on_oom
Wspomniane w proc(5).
Globalny flag, który kontroluje, czy jądro panikuje, czy wywołuje OOM killera, gdy występuje warunek OOM.
/proc/sys/fs
Zgodnie z proc(5), zawiera opcje i informacje o systemie plików.
Dostęp do zapisu może umożliwić różne ataki typu denial-of-service przeciwko hostowi.
/proc/sys/fs/binfmt_misc
Umożliwia rejestrowanie interpreterów dla nienatywnych formatów binarnych na podstawie ich magicznego numeru.
Może prowadzić do eskalacji uprawnień lub dostępu do powłoki root, jeśli /proc/sys/fs/binfmt_misc/register
jest zapisywalny.
Istotny exploit i wyjaśnienie:
Szczegółowy samouczek: Link do wideo
/proc
/proc/config.gz
Może ujawniać konfigurację jądra, jeśli CONFIG_IKCONFIG_PROC
jest włączone.
Przydatne dla atakujących do identyfikacji luk w działającym jądrze.
/proc/sysrq-trigger
Umożliwia wywoływanie poleceń Sysrq, co może powodować natychmiastowe ponowne uruchomienia systemu lub inne krytyczne działania.
Przykład ponownego uruchamiania hosta:
/proc/kmsg
Ujawnia komunikaty z bufora pierścieniowego jądra.
Może pomóc w exploitach jądra, wyciekach adresów i dostarczyć wrażliwych informacji o systemie.
/proc/kallsyms
Wymienia eksportowane symbole jądra i ich adresy.
Kluczowe dla rozwoju exploitów jądra, szczególnie w celu pokonania KASLR.
Informacje o adresach są ograniczone, gdy kptr_restrict
jest ustawione na 1
lub 2
.
Szczegóły w proc(5).
/proc/[pid]/mem
Interfejs z urządzeniem pamięci jądra /dev/mem
.
Historycznie podatny na ataki eskalacji uprawnień.
Więcej na proc(5).
/proc/kcore
Reprezentuje fizyczną pamięć systemu w formacie ELF core.
Odczyt może ujawniać zawartość pamięci systemu hosta i innych kontenerów.
Duży rozmiar pliku może prowadzić do problemów z odczytem lub awarii oprogramowania.
Szczegółowe użycie w Dumping /proc/kcore in 2019.
/proc/kmem
Alternatywny interfejs dla /dev/kmem
, reprezentujący wirtualną pamięć jądra.
Umożliwia odczyt i zapis, a zatem bezpośrednią modyfikację pamięci jądra.
/proc/mem
Alternatywny interfejs dla /dev/mem
, reprezentujący pamięć fizyczną.
Umożliwia odczyt i zapis, modyfikacja całej pamięci wymaga rozwiązania adresów wirtualnych na fizyczne.
/proc/sched_debug
Zwraca informacje o planowaniu procesów, omijając zabezpieczenia przestrzeni nazw PID.
Ujawnia nazwy procesów, identyfikatory i identyfikatory cgroup.
/proc/[pid]/mountinfo
Dostarcza informacji o punktach montażowych w przestrzeni nazw montażu procesu.
Ujawnia lokalizację rootfs
kontenera lub obrazu.
/sys
/sys/kernel/uevent_helper
Używane do obsługi uevent
urządzeń jądra.
Zapis do /sys/kernel/uevent_helper
może wykonać dowolne skrypty po wyzwoleniu uevent
.
Przykład eksploatacji: %%%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
Kontroluje ustawienia temperatury, potencjalnie powodując ataki DoS lub uszkodzenia fizyczne.
/sys/kernel/vmcoreinfo
Ujawnia adresy jądra, potencjalnie kompromitując KASLR.
/sys/kernel/security
Zawiera interfejs securityfs
, umożliwiający konfigurację modułów bezpieczeństwa Linux, takich jak AppArmor.
Dostęp może umożliwić kontenerowi wyłączenie swojego systemu MAC.
/sys/firmware/efi/vars
i /sys/firmware/efi/efivars
Ujawnia interfejsy do interakcji z zmiennymi EFI w NVRAM.
Błędna konfiguracja lub eksploatacja mogą prowadzić do zablokowanych laptopów lub nieuruchamialnych maszyn hosta.
/sys/kernel/debug
debugfs
oferuje interfejs debugowania "bez zasad" do jądra.
Historia problemów z bezpieczeństwem z powodu swojej nieograniczonej natury.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)