hacktricks/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md
2024-02-10 13:03:23 +00:00

5.7 KiB

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

Altri modi per supportare HackTricks:

Informazioni di base

PAM (Pluggable Authentication Modules) agisce come un meccanismo di sicurezza che verifica l'identità degli utenti che cercano di accedere ai servizi informatici, controllando il loro accesso in base a vari criteri. È simile a un guardiano digitale, assicurandosi che solo gli utenti autorizzati possano interagire con servizi specifici, limitandone potenzialmente l'utilizzo per prevenire sovraccarichi di sistema.

File di configurazione

  • I sistemi Solaris e basati su UNIX utilizzano tipicamente un file di configurazione centrale situato in /etc/pam.conf.
  • I sistemi Linux preferiscono un approccio basato su directory, memorizzando le configurazioni specifiche del servizio all'interno di /etc/pam.d. Ad esempio, il file di configurazione per il servizio di accesso si trova in /etc/pam.d/login.

Un esempio di configurazione PAM per il servizio di accesso potrebbe apparire così:

auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so

Reami di gestione PAM

Questi reami, o gruppi di gestione, includono auth, account, password e session, ognuno responsabile di diversi aspetti del processo di autenticazione e gestione della sessione:

  • Auth: Convalida l'identità dell'utente, spesso richiedendo una password.
  • Account: Gestisce la verifica dell'account, verificando condizioni come l'appartenenza a un gruppo o restrizioni legate all'orario.
  • Password: Gestisce gli aggiornamenti della password, inclusi controlli di complessità o prevenzione di attacchi di dizionario.
  • Session: Gestisce le azioni durante l'avvio o la chiusura di una sessione di servizio, come il montaggio di directory o l'impostazione di limiti di risorse.

Controlli dei moduli PAM

I controlli determinano la risposta del modulo al successo o al fallimento, influenzando l'intero processo di autenticazione. Questi includono:

  • Required: Il fallimento di un modulo richiesto porta a un fallimento finale, ma solo dopo aver controllato tutti i moduli successivi.
  • Requisite: Terminazione immediata del processo in caso di fallimento.
  • Sufficient: Il successo evita il controllo degli altri moduli dello stesso reame, a meno che un modulo successivo non fallisca.
  • Optional: Causa il fallimento solo se è l'unico modulo nello stack.

Esempio di scenario

In una configurazione con più moduli di autenticazione, il processo segue un ordine rigoroso. Se il modulo pam_securetty trova il terminale di accesso non autorizzato, i login di root vengono bloccati, ma tutti i moduli vengono comunque elaborati a causa del suo stato "required". Il modulo pam_env imposta le variabili di ambiente, potenzialmente migliorando l'esperienza dell'utente. I moduli pam_ldap e pam_unix lavorano insieme per autenticare l'utente, con pam_unix che tenta di utilizzare una password fornita in precedenza, migliorando l'efficienza e la flessibilità dei metodi di autenticazione.

Riferimenti

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

Altri modi per supportare HackTricks: