PAM - Pluggable Authentication Modules
Reading time: 3 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Grundlegende Informationen
PAM (Pluggable Authentication Modules) fungiert als Sicherheitsmechanismus, der die Identität von Benutzern überprüft, die versuchen, auf Computerressourcen zuzugreifen, und ihren Zugang basierend auf verschiedenen Kriterien steuert. Es ist vergleichbar mit einem digitalen Torwächter, der sicherstellt, dass nur autorisierte Benutzer mit bestimmten Diensten interagieren können, während ihre Nutzung möglicherweise eingeschränkt wird, um Systemüberlastungen zu verhindern.
Konfigurationsdateien
- Solaris- und UNIX-basierte Systeme verwenden typischerweise eine zentrale Konfigurationsdatei, die sich unter
/etc/pam.conf
befindet. - Linux-Systeme bevorzugen einen Verzeichnisansatz und speichern dienstspezifische Konfigurationen in
/etc/pam.d
. Beispielsweise befindet sich die Konfigurationsdatei für den Anmeldedienst unter/etc/pam.d/login
.
Ein Beispiel für eine PAM-Konfiguration für den Anmeldedienst könnte so aussehen:
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_nologin.so
auth sufficient /lib/security/pam_ldap.so
auth required /lib/security/pam_unix_auth.so try_first_pass
account sufficient /lib/security/pam_ldap.so
account required /lib/security/pam_unix_acct.so
password required /lib/security/pam_cracklib.so
password required /lib/security/pam_ldap.so
password required /lib/security/pam_pwdb.so use_first_pass
session required /lib/security/pam_unix_session.so
PAM-Management-Bereiche
Diese Bereiche oder Managementgruppen umfassen auth, account, password und session, die jeweils für verschiedene Aspekte des Authentifizierungs- und Sitzungsmanagementprozesses verantwortlich sind:
- Auth: Validiert die Benutzeridentität, oft durch Aufforderung zur Eingabe eines Passworts.
- Account: Behandelt die Kontoverifizierung und prüft Bedingungen wie Gruppenmitgliedschaft oder zeitliche Einschränkungen.
- Password: Verwaltet Passwortaktualisierungen, einschließlich Komplexitätsprüfungen oder der Verhinderung von Wörterbuchangriffen.
- Session: Verwaltet Aktionen zu Beginn oder am Ende einer Dienstsitzung, wie das Einbinden von Verzeichnissen oder das Setzen von Ressourcenlimits.
PAM-Modulsteuerungen
Steuerungen bestimmen die Reaktion des Moduls auf Erfolg oder Misserfolg und beeinflussen den gesamten Authentifizierungsprozess. Dazu gehören:
- Required: Das Scheitern eines erforderlichen Moduls führt letztendlich zu einem Misserfolg, jedoch nur nachdem alle nachfolgenden Module überprüft wurden.
- Requisite: Sofortige Beendigung des Prozesses bei Misserfolg.
- Sufficient: Erfolg umgeht die restlichen Überprüfungen desselben Bereichs, es sei denn, ein nachfolgendes Modul schlägt fehl.
- Optional: Führt nur zu einem Misserfolg, wenn es das einzige Modul im Stapel ist.
Beispiel-Szenario
In einer Konfiguration mit mehreren Auth-Modulen folgt der Prozess einer strengen Reihenfolge. Wenn das Modul pam_securetty
das Anmelde-Terminal als unbefugt erkennt, werden Root-Anmeldungen blockiert, dennoch werden alle Module aufgrund des "required"-Status weiterhin verarbeitet. Das pam_env
setzt Umgebungsvariablen, die möglicherweise die Benutzererfahrung unterstützen. Die Module pam_ldap
und pam_unix
arbeiten zusammen, um den Benutzer zu authentifizieren, wobei pam_unix
versucht, ein zuvor angegebenes Passwort zu verwenden, was die Effizienz und Flexibilität der Authentifizierungsmethoden erhöht.
Referenzen
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.