PAM - Pluggable Authentication Modules

Reading time: 3 minutes

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie 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 podobny do cyfrowego strażnika, zapewniając, ż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

Obszary zarządzania PAM

Te obszary, lub grupy zarządzania, obejmują auth, account, password i session, z których każdy 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 kontrolami 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.

Kontrole modułów PAM

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

  • 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 obszaru, 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 stwierdzi, że terminal logowania jest 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, zwiększając efektywność i elastyczność metod uwierzytelniania.

Referencje

tip

Ucz się i ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie HackTricks