Jak vykonat skript suid

Petr Simek petrsi na jcu.cz
Sobota Únor 5 18:40:44 CET 2000


On Sat, 5 Feb 2000, Pavel Kankovsky wrote:

> >   execl("/bin/sh", "/bin/sh", "/usr/bin/my-killlprm.sh", NULL);
> > 
> > V tom skriptu jsou radky -
> > 
> >   #!/bin/sh
> >   sleep 3
> >   IDS=`ps -axf | grep "lpd LPRM" | grep -v grep | awk '{print $1}'`
> 
> Nerad to rikam, ale mate tam IMHO diru velkou jak vrata do hangaru, ve
> kterem Amici montovali rakety Saturn 5. A jestli do toho programu pridate

Ale nemam. Po otestovani jsem to samozrejme upravil na -

#!/bin/sh

/bin/sleep 3
IDS=`/bin/ps -auxf | /bin/grep "lpd LPRM" | /bin/grep daemon | /bin/grep -v grep | /bin/awk '{print $2}'`
if [ "X$IDS" != "X" ] ; then
  /bin/kill $IDS
fi

> prikaz setreuid(geteuid(), -1), ktery tady byl doporucovan (a uz nic
> jineho), tak tu diru akorat poradne posichrujete.

> 	PATH=/tmp/sploit:$PATH program

takze i kdyz si nekdo da do cesty :.: tak mu to moc nepomuze.

> To, ze nejde delat set[ug]id skripty, ma jednu trivialni a jednu hlubsi
> pricinu (nejmene). Ta trivialni je ta, ze bez urcitych triku ze strany
> jadra je tam race condition (1. jadro otevre skript, 2. podiva se na
> nej, 3. zavre skript, 4. jadro spusti se intepreter se jmenem skriptu,
> 5. interpreter otevre skript...pritom mezi 1. a 5. muze dojit k tomu, ze
> jmeno zacne znamenat neco jineho), ta hlubsi je v tom, ze skutecna

kdyz ta binarka spusti /bin/sh s parametrem skriptu, tak se do toho
jadro snad nemicha ? Spusti se /bin/sh a dal uz je to na nem.

> semantika programu ve skriptovacim jazyce (specialne sh a spol.) je
> typicky velice zavisla na "zivnotnim prostredi" procesu (environment,
> umask, cwd, rlimity, otevrene soubory, obsluha signalu a urcite jeste
> neco), ktere je prakticky uplne v rukach nepritele. Program, ktery
> provede dostatecne bezpecnou sanaci tohoto prostredi, neni vubec
> trivialni zalezitost.

to uz muze byt horsi, ale vzhledem k tomu ze skript nebere zadne parametry
tak na prostredi moc nezavisi ?

> --Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]

*------------------------------------------------------------------------*
|                          Petr Simek   APS JU                           |
|                             petrsi na jcu.cz                              |
*------------------------------------------------------------------------*



Další informace o konferenci Linux