4.7 KiB
Post-Esploitation Linux
{% hint style="success" %}
Impara e pratica l'Hacking su AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica l'Hacking su GCP: HackTricks Training GCP Red Team Expert (GRTE)
Sostieni 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 a HackTricks e HackTricks Cloud github repos.
Intercettare le Password di Accesso con PAM
Configuriamo un modulo PAM per registrare ogni password che ogni utente utilizza per accedere. Se non sai cos'è PAM, controlla:
{% content-ref url="pam-pluggable-authentication-modules.md" %} pam-pluggable-authentication-modules.md {% endcontent-ref %}
Per ulteriori dettagli consulta il post originale. Questo è solo un riassunto:
Panoramica della Tecnica: I Moduli di Autenticazione Pluggabili (PAM) offrono flessibilità nella gestione dell'autenticazione sui sistemi basati su Unix. Possono migliorare la sicurezza personalizzando i processi di accesso ma possono anche comportare rischi se utilizzati in modo improprio. Questo riassunto illustra una tecnica per catturare le credenziali di accesso utilizzando PAM, insieme a strategie di mitigazione.
Cattura delle Credenziali:
- Viene creato uno script bash chiamato
toomanysecrets.sh
per registrare i tentativi di accesso, catturando la data, il nome utente ($PAM_USER
), la password (tramite 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
) utilizzando il modulopam_exec.so
con opzioni per eseguire in modo silenzioso ed 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 consulta il post originale. Questo è solo un riassunto:
Il Pluggable Authentication Module (PAM) è un sistema utilizzato in Linux per l'autenticazione degli utenti. Si basa su tre concetti principali: username, password e service. I file di configurazione per ciascun servizio 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 effettiva dell'utente. Questo è particolarmente focalizzato sulla libreria condivisa pam_unix.so
utilizzata dal file common-auth
, incluso da quasi tutti i servizi per la verifica della password.
Passaggi per la Modifica di pam_unix.so
:
- Individuare la Direttiva di Autenticazione nel file
common-auth
:
- La riga responsabile del controllo della password dell'utente chiama
pam_unix.so
.
- Modificare il Codice Sorgente:
- Aggiungere un'istruzione condizionale nel file sorgente
pam_unix_auth.c
che concede l'accesso se viene utilizzata una password predefinita, altrimenti procede con il normale processo di autenticazione.
- Ricompilare e Sostituire la libreria
pam_unix.so
modificata nella directory appropriata. - Test:
- L'accesso è concesso attraverso vari servizi (login, ssh, sudo, su, screensaver) con la password predefinita, mentre i processi di autenticazione normali rimangono invariati.
{% hint style="info" %} È possibile automatizzare questo processo con https://github.com/zephrax/linux-pam-backdoor {% endhint %}