Dieser Artikel beschreibt einen Fehler , bei dem die Eingabe von root bei Aufforderung zur Entsperrung es jedem Benutzer ermöglicht, Systemeinstellungen zu entsperren. Es warnt davor:
Sie müssen dies nicht selbst tun, um es zu überprüfen. Dadurch wird ein „Root“-Konto erstellt, das andere möglicherweise nutzen können, wenn Sie es nicht deaktivieren.
Der Artikel beschreibt nicht, was zu tun ist, wenn ein übereifriger Techniker das Problem reproduziert hat und nun das Root-Konto entfernen oder deaktivieren muss.
Wie kann dieses Konto sicher deaktiviert oder entfernt werden?
Auf dieser Apple-Seite wird beschrieben, wie Sie das Konto deaktivieren, dies schützt jedoch nicht vor dem Fehler, da der Fehler das Konto nur wieder aktivieren kann. Es wird funktionieren, um das System in seinen normalen Zustand mit deaktiviertem Root wiederherzustellen, sobald der Sicherheitsfehler behoben ist.
Aktualisierung 2017-11-29 16:43 UTC
Siehe Informationen zum Sicherheitsinhalt des Sicherheitsupdates 2017-001 zum Aktualisieren von macOS High Sierra zum Schutz vor der Umgehung der Administratorauthentifizierung ohne Angabe des Administratorkennworts.
Patch verfügbar, klicken Sie hier, oder aktualisieren Sie einfach auf der Maschine
Interessanterweise gibt es meines Wissens noch keinen Patch für die Beta- und Entwicklerversionen von OSX. Ich werde diese Antwort aktualisieren, sobald ich davon höre.
Laden Sie den Patch oben herunter. Den Rest des Beitrags der Geschichte überlassen :-)
Die CVE ist CVE-2017-13872 und NIST wird die Analyse in naher Zukunft aktualisieren.
Ursprüngliche Antwort, ohne Patch relevant
Deaktivieren Sie zunächst nicht das Root-Konto über die GUI, da ein "deaktiviertes" Root-Konto die Ursache des Problems ist.
Sie müssen den Root-Benutzer aktivieren und ihm ein Passwort geben. Dies ist wichtig , da die Schwachstelle auch remote verfügbar ist, über VNC und Apple Remote Desktop (um nur einige zu nennen) (eine andere Quelle) .
Es gibt zwei grundlegende Möglichkeiten, dies zu tun; GUI und Terminal.
Zunächst einmal GUI
Um das Root-Konto zu aktivieren, gehen Sie zu "Directory Utility", dh cmd + Leerzeichen und suchen. Drücken Sie die Sperre, um den "Admin-Modus" zu entsperren, und aktivieren Sie dann das Root-Konto durch Bearbeiten -> "Root-Benutzer aktivieren".
Es sollte nach einem Root-Passwort fragen, geben Sie jetzt Ihr normales Passwort ein (damit Sie es nicht vergessen). Wenn es nicht nach einem Passwort fragt, verwenden Sie Bearbeiten -> "Root-Passwort ändern ..." oben.
Terminal
Wenn Sie eher eine Terminal-Person sind, verwenden Sie das Folgende:
sudo passwd -u root
## Enter passwords as needed....
## (if you are using the terminal you should know what you are doing...)
Das reicht mit einem Terminal, das Problem mit der GUI-Methode ist, dass wir das Konto aktivieren müssen, um ein Passwort festzulegen, was wir mit dem Terminal nicht müssen.
Anmerkungen
Selbst wenn Sie ein Passwort für das Root-Konto festgelegt haben, wird Ihr Computer angreifbar, wenn Sie das Root-Konto deaktivieren. Die Deaktivierung des Root-Kontos scheint der Schuldige zu sein. Ich wiederhole also, der Root-Benutzer sollte aktiviert sein und ein Passwort haben , wenn er die GUI verwendet, während über das Terminal nur die Verwendung von ´passwd´ "ok" ist (obwohl dieser Zustand nicht nur über die GUI erreichbar ist). Es scheint, dass das "Disable Root User" in "Directory Utility" das Passwort für das Root-Konto entfernt, wodurch Sie in gewisser Weise ein root-Konto ohne Passwort erhalten, das anfällig ist.
Es scheint, als ob der Versuch, sich mit "root" in einem System-Anmeldefenster anzumelden, das Root-Konto aktiviert, wenn es zuvor deaktiviert wurde. Das heißt, mit einem deaktivierten Root-Konto müssen Sie root zweimal in ein System-Anmeldefenster eingeben, um Root-Zugriff zu erhalten, und (meinen Tests zufolge) ist das Root-Konto beim ersten Versuch aktiviert (ohne Passwort, wenn es nicht über festgelegt passwd
wurde), und Beim zweiten Versuch kommst du durch.
Es scheint, dass das Problem mindestens seit dem 13. November 2017 (13. November) offen ist, als es im Apple-Support-Forum erwähnt wird .
Bitte beweisen Sie mir das Gegenteil, ich würde es wirklich begrüßen, wenn ich mich jetzt irre.
Gruseliges Update
Nach dem Aktivieren des passwortlosen Root-Kontos (dh über das Systemeinstellungsfenster und Klicken auf ein „Schloss“ und ein-, zwei- oder dreimaliges Eingeben von „root“ mit leerem Passwort (die Anzahl der Male hängt vom Ausgangszustand ab)) ist es möglich, sich anzumelden den Computer aus dem Hauptanmeldebildschirm mit "root" und einem leeren Passwort (!). SSH/Telnet scheint nicht zu funktionieren, aber Apple Remote Desktop, Screen Sharing und VNC sind anfällig.
Für Netzwerkadministratoren könnte es also interessant sein, Pakete vorübergehend an die folgenden Ports zu verwerfen:
Zusätzliche Lektüre:
Ein tapferer Versuch, auf andere Quellen zu verweisen, die sich mit dem Thema befassen. Bearbeiten und aktualisieren Sie meine Antwort, wenn Sie mehr haben.
/dev/null
root zu setzen. Auf diese Weise erfolgt der Zugriff auf das Root-Konto über su
Systemaufrufe für Benutzer mit dieser Berechtigung.Wenn Sie den offiziellen Patch nicht installieren können oder nicht darauf vertrauen möchten, dass er funktioniert hat, dann
Wir werden dies bei der Arbeit nicht ändern, bis die nächste Vollversion für macOS herauskommt, die wahrscheinlich 10.13.2 sein wird
Wenn Sie keine Maßnahmen ergreifen, ist der Root-Benutzer standardmäßig deaktiviert, und dies ist schlecht, wenn Ihr Mac nicht korrekt gepatcht ist.
Wenn Sie möchten, können Sie die Shell optional härten, bis Apple einen offiziellen Patch oder Fix hat.
Hier ist ein großartiges Skript, um ein zufälliges Root-Passwort festzulegen und die Root-Shell /usr/bin/false
so zu ändern / einzustellen, dass sich die Root-Shell selbst dann nicht anmelden kann, wenn das Passwort erraten wird:
Es macht im Grunde drei wichtige Dinge:
rootpassword=$(openssl rand -base64 32)
/usr/bin/dscl . -passwd /Users/root "$rootpassword"
/usr/bin/dscl . -create /Users/root UserShell /usr/bin/false
Die UserShell-Erstellung erfolgt, wenn die Shell nicht festgelegt ist und das vollständige Skript nach einer vorhandenen Shell sucht und diese ersetzt -change
, anstatt sie zu -create
senden.
Wie schütze ich mich vor der Root-Schwachstelle in macOS High Sierra?
Führen Sie ein Software-Update aus dem App Store aus. Apple hat heute Morgen ein Sicherheitsupdate veröffentlicht.
Sie müssen sich als Root-Benutzer anmelden und das Passwort in ein starkes ändern. Wenn tatsächlich ein neues Konto erstellt wird (im Gegensatz zur Aktivierung des bereits vorhandenen Root-Kontos), sollten Sie dieses Konto zuerst löschen.
Apple hat gerade ein Update veröffentlicht, um das Problem zu beheben.
Sicherheitsupdate 2017-001 https://support.apple.com/en-us/HT208315
Um unbefugten Zugriff auf Ihre Mac-Computer zu verhindern, sollten Sie außerdem das Root-Benutzerkonto aktivieren und ein Kennwort speziell für den Root-Benutzer festlegen.
https://support.apple.com/en-ph/HT204012
Wenn Ihr Root-Benutzerkonto bereits aktiv ist, stellen Sie sicher, dass Sie das Passwort ändern, nur um sicherzustellen, dass die Schwachstelle für das leere Passwort nicht gesetzt ist.
Zunächst einmal war root
es in allen Versionen von macOS, Mac OS X, Mac OS und sogar alten Versionen des Betriebssystems vorhanden. macOS hat dieses Konto kürzlich aufgrund einer Schwachstelle nicht erstellt. Es hat es nur zufällig freigelegt.
Das Entfernen root
wäre eine sehr schlechte Idee, und lassen Sie mich Ihnen sagen, warum.
Es würde macOS vollständig lahmlegen, da es kein Konto mit ausreichenden Berechtigungen zum Ausführen kritischer Dienste (wie WindowServer, auf dem die GUI ausgeführt wird) gäbe. Es gibt Sicherheitsvorkehrungen, um zu verhindern, dass ahnungslose Benutzer entfernen root
, und Sie sollten nicht versuchen, sie zu umgehen.
Lassen Sie uns herausfinden, wer die allerersten Prozesse im System ausführt, die wichtigsten Prozesse (mit Activity Monitor):
Hey, es ist wieder unsere freundliche Nachbarschaft root
! Der erste Prozess (mit PID 0) wird tatsächlich vom Kernel gesteuert und wird wahrscheinlich sowieso alle Berechtigungen haben, aber sein untergeordneter Prozess launchd
(der für das Starten von Diensten wie dem Anmeldefenster und dem Windows-Server selbst verantwortlich ist) wird mit den Berechtigungen von gestartet root
. Wenn root
er nicht vorhanden wäre, wäre dieser Prozess nie gestartet worden oder hätte keine Berechtigungen.
Andere Antworten haben einen von Apple veröffentlichten Patch bereitgestellt, der das Problem beheben sollte. Wenn Sie es jedoch nicht installieren können oder wollen ...
Es funktioniert, weil macOS das eingegebene Passwort als „Upgrade“ erneut hasht, da das deaktivierte Konto (root) fälschlicherweise als einen alten Hash erkannt wurde. Es wird immer noch sagen, dass es falsch ist, aber das nächste Mal stimmen die Hashes überein (weil macOS es geändert hat) und es wird Sie hereinlassen.
Um zu sichern root
, müssen Sie das Verzeichnisdienstprogramm verwenden. Es gibt zwei Möglichkeiten, darauf zuzugreifen:
/System/Library/CoreServices/Applications/
ein und drücken Sie Los (oder drücken Sie die Eingabetaste). Öffnen Sie dann von dort aus das Verzeichnisdienstprogramm.Sobald Sie das Verzeichnisdienstprogramm geöffnet haben, müssen Sie dies tun
Nachdem Sie dies getan haben, wählen Sie Change Root Password
oder Enable Root User
aus dem Menü Bearbeiten. Ich zeige, Change Root Password
da mein Root-Konto bereits mit einem starken Passwort aktiviert ist.
Wählen Sie ein Passwort, und jetzt funktioniert das leere Passwort nicht mehr.
Herzliche Glückwünsche! Sie sind nicht mehr anfällig für den Root-Hack.
!
(den Sie wahrscheinlich als UNIX-Typ erkennen werden) nicht richtig verarbeitet.
Monty Harder