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

76 lines
5.7 KiB
Markdown

<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai repository** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) su GitHub.
</details>
## 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ì:
```text
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
* [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai repository github di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>