Backdoor PAM: Pluggable Authentication Modules (T1556.003)

I Pluggable Authentication Modules (PAM) costituiscono l'infrastruttura modulare che governa l'autenticazione sulla maggior parte dei sistemi Unix e Linux, e proprio per questo sono un bersaglio prediletto per chi vuole impiantare una backdoor invisibile e duratura. La tecnica T1556.003 descrive la manipolazione di file di configurazione, librerie condivise ed eseguibili PAM per ottenere accesso non autorizzato agli account o per esfiltrare credenziali in chiaro durante il processo di login.

Il modulo più bersagliato è pam_unix.so, responsabile della verifica delle credenziali contro /etc/passwd e /etc/shadow. Un attaccante che riesce a sostituirlo o a modificarlo può introdurre una password universale valida per qualunque utente, oppure intercettare le stringhe che transitano nel modulo — che PAM tratta in plaintext perché non archivia mai le password.

La tecnica si colloca su tre tattiche MITRE simultaneamente: TA0003 (Persistence), perché garantisce accesso stabile che sopravvive a cambi password e riavvii; TA0005 (Defense Evasion), perché sfrutta componenti fidati del sistema operativo aggirando controlli tradizionali; TA0006 (Credential Access), perché consente la raccolta massiva di credenziali di ogni utente che si autentica. L'impatto è particolarmente severo perché PAM è invocato da sshd, sudo, su, login e dai display manager grafici, trasformando un singolo modulo compromesso in un punto di raccolta centralizzato per l'intera superficie di autenticazione del sistema.

In un esercizio red team autorizzato la simulazione di T1556.003 richiede accesso root sul target e un lab isolato: qualsiasi modifica a PAM può bloccare l'autenticazione e rendere la macchina irraggiungibile, quindi mantenere sempre una sessione root aperta durante i test.

L'approccio più semplice è la modifica di configurazione: aggiungere una riga auth sufficient pam_permit.so in cima a /etc/pam.d/sshd fa sì che qualsiasi tentativo di autenticazione SSH sia accettato senza verifica reale delle credenziali. Il modulo pam_permit.so è fornito nativamente dal pacchetto Linux-PAM (open source) e l'effetto è immediato dopo il salvataggio del file.

Un secondo scenario, più realistico rispetto ai TTP di malware come Ebury e Skidmap, consiste nel patchare pam_unix.so. Il codice sorgente è disponibile nel repository ufficiale Linux-PAM (open source) su GitHub; si può clonarlo, modificare la funzione _unix_verify_password in modules/pam_unix/support.c per aggiungere una condizione tipo if (strcmp(p, "magic_string") == 0) return PAM_SUCCESS; e ricompilare con ./configure && make. La libreria risultante va posizionata in /lib/x86_64-linux-gnu/security/ (o /lib/security/ a seconda della distro), preservando permessi e ownership originali con chmod 644 e chown root:root.

Per la raccolta credenziali si può aggiungere codice al modulo che scrive le stringhe intercettate su un file nascosto, oppure usare progetti didattici come linux-pam-backdoor di zephrax (open source), pensato specificamente per esercitazioni di sicurezza offensiva.

Un terzo vettore riguarda i display manager: modificare /etc/pam.d/gdm-password o /etc/pam.d/lightdm estende la backdoor al login grafico. Su macOS l'equivalente sono i SecurityAgentPlugins in /Library/Security/SecurityAgentPlugins/, dove un bundle malevolo può intercettare le credenziali del loginwindow.

Per verificare l'efficacia della persistenza dopo la modifica, testare con ssh utente@target usando sia la password legittima che quella backdoor. Strumenti come auditd (open source, incluso nelle distro Linux) devono essere configurati sul lab per misurare la detection: una regola -w /etc/pam.d/ -p wa -k pam_change genera eventi utili per validare la visibilità del blue team. Il cleanup post-esercizio deve includere ripristino da backup dei file originali e verifica dell'hash SHA-256 dei moduli PAM contro pacchetti ufficiali della distribuzione tramite dpkg -V libpam-modules su Debian/Ubuntu o rpm -V pam su RHEL/CentOS.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.
We use cookies

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.