Suchen Sie nach setuid-Binärdateien, um die Linux-Serverhärtung durchzuführen
Der Zweck dieses Tutorials besteht darin, setuid-Binärdateien unter Linux zu finden. Es ist sehr gut möglich, dass auf Ihrem Linux-Server mehr Pakete installiert sind, als Sie wirklich benötigen. Um es noch schlimmer zu machen, können diese zusätzlichen Pakete eine Handvoll Binärdateien enthalten, bei denen setuid und setguid aktiviert sind.
Auf Linux-Systemen haben einige Binärdateien eine setuid-Berechtigung, die eine spezielle Linux-Berechtigung ist, die bewirkt, dass eine ausführbare Datei nicht mit den Rechten des Benutzers ausgeführt wird, der sie gestartet hat, sondern mit denen des Dateibesitzers.
Wenn eine oder mehrere Binärdateien Ihres Systems die setuid-Berechtigung gesetzt haben, kann dies zu unnötigen Risiken führen, da es nur eine Frage der Zeit sein könnte, dass einige Ihrer Shell-Benutzer diese Sicherheitslücke ausnutzen, um Root-Rechte zu erhalten.
In diesem Tutorial lernen Sie:
- So finden Sie setuid-Binärdateien unter Linux
- So entfernen Sie setuid und setgid-Berechtigungen aus Binärdateien
Server-Hardening durch Eliminierung von setuid- und setgid-Binärdateien
Führen Sie die folgenden Schritte aus, um eine Liste der Binärdateien auf Ihrem System zu erstellen, die entweder die Berechtigung setuid oder setgid festgelegt haben.
-
Der folgende Linux-Befehl erstellt eine Liste aller ausführbaren Dateien auf Ihrem System mit setuid.
find / * -perm -4000 -type f -exec ls -ld {} \; > setuid.txt Da im vorherigen Beispiel jede Datei auf Ihrem System durchsucht wird, ist es möglicherweise effizienter, die Suche auf Verzeichnisse zu beschränken, in denen Binärdateien normalerweise gespeichert werden, z. B.
/usr/bin.find /usr/bin * -perm -4000 -type f -exec ls -ld {} \; > setuid.txtAls nächstes können Sie eine Liste aller Dateien abrufen, die setgid-Berechtigungen haben.
find / * -perm -2000 -type f -exec ls -ld {} \; > setgid.txtÜberprüfen Sie die in
setuid.txtundsetgid.txtaufgelisteten Dateien sorgfältig und entfernen Sie mit dem folgenden Befehl die "s"-Bits aus jeder beliebigen Binärdatei:chmod a-s /path/to/binary/file
Bitte beachten Sie, dass Sie die setuid- und setgid-Berechtigungen nicht von allen Binärdateien, die Sie finden, entfernen müssen (und sollten). Sie sollten nur mit Binärdateien beginnen, die nicht verwendet werden.
Indem Sie setuid und setgid aus einer ausführbaren Binärdatei entfernen, machen Sie diese ausführbare Datei nicht unbrauchbar. Allerdings kann nur der Superuser diese Binärdateien in die Tat umsetzen, indem er sie ausführt.
Abschließende Gedanken
In diesem Tutorial haben wir gesehen, wie man setuid-Binärdateien unter Linux findet. Diese Dateien enthalten spezielle Berechtigungen und können, wenn sie für die falsche Datei verwendet werden, einen Exploit für Benutzer mit regulären Berechtigungen darstellen. Das Entfernen von setuid- und setgid-Berechtigungen aus Binärdateien, die sie nicht benötigen, hilft dabei, Ihren Linux-Server zu härten.
