hacktricks/linux-hardening/linux-post-exploitation/pam-pluggable-authentication-modules.md

5.4 KiB

PAM - Pluggable Authentication Modules

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Basic Information

PAM (Pluggable Authentication Modules) deluje kao bezbednosni mehanizam koji proverava identitet korisnika koji pokušavaju da pristupe računarskim uslugama, kontrolišući njihov pristup na osnovu različitih kriterijuma. Slično je digitalnom čuvaru, osiguravajući da samo ovlašćeni korisnici mogu da koriste određene usluge, dok potencijalno ograničavaju njihovu upotrebu kako bi se sprečilo preopterećenje sistema.

Configuration Files

  • Solaris i UNIX-bazirani sistemi obično koriste centralnu konfiguracionu datoteku smeštenu na /etc/pam.conf.
  • Linux sistemi preferiraju pristup putem direktorijuma, čuvajući konfiguracije specifične za uslugu unutar /etc/pam.d. Na primer, konfiguraciona datoteka za uslugu prijavljivanja se nalazi na /etc/pam.d/login.

Primer PAM konfiguracije za uslugu prijavljivanja može izgledati ovako:

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 Menadžment Oblasti

Ove oblasti, ili menadžment grupe, uključuju auth, account, password, i session, svaka odgovorna za različite aspekte procesa autentifikacije i upravljanja sesijama:

  • Auth: Validira identitet korisnika, često tražeći lozinku.
  • Account: Rukuje verifikacijom naloga, proveravajući uslove kao što su članstvo u grupi ili ograničenja vremena.
  • Password: Upravljanje ažuriranjima lozinki, uključujući provere složenosti ili prevenciju napada rečnikom.
  • Session: Upravljanje radnjama tokom početka ili završetka sesije usluge, kao što su montiranje direktorijuma ili postavljanje ograničenja resursa.

PAM Modul Kontrole

Kontrole određuju odgovor modula na uspeh ili neuspeh, utičući na celokupni proces autentifikacije. Ove uključuju:

  • Required: Neuspeh obaveznog modula rezultira konačnim neuspehom, ali samo nakon što su svi naredni moduli provereni.
  • Requisite: Odmah prekida proces u slučaju neuspeha.
  • Sufficient: Uspeh zaobilazi ostale provere iste oblasti osim ako neki naredni modul ne ne uspe.
  • Optional: Uzrokuje neuspeh samo ako je jedini modul u steku.

Primer Scenarija

U postavci sa više auth modula, proces prati strogi redosled. Ako pam_securetty modul pronađe da je terminal za prijavu neovlašćen, root prijave su blokirane, ali se svi moduli i dalje obrađuju zbog njegovog "required" statusa. pam_env postavlja promenljive okruženja, potencijalno pomažući u korisničkom iskustvu. Moduli pam_ldap i pam_unix rade zajedno na autentifikaciji korisnika, pri čemu pam_unix pokušava da koristi prethodno dostavljenu lozinku, poboljšavajući efikasnost i fleksibilnost u metodama autentifikacije.

Reference

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}