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