Sonderberechtigungen SUID, GUID und Sticky Bit

Sonderberechtigungen SUID, GUID und Sticky Bit
Unter Linux ist alles eine Datei und alles hat Eigentümer. Der Spezialbesitzer ist, bekannt als The Root, auch spezielle Berechtigungen, um alles und jeden zu führen. Alle anderen haben nur begrenzte Berechtigungen und sehr begrenzten Zugriff auf Dateien und Ordner. Um unsere Privilegien zu erhöhen, muss man den Sudo -Befehl verwenden. Es ist jedoch keine gute Idee, zufällige Personen das Stammkennwort zu geben, wenn sie etwas tun müssen, das höhere Privilegien erfordert. Also, was können Sie dann tun?? Nun, wir können so genannt SUID, GUID und Sticky Bits verwenden. In diesem Tutorial werden wir das Konzept von SUID, GUID und Sticky Bits überprüfen.

Suid

SUID- oder SET -Eigentümer -Benutzer -ID ist ein Berechtigungs -Bit -Flag, das für ausführbare Ausführungen gilt. Mit SUID können ein alternativer Benutzer eine ausführbare Datei mit denselben Berechtigungen wie der Eigentümer der Datei anstelle der Berechtigungen des alternativen Benutzers ausführen.

Lassen Sie uns ein Beispiel verwenden, um SUID zu demonstrieren. Angenommen, es gibt drei Benutzer: Kalyani, Sara und John. Angenommen, Kalyani hat einen vollständigen Wurzelzugang; Das heißt, sie kann den Sudo -Befehl mit einem gültigen Passwort verwenden. Nehmen wir weiter an, dass sowohl Sara als auch John weniger oder sehr begrenzte Privilegien auf der Maschine haben. Nehmen wir nun an, dass wir eine ausführbare Datei haben (z. Wohlgemerkt, das ist wichtig; Es gehört zur Root, und daher hat nur Wurzel die Berechtigungen, es auszuführen!!!

Nehmen wir jedoch an, wir weisen es SUID zu. Weil wir es zugewiesen haben, wird SU nicht als Sara oder John, sondern als Wurzel ausgeführt. Technisch gesehen kann Sara ihre Akten ausführen, und John darf seine Dateien ausführen. Sie dürfen keine Dateien ausführen, die zum Root gehören. Wenn sie es ausführen möchten, müssen Sie normalerweise den Sudo -Befehl eingeben. Aber hier führt Sara eine Datei aus, die sie nicht besitzt! Und wir stellen also fest, dass bei der Verwendung von Suids die ausführbare Datei als Eigentümer der Datei, Root und nicht als Person ausgeführt wird (z. B. Sara oder John).

Nehmen wir zum Beispiel den Befehl Passwd. Mit dem Befehl passWD wird das Passwort eines Benutzers geändert. Wenn wir nun die Datei ausführlich betrachten, werden wir feststellen, dass es anstelle eines X, das für die Ausführung steht, ein „S“ geben wird. Das "S" hier steht für SUID. Sie werden weiter beachten, dass die Datei zum Root gehört. Dies bedeutet technisch, dass nur Root die Erlaubnis hat, es auszuführen; Sie werden jedoch feststellen, dass jeder den Befehl ausführen kann. Als solches kann diese spezielle ausführliche Datei mit den SUID -Berechtigungen sowohl von Sara als auch von John ausgeführt werden, wenn sie ihnen nicht wirklich gehört! Sowohl Sara als auch John erhalten die gleichen Berechtigungen als Root, wenn diese spezielle ausführbare Datei ausgeführt wird. Dies ist so, wenn sowohl Sara als auch John keinen Wurzelzugang haben und keine Wurzelrechte haben.

Kurz gesagt, sowohl Sara als auch John werden den Passwd -Befehl ausführen, als wären sie sein Besitzer Root!

Nehmen wir nun für einen Moment an, dass ich die SUID aus dem Passwd -Befehl entferte. Mal sehen, was passieren wird (im Bild unten).

Lassen Sie uns nun sehen, was passieren wird, wenn wir versuchen, den Befehl passwd zu verwenden (sobald die SUID entfernt wurde):

Wie Sie sehen können, lehnte es sich ab. Dies führte zu einem Fehler!

SUID ist nicht leicht genommen zu werden, und als solches muss man bei der Zuweisung sehr vorsichtig sein. In der Tat gibt es spezielle Angriffe in der Cybersicherheit, die genau auf ausführbare Ausführungsgegenstände abzielen, die auf SUID ausgeführt werden.

Um die ausführbaren Ausführungsfähigkeiten zu finden, die einen SUID -Set haben, tippen wir:

# um alle Suids zu bekommen
Finden Sie /-perm -4000 2> /dev /null
# um alle Guids zu erhalten
Finden Sie /-perm -2000 2> /dev /null
# Finden Sie alle klebrigen Teile
Finden Sie /-perm -1000 2> /dev /null

Einstellung von SUID

Jetzt müssen wir lernen, wie man Suids setzt. Es gibt zwei Möglichkeiten, CHMOD zu verwenden: numerisch und symbolisch.

Verwenden der numerischen Methode:

Wir verwenden den folgenden Code, um Berechtigungen festzulegen:

SetUid = 4
Setgid = 2
Klebrig = 1
Keine = 0
Read = 4
Schreiben = 2
Ausführen = 1

Während der regulären Berechtigungen schrieb wir Folgendes:

CHMOD 0777 Ausführbar

Letzteres würde implizieren, dass wir dem Benutzer, der Gruppe und anderen Lesen, Schreiben und Ausführungsberechtigten geben und ausführen. Um eine SUID zu verwenden, schreiben wir Folgendes:

CHMOD 4xxx ausführbar

Ex:

CHMOD 4744 Skript

Hier müssen wir die 4 in der ersten Position beachten. Die 4 gibt SUID -Berechtigungen.

Hier würde es so aussehen:

Das X für die Ausführung wird durch ein "S" ersetzt. Wenn nun die Datei nicht so ausführte, dass eine ausführbare Datei eingestellt ist, wird es sich um ein Kapital s („S“ handelt). Also haben wir hier:

-rwsr-r--

Das „S“ bedeutet, dass SUID festgelegt wurde (und die Datei ist ausführbar)!

Unter Verwendung der symbolischen Methode:

Gleiches kann auch mit der symbolischen Methode durchgeführt werden:

chmod u+s ausführbare Datei

Ex:

Chmod U+s Skript

Jetzt gibt es Zeiten, in denen Sie möglicherweise ein Kapital „S“ sehen,. Das Kapital „S“ bedeutet, dass die Datei noch nicht ausführbar ist.

Um die Suid -Rechte zu widerrufen, type:

CHMOD U-S Ausführbare Datei

Ex:

CHMOD U-S-Skript

Guid

GUID ähnelt SUID. In der SUID wird die betreffende ausführbare Datei mit den Berechtigungen des Eigentümers der Datei ausgeführt. Wenn es eine ausführbare Datei ist, läuft es mit den Berechtigungen der Gruppe aus. Wenn es sich.

So legen Sie die Richt mit der numerischen Methode fest:

Chmod 2xxx ausführbar

Ex:

CHMOD 2744 Skript

Hier ist der Punkt der 2 (in der ersten Position), die für GUID steht.

So setzen Sie die Richt mit der symbolischen Methode:

CHMOD G+S Ausführbare Datei

Ex:

Chmod G+s Skript

Hier sehe ich jedoch zuerst:

Hier gibt es eine Hauptstadt "S". Dies bedeutet, dass die Datei nicht ausführbar ist. Dies kann leicht durch Ausführen des folgenden Codes behoben werden:

CHMOD +X Ausführbares Datei

Ex:

CHMOD +X -Skript

Klebrige Teile

Klebrige Bits gelten für Verzeichnisse. Wenn klebrige Bits in einem bestimmten Verzeichnis festgelegt werden, kann jeder Benutzer, der Zugriff auf das Verzeichnis und seinen Inhalt hat. Klebrige Bits werden normalerweise bei Verwendung eines gemeinsam genutzten Ordners verwendet. Niemand kann die Datei eines anderen in dem freigegebenen Ordner löschen, auch wenn die Genehmigung 777 beträgt.

So setzen Sie klebrige Bits mit der numerischen Methode:

Chmod 1xxx ausführbar

Ex:

Chmod 1744 Skript

Hier verwenden wir die 1 in der ersten Position, um zu bezeichnen, dass es ein klebriges Stück sein wird.

So setzen Sie klebrige Bits mit der symbolischen Methode:

Chmod O+T ausführbar Datei

Ex:

Chmod O+T -Skript

Berechtigungen sind ein entscheidender Bestandteil von Linux. Der CHMOD -Befehl wird normalerweise verwendet, um einfache Berechtigungen festzulegen und zu ändern. Es gibt jedoch spezielle Berechtigungen, die man auch mit dem CHMOD -Befehl einstellen kann. Diese Sonderberechtigungen werden als SUID, GUID und Sticky Bit bezeichnet. Bei einer bestimmten ausführbaren Datei werden spezielle Berechtigungen mit den Berechtigungen des Eigentümers der Datei oder der Gruppe ausgeführt. Mit anderen Worten, es erhöht die Berechtigungen des Benutzers auf die des Eigentümer. Eine falsche Verwendung der besonderen Berechtigungen kann jedoch zu einer ernsthaften Bedrohung werden. Tatsächlich wird es auf dem Gebiet der Cybersicherheit als potenzielle Anfälligkeit zur Eskalation von Privilegien auf einer Maschine verwendet. Verwenden Sie es also mit Bedacht und sehr, sehr sorgfältig!

Glückliche Codierung!