[linux-l] Datum in Script verwenden

Jan-Benedict Glaw jbglaw at lug-owl.de
Mo Apr 9 21:22:42 CEST 2007


On Mon, 2007-04-09 20:10:16 +0200, Boris Kirkorowicz <boris-ml07 at kirk.de> wrote:
> Am 09.04.07 18.58 schrieb Volker Grabsch:
> > Das, was nicht funktionierte, war SUID bzw. SGID auf #!-Scripte.
> > Dies funktioniert nur bei "richtigen" Binaries. Schade, eigentlich.
> > Kennt jemand von euch den Grund dafür?
> 
> Ahja, da wird mir einiges klar: deshalb hat das die ganze Zeit nicht
> funktioniert...
> 
> Der Grund würde mich jetzt aber auch interessieren.

Im thread wurde ja schon gesagt, daß beim Aufruf eines Scriptes das
hier passiert:

(1) exec-Aufruf in den Kernel (-> da wird der vollqualifizierte Pfad
    zum Programm übergeben)
(2) Kernel liest die ersten Bytes der Datei und erkennt an '#!....',
    daß das Ding via Interpreter aufgerufen werden muß
(3) Der Kernel baut den exec-Aufruf um:
	<Pfad zum Interpreter> <Pfad zum Script>
(4) Der Interpreter wird gestartet
(5) Der Interpreter öffnet die Script-Datei, liest sie und
    entscheidet, was zu tun ist.

...und jetzt stelle man sich mal vor, da liegt irgendwo ein Script,
daß SetUID-root ist, aber von Nicht-root-Usern blitzschnell
ausgetauscht werden könnte. Dabei geht natürlich das SUID-Bit verloren
(irgendwas ist ja immer...) aber mit etwas Glück findet der Austausch
zwischen (4) und (5) statt.  Schon könnte ein User von ihm
bestimmbaren Code mit root-Rechten (bzw. der Original-UID oder -GID
des Scriptes) ausführen.

MfG, JBG

-- 
      Jan-Benedict Glaw      jbglaw at lug-owl.de              +49-172-7608481
Signature of:               Träume nicht von Dein Leben: Lebe Deinen Traum!
the second  :
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: Digital signature
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20070409/374b276a/attachment.sig>


Mehr Informationen über die Mailingliste linux-l