Centos εγκατάσταση προγραμμάτων με δικαιώματα υπερχρήστη. $ εντολή επιλογές sudo. Δημιουργία ομαδικού τροχού

1. Χρησιμοποιώντας την εντολή: su

Πολλές εντολές μπορούν να εκτελεστούν μόνο από έναν υπερχρήστη, επομένως πρέπει να γνωρίζουμε πώς να γίνουμε χρήστης root. Για να το κάνουμε αυτό μπορούμε να χρησιμοποιήσουμε την εντολή: su (switch user). Η εντολή su δέχεται τις ακόλουθες μορφές:

αλλά πιο συχνά θα χρησιμοποιούμε suπροκειμένου να γίνει χρήστης ρίζα:

Su - ρίζα

Εάν το όνομα χρήστη δεν έχει καθοριστεί στη γραμμή, ο χρήστης θεωρείται αυτόματα ότι είναι root, επομένως η εντολή μπορεί να συντομευτεί:

αλλά και οι δύο ομάδες συμπεριφέρονται διαφορετικά. Το "su" δίνει στον τρέχοντα χρήστη μια ταυτότητα, ενώ το "su -" δίνει στον τρέχοντα χρήστη μια ταυτότητα μαζί με το περιβάλλον που θα αποκτούσε με την εγγραφή ως.

Συχνά οι χρήστες χρησιμοποιούν το "su" για να γίνουν root. Εάν προσπαθήσετε να εκτελέσετε μια εντολή (για παράδειγμα - ifconfig), θα λάβετε: "command δεν βρέθηκε" λάθος.

Su Password: ifconfig bash: ifconfig: η εντολή δεν βρέθηκε

Ο λόγος είναι ότι οι κανονικοί χρήστες του συστήματος και ο χρήστης ρίζας έχουν διαφορετικές μεταβλητές περιβάλλοντος PATH (μπορείτε να δείτε τη PATH του χρήστη χρησιμοποιώντας το "echo $PATH" μετά την εισαγωγή). Εντολές Linux, το κέλυφος θα πραγματοποιήσει αναζήτηση στο PATH του χρήστη για να προσπαθήσει να βρει μια εντολή για εκτέλεση. Ξεκινά την αναζήτηση σε κάθε κατάλογο που παρατίθεται στο PATH μέχρι να βρεθεί ο στόχος.

Οι εντολές του τακτικού χρήστη βρίσκονται συνήθως στα /usr/local/bin, /usr/bin και /bin. Και οι εντολές χρήστη root βρίσκονται κυρίως στο /usr/local/sbin, /usr/sbin, /sbin και το ριζικό PATH αντικατοπτρίζει αυτό. Έτσι, όταν γίνετε superuser με το "su -", παίρνετε επίσης ένα νέο PATH για τις κύριες εντολές σας. Και χρησιμοποιώντας μόνο "su", το προεπιλεγμένο χρήστη PATH αποθηκεύεται, επομένως, όταν προσπαθείτε να εκτελέσετε ένα πρόγραμμα που βρίσκεται στο /usr/local/sbin, /usr/sbin, /sbin θα παράγει το αποτέλεσμα: σφάλμα "command not found" . Για μια πιο λεπτομερή εξήγηση, ανατρέξτε στη σελίδα man bash, ειδικά στην ενότητα των κελύφους σύνδεσης.

Οπότε εσείς ή πρέπει να υποδείξετε πλήρης διαδρομήστην εντολή (παράδειγμα - /sbin/ifconfig) όταν χρησιμοποιείτε "su", ή χρησιμοποιήστε "su -" όταν γίνετε root.

2. Χρήση Sudo

Δεν χρειάζεται να είστε υπερχρήστης κάθε φορά που θέλετε να εκτελέσετε ορισμένες συγκεκριμένες λειτουργίες διαχείρισης. Χάρη σε Σούντο, μπορείτε να εκτελέσετε ορισμένες ή όλες τις εντολές ως root. Οταν Σούντοεγκατεστημένο (πακέτο: Sudo), μπορείτε να το διαμορφώσετε χρησιμοποιώντας την εντολή "visudo" ως root. Βασικά επεξεργάζεται (προεπιλογή Vim) /etc/sudoers, αλλά δεν συνιστάται να το κάνετε χειροκίνητα.

Alex ALL=(ALL)ALL

Alex είναι το όνομα χρήστη. Αποθήκευση (πατήστε escape και μετά πληκτρολογήστε wq) και τελειώσατε. Συνδεθείτε ως alex και εκτελέστε για παράδειγμα:

$sudo yum ενημέρωση

Το Sudo θα ζητήσει κωδικό πρόσβασης. Αυτός είναι ο κωδικός πρόσβασης του Alex, όχι του χρήστη root. Επομένως, να είστε προσεκτικοί όταν εκχωρείτε δικαιώματα χρήστη με το Sudo.

Αλλά το Sudo μπορεί να κάνει περισσότερα από αυτό. Μπορούμε να επιτρέψουμε σε έναν χρήστη ή ομάδα χρηστών να εκτελεί μόνο μία εντολή ή ομάδα εντολών. Ας επιστρέψουμε στο αρχείο sudoers μας. Ας ξεκινήσουμε με τους alex και alisa, μέλη της ομάδας διαχειριστών. Εάν θέλουμε όλοι οι χρήστες στην ομάδα "διαχειριστής" να μπορούν να εκτελούν κάθε εντολή ως υπερχρήστης, πρέπει να τροποποιήσουμε το παράδειγμά μας:

%admin ALL=(ALL)ALL

Ο Alex μπορεί επίσης να εκτελέσει μια εντολή superuser και η Alisa έχει το δικαίωμα να εκτελέσει το Sudo, με τα ίδια δικαιώματα και τον κωδικό πρόσβασής της. Εάν το alex και το alisa δεν είναι μέλη της ίδιας ομάδας, μπορούμε να ορίσουμε το ψευδώνυμο του χρήστη στο αρχείο sudoers:

User_Alias ​​ADMINS = alisa,alex

Εδώ έχουμε ορίσει ένα ψευδώνυμο που ονομάζεται ADMINS, με μέλη alisa και alex.

Ωστόσο, δεν θέλουμε ο Alex και η Alisa να μπορούν να εκτελούν οποιοδήποτε πρόγραμμα ως root. Θέλουμε να μπορούν να εκτελούν μόνο το "updatedb". Ας ορίσουμε ένα ψευδώνυμο εντολής:

Cmnd_Alias LOCATE = /usr/sbin/updatedb

Δεν φτάνει όμως αυτό! Πρέπει να πούμε στο Sudo ότι οι χρήστες που ορίζονται ως ADMINS μπορούν να εκτελούν εντολές που καθορίζονται στο LOCATE. Για να γίνει αυτό, θα αντικαταστήσουμε τις γραμμές με "%admin" με αυτές:

ADMINS ALL = LOCATE

Αυτό σημαίνει ότι οι χρήστες στο ψευδώνυμο ADMINS μπορούν να εκτελέσουν όλες τις εντολές στο ψευδώνυμο LOCATE.

Αυτή τη φορά, το /etc/sudoers μοιάζει με αυτό:

User_Alias ADMINS = alisa, alex Cmnd_Alias LOCATE = /usr/bin/updatedb ADMINS ALL = LOCATE

Ως αποτέλεσμα, οι alex και alisa μπορούν να εκτελέσουν το updatedb ως root εισάγοντας τον κωδικό πρόσβασής τους.

Εάν αλλάξετε την τελευταία γραμμή στο αρχείο:

ADMINS ALL = NOPASSWD:LOCATE

τότε οι alex και alisa θα μπορούν να εκτελέσουν το "sudo updatedb" χωρίς να εισάγουν κωδικό πρόσβασης.

Μπορείτε να προσθέσετε περισσότερες εντολές σε ένα ψευδώνυμο εντολής και περισσότερα ψευδώνυμα σε έναν κανόνα. Για παράδειγμα, μπορούμε να δημιουργήσουμε ένα ψευδώνυμο ΔΙΚΤΥΟ που περιέχει μερικά εντολές δικτύουτύπος: ifconfig, route ή iwconfig:

Cmnd_Alias ​​NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhcclient, /usr/bin/net, sbin/iptables, /usr/bin/rfcom, /usr/bin/wvdial, /sbin /iwconfig, /sbin/mii-tool

Ας τα προσθέσουμε όλα αυτά στο αρχείο μας /etc/sudoers (χρησιμοποιώντας visudo!). Θα εκχωρήσουμε επίσης στην ομάδα ADMINS μας τα δικαιώματα για την εκτέλεση προγραμμάτων από το ψευδώνυμο NETWORKING:

User_Alias ​​ADMINS = alice, bob Cmnd_Alias​LOCATE = /usr/bin/updatedb Cmnd_Alias​NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net ,/sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool ADMINS ALL = LOCATE, NETWORKING

Μια γρήγορη δοκιμή: συνδεθείτε ως alisa (ή alex) και πληκτρολογήστε:

$ping -c 10 -i localhost

Η απάντηση πρέπει να επανέλθει γρήγορα:

PING localhost.localdomain (127.0.0.1) 56(84) byte δεδομένων. ping: δεν μπορεί να πλημμυρίσει. ελάχιστο διάστημα, που επιτρέπεται για τον χρήστη, είναι 200ms

Τώρα, το ίδιο πράγμα αλλά με το Sudo:

$sudo ping -c 10 -i 0 localhost PING localhost.localdomain (127.0.0.1) 56(84) byte δεδομένων. 64 byte από localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0,049 ms 64 byte από localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=0,049 ms localhost. (127.0.0.1): icmp_seq=3 ttl=64 time=0.021 ms 64 byte από localhost.localdomain (127.0.0.1): icmp_seq=4 ttl=64 time=0.030 ms 64 byte από localhost.localdom. icmp_seq=5 ttl=64 χρόνος=0,017 ms 64 byte από localhost.localdomain (127.0.0.1): icmp_seq=6 ttl=64 χρόνος=0,016 ms 64 byte από localhost.localdomain (127.0mptl=127.0mpt_1): time=0,016 ms 64 byte από localhost.localdomain (127.0.0.1): icmp_seq=8 ttl=64 time=0,016 ms 64 byte από localhost.localdomain (127.0.0.1): icmp_seq=9 ttl=06. από localhost.localdomain (127.0.0.1): icmp_seq=10 ttl=64 time=0,016 ms --- localhost.localdomain στατιστικά ping --- 10 πακέτα μεταδόθηκαν, 10 ελήφθησαν, 0% απώλεια πακέτων, χρόνος 1ms rtt min/avg max/mdev = 0,016/0,023/0,049/0,010 ms, ipg/ewma 0,187/0,028 ms

ΣούντοΣυχνά χρησιμοποιείται για να παραχωρήσει σε ορισμένους χρήστες μερική πρόσβαση σε προνομιακές εντολές, ώστε να μπορούν να εκτελούν περιορισμένες λειτουργίες διαχείρισης. Μία από τις ανέσεις Σούντοείναι ότι όλες οι εντολές γράφονται στο /var/log/secure. Το παραπάνω παράδειγμα θα περιγραφεί από τη γραμμή στο αρχείο καταγραφής:

18 Απρ 11:23:17 localhost sudo: alex: TTY=pts/0 ; PWD=/home/alex ; USER=root ; COMMAND=/bin/ping -c 10 -i 0 localhost

Αυτό είναι όλο. Τώρα δεν θα ξεχάσω ποτέ πότε χρησιμοποίησα το Sudo: "με μεγάλη δύναμη έρχεται μεγάλη ευθύνη."

2.1 κέλυφος Sudo

Εάν έχετε αρκετά δικαιώματα ρυθμισμένα στο sudoers, μπορείτε επίσης να ανοίξετε το root κέλυφοςχρησιμοποιώντας:

ΣΕ πιο πρόσφατες εκδόσειςμόνο στο CentOS 5, για να εκτελέσετε το κέλυφος ως root, χρησιμοποιήστε sudo -s. Να είστε πολύ προσεκτικοί καθώς αυτό μπορεί να αλλάξει ή να δημιουργήσει νέα αρχεία οικιακό κατάλογο Root και εγκατάσταση στον αρχικό κατάλογο του χρήστη που καλεί.

3.βοηθός κονσόλας

Το Consolehelper είναι ένα κέλυφος για εκκίνηση GUIεφαρμογές. Όταν ξεκινήσει να εκτελείται, ελέγχει τη διαμόρφωση του PAM για την απαιτούμενη εφαρμογή. Αυτό σημαίνει ότι μπορούμε να ελέγξουμε την ταυτότητα του χρήστη χρησιμοποιώντας όλα εγκατεστημένες μονάδες PAM. Η κύρια μέθοδος είναι να ζητήσουμε κωδικό πρόσβασης, αλλά αν έχουμε τον κατάλληλο εξοπλισμό. μπορούμε να κάνουμε έλεγχο ταυτότητας χρησιμοποιώντας έξυπνη κάρτα, μάρκες, δακτυλικά αποτυπώματα κ.λπ. Η διαμόρφωση του PAM είναι πέρα ​​από το πεδίο αυτού του εγγράφου (δείτε τον Οδηγό διαχειριστή PAM), επομένως θα εξετάσουμε το βήμα διαμόρφωσης του βοηθού κονσόλας που απαιτείται για την εκτέλεση εφαρμογών ως root και απαιτείται κωδικός πρόσβασης root.

Για παράδειγμα, ας διαμορφώσουμε το /usr/bin/xterm ώστε να εκτελείται ως root.

Ln -s /usr/sbin/consolehelper /usr/bin/xterm-root

Τώρα για να διαμορφώσετε το PAM, δημιουργήστε ένα αρχείο /etc/pam.d/xterm-root:

#%PAM-1.0 auth περιλαμβάνει config-util λογαριασμός περιλαμβάνει config-util συνεδρία περιλαμβάνει config-util

Τέλος, ρυθμίστε το consolehelper να εκτελεί το /usr/bin/xterm ως root με την εντολή "xterm-root". Δημιουργήστε ένα αρχείο /etc/security/console.apps/xterm-root:

USER=root PROGRAM=/usr/bin/xterm

Αυτό είναι όλο. Εκτελέστε το "xterm-root" (από τη γραμμή εντολών ή με μια συντόμευση στο αρχείο .desktop), εισάγετε τον κωδικό πρόσβασης και πηγαίνετε. Εάν λάβετε το σφάλμα: "Xlib: η σύνδεση με ":0.0" απορρίφθηκε από τον διακομιστή", εκτελέστε πρώτα το "xhost local:root".

Πώς μπορώ να αυξήσω τα προνόμιά μου σε προνόμια συστήματος; Κόσμος των Windows. Όπως αποδεικνύεται, υπάρχουν περισσότερες από αρκετές επιλογές για αυτό. Τι να επιλέξετε εξαρτάται τόσο από την κατάσταση όσο και από τις προτιμήσεις σας. Ωστόσο, όπως καταλαβαίνετε, πρέπει να επεκτείνετε τις δυνάμεις σας όχι μόνο για τα παράθυρα, αλλά και για τους πιγκουίνους. Τι ευκαιρίες υπάρχουν; Λοιπόν ας δούμε...

Πρόλογος

Όπως θυμάστε (και όπως θα πρέπει να θυμάται κάθε επαρκής διαχειριστής), η εργασία σε Linux υπό root δεν συνιστάται αυστηρά. Σε έναν ιδανικό κόσμο, θα το χρησιμοποιούσατε μόνο για διαμόρφωση διακομιστή, εγκατάσταση λογισμικού και ενημερώσεις και άλλες καθαρά διοικητικές εργασίες. Το πρόβλημα είναι ότι ζούμε σε έναν συνηθισμένο κόσμο, ο οποίος απέχει πολύ από τον ιδανικό. Επομένως, μια τέτοια κατάσταση εξακολουθεί να συμβαίνει μερικές φορές. Είναι αλήθεια ότι στις περισσότερες περιπτώσεις οφείλεται καθαρά σε αμέλεια, γιατί ιστορικά συνέβη ότι οι χρήστες Linux έπρεπε να καταλάβουν πώς λειτουργεί το λειτουργικό τους σύστημα. Και ακόμα κι αν καταλαβαίνετε λίγο για το σύστημα και τους μηχανισμούς ασφαλείας του, δεν θα μπορείτε να καθίσετε κάτω από τη βάση. Επομένως, σήμερα, σε αντίθεση με τα Windows, όπου μιλήσαμε για την απόκτηση προνομίων συστήματος ως διαχειριστής, θα εξετάσουμε μόνο επιλογές για την αύξηση των προνομίων από έναν μη προνομιούχο χρήστη σε root. Ας ξεκινήσουμε λοιπόν.

Εκμεταλλεύσεις

Όλες οι μέθοδοι για την απόκτηση δικαιωμάτων υπερχρήστη στο Linux μπορούν να χωριστούν σε δύο κατηγορίες. Το πρώτο είναι ακριβώς η χρήση εκμεταλλεύσεων. Σε αντίθεση με τα Windows, με τον μηχανισμό τους αυτόματη εγκατάστασηενημερώσεις, οι οπαδοί του Penguin πρέπει κυρίως να παρακολουθούν μόνοι τους την κυκλοφορία των ενημερώσεων κώδικα και την εγκατάστασή τους. Από αυτή την άποψη, η πιθανότητα να συναντήσετε ένα σύστημα που δεν έχει επιδιορθωθεί πλήρως μεταξύ των μηχανών Linux είναι πολύ υψηλότερη. Ποια είναι τα οφέλη αυτή τη μέθοδομπορείς να τονίσεις; Αρχικά, οι περισσότερες εκμεταλλεύσεις χρησιμοποιούν ευπάθειες στον πυρήνα του λειτουργικού συστήματος, κάτι που τους επιτρέπει να αποκτήσουν μέγιστα προνόμια. Η εύρεση του κατάλληλου κώδικα εκμετάλλευσης δεν είναι τόσο δύσκολη και πιθανότατα γνωρίζετε μερικούς πόρους. Επιπλέον, για να επωφεληθείτε από ένα exploit, μερικές φορές δεν χρειάζεται να κατανοήσετε όλες τις περιπλοκές της ευπάθειας που χρησιμοποιείται - απλά πρέπει να το μεταγλωττίσετε σωστά και να το εκτελέσετε (μερικές φορές, ωστόσο, πρέπει να το προσαρμόσετε λίγο, αλλά αρκετά συχνά όλα λειτουργούν χωρίς να τα τροποποιήσετε με ένα αρχείο). Γενικά, ο αλγόριθμος των ενεργειών μοιάζει με αυτό:

  1. Προσδιορίστε την έκδοση πυρήνα και διανομής.
  2. Λήψη λίστας διαθέσιμα εργαλείαγια τη συναρμολόγηση του σχίσματος.
  3. Παραδώστε το sploit στο μηχάνημα-στόχο.
  4. Μεταγλώττιση (αν χρειάζεται) και εκτέλεση.
  5. Απολαύστε τη ρίζα που προκύπτει.

Λοιπόν, τώρα για κάθε βήμα με περισσότερες λεπτομέρειες.

Ταυτοποίηση

Κρίνοντας από το σχέδιο, πρέπει πρώτα να μάθουμε πού καταλήξαμε, τι είδους διανομή χρησιμοποιούμε και ποια είναι η έκδοση του πυρήνα. Η έκδοση του πυρήνα μπορεί να ανακτηθεί χρησιμοποιώντας τη γνωστή εντολή uname -a ή τα ανάλογα της. Για να λάβετε πληροφορίες σχετικά με τη διανομή που χρησιμοποιείτε, πρέπει να δείτε το αρχείο *-release που βρίσκεται στον κατάλογο etc (ανάλογα με τη διανομή, μπορεί να ονομαστεί διαφορετικά: lsb-release στο Ubuntu, redhat-release στο κόκκινο Καπέλο / CentOS κ.λπ.):
cat /etc/*-release

Γνωρίζοντας τη διανομή και την έκδοση του πυρήνα, μπορείτε να προχωρήσετε στο δεύτερο στάδιο - να βρείτε ένα κατάλληλο "κύριο κλειδί".

Αναζήτηση για μια εκμετάλλευση

Μόλις όλα απαραίτητες πληροφορίεςθα είναι στο χέρι, θα είναι καιρός να αναζητήσετε ένα κατάλληλο exploit. Το πρώτο πράγμα που έρχεται στο μυαλό είναι το exploit-db.com, αλλά υπάρχουν και εναλλακτικές: 1337day, SecuriTeam, ExploitSearch, Metasploit, Securityreason, Seclists. Εξάλλου, υπάρχει η Google που σίγουρα ξέρει περισσότερα για τα exploits από οποιονδήποτε άλλον. Κοιτάζοντας λίγο μπροστά, θα πω: μερικές φορές, για κάποιο λόγο, το "κύριο κλειδί" μπορεί να μην λειτουργεί ή πρέπει να το προσαρμόσετε λίγο σε ορισμένες συνθήκες ή τις ανάγκες σας, δηλαδή να το διαβάσετε με ένα αρχείο. Σε αυτήν την περίπτωση, δεν θα σας βλάψει να μάθετε πρόσθετες πληροφορίες σχετικά με αυτό, οι οποίες μπορούν να συλλεχθούν από έναν από τους παρακάτω πόρους:
www.cvedetails.com
packetstormsecurity.org
cve.mitre.org

Λοιπόν, ας υποθέσουμε ότι βρίσκετε ένα κατάλληλο exploit που σας δίνει ένα πέρασμα στον κόσμο του root. Το μόνο που μένει είναι να το μεταφέρουμε με κάποιο τρόπο στο αυτοκίνητο.

Διανομή κατ 'οίκον

Για να παραδοθεί ο διανομέας στην τοποθεσία, υπάρχουν πολλές μέθοδοι, από τα γνωστά cURL/wget, Netcat, FTP, SCP/SFTP, SMB έως Χρήση DNSΕγγραφές TXT. Για να μάθετε ποιο από αυτά τα εργαλεία έχουμε, εκτελέστε:

Εύρεση / -name wget find / -name nc* find / -name netcat* find / -name tftp* find / -name ftp

Ας πούμε ότι βρήκαμε τη Netcat. Για να μεταφέρετε ένα αρχείο χρησιμοποιώντας το, εκτελέστε στην πλευρά λήψης:
nc -l -p 1234 > out.file

Δηλαδή, ακούμε τη θύρα 1234. Στην αποστολή κάνουμε τα εξής:
nc -w 3 1234< out.file

Εάν η μεταφορά γίνει από *nix σε ένα σύστημα *nix, δηλαδή εκεί και εκεί τυπικά βοηθητικά προγράμματα, τότε μπορείτε να χρησιμοποιήσετε τη συμπίεση για να επιταχύνετε τη διαδικασία μεταφοράς. Σε αυτήν την περίπτωση, οι εντολές θα μοιάζουν με αυτό:

Nc -l -p 1234 | αποσυμπίεση -c | tar xvfp - // για λήψη tar cfp - /some/dir | συμπίεση -γ | nc -w 3 1234 // για αποστολή

Οι άλλες επιλογές είναι ακόμα πιο απλές, επομένως δεν θα εξετάσουμε το ενδεχόμενο χρήσης wget, FTP και άλλων γνωστών μεθόδων.

Κρυφτό

Εντάξει, καταλάβαμε πώς να το παραδώσουμε. Πώς όμως μπορείτε να αποφύγετε να καείτε; Εάν ανακαλυφθεί η εκμετάλλευσή σας, να είστε σίγουροι ότι το κενό θα κλείσει γρήγορα. Πρέπει λοιπόν να το φιλοξενήσετε, να το μεταγλωττίσετε και να το εκτελέσετε από κάποιο δυσδιάκριτο μέρος. Στο Linux, οι κατάλογοι που ξεκινούν με μια τελεία (για παράδειγμα, .secret_folder) είναι κρυφοί. Επομένως, θα ήταν λογικό να χρησιμοποιηθούν για να κρύψουν τη δραστηριότητά τους. Για παράδειγμα, βάλτε κώδικα εκμετάλλευσης σε αυτά: /tmp/.nothingthere/exploit.c . Ωστόσο, σε αυτήν την περίπτωση, πρέπει πρώτα να βεβαιωθείτε ότι το tmp έχει τοποθετηθεί χωρίς την επιλογή noexec και μπορείτε να εκτελέσετε το assembled exploit από αυτό (για να το κάνετε αυτό, χρησιμοποιήστε την εντολή mount).

Δημιουργία και λειτουργία του exploit

Μόλις παραδώσουμε και τοποθετήσουμε το Sploit, θα πρέπει να συναρμολογηθεί/διαμόρφωση. Κατά κανόνα, τα exploits γράφονται σε C ή σε μία από τις γλώσσες δέσμης ενεργειών Python/Perl/PHP. Οι τακτικοί αναγνώστες ][ γνωρίζουν ότι το να αφήνετε έναν μεταγλωττιστή στον διακομιστή σας δεν είναι ό,τι καλύτερο Η καλύτερη απόφαση, οπότε συνήθως κόβεται. Εάν η ερώτησή σας σχετικά με την έκδοση μεταγλωττιστής gcc-v bash θα ορκιστεί gcc: η εντολή δεν βρέθηκε , που σημαίνει ότι είστε "τυχεροί" και θα πρέπει να πάτε γύρω. Δηλαδή, είτε αναζητήστε ένα υπολογιστικό φύλλο σε Python, Perl ή κάτι άλλο, είτε μεταγλωττίστε το εικονική μηχανήμε παρόμοιο λειτουργικό σύστημα και έκδοση πυρήνα. Στη συνέχεια, μετακινήστε το εκτελέσιμο αρχείο που προκύπτει στον κεντρικό υπολογιστή προορισμού (ωστόσο, αυτή η μέθοδος δεν εγγυάται 100% λειτουργία· το exploit μπορεί να πέσει και να καταρρεύσει το σύστημα, γι' αυτό να είστε προσεκτικοί εδώ). Ωστόσο, όπως δείχνει η πρακτική, στο σύστημα πρέπει να υπάρχει διερμηνέας για μία από τις αναφερόμενες γλώσσες. Επομένως, δεν πρέπει να τα παρατήσετε αμέσως, ας ελέγξουμε όλες τις επιλογές:

Εύρεση / -name perl* find / -name python* find / -name gcc* find / -name cc

Εάν είναι επιτυχής, το μόνο που έχετε να κάνετε είναι να εκτελέσετε το μεταγλωττισμένο exploit και να απολαύσετε την προώθηση. Λοιπόν, ή καταλάβετε γιατί δεν λειτούργησε, ανάλογα με την τύχη σας.

Counteracting Sploits

Είναι δύσκολο να βρείτε καινοτόμες συνταγές εδώ. Όλα είναι γνωστά εδώ και πολύ καιρό. Απλά πρέπει να εγκαταστήσετε τα patches στην ώρα τους. Αυτό είναι το πρώτο. Το δεύτερο είναι να περιοριστούν τα σημεία από τα οποία μπορούν να εκτελεστούν τα αρχεία (ο φάκελος tmp θα πρέπει οπωσδήποτε να στερηθεί αυτή τη δυνατότητα). Λοιπόν, εφαρμόστε κάποιο είδος λύσης ασφαλείας, για παράδειγμα grsecurity.

Δικαιώματα, αρχεία, διαδρομές και ρυθμίσεις παραμέτρων

Η δεύτερη κατηγορία που μπορεί να διακριθεί στην αύξηση των προνομίων είναι μέθοδοι που δεν σχετίζονται με τη χρήση exploits, αλλά βασίζονται στην αναζήτηση αρχείων με εσφαλμένα καθορισμένα δικαιώματα. Εδώ, όπως και στην περίπτωση των Windows, υπάρχουν μερικά κόλπα, αλλά βασικά εξακολουθεί να είναι η ίδια δουλειά συλλογής και ανάλυσης δεδομένων. Συνήθως, το πρώτο πράγμα που πρέπει να αναζητήσετε είναι αρχεία που είναι αναγνώσιμα και εγγράψιμα από όλους:
βρείτε / -perm 2 ! -τύπος l -ls

Μπορεί να υπάρχει αρκετά μεγάλος αριθμός από αυτά, και μεταξύ αυτών μπορείτε να βρείτε κάτι ενδιαφέρον: αρχεία ρυθμίσεων, πηγές τοποθεσιών/εφαρμογών, σενάρια που εκκινήθηκαν από το init ή το cron. Κατ 'αρχήν, μια κατάσταση όπου ένα αρχείο είναι αναγνώσιμο και εγγράψιμο από όλους είναι φυσιολογική. Προβλήματα προκύπτουν όταν οι χρήστες/διαχειριστές/σενάρια αρχίζουν να αλλάζουν αλόγιστα τα δικαιώματα. Επομένως, όταν αλλάζετε δικαιώματα, προσπαθήστε να αποφύγετε τη χρήση του chmod 777 . Λοιπόν, πραγματοποιήστε περιοδικούς ελέγχους σε σημαντικά αρχείαδεν ήταν διαθέσιμα σε όλους.

Setuid+setgid

Όπως αναφέρει η τεκμηρίωση, το setuid και το setgid είναι σημαίες δικαιωμάτων που επιτρέπουν την εκτέλεση εκτελέσιμων με τα δικαιώματα του κατόχου ή της ομάδας του εκτελέσιμου αρχείου (συνήθως root). Τέτοια εκτελέσιμα αρχεία, όταν εκτελούνται με αυξημένα δικαιώματα, μπορούν να έχουν πρόσβαση σε περισσότερες προνομιακές πληροφορίες. Για παράδειγμα, εάν ορίσετε το setuid στην εντολή ls, θα μπορείτε να προβάλετε τα περιεχόμενα των καταλόγων στους οποίους αρχικά σας απαγορεύτηκε η πρόσβαση. Και στην περίπτωση του vim, μπορώ να επεξεργαστώ αρχεία ρυθμίσεων που δεν είχα το δικαίωμα να εξετάσω πριν.

Αντίστοιχα, εάν οι εφαρμογές με το σύνολο σημαιών setuid/setgid περιέχουν τρωτά σημεία όπως υπερχείλιση buffer ή ένεση εντολών, τότε ένας εισβολέας μπορεί να εκτελέσει αυθαίρετο κώδικα με αυξημένα δικαιώματα. Επομένως, η επόμενη επιλογή είναι συνήθως να αναζητήσετε εκτελέσιμα αρχεία με αυτές τις σημαίες.
sudo find / -xdev \(-perm 4000\) -type f -print0 -exec ls -s () \;

Κατ 'αρχήν, μπορείτε να το κάνετε χωρίς sudo, αυτό είναι απαραίτητο μόνο για να ελέγξετε τους καταλόγους στους οποίους δεν έχετε πρόσβαση.

Υπάρχουν συνήθως τρεις επιλογές για περαιτέρω χρήση τέτοιων εκτελέσιμα αρχεία. Το πρώτο είναι να προσπαθήσετε να αυξήσετε τα προνόμια με βάση τη λειτουργικότητα που παρέχει αυτή η εφαρμογή (ή μάλλον, να βρείτε τον δικό σας τρόπο ασυνήθιστη χρήσηαυτή η λειτουργικότητα). Η δεύτερη επιλογή είναι να βρείτε ένα δημόσιο exploit ή να πραγματοποιήσετε ανεξάρτητο fuzzing για τον εντοπισμό σφαλμάτων. Το τρίτο είναι η ένεση εντολών. Δεν υπάρχει καθολική συνταγή, όλα εξαρτώνται από την κατάσταση.

SUDO

Η εντολή sudo (υποκατάστατος χρήστης και do), που κυριολεκτικά σημαίνει "αντικαταστήστε έναν χρήστη και εκτελέστε", σας επιτρέπει να εκχωρήσετε ορισμένους προνομιούχους πόρους στους χρήστες ενώ διατηρείτε ένα αρχείο καταγραφής της εργασίας. Δηλαδή, παρέχει στους χρήστες τη δυνατότητα να εκτελούν εντολές ως root (ή άλλους χρήστες) χρησιμοποιώντας τους δικός σας κωδικός πρόσβασης, όχι τον κωδικό πρόσβασης root. Οι κανόνες για τη λήψη αποφάσεων πρόσβασης βρίσκονται στο αρχείο /etc/sudoers. Μπορείτε να μάθετε περισσότερα σχετικά με τη μορφή αυτού του αρχείου και τη ρύθμιση των κανόνων στο επίσημο εγχειρίδιο ή στη Wikipedia. Θα πω μόνο ότι αυτό το αρχείο πρέπει επίσης να ελεγχθεί προσεκτικά. Επειδή συμβαίνει συχνά ορισμένες εφαρμογές να το αλλάζουν κατά την εγκατάσταση και, επιπλέον, όχι μέσα καλύτερη πλευρά. Ως αποτέλεσμα, οι χρήστες έχουν την ευκαιρία να αυξήσουν τα προνόμιά τους (μια ανάρτηση στο Offensive Security που λέει για μια τέτοια περίπτωση).

ΜΟΝΟΠΑΤΙ

Όπως και στα Windows, στο Linux οι εσφαλμένα διαμορφωμένες διαδρομές θα βοηθήσουν επίσης στην αύξηση των προνομίων σας. Αυτό συμβαίνει συνήθως με τη μεταβλητή περιβάλλοντος PATH (χρησιμοποιήστε printenv για να την προβάλετε). Κοίταξες; Ωραία, τώρα πείτε μου: τι γίνεται αν η μεταβλητή περιβάλλοντος PATH ξεκινά με. (.:/bin:/usr/sbin ....); Αυτό γίνεται συνήθως από χρήστες που δεν θέλουν να πληκτρολογήσουν δύο επιπλέον χαρακτήρες, δηλαδή θέλουν να καλέσουν την εντολή ως εξής: πρόγραμμα $ αντί για $ ./program . Πρόσθεση. στο PATH σημαίνει τη δυνατότητα εκτέλεσης αρχείων/σεναρίων από τον κατάλογο εργασίας. Μπορείτε να το προσθέσετε ως εξής:

PATH=.:$(PATH) PATH εξαγωγής

Τώρα φανταστείτε την κατάσταση που έχουμε δύο χρήστες: τον Joe (επιθετικός) και τον Bob. Ο Joe γνωρίζει ότι ο Bob έχει δικαιώματα sudo για να αλλάξει τους κωδικούς πρόσβασης χρηστών, συμπεριλαμβανομένου του root. Άλλωστε ο Μπομπ είναι τεμπέλης και προστίθεται. στη μεταβλητή περιβάλλοντος PATH. Ο Wile Joe γράφει ένα πρόγραμμα που θα αλλάξει τον κωδικό πρόσβασης root, το ονομάζει ls και το βάζει σε ένα φάκελο όπου ο Bob θέλει να κοιτάζει. Τώρα, όταν ο τελευταίος μπει στο φάκελο και θέλει να δει τα περιεχόμενά του, θα εκτελεστεί το πρόγραμμα που έγραψε ο Τζο και θα αλλάξει ο κωδικός πρόσβασης root. Επομένως, ελέγχουμε πάντα τις μεταβλητές περιβάλλοντος για την παρουσία ενδιαφέροντων πραγμάτων και για τον εαυτό μας εξάγουμε τα ακόλουθα συμπεράσματα:

  1. Δεν το χρησιμοποιούμε ποτέ. στη μεταβλητή PATH.
  2. Εάν το σημείο εξακολουθεί να υπάρχει εκεί, τοποθετήστε το επόμενη γραμμήσε .bashrc ή .profile:
    PATH= ηχώ $PATH | sed -e "s/::/:/g; s/:.:/:/g; s/:.$//; s/^://"

Εργαλεία

Για να αυτοματοποιήσετε την αναζήτηση για αδύναμα σημεία, μπορείτε να χρησιμοποιήσετε τα ακόλουθα εργαλεία:

1. Το LinEnum είναι ένα σενάριο bash που θα κάνει όλη τη βρώμικη δουλειά για εσάς, εκτελώντας όλους τους ελέγχους που περιγράφονται σε αυτό το cheat sheet. Συνολικά, έχει περίπου 65 διαφορετικούς ελέγχους, που κυμαίνονται από τη λήψη πληροφοριών σχετικά με την έκδοση του πυρήνα έως την αναζήτηση για δυνητικά ενδιαφέροντα αρχεία SUID/GUID. Επιπλέον, μπορείτε να περάσετε το σενάριο λέξη-κλειδί, το οποίο θα αναζητήσει σε όλα τα αρχεία διαμόρφωσης και καταγραφής. Ο έλεγχος ξεκινά ως εξής: ./LinEnum.sh -k λέξη-κλειδί -r report -e /tmp/ -t . Αφού ολοκληρωθεί η σάρωση, θα σας παρουσιαστεί μια αρκετά λεπτομερής αναφορά, τα περισσότερα ενδιαφέροντα μέρηπου θα τονιστεί με κίτρινο χρώμα.
2. LinuxPrivChecker - Ένα σενάριο Python που είναι επίσης χρήσιμο στην αναζήτηση πιθανών επιλογών για την κλιμάκωση των προνομίων. Γενικά, κάνει όλα τα ίδια τυπικά πράγματα: έλεγχος προνομίων, λήψη πληροφοριών για το σύστημα... Αλλά το κύριο χαρακτηριστικό του είναι ότι μετά την ολοκλήρωση του ελέγχου, θα σας προσφέρει μια λίστα με εκμεταλλεύσεις που, κατά τη γνώμη του, θα βοηθήσουν αυξήσει τα προνόμια. Τόσο καλός τύπος :).
3. unix-privesc-check - αυτό το σενάριοσας επιτρέπει να αναζητήσετε επιλογές για την αναβάθμιση των προνομίων όχι μόνο στο Linux, αλλά και στα Solaris, HPUX, FreeBSD. Προσπαθεί να εντοπίσει σφάλματα διαμόρφωσης που θα επέτρεπαν σε έναν μη προνομιούχο χρήστη να ανέβει στο σύστημα.
4. g0tmi1k’s Blog - και αυτό είναι ένα blog στο οποίο περιγράφονται καλά όλοι οι έλεγχοι που εκτελούνται από τα τρία επώνυμα εργαλεία. Σας συνιστώ λοιπόν ανεπιφύλακτα να ρίξετε μια ματιά εκεί και να το εξοικειωθείτε για να φανταστείτε πώς λειτουργούν αυτά τα εργαλεία από μέσα.



Το LinuxPrivChecker περιέχει μια μεγάλη λίστα εκμεταλλεύσεων, η οποία ενημερώνεται συνεχώς από τη βάση δεδομένων Exploit

Επίλογος

Όπως έχετε δει, στον κόσμο του Linux, η αύξηση των προνομίων είναι επίσης αρκετά συνηθισμένη. Το μυστικό της επιτυχίας είναι απλό: για να πετύχεις τον στόχο σου, πρέπει να έχεις υπομονή και να ξέρεις πού να ψάξεις και τι να ψάξεις. Πού να κοιτάξετε, τώρα ξέρετε ποια βοηθητικά προγράμματα να χρησιμοποιήσετε και για αυτοματισμό, οπότε τώρα μπορείτε να κατακτήσετε όχι μόνο ένα σύστημα win, αλλά και ένα σύστημα nix. Καν 'το!

χρήστης root και sudo

Ο χρήστης root στα συστήματα GNU/Linux είναι ένας χρήστης που έχει πρόσβαση διαχειριστή στο σύστημά σας. Οι τακτικοί χρήστες δεν έχουν αυτήν την πρόσβαση λόγω έλλειψης πρόσβασης. Ωστόσο, το Kubuntu δεν έχει χρήστη root. Αντίθετα, παρέχεται πρόσβαση διαχειριστή σε μεμονωμένους χρήστες, οι οποίοι μπορούν να χρησιμοποιήσουν την εφαρμογή "sudo" για την εκτέλεση διαχειριστικών εργασιών. Πρώτα λογαριασμός, που δημιουργήθηκε κατά την εγκατάσταση του συστήματος, θα έχει από προεπιλογή πρόσβαση στην εφαρμογή sudo. Μπορείτε να αρνηθείτε την πρόσβαση sudo ή να την παραχωρήσετε χρησιμοποιώντας μια εφαρμογή Χρήστες και Ομάδες (Βλ. «Χρήστες και Ομάδες»).

Εάν εκτελείτε ένα πρόγραμμα που απαιτεί δικαιώματα υπερχρήστη, το sudo θα σας ζητήσει να εισαγάγετε το κανονικό σας Κωδικός Χρήστη. Αυτό διασφαλίζει κακόβουλες εφαρμογέςδεν θα βλάψει το σύστημά σας και θα σας υπενθυμίσει επίσης ότι πρόκειται να εκτελέσετε διοικητικές ενέργειες που απαιτούν ιδιαίτερη προσοχή!

Για να χρησιμοποιήσετε το sudo στο γραμμή εντολών, απλώς πληκτρολογήστε "sudo" πριν από την εντολή που θέλετε να εκτελέσετε. Μετά από αυτό, το sudo θα σας ζητήσει να εισαγάγετε τον κωδικό πρόσβασής σας.

Το Sudo θα θυμάται τον κωδικό πρόσβασής σας ορίστε χρόνο(προεπιλογή 15 λεπτά). Αυτή η δυνατότητα επιτρέπει στους χρήστες να εκτελούν μεγάλο αριθμό διαχειριστικών εργασιών χωρίς να χρειάζεται να εισάγουν κωδικό πρόσβασης κάθε φορά.

Προσοχή

Να είστε προσεκτικοί όταν εκτελείτε διοικητικές εργασίες - μπορεί να καταστρέψετε το σύστημά σας!

Μερικές συμβουλές για τη χρήση του sudo:

    Για να χρησιμοποιήσετε το τερματικό του χρήστη root, πληκτρολογήστε "sudo -i" στη γραμμή εντολών

    Ολόκληρη η ομάδα βοηθητικών προγραμμάτων γραφικής διαμόρφωσης στο Kubuntu χρησιμοποιεί ήδη sudo, οπότε εάν χρειαστεί θα σας ζητηθεί κωδικός πρόσβασης χρησιμοποιώντας την εφαρμογή kdesu, το οποίο είναι γραφικό κέλυφος sudo .

    Για περισσότερες πληροφορίες σχετικά με το πρόγραμμα sudoκαι την απουσία χρήστη root στο Kubuntu, δείτε τη σελίδα sudo στο wiki του Ubuntu.

Εκτέλεση προγραμμάτων με μη αυτόματο τρόπο με δικαιώματα root

Μερικές φορές είναι απαραίτητο να εκτελέσετε ένα πρόγραμμα με δικαιώματα root. Αυτό είναι εύκολο να γίνει χρησιμοποιώντας το διάλογο Εκτέλεση εντολής .

Προσοχή

Να είστε προσεκτικοί όταν εκτελείτε εφαρμογές με δικαιώματα root, καθώς μπορεί να καταστρέψει το σύστημά σας. Πίσω Επιπλέον πληροφορίεςδείτε "Ο χρήστης root και το sudo".

    Ανοιχτός διάλογος Εκτέλεση εντολής πατώντας Alt -F2

    Εισαγάγετε το όνομα του προγράμματος που θέλετε να εκτελέσετε, με πρόθεμα kdesuκαι πατήστε Εισαγω. Για παράδειγμα, για να τρέξετε διαχείριση αρχείων Κατακτητήςμε δικαιώματα root, πληκτρολογήστε

    |

    Το Linux είναι ένα λειτουργικό σύστημα πολλών χρηστών που χρησιμοποιεί την έννοια των προνομίων Unix για να παρέχει ασφάλεια σε επίπεδο ασφάλειας. σύστημα αρχείων. Όταν εργάζεστε με Linux, είναι πολύ σημαντικό να κατανοήσετε τι είναι τα δικαιώματα και η ιδιοκτησία. Αυτό το άρθρο θα σας βοηθήσει να κατανοήσετε τις βασικές έννοιες που σχετίζονται με τα δικαιώματα χρήστη Linux.

    Απαιτήσεις

    • Βασικές δεξιότητες Linux.
    • Διακομιστής Linux (προαιρετικό).

    Χρήστες Linux

    Δεδομένου ότι το Linux είναι ένα σύστημα πολλών χρηστών, είναι σημαντικό να κατανοήσουμε πώς λειτουργούν οι χρήστες και οι ομάδες. Ας δούμε αυτές τις έννοιες με περισσότερες λεπτομέρειες.

    Υπάρχουν δύο τύποι χρηστών στο Linux: συστήματος και κανονικοί. Οι χρήστες του συστήματος έχουν σχεδιαστεί για να εκτελούν μη διαδραστικά και διαδικασίες φόντου, και οι τακτικοί χρήστες είναι υπεύθυνοι για την ολοκλήρωση διαδραστικών εργασιών. Όταν συνδέεστε στο σύστημα Linux σας για πρώτη φορά, μπορεί να έχετε παρατηρήσει ότι ξεκινά πολύ χρήστες του συστήματος, το οποίο με τη σειρά του εκτοξεύεται διάφορες υπηρεσίες, από το οποίο εξαρτάται το σύστημα.

    Για να δείτε όλους τους χρήστες στο σύστημα, ελέγξτε το αρχείο /etc/passwd. Κάθε γραμμή σε αυτό το αρχείο περιέχει πληροφορίες για έναν μεμονωμένο χρήστη, ξεκινώντας με το όνομα χρήστη (πριν από τον πρώτο χαρακτήρα άνω και κάτω τελείας). Για να εμφανίσετε τα περιεχόμενα του αρχείου στην οθόνη, πληκτρολογήστε:

    Υπερχρήστης

    Εκτός από τους δύο κύριους τύπους χρηστών στο Linux, υπάρχει επίσης ένας υπερχρήστης, ή root. Αυτός ο χρήστης μπορεί να παρακάμψει τα δικαιώματα άλλων χρηστών σε αρχεία και να περιορίσει την πρόσβαση. Ουσιαστικά, ο υπερχρήστης έχει δικαιώματα πρόσβασης σε όλα τα αρχεία που υπάρχουν στον διακομιστή. Αυτός ο χρήστης έχει το δικαίωμα να κάνει αλλαγές σε όλο το σύστημα, επομένως η ασφάλειά του είναι πολύ σημαντική για την ασφάλεια του ίδιου του διακομιστή.

    Μπορείτε επίσης να διαμορφώσετε άλλους χρήστες για να εκτελούν δικαιώματα υπερχρήστη. Για να γίνει αυτό, πρέπει να δώσετε στον κανονικό χρήστη πρόσβαση στην εντολή sudo. ΣΕ καθημερινή εργασίαΣυνιστάται ο διαχειριστής του διακομιστή να χρησιμοποιεί έναν τέτοιο λογαριασμό με εκτεταμένα δικαιώματα, αφού χρησιμοποιώντας rootεπί μόνιμη βάσηεπικίνδυνο και μπορεί να καταστρέψει το σύστημα.

    Ομάδες Linux

    Οι ομάδες είναι συλλογές 0 ή περισσότερων χρηστών. Ο χρήστης ανήκει στην προεπιλεγμένη ομάδα και μπορεί επίσης να είναι μέλος οποιασδήποτε από τις άλλες ομάδες.

    Για προβολή όλων διαθέσιμες ομάδεςκαι λίστες με τα μέλη τους, ανοίξτε το αρχείο /etc/group.

    Δικαιώματα ιδιοκτησίας και πρόσβασης αρχείων

    Στο Linux, κάθε αρχείο ανήκει σε έναν χρήστη και μια ομάδα και έχει μεμονωμένες ρυθμίσειςπρόσβαση.

    Για να δείτε τα δικαιώματα, χρησιμοποιήστε την εντολή ls. Έχει μια μεγάλη λίστα επιλογών (π.χ. ls -l myfile). Για να προβάλετε τις ρυθμίσεις πρόσβασης αρχείων στον τρέχοντα κατάλογο, εκτελέστε την εντολή χωρίς ορίσματα:

    Για να ρωτήσετε τα περιεχόμενα του καταλόγου /etc, πληκτρολογήστε:

    Η πρώτη στήλη της εξόδου υποδεικνύει τη λειτουργία πρόσβασης στο αρχείο, η δεύτερη και η τρίτη στήλη περιέχουν το όνομα χρήστη και την ομάδα, η τέταρτη - το μέγεθος του αρχείου, η πέμπτη - η ημερομηνία του τελευταία αλλαγή, η τελευταία στήλη δείχνει το όνομα του αρχείου.

    Γενικά, η έξοδος της εντολής ls είναι αρκετά κατανοητή, εκτός ίσως από την πρώτη στήλη, η οποία περιγράφει τα δικαιώματα αρχείων. Μοιάζει κάπως έτσι:

    drwxrwxrwx
    drwxrwx---
    -rw-rw----
    drwx------
    -rw-------

    Για να κατανοήσουμε τι σημαίνουν αυτά τα γράμματα και οι παύλες, ας χωρίσουμε τα περιεχόμενα της στήλης στα συστατικά της. Η πρώτη γραμμή του παραπάνω παραδείγματος μπορεί να χωριστεί στις ακόλουθες κατηγορίες:

    d rwx(1) rwx(2) rwx(3)

    • d – πεδίο τύπου αρχείου.
    • rwx(1) – δικαιώματα του χρήστη που κατέχει το αρχείο.
    • rwx(2) – δικαιώματα της ιδιοκτήτριας ομάδας.
    • rwx(3) – δικαιώματα άλλων χρηστών.

    Τύποι αρχείων

    Υπάρχουν δύο κύριοι τύποι αρχείων στο Linux: τα κανονικά και τα ειδικά.

    Τα κανονικά αρχεία αναγνωρίζονται με μια παύλα στο πεδίο τύπου. Τα κανονικά αρχεία είναι απλά αρχεία, στο οποίο μπορούν να αποθηκευτούν δεδομένα.

    Ένα αρχείο είναι ειδικό εάν το πεδίο τύπου περιέχει ένα γράμμα. Τέτοια αρχεία υποβάλλονται σε επεξεργασία λειτουργικό σύστημαδιαφορετικά από τα κανονικά αρχεία. Το σύμβολο στο πεδίο τύπου αρχείου υποδεικνύει τον τύπο ειδικά αρχείαισχύει συγκεκριμένο αρχείο. Ο πιο συνηθισμένος τύπος ειδικού αρχείου είναι ένας κατάλογος (ή κατάλογος), που προσδιορίζεται με το σύμβολο d (όπως στο παραπάνω παράδειγμα). ΣΕ Σύστημα LinuxΥπάρχουν διάφοροι τύποι ειδικών αρχείων, αλλά αυτό το θέμαείναι εκτός του πεδίου εφαρμογής αυτού του άρθρου.

    Πρόσβαση σε τάξεις

    Όπως αναφέρθηκε προηγουμένως, κάθε αρχείο έχει ρυθμίσεις για τρεις κατηγορίες(ή πρόσβαση σε τάξεις):

    1. χρήστης – κάτοχος αρχείου.
    2. ομάδα - ο κάτοχος του αρχείου (αυτή η κλάση περιλαμβάνει όλα τα μέλη της ομάδας στην οποία ανήκει ο χρήστης - ο κάτοχος του αρχείου).
    3. και άλλους χρήστες (αυτή η κατηγορία περιλαμβάνει όλους τους χρήστες που δεν ανήκουν στις προηγούμενες κλάσεις).

    Όλες οι διανομές Linux ακολουθούν αυτή τη σειρά προνομίων.

    Τύποι πρόσβασης

    • r (ανάγνωση) – το δικαίωμα ανάγνωσης του αρχείου,
    • w (εγγραφή) – δικαίωμα αλλαγής (επεξεργασία),
    • x (εκτέλεση) – το δικαίωμα εκτέλεσης (σε ορισμένες ειδικές περιπτώσεις, μπορεί να χρησιμοποιηθεί άλλος χαρακτήρας αντί του x).

    Αν υπάρχει παύλα αντί για σύμβολο, σημαίνει αυτή η τάξηδεν έχει τα κατάλληλα δικαιώματα πρόσβασης. Για παράδειγμα:

    Σε αυτήν την περίπτωση, ο χρήστης και η ομάδα - οι κάτοχοι του αρχείου - έχουν όλα τα δικαιώματα πρόσβασης και για άλλους χρήστες η πρόσβαση στο αρχείο απαγορεύεται πλήρως.

    Ας ρίξουμε μια πιο προσεκτική ματιά στο τι ακριβώς παρέχει κάθε τύπος πρόσβασης.

    Σημείωση: Για να διασφαλιστεί η κανονική πρόσβαση σε αρχεία και καταλόγους, οι τύποι πρόσβασης χρησιμοποιούνται συχνά σε συνδυασμό μεταξύ τους.

    Άδεια ανάγνωσης του αρχείου

    Το δικαίωμα ανάγνωσης ενός κανονικού αρχείου είναι η δυνατότητα προβολής του περιεχομένου του.

    Η άδεια ανάγνωσης σε έναν κατάλογο επιτρέπει στον χρήστη να προβάλλει τα ονόματα των αρχείων που είναι αποθηκευμένα σε αυτόν.

    Δικαίωμα αλλαγής αρχείου

    Στην περίπτωση ενός κανονικού αρχείου, αυτό το δικαίωμα δίνει στον χρήστη τη δυνατότητα να αλλάξει τα περιεχόμενα του αρχείου ή να το διαγράψει.

    Εάν ένας χρήστης έχει τον σωστό κατάλογο Επεξεργασία, τότε αυτός ο χρήστης μπορεί να διαγράψει τον κατάλογο, να αλλάξει τα περιεχόμενά του (δηλαδή, να δημιουργήσει, να μετονομάσει ή να διαγράψει αρχεία σε αυτόν) και τα περιεχόμενα των αρχείων που είναι αποθηκευμένα σε αυτόν.

    Δικαίωμα εκτόξευσης

    Έχοντας αυτό το δικαίωμα, ο χρήστης μπορεί να τρέξει κανονικό αρχείο, αλλά για αυτό χρειάζεται επίσης δικαιώματα ανάγνωσης αυτού του αρχείου. Πρέπει να οριστούν τα δικαιώματα εκκίνησης εκτελέσιμα προγράμματακαι σενάρια κελύφους.

    Εάν ένας χρήστης έχει το δικαίωμα να εκκινήσει έναν κατάλογο, τότε μπορεί να διαβάσει έναν τέτοιο κατάλογο και επίσης να έχει πρόσβαση στα μεταδεδομένα του σχετικά με τα αποθηκευμένα αρχεία.

    Παραδείγματα προνομίων

    Τώρα ας δούμε μερικά χρήσιμα κοινά παραδείγματαδικαιώματα πρόσβασης σε αρχεία.

    • -rw——-: Μόνο ο χρήστης στον οποίο ανήκει το αρχείο έχει πρόσβαση στο αρχείο.
    • -rwxr-xr-x: Οποιοσδήποτε χρήστης στο σύστημα μπορεί να εκτελέσει ένα τέτοιο αρχείο.
    • -rw-rw-rw-: κάθε χρήστης του συστήματος έχει το δικαίωμα να αλλάξει ένα τέτοιο αρχείο.
    • drwxr-xr-x: οποιοσδήποτε χρήστης στο σύστημα μπορεί να διαβάσει αυτόν τον κατάλογο.
    • drwxrwx—: Τα περιεχόμενα του καταλόγου μπορούν να διαβαστούν και να τροποποιηθούν μόνο από τον ιδιοκτήτη και την ομάδα.

    Όπως μπορείτε να δείτε, ο χρήστης που κατέχει το αρχείο έχει συνήθως όλα τα δικαιώματα για το αρχείο (ή, σύμφωνα με τουλάχιστον, έχει περισσότερα δικαιώματα από άλλες τάξεις). Για λόγους ασφαλείας, τα αρχεία θα πρέπει να είναι προσβάσιμα μόνο σε εκείνους τους χρήστες που χρειάζονται πρόσβαση σε αυτά για συγκεκριμένο λόγο.

    Υπάρχουν πολλοί συνδυασμοί δικαιωμάτων πρόσβασης, αλλά μόνο ορισμένοι από αυτούς είναι χρήσιμοι σε κάθε δεδομένη περίπτωση. Για παράδειγμα, τα δικαιώματα τροποποίησης και εκτέλεσης συνδυάζονται σχεδόν πάντα με δικαιώματα ανάγνωσης ενός αρχείου, καθώς ένα αρχείο είναι δύσκολο να τροποποιηθεί και αδύνατο να εκτελεστεί χωρίς δικαιώματα ανάγνωσης.

    Σημείωση: Για να μάθετε πώς μπορείτε να αλλάξετε τα δικαιώματα πρόσβασης, διαβάστε. Μιλάει για τη χρήση των εντολών chown, chgrp και chmod.

    συμπέρασμα

    Τώρα είστε εξοικειωμένοι με τις βασικές έννοιες που σχετίζονται με τα δικαιώματα και την ιδιοκτησία σε περιβάλλον Linux.

    Ετικέτες:

    Σε πολλά εγχειρίδια linux (και όχι μόνο linux) για θέματα ασφάλειας, υπάρχουν τακτικά συστάσεις για την εκτέλεση όλων των μη διαχειριστικών ενεργειών υπό έναν χρήστη που δεν έχει δικαιώματα διαχειριστή/υπερχρήστη. Με απλά λόγια, όλοι συνιστούν να μην εργάζεστε συνεχώς κάτω root χρήστηκαι καταφεύγουν στην εργασία ως root μόνο όταν είναι απαραίτητο.
    Στην πραγματικότητα, σε πολλές περιπτώσεις καθίσταται απαραίτητο να εκτελούνται διεργασίες κάτω από έναν χρήστη που όχι μόνο δεν έχει δικαιώματα ρίζας, αλλά επίσης δεν μπορεί να ανυψώσει τα δικαιώματά του στο root. Καμία περίπτωση, καμία περίπτωση. Αυτή η ανάγκη προκύπτει (είναι λογικό να δημιουργούνται τέτοιοι χρήστες) για υπηρεσίες που εκτελούνται στον διακομιστή. Για παράδειγμα, Apache, Asterisk και ούτω καθεξής. Δηλαδή, ώστε κάποιος που μπορεί να αποκτήσει τα δικαιώματα ενός τέτοιου χρήστη όχι μόνο δεν θα λάμβανε δικαιώματα root, αλλά έστω και (ξαφνικά) θα το μάθει κωδικό πρόσβασης root, δεν θα μπορούσα να συνδεθώ με αυτόν τον κωδικό πρόσβασης (για να αυξήσω τα προνόμιά μου).

    Σε παλαιότερες εκδόσεις του Linux, η προεπιλεγμένη λειτουργία ορίστηκε στην ακόλουθη λειτουργία: οι χρήστες που ανήκουν στην ομάδα τροχών μπορούν να εκτελέσουν την εντολή su, αλλά όλοι οι άλλοι δεν μπορούν. Δηλαδή, ο καθένας μπορεί να τρέξει το su, αλλά για χρήστες όχι από την ομάδα τροχών, την εντολή su ακόμη και με σωστό κωδικό πρόσβασηςΤο root θα ρίξει ένα σφάλμα.
    ΣΕ σύγχρονες εκδόσεις linux, για παράδειγμα, CentOS και Debian, αυτή η δυνατότητα είναι απενεργοποιημένη από προεπιλογή, π.χ. όλοι οι χρήστες μπορούν να αυξήσουν τα δικαιώματά τους (γνωρίζοντας τον κωδικό πρόσβασης root). Σε αυτό το άρθρο θα δείξουμε πώς να επιστρέψετε τη λειτουργία που ήταν πριν - έτσι ώστε μόνο οι χρήστες από την ομάδα τροχών να μπορούν να "ανεβάσουν" τα προνόμιά τους.

    Από πού να ξεκινήσω

    Πρώτα απ 'όλα, πρέπει να προστατεύσετε τον εαυτό σας. Δηλαδή, φροντίστε να προσθέσετε τον χρήστη στον οποίο εργάζεστε στην ομάδα ρόδα. Λοιπόν, εάν υπάρχουν αρκετοί χρήστες που εργάζονται στο σύστημα, υπό τους οποίους είναι απαραίτητο να αυξάνονται τα προνόμια για root από καιρό σε καιρό, τότε κάθεαπό αυτούς τους χρήστες πρέπει να περιλαμβάνονται ομάδα τροχών!
    Σημειώστε ότι αυτό είναι σημαντικό να κάνετε πρινπώς αλλάζεις ρυθμίσεις linux, διαφορετικά (εάν, για παράδειγμα, συνδεθείτε στον διακομιστή μέσω SSH, δεν επιτρέπεται η πρόσβαση μέσω SSH κάτω από το root) πραγματοποιώντας είσοδο στο τακτικός χρήστηςμέσω SSH, δεν θα μπορείτε να κλιμακώσετε τα προνόμιά σας στο root!

    Δημιουργία ομαδικού τροχού

    Είναι πιθανό η έκδοση του Linux να μην έχει την ομάδα τροχών από προεπιλογή. Τότε πρέπει να δημιουργηθεί. Υπάρχει η ακόλουθη εντολή για αυτό:
    τροχός προσθήκης ομάδας
    Μην φοβάστε να εισαγάγετε αυτήν την εντολή: εάν υπάρχει ο τροχός ομάδας, θα εμφανίσει ένα μήνυμα ότι μια τέτοια ομάδα υπάρχει ήδη. Εάν δεν υπάρχει τέτοια ομάδα, θα δημιουργηθεί

    Πώς να προσθέσετε έναν χρήστη στην ομάδα τροχών

    Υπάρχει μια εντολή για αυτό:
    usermod -a -G wheel όνομα χρήστη
    Για παράδειγμα:
    usermod -a -G wheel όνομα χρήστη

    Αυτή η εντολή προσθέτει όνομα χρήστη στην ομάδα τροχών. Εάν ο χρήστης είναι μέλος μιας ή περισσότερων άλλων ομάδων, η ιδιότητα μέλους σε όλες τις ομάδες διατηρείται, ο χρήστης απλώς προστίθεται σε μια άλλη (πρόσθετη) ομάδα.

    Τώρα ελέγξτε ότι όλα γίνονται σωστά. Υπάρχει μια εντολή για αυτό:
    αναγνωριστικό όνομα χρήστη
    Για παράδειγμα:
    αναγνωριστικό όνομα χρήστη

    Θα εμφανιστούν το αναγνωριστικό χρήστη, το όνομα χρήστη και το αναγνωριστικό και το όνομα κάθε ομάδας στην οποία ανήκει ο χρήστης. Φρόντισε τα πάντα απαιτούμενους χρήστεςπροστέθηκε στην ομάδα τροχών.

    Εκτελέστε το su μόνο από χρήστες από την ομάδα τροχών

    Ανοίξτε στο δικό σας επεξεργαστής κειμένουαρχείο: /etc/pam.d/su
    Σε αυτό το αρχείο, αναζητήστε μια γραμμή παρόμοια με την ακόλουθη:
    απαιτείται πιστοποίηση pam_wheel.so
    ή
    απαιτείται πιστοποίηση pam_wheel.so use_uid
    Από προεπιλογή, αυτή η γραμμή ξεκινά με ένα σύμβολο "#", το οποίο μοιάζει με σχόλιο. Αφαιρέστε το σημάδι σχολίου από την αρχή αυτής της γραμμής και αποθηκεύστε το αρχείο.

    Ολα! Τώρα μόνο οι χρήστες από την ομάδα τροχών μπορούν να εκτελέσουν την εντολή su και να κλιμακώσουν τα προνόμιά τους στο root. Μην ξεχάσετε να το ελέγξετε!