Linux Post-Exploitation

Unterstützen Sie HackTricks

Mitschneiden von Anmeldepasswörtern mit PAM

Lassen Sie uns ein PAM-Modul konfigurieren, um jedes Passwort zu protokollieren, das jeder Benutzer zum Anmelden verwendet. Wenn Sie nicht wissen, was PAM ist, überprüfen Sie:

PAM - Pluggable Authentication Modules

Für weitere Details überprüfen Sie den Originalbeitrag. Dies ist nur eine Zusammenfassung:

Technikübersicht: Pluggable Authentication Modules (PAM) bieten Flexibilität bei der Verwaltung der Authentifizierung auf Unix-basierten Systemen. Sie können die Sicherheit verbessern, indem sie Anmeldeprozesse anpassen, stellen aber auch Risiken dar, wenn sie falsch verwendet werden. Diese Zusammenfassung umreißt eine Technik zum Erfassen von Anmeldeinformationen mithilfe von PAM sowie zu den Abwehrstrategien.

Erfassen von Anmeldeinformationen:

  • Ein Bash-Skript namens toomanysecrets.sh wird erstellt, um Anmeldeversuche zu protokollieren, indem das Datum, den Benutzernamen ($PAM_USER), das Passwort (über stdin) und die IP des Remote-Hosts ($PAM_RHOST) in /var/log/toomanysecrets.log erfasst werden.

  • Das Skript wird ausführbar gemacht und in die PAM-Konfiguration (common-auth) integriert, indem das Modul pam_exec.so mit Optionen verwendet wird, um leise auszuführen und das Authentifizierungstoken an das Skript weiterzugeben.

  • Der Ansatz zeigt, wie ein kompromittierter Linux-Host ausgenutzt werden kann, um Anmeldeinformationen unauffällig zu protokollieren.

#!/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

Für weitere Details siehe den Originalbeitrag. Dies ist nur eine Zusammenfassung:

Das Pluggable Authentication Module (PAM) ist ein System, das unter Linux für die Benutzerauthentifizierung verwendet wird. Es basiert auf drei Hauptkonzepten: Benutzername, Passwort und Dienst. Konfigurationsdateien für jeden Dienst befinden sich im Verzeichnis /etc/pam.d/, wo gemeinsam genutzte Bibliotheken die Authentifizierung verarbeiten.

Ziel: Ändern Sie PAM so, dass die Authentifizierung mit einem spezifischen Passwort möglich ist, wodurch das tatsächliche Benutzerpasswort umgangen wird. Dies konzentriert sich insbesondere auf die gemeinsam genutzte Bibliothek pam_unix.so, die von der Datei common-auth verwendet wird und von fast allen Diensten zur Passwortüberprüfung eingebunden wird.

Schritte zur Modifizierung von pam_unix.so:

  1. Suchen Sie die Authentifizierungsanweisung in der Datei common-auth:

  • Die Zeile, die für die Überprüfung des Benutzerpassworts verantwortlich ist, ruft pam_unix.so auf.

  1. Ändern des Quellcodes:

  • Fügen Sie eine bedingte Anweisung in der Quelldatei pam_unix_auth.c hinzu, die den Zugriff gewährt, wenn ein vordefiniertes Passwort verwendet wird, andernfalls wird der übliche Authentifizierungsprozess fortgesetzt.

  1. Neu kompilieren und Ersetzen der modifizierten pam_unix.so-Bibliothek im entsprechenden Verzeichnis.

  2. Testen:

  • Der Zugriff wird mit dem vordefinierten Passwort über verschiedene Dienste (Anmeldung, ssh, sudo, su, Bildschirmschoner) gewährt, während normale Authentifizierungsprozesse unberührt bleiben.

Sie können diesen Prozess automatisieren mit https://github.com/zephrax/linux-pam-backdoor

Unterstützen Sie HackTricks

Last updated