Lehetséges webserver támadások

Lehetséges webserver támadások
2004-04-10T02:32:50+02:00
2004-04-12T20:56:17+02:00
2022-11-01T17:25:40+01:00
  • nos..
    ugye ugy fut, hogy
    rootkent indul (ez kell)
    80-as portra ralog (socket, bind, listen)
    fork hegyek, accept hegyek (most nem reszletezem)
    megvizsgalja a bejovo kerest
    vegrehajtja

    eloszor ugy terveztem, hogy miutan a portot lefoglalja, utana atvalt pl webadmin userre, es utana acceptal, mar userkent.. de a php/cgi-nek nyilvan az adott userrel kell futnia, nem webadminkent.. es gondolom webadminrol nem lehet utana atvaltani masik userre, nem?
    ugyhogy atgondoltam megint, es meg a bejovo keres vizsgalataig root, aztan ha ~user van a keresben, akkor user-re, ha meg / van, akkor webadminra valt, es onnan folytatja..
    az elso verziora nem volt otletem, hogy hogy lehet egyik userrol a masikra valtani, ha egyik se root.. gondolom sehogy..
    igy a cgi vagy userkent, vagy webadminkent futna, es egyik se privilegizalt felhasznalo.. raadasul pont olyan jogai lennenek, mint annak, aki az oldalt/linket oda tette, igy nem szerezhet plusz jogokat.. :)
    PaX-ra visszaterve:
    ha ugyis forraskodban adom, akkor nem mind1, hogy elviseli-e alapbol? max. a kernel patcheles utan forditja le.. ha jol ertettem a lenyeget, akkor annyira nem gaz az se, ha csak mondani kell neki plusz egy make-et..
    Mutasd a teljes hozzászólást!
  • symlinkeket nem akarom kiirtani.. ha vki tul hulye ahhoz, hogy olyanra linkeljen, akkor az megerdemli..


    Igen, de egy CGI/PHP-script linkelhet, es ha a linkelt filehoz a webszervernek van olvasasi joga (mint pl. a htpasswd), akkor gyonyoruen ki lehet csempeszni bizalmas infokat.

    pax-ot nem ismerem, Gugli se ad semmi ertelmeset.. errol meg irhatnal..


    A PaX egy kernel-patch, ami a kulonfele programozasi hibak (pl. buffer overflow) kihasznalasat igyekszik megakadalyozni a kovetkezo modokon: nem futtathato memorialapok, ASLR (Address Space Layout Randomization), stack randomisation, mmap/mprotect korlatozasok, mmap () randomizacio, etc.
    De ugyebar ezt nem mindegyik program (ill. nagyon keves program) viseli el ujraforditas nelkul. Sztem nem lenne rossz 5let, ha a tied ezek koze tartozna.
    Egyebkent a pax.grsecurity.net-en mindent megtudhatsz rola.

    nyilvan at kene valtani az adott userre, de ehhez meg nincs otletem..


    setuid/setgid rendszerhivas (vagy nem erre gondoltal?)

    vagy egeszen idaig rootnak kell maradnia?


    Nagyon ne, mert akkor a cgi script is rootkent fog futni, ami nagyon-nagyon rossz otlet...

    SSL-el meg nem foglalkoztam.. de talan lesz.. ha eljut odaig a prog..

    OK, ha megis ugy gondolod, az OpenSSL biztosit erre egy libraryt, amivel sztem annyira nem bonyolult megoldani.

    Udv. ax
    Mutasd a teljes hozzászólást!
  • symlinkeket nem akarom kiirtani.. ha vki tul hulye ahhoz, hogy olyanra linkeljen, akkor az megerdemli.. de az apacsban is idegesitett, hogy ha ki akarok vmit linkelni, azt nem hagyja..
    persze arra kell figyelni, hogy pl a /etc/shadow file-t ne lehessen.. de azt meg lehet oldani, ha nem root-kent fut (azert koszi a figyelmeztetest)
    egyelore rootkent inditom, de tokeletesen fut userkent is (persze nem a 80-as porton), ugyhogy miutan megvolt a listen, atvalthat (vagy a bind utan)
    SSL-el meg nem foglalkoztam.. de talan lesz.. ha eljut odaig a prog..
    pax-ot nem ismerem, Gugli se ad semmi ertelmeset.. errol meg irhatnal..
    cgi-t ugy gondoltam, hogy:
    (kezdemeny)
    void cgiatiranyit(int fd)
    {
    /* stdin-t bezarjuk, helyette a socket lesz.. */
    close(0);
    dup(fd);
    /* stdout-ot is bezarjuk, helyette a socket lesz.. */
    close(1);
    dup(fd);
    close(fd); /* csak hogy ne zavarodjon meg, az eredeti fd-t is lezarjuk */
    /* stderr marad! */

    /* ezutan a progibol elinditjuk a process helyett ezt a masikat */
    /* execl(proginev,args); */
    /* vagy */
    /* execl(proginev,arg1,arg2,...,argn,NULL); */
    }

    valami ilyen kerettel atadja a vezerlest.. de ezzel meg nem foglalkoztam.. elotte nyilvan at kene valtani az adott userre, de ehhez meg nincs otletem.. meg lehet ezt vhogy csinalni? vagy egeszen idaig rootnak kell maradnia?
    Mutasd a teljes hozzászólást!
  • Szia!

    Most tulzottan hulla vagyok ahhoz, hogy nekialljak "szakerteni", ugyhogy csak par dolgot irok:

    A hasznosabb, ha letoltesz pl. egy apache/roxen forrast + a hozza keszult biztonsagi ertesitoket + az exploitokat, es kiderited, hogy mit es hol szurtak el a keszitok.

    Hasolnloan hasznosak (de sokkal konyebben kezelhetoek) a kulonfele biztonsagi cegek reszletes analizisei (pl. www.eeye.com)

    + amit ne felejts el: Secure Programs HOWTO a www.tldp.org-on

    egyeb filerendszer-specifikus dologrol nem tudok..


    symlinkek?
    tmp-file-ok piszkalasan alapulo toresi modszerek? (pl. known-tmp-file-attack, race condition, ...)

    Ha biztonsagosra szeretned tervezni, par 5let:
    - a leheto legkisebb resze a leheto legkevesebb ideig fusson root-kent
    - tudjon chroot jailben futni
    - legyen SSL-tamogatas
    - ha megis PHP/CGI-t is implementalsz, lehessen ellenorizni a scriptek tevekenyseget (bizonyos parancsok tiltasa, eroforras limitek...)
    - lehetoleg tudjon nem futtathato stack-al is mukodni (pl. PaX)

    Udv. ax
    Mutasd a teljes hozzászólást!
  • koszi a linkeket.. atfutottam, es joresze tenyleg buffer overflow.. azert meg nezegetem..
    php egyelore nincs.. igazibol azt nemtom hogy lehetne megcsinalni.. ha kulso progi hivasaval is megoldhato, akkor lesz.. kesobb..
    amugy sztem is inkabb a php feladata erre ugyelni, es nem a webservere
    egyik elso dolgom, hogy a keresbol kinyerem az URI-t, atalakitom a %HH alaku sorozatokat, megnezem, hogy melyik file-ra mutat (PATH+filenev), aztan ha van benne "..", akkor eldobom az egeszet, es 400 Bad Request (vagy 404 Not Found) hibat adok vissza.. ugyhogy erre mar gondoltam.. egyeb filerendszer-specifikus dologrol nem tudok..
    mindenesetre eldontottem, hogy inkabb atalakitom c++-ra, es csinalok egy biztonsagos buffer class-t.. mert igy eleg nehezkes lenne..
    cgi viszont hamarabb lesz benne, mint php.. erre tud vki otletet?
    win-re nem celom fejleszteni.. de ha lefordul, akkor akarki csinalhat.. mondjuk nem hinnem, hogy mondjuk a visual c tokeletesen forditana a fork() rendszerhivast, vagy a SV IPC-t.. :)
    Mutasd a teljes hozzászólást!
  • Php es egyeb inline szkriptes fajlok tartalmanak kiadasa. Bevett modszer valami olyan neven hivatkozni a fajlra ami a webserver alatt fekvo fajlrendszerre specifikus, es a webszerver iroja nem gondolt ra, igy pl. mint ismeretlen fajltipust nem ertelmezi, hanem kiszolgaltatja a tartalmat.
    Mutasd a teljes hozzászólást!
  • Tehát meg kell alapszinten nézni, hogy szöveg van-e a hosszászólásban.


    Pontosabban, szűrni lehet az adatforgalmat (html, script, trágár szavakra). De ez nem feltétlenűl webserver, sokkal inkább server oldali prognyelvhez tartozik.

    Szerintem érdemes lenne első körben egyszerű, programozási feladat szintű webserverek forrásait és dokumentációit böngészni. Később sourceforge.net és hotscripts.com, majd a vége felé jöhet az apache httpd forrás és doksi.


    Windowsra nem lesz?
    Mutasd a teljes hozzászólást!
  • Én PHP konferencián hallottam, hogy úgy is szoktak próbálkozni, hogy egy fórumhoz hozzászólsz, akkor a támadó nem szöveget ír be, hanem Java/Basic Script kóüdot ír be, amit rossz konfig esetén még végre is hajthat. Tehát meg kell alapszinten nézni, hogy szöveg van-e a hosszászólásban.
    Mutasd a teljes hozzászólást!
  • Csekkold a snort es a nessus web szerverekre vonatkozo rulesetjeit. Ezek egy resze az adott termekre nezve specifikus, de van jopar 'tipikus webszerver hiba'.

    netchan
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Nemregiben egy webserver irasaba kezdtem (hazi volt), ami egyelore a HTTP/1.0 protokoll egy reszet tudja.
    Ossze szeretnem gyujteni a webserverek (es ugy altalaban a serverek) elleni tipikus tamadasi formakat.. legyszi segitsetek.. jo lenne, mert akkor tudnam, hogy mire kell meg figyelni..
    Ilyenekre gondolok, hogy buffer tulcsordulas, DDoS, meg hasonlok..
    Alapvetoen Linuxra irom, de Solarison, FreeBSD-n is lefordult..
    GPL-es lesz, mukodik, de meg nem all olyan stadiumban, hogy ide linkeljem..

    NyOS
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd