PAM - Pluggable Authentication Modules

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Podstawowe informacje

PAM (Pluggable Authentication Modules) działa jako mechanizm zabezpieczeń, który weryfikuje tożsamość użytkowników próbujących uzyskać dostęp do usług komputerowych, kontrolując ich dostęp na podstawie różnych kryteriów. Jest to podobne do cyfrowego strażnika, który zapewnia, że tylko autoryzowani użytkownicy mogą korzystać z określonych usług, jednocześnie potencjalnie ograniczając ich użycie, aby zapobiec przeciążeniu systemu.

Pliki konfiguracyjne

  • Systemy Solaris i UNIX zazwyczaj wykorzystują centralny plik konfiguracyjny znajdujący się w /etc/pam.conf.

  • Systemy Linux preferują podejście oparte na katalogach, przechowując konfiguracje specyficzne dla usług w /etc/pam.d. Na przykład, plik konfiguracyjny dla usługi logowania znajduje się w /etc/pam.d/login.

Przykład konfiguracji PAM dla usługi logowania może wyglądać następująco:

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

Zarządzanie PAM Realmami

Te realm'y, lub grupy zarządzania, obejmują auth, account, password i session, z których każda odpowiada za różne aspekty procesu uwierzytelniania i zarządzania sesjami:

  • Auth: Weryfikuje tożsamość użytkownika, często prosząc o hasło.

  • Account: Obsługuje weryfikację konta, sprawdzając warunki takie jak przynależność do grupy lub ograniczenia czasowe.

  • Password: Zarządza aktualizacjami haseł, w tym kontrolą złożoności lub zapobieganiem atakom słownikowym.

  • Session: Zarządza działaniami podczas rozpoczęcia lub zakończenia sesji usługi, takimi jak montowanie katalogów lub ustawianie limitów zasobów.

Kontrola modułów PAM

Kontrole określają reakcję modułu na sukces lub porażkę, wpływając na ogólny proces uwierzytelniania. Należą do nich:

  • Required: Porażka wymaganego modułu skutkuje ostateczną porażką, ale tylko po sprawdzeniu wszystkich kolejnych modułów.

  • Requisite: Natychmiastowe zakończenie procesu w przypadku porażki.

  • Sufficient: Sukces omija pozostałe kontrole tego samego realm'u, chyba że kolejny moduł zawiedzie.

  • Optional: Powoduje porażkę tylko wtedy, gdy jest jedynym modułem w stosie.

Przykładowy scenariusz

W konfiguracji z wieloma modułami auth, proces przebiega w ścisłej kolejności. Jeśli moduł pam_securetty znajdzie terminal logowania jako nieautoryzowany, logowania roota są zablokowane, jednak wszystkie moduły są nadal przetwarzane z powodu jego statusu "required". Moduł pam_env ustawia zmienne środowiskowe, co może wspierać doświadczenia użytkownika. Moduły pam_ldap i pam_unix współpracują, aby uwierzytelnić użytkownika, przy czym pam_unix próbuje użyć wcześniej podanego hasła, co zwiększa efektywność i elastyczność metod uwierzytelniania.

Referencje

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks

Last updated