provlima se bash scripting

Michael Iatrou iatrou at serverhive.com
Wed Dec 6 02:05:46 EET 2006


When the date was Wednesday 06 December 2006 01:37, Giorgos Keramidas wrote:

> On 2006-12-06 01:02, Michael Iatrou <iatrou at serverhive.com> wrote:
> >When the date was Wednesday 06 December 2006 00:39, Giorgos Keramidas 
wrote:
> >>On 2006-12-06 00:25, Michael Iatrou <iatrou at serverhive.com> wrote:
> >>>When the date was Wednesday 06 December 2006 00:18, V13 wrote:
> >>>> H teleia (.) sto PATH se opoiadipote egkatastash ston kosmo h opoia
> >>>> prokeitai na filoksenisei 2 h perissoteroys xristes einai problima
> >>>> asfaleias.
> >>>
> >>> Γιατί;
> >>
> >> Old times' classic ``exploit'':
> >>
> >> Γιατί κάποιοι κακοηθέστατοι users, μπορεί να πάνε στο /tmp και να
> >> φτιάξουν ένα script με όνομα "mroe", που κάνει π.χ.:
> >>
> >> 	#!/bin/sh
> >>
> >> 	echo 'PWNED K THX LOL'
> >>
> >> Ύστερα περιμένουν απλά μέχρι τη μέρα που ένας χρήστης με superuser
> >> rights [...]
> >
> > Όπως το έθεσε, μου φάνηκε ότι αναφερόταν (και πάνω σε αυτό ήταν το
> > ερώτημα) σε απλούς χρήστες. Εξάλλου, τη περίπτωση για superuser την
> > είχα αποκλείσει εξαρχής.
>
> Και για απλούς χρήστες το 'security bug' ισχύει.  Απλά δεν θα τρέξει το
> script με δικαιώματα superuser, αλλά θα τρέξει με δικαιώματα ενός
> 'άλλου' χρήστη.  Εγώ, προσωπικά, δε θα θελα να τρέξει κάποια στιγμή το
> random script του random user με δικαιώματα 'keramida' :)


$ cat -n /tmp/more
     1  #!/bin/bash
     2
     3  echo "got you!"
$ cd /tmp
$ ls | more | grep got
$ ls | ./more | grep got
got you!

Το script δεν θα τρέξει, γιατί απλά το `.' είναι τελευταίο στο PATH.

Corner case, o χρήστης να έχει κάνει append στο PATH δικά του directories, 
μετά το `.' (όπου εδώ δεν είναι security vulnerability, είναι χαζομάρα του 
χρήστη) και ο attacker να φτιάξει στο /tmp ένα script με το αντίστοιχο 
filename (που προφανώς πρέπει να μαντέψει, αν ο χρήστης προσέχει τι 
permissions δίνει στα directories του).

-- 
 Michael Iatrou




More information about the Linux-greek-users mailing list