Mac OS X rootpipe Sicherheitslücke – kleine Analyse

Eben wurde auf Winfuture eine Sicherheitslücke unter dem Begriff rootpipe veröffentlicht.
Emil Kvarnhammar ein Hacker der IT-Sicherheitsfirma Truesec hat diese Lücke entdeckt und das muss natürlich schnell im Netz verbreitet werden.
Als ich mir das Video anschaute, musste ich erst mal lachen, nicht nur wegen der scheinbaren Lücke, auch wegen der Geschwindigkeit mit der sich diese Information zur „Lücke“ im Netz verbreitet.
Morgen auf der Arbeit werden dann mit Sicherheit alle panisch mit Ihren Armen fuchteln und Mac OS verteufeln xD.

Eine rootpipe, also ein „Programm“ mit dem ich mit root Rechten agieren kann, ist ein Feature und keine Sicherheitslücke!
Dazu gibt es doch ein Rechtesystem unter den Betriebssystemen, damit ich mir meine Anwendungen so anpassen kann wie ich es brauche … oder mein persönliches Sicherheitsempfinden es zu lässt.
Ich habe mal eben in 5 Minuten auch so ein Video gedreht, aber auf die coole Mukke und ein ASCii Art verzichtet.

Bin mal gespannt ob es Emil Kvarnhammer zum Troll of the year bei fefes Fnord News Show schafft.

Beitrag Winfuture: Achtung vor rootpipe

Demovideo:

6 Gedanken zu „Mac OS X rootpipe Sicherheitslücke – kleine Analyse

  1. purple

    Hallo Hoo,

    hm, auch wenn es für Euch sicherlich glas klar zu sein scheint, was eine „rootpipe“ jetzt eigentlich genau ist und was sie macht, so werde ich aus den bisherigen Informationen von Dir leider nicht ganz schlau. War mir auch nicht möglich anhand Deines Videos näheres in Erfahrung zu bringen.

    So wie ich das bislang verstanden habe geht es bei dieser „rootpipe“ also um eine art Shell die man sich selbst zusammencoden müsste die dann eine Art „Rechteausweitung“ von normalen User rechten unter Linux zum Beispiel zu rootrechten vollzieht und dann quasi eine rootshell spawned mit der man dann als normaler user Fefehle unter rootrechten ausführen kann…

    Meine Frage wäre nun wie genau müsste denn so eine selbst gecodete rootshell (verwendest Du dem anschein ja auch in Deinem Video) ausschauen, damit dies unter Linux möglich ist oder reicht es da einfach sudo su, sudo -i, sudo bash oder dergleichen in ein bashscript mit execute rechten zu verpacken – aber dann müsste ja dennoch erst das sudo passwort eingegeben werden damit das script die angeforderten rechte erhalten würde… oder ist hier das sudoersverzeichnis dementsprechend verändert worden damit die betreffende datei auch ohne eingabe des sudo passworts ausgeführt werden kann… – Aber wenn das zuvor der Fall sein müsste dann wäre es ja eigentlich gar keine Sicherheitslücke weil ja vom User selbst verannlasst… -hm- fragen über fragen…

    Vielleicht, wenn es die Zeit zulässt, kannst Du mir da ja noch mal einen kurzen Denkanstoß geben da ich mir da einfach nicht weiter zu helfen weiß.

    In diesem Sinne mach weiter so

    -lg purple-

    Antworten
  2. hoohead Beitragsautor

    Hallo purple,

    Du hast das richtig verstanden, die rootpipe wird vom Benutzer selbst veranlasst.
    Rein technisch ist es so, dass eine Anwendung Eingaben an eine andere Anwendung „weiterleitet“, zum Beispiel an /bin/sh
    Sprich man würde sich ein „binary file“ schreiben/kompilieren, das diese Funktion beinhaltet.

    http://wiki.ubuntuusers.de/Shebang_f%C3%BCr_Shellskripte

    /bin/sh weiß ja, welche Rechte das Programm oder der Anwender dahinter hat und würde erstmal einen nicht privilegierten user die Rechte verweigern.
    Jetzt könnte man dem Programm aber sagen: „hey ich bin root, ich habe Dich angelegt, also führe bitte Deine Weitergaben mit meinen Privilegien aus:

    http://de.wikipedia.org/wiki/Setgid

    Dann würde das Programm dem anderen Programm die Befehle als root übermitteln, wenn es unter root ausgeführt wird.
    Wenn man nun die Dateirechte des files so setzt, dass es von jedem ausgeführt werden darf, dann können auch Konten die keine root Privilegien haben, über dieses Programm Befehle abschicken, die vom System dann mit root ausgeführt werden.

    http://de.wikipedia.org/wiki/Setuid

    Eine etwas einfachere und verständlichere Methode, solche Systemspielereien umzusetzen.
    Mach Dich zu root, setze in Datei /etc/crontab:
    * * * * * root /home/user/script.sh
    Setze chmod 777 auf /home/user/script.sh
    Die Datei kann nun von jedem Benutzer bearbeitet werden und jedes valide Shellscript das in diese Datei gelegt wird, wird mit root Rechten verarbeitet (im Minutentakt).

    Die Empfehlung von Kvarnhammar ein zusätzliches Konto anzulegen ist natürlich auch Quatsch.
    Wenn man solche Spielereien auf seinem System einsetzt, dann könnten sogar Benutzer denen es verwehrt ist sich mit sudo als root zu authentifizieren mit root Privilegien arbeiten … also auch der Apache 😉

    Antworten
  3. hoohead Beitragsautor

    Hallo mint,

    vielen Dank für die interessanten Links, ich denke ich werde in diese Richtung auch noch ein wenig recherchieren.

    Antworten
  4. mint

    Hay hoohead,

    gerne, ohne den Beitrag hier wäre ich damals nicht darauf aufmerksam geworden!
    Bei meinem ersten Post konnte ich noch nicht allzu viel dazu sagen, da ich es selbst nur überflogen hatte.
    Habe mich gestern und heute mal mit dem Thema auseinander setzen können. OS X scheint IPC über ein XPC genanntes Protokoll zu ermöglichen, wobei ein privilegierter Service namens WriteConfig Schnittstellen anbietet, welche ohne Authentifizierung (oder genauer mangelhaft -> nil) des Clients ausgeführt werden. Diese bietet eine Methode namens createFileWithContents an, womit dann eine beliebige Datei(Shell-Script) angelegt werden kann.
    Klingt fast zu simpel um wahr zu sein!

    Grüße

    Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

CAPTCHA-Bild

*