7.7 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
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Basic Information
PAM (Pluggable Authentication Modules) λειτουργεί ως μηχανισμός ασφαλείας που επαληθεύει την ταυτότητα των χρηστών που προσπαθούν να αποκτήσουν πρόσβαση σε υπηρεσίες υπολογιστή, ελέγχοντας την πρόσβασή τους με βάση διάφορα κριτήρια. Είναι παρόμοιο με έναν ψηφιακό φύλακα, διασφαλίζοντας ότι μόνο οι εξουσιοδοτημένοι χρήστες μπορούν να αλληλεπιδρούν με συγκεκριμένες υπηρεσίες, ενώ ενδεχομένως περιορίζουν τη χρήση τους για να αποτρέψουν υπερφορτώσεις του συστήματος.
Configuration Files
- Τα συστήματα Solaris και UNIX συνήθως χρησιμοποιούν ένα κεντρικό αρχείο ρύθμισης που βρίσκεται στο
/etc/pam.conf
. - Τα συστήματα Linux προτιμούν μια προσέγγιση καταλόγου, αποθηκεύοντας ρυθμίσεις συγκεκριμένων υπηρεσιών εντός του
/etc/pam.d
. Για παράδειγμα, το αρχείο ρύθμισης για την υπηρεσία σύνδεσης βρίσκεται στο/etc/pam.d/login
.
Ένα παράδειγμα ρύθμισης PAM για την υπηρεσία σύνδεσης μπορεί να μοιάζει με αυτό:
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
Αυτά τα πεδία, ή ομάδες διαχείρισης, περιλαμβάνουν auth, account, password, και session, καθένα υπεύθυνο για διαφορετικές πτυχές της διαδικασίας αυθεντικοποίησης και διαχείρισης συνεδριών:
- Auth: Επικυρώνει την ταυτότητα του χρήστη, συχνά ζητώντας έναν κωδικό πρόσβασης.
- Account: Διαχειρίζεται την επαλήθευση λογαριασμού, ελέγχοντας συνθήκες όπως η συμμετοχή σε ομάδες ή περιορισμοί ώρας.
- Password: Διαχειρίζεται τις ενημερώσεις κωδικών πρόσβασης, συμπεριλαμβανομένων ελέγχων πολυπλοκότητας ή πρόληψης επιθέσεων λεξικού.
- Session: Διαχειρίζεται ενέργειες κατά την έναρξη ή το τέλος μιας συνεδρίας υπηρεσίας, όπως η τοποθέτηση καταλόγων ή η ρύθμιση περιορισμών πόρων.
Έλεγχοι Μονάδας PAM
Οι έλεγχοι καθορίζουν την αντίδραση της μονάδας σε επιτυχία ή αποτυχία, επηρεάζοντας τη συνολική διαδικασία αυθεντικοποίησης. Αυτοί περιλαμβάνουν:
- Required: Η αποτυχία μιας απαιτούμενης μονάδας οδηγεί σε τελική αποτυχία, αλλά μόνο μετά τον έλεγχο όλων των επόμενων μονάδων.
- Requisite: Άμεσος τερματισμός της διαδικασίας σε περίπτωση αποτυχίας.
- Sufficient: Η επιτυχία παρακάμπτει τους υπόλοιπους ελέγχους της ίδιας ομάδας εκτός αν αποτύχει μια επόμενη μονάδα.
- Optional: Προκαλεί αποτυχία μόνο αν είναι η μοναδική μονάδα στη στοίβα.
Παράδειγμα Σεναρίου
Σε μια ρύθμιση με πολλαπλές μονάδες auth, η διαδικασία ακολουθεί αυστηρή σειρά. Αν η μονάδα pam_securetty
βρει τον τερματικό σύνδεσης μη εξουσιοδοτημένο, οι συνδέσεις root αποκλείονται, ωστόσο όλες οι μονάδες εξακολουθούν να επεξεργάζονται λόγω της κατάστασης "required". Η pam_env
ρυθμίζει τις μεταβλητές περιβάλλοντος, ενδεχομένως βοηθώντας στην εμπειρία του χρήστη. Οι μονάδες pam_ldap
και pam_unix
συνεργάζονται για να αυθεντικοποιήσουν τον χρήστη, με την pam_unix
να προσπαθεί να χρησιμοποιήσει έναν προηγουμένως παρεχόμενο κωδικό πρόσβασης, ενισχύοντας την αποδοτικότητα και την ευελιξία στις μεθόδους αυθεντικοποίησης.
Αναφορές
{% 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
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.