Tento blog pojednava o moznosti utoku na web server za situacie, aka moze nastat (a aj nastala) v praxi. Pridavam jeden ukazkovy priklad, ako sa da preburat na server a uplne ho ovladnut.
Nestastnik, ktory si to uzil je svajciarska webhostingova spolocnost www.dfi.ch (www.dfinet.ch). Obetou sa stal jeden ich server, ktory hostuje cca 280 webov.
Pokusim sa popisat, ako som na to siel ja. Netvrdim, ze to bol najlepsi sposob, ale pre mna najjednoduchsi.
Po oskenovani servera mi nmap vyplul otvorene porty 21, 80, 443. Takze zakladom je ziskanie ftp pristupu aspon jedneho z webov beziacich na serveri. Moznosti, ako to urobit je viacero: odchytit heslo, ukradnut ho z poznamok konkurenta :), pripadne pouzit tuto (alebo podobnu) chybu, ktora sa moze vyskytnut na niektorom z hostovanych webov, alebo si objednat webhosting u firmy...
Ale co s tym, ked uz mame ftp pristup (a ja som mal ;))? Urcite sa da zhodit alebo prepisat stranka, ale v prvom rade je dobre zistit, aky OS bezi na masine, verziu kernelu a ine uzitocne informacie.
Pri bruzdani na nete som neraz natrafil na derave stroje, ktore predomnou navstivil uz niekto iny a zanechal si tam samozrejme nejake tie zadne vratka. Je to velmi poucne skumanie roznych skriptov, zdrojakov a inej havede :).
Takto som objavil jeden dobry php skript od *rumunskych hackerov. Vola sa c99madshell a dokaze kopec skvelych veci.
Po uploadnuti tohoto (prip. podobneho) skriptu sa nam otvori kopec moznosti na stranke. Mozeme pouzit obmedzeny prikazovy riadok priamo cez web, obmedzene citat a zapisovat subory (pod uctom nobody alebo inym uctom, pod ktorym bezi web sluzba), pripojit sa k mysql, zistit kopec uzitocnych informacii atd.
Prve, co mi vsak udrelo do oci, bola verzia kernelu 2.6.18-1.2239.fc5xen. Ludia, co sa trosku zaujimaju o IT security vedia, ze na tento kernel existuje krasny vmsplice local root exploit, ktory bol publikovany nedavno na nete.
Skusil som este, ci bude fungovat gcc... Tak nie. Po par pokusoch mi to hodilo hlasku, ze kompilovat smie len root a grupa na to urcena. Samozrejme nebol problem si zdrojak skompilovat na vlastnej masine a binarku hodit na server. Ale ako ju spustit?
Problem som vyriesil skor, ako som si polozil tuto otazku :). Pozriem ci frci perl... ide, fajn. Je tam kde ma byt (/usr/bin/perl). Napisal som kratky perl skript, ktorym som sa pripojil na moju sunku.
V kratkosti naznacim funkcionalitu a filozofiu skriptu: staci si len otvorit nejaky lubovolny port na svojom stroji (man nc) a perl skriptom nan hodit shell z hacknutej masiny :).
Videl som dokonca servre, ktore dovolili uctu s nizkymi pravami vyhodit shell na vysokom porte hacknuteho stroja, akoby sa nechumelilo. Tento stroj k nim nastastie (a moje nestastie) nepatril. Bola to riadne zafirewallovana masina :).
Takto som ziskal funkcny prikazovy riadok aj bez ssh pristupu. Nakoniec bolo treba spustit uz len binarku exploitu. Na 3-ti pokus presiel bez segmentation fault-u a ...
Bol som pravy, nefalsovany root :). Samozrejme hned to bolo treba vyuzit. Cumneme rootovi do homediru, /sbin/iptables -L, ls ../virtuladomains/, cat /root/.bash_history, cat /root/.mysql_history, atd. No proste zabava...
Kedze som bol vzdy dobry chlapec (aspon mama to o mne tvrdi :)), jedine na co som sa zmohol, bolo vytvorenie odkazu, kde som zanechal kontakt na seba a ponukol adminom pomoc pri odstraneni problemu.
Nasledne uz len upratat, umyt zuby a podho rovno do postele.
Samozrejme onedlho ma kontaktoval p. Philippe Gurret, Ingénieur Système :), za ucelom povyzvedat co a ako. Slusne podakoval za pomoc a tvrdil, ze "You were just 1 week early on the scheduled kernel upgrade"... No mozem mu verit aj nemusim :).
Takze nakoniec to ani nebolo take zlozite... A poucenie???
...Jedna strana by mala vzdy udrziavat stroje aktualizovane a opatchovane (nikdy nepodcenovat bezpecnost a zvlast hackerov) a druha strana (tyka sa hlavne zaciatocnikov a roznych "skusacov" ci spekulantov) nesmie zufat, lebo aj v dnesnej dobe tvrdych IT profikov sa da ovladnut server a pritom ziskat najvyssie prava...
*thnx: ehmo
|
webhosting by: |
UnlimitedHosting | CustomHosting | FreeWeb.sk |
Comments
Re: Utok na web server v praxi
no ja byt adminom ma dost naseries :D
Re: Utok na web server v praxi
Tak toto je silná káva - skvelé! Ak by sa mi niečo také podarilo, mal by som asi strach niečo zverejňovať aj keby bol útok vedený z cudzieho stroja. Problém vidím v tom, že admin sa síce može zachovať priateľsky a môže byť aj v jeho záujme danú vec nerozpitvávať, no ak má nad sebou nejaký systém kontroly, môže sa IMHO celkom ľahko stať, že by musel s pravdou von a riešiť to podľa nejakých smerníc, čo by mohlo znamenať automatické podanie trestného oznámenia a pod. Napríklad ak by sa logy o incidente niekde automaticky ukladali bez možnosi aby ich admin spätne vymazal. V takom prípade by napríklad pri audite tieto veci vyšli najavo a manažment alebo majitelia firmy by sa na incident mohli pozerať už úplne iným pohľadom. Každopádne je super že si to sem dal, je to zaujímavé a poučné :) THANX, nech sa darí.
Re: Utok na web server v praxi
drakko nice post. c99 nie je rusky ale rumunsky, poznam osobne autora. lepsi je r57, ma o cosi viac moznosti a mozno aj shell script od ONuR-a.
inak je celkom zaujimave, ze sa verejne podelis o taketo info, nie je to moc bezne uz len z toho dovodu, ze svajc nepatri pod eu a neplatia pre neho full disclosure pravidla ako v eu (v eu nie su pre istotu takmer ziadne). davaj si bacha aby si nenanarazil na spolocnost, ktora sa bude citit velmi urazene a da si tu pracu ta vystopovat.
http://www.securityfocus.com/columnists/466?ref=rss
je treba si davat pozor na taketo veci, moze to dopadnut dost neprijemne. inak by sa dalo rozpisat o moznostiach a technikach, ale nemyslim si, ze je najlepsie to publikovat (to je moj nazor, teba samozrejme od toho neodradzujem)
------------------------------
http://blog.synopsi.com
Re: Utok na web server v praxi
http://www.securityfocus.com/columnists/466?ref=rss
velmi pekne citanie... nevies nahodou odkazat na nejaky zdroj, ktory sa tomuto venuje vramci slovenska?
a ako je to s white-hat exploitami "cez hranice"? bude sa to riadit zakonmi krajiny, v ktorej je vendor, alebo krajiny, v ktorej je hacker?
Re: Utok na web server v praxi
na tvoju prvu otazku by vedel dat snad odpoved lekvar, uz sa na tom usilovne pracuje.
samozrejme ze vendor. ten poda trestne oznamenie a ak zijes v eu, tak si v prdeli. usa ma dohodu s eu, kanadou a par dalsimi krajinami o pravnej pomoci. ked ta zazaluju tam, tak si to pekne zodpovies a po odsudeni si to odpikas doma. aj toto by skor vedel povedat list alebo lekvar ako ja
kazdopadne, treba si davat velmi velkeho bacha, kde a co urobite. ono to nie je sranda ked sa clovek do niecoho podobneho zapletie. v usa je to o to horsie, ze maju zakony, cele sa to vola disclosure policy. ak napriklad objavite chybu na google, podla ich pravidiel ich mozete reportovat. ak to vsak spravite na firmu, ktora nieco take nema, kludne mozete dostat niekolko rokov nepodmienecne (nechce sa mi hladat ten link, ale uz sa to stalo).
ono jedna vec je chciet sa pochvalit s objavom a druha je to urobit. keby to bolo take jednoduche, ine veci by uz boli publikovane. nedavno som videl prienik k serverom spracovavajucich satelitne snimky pocasia, ktore mali aj zaznamove frekvencne snimky, na ktorych bolo vidiet mnozstvo velmi zaujimavych udajov. nedavno jeden kamarat nasiel prienik do siete kioskov v uk, vdaka comu sa dalo pri prihlaseni vlozit malicious kod. a takychto prikladov mozem ponuknut stovky (ti co ma poznaju si ich uz par pozreli). napriklad makriza, zoznam a azet, maju prekrasny bug na masinach. ono uz len upozornenie je dost problematicke.
ja uz dlhodobo riesim problemy s bankami a to sa jedna "iba" o client side zranitelnosti, teda xss.
ak ma vsak niekto pocit ze je nedotknutelny, myslim ze kauza nbu bola jasnym prikladom toho, kde je "pravo"
------------------------------
http://blog.synopsi.com
Re: Utok na web server v praxi
add upratovanie> vobec som necitil potrebu poupratovat akekolvek logy, nakolko bol utok vedeny z inej (prisvojenej) masiny :). inak admin bol uplne v pohode... dalo sa s nim normalne komunikovat. oprava bola vykonana vraj do hodiny po oznameni (neviem, neoveroval som, ale verim mu :)). btw. logy nie je problem precistit, pokial si root a .bash_history sa v tomto pripade nemal sancu logovat. inak sa dost divim jeho dovere voci mne, ze som si tam nenechal nejake tie backdoory.... bude to asi tym, ze nic nenasiel v .bash_history, hehehe
dufam, ze nejako podnietim niekoho z citatelov, aby prispeli svojimi praktickymi skusenostami sem na BH vo forme blogu alebo clanku...
Re: Utok na web server v praxi
Celkom fajn finta na nedoslednych "hackerov" je vytvorit /.bash_history s pravami 777. Aspon tak sa mi to spravalo na serveri ked si niekto spravil takyto shell... ze bash chcel logovat priamo do root adresara, tak preco mu to neumoznit a precitat si co dany clovek robil :)
Inac sa da ponastavovat aj vselijake ine logovanie, napr. parametre a vystupy commandov spustanych z php, cize mi to zaloguje ze niekto spravil mkdir "/tmp/ ." a spustilo sa to z adresara /web/domenaXY.sk/adresar2/.
Re: Utok na web server v praxi
Naco mazat cely .bash_history,staci nam dat
export HISTFILE=/dev/null
Re: Utok na web server v praxi
Njm,safe mode je uzitocna vec...osoane som ju za dvolezitu nepokladal, kym som si to nevyskusal v praxy...btw osobne mam rad r57.php (google),ten sa dokaze priamo pripojit na listen socket ako si pisal
Re: Utok na web server v praxi
safe_mode je fajn z hladiska bezpecnosti, ale skus si ho dat na webhostingovy server. Kazdy sa ti na taky hosting vykasle.
Takze je to o vhodnom pomere medzi bezpecnostou a pouzitelnostou.
Re: Utok na web server v praxi
nevykasle, uz z toho duvodu, ze webhostingu s vypnutym safe_mode neni zdaleka tolik, jako se zapnutym. bezpecny mod povazuji rovnez za uzitecnou vec, ale osobne mi z pohledu utocnika vadi o trochu vic napriklad dobre nastavena direktiva open_basedir, i kdyz oboji se da obejit. navic v php6 uz safe_mode vubec nenajdeme, takze pravdepodobne i vyvojari povazuji direktivu open_basedir za lepsi metodu obrany. jinak souhlasim, ze bezpecna a zaroven uzivatelsky privetiva konfigurace serveru neexistuje, proto osobne neznam jediny webhosting, ktery by se z pohledu bezpecnosti nedopustil pri konfiguraci alespon nektere z chyb (o freehostingu uz vubec nemluvim, tam maji bud neefektivne nastavenej open_basedir, nebo jim php bezi jako modul). tomu navodu bych vytkl snad jen jedinou vec, a to pouziti php shellu. imho tak clovek nezjisti, jak je php k utoku vyuzito (netvrdim, ze ty to nevis) a jak snadno lze pomoci jeho funkci provadet akce, ke kterym nebyly primarne napsany...
Re: Utok na web server v praxi
pri citani tvojho postu ma napadaju hned 2 mudre vety, navzajom sa sice vylucuju, ale daco na nich je :)
- Cim viac skratime userovy retaz, tym viac brese ale menej hryzie
- Ani hovno neni dokonale, kazde ma svoje muchy
Re: Utok na web server v praxi
v php ti fungovali funkcie system() a shell_exec() :) keby nebolo totalnej demencie admina tak ten server "nedobijes". inak pekny blog.
_______________________________________________________
smrdíš !
Re: Utok na web server v praxi
Celkom pekny a zaujimavy blog, az na to, ze to tvoje upratovanie nebolo prilis velke a dokladne. Stavim sa ze /var/log/, ~/.bash_history atd bude plny zaujimavych informacii o tvojej nocnej aktivite :)
Btw ten ich "scheduled" upgrade kernelu robia kazde 2 roky? :))
PS: taky mini flame si neodpustim. fedora core 5 na server? Lol lol lol? Urcite defaultna instalacia aj s Xkom :) Osobne nic proti, ale ked som spravoval fc 6 som bol uneseny jeho "rychlostou" a uzasnimi moznostami.
----------
tommyhot@hackingmachine:~$ microsoft &> /dev/null
Re: Utok na web server v praxi
Velmi pekny blog hlavne pre "webmasterov"...
Ja by som sa vyjadril k tzv. "upratovaniu",podla mna je velmi dolezite nejake tie data upratat aj ked v tvojom pripade si ani nemusel (kedze si posielal maily a upozornoval na chyby a nerobil tam bordel),velmi vela ludi (najma v bytovkach) bezi cez providerov (napr.Antik...) ktory maju logy ,cize logy ktore pri takychto cinnostiach nechceme,tieto logy moze deletnut taktiez jedine admin a pomocou nich je velmi jednoduche najst nas ---> kazda prana ma vlastny switch/router ,ktory ma svoju adresu a v jednej brane uz ludi nie je milion ani 1000 a ak sa jedna o nieco vaznejsie daju si zalezat,o tom po tom lebo chystam blog s nazvom hrajeme sa s routerom ..cize dostat sa niekam je podla mna len prvy krok ale naozaj dokonale upratat je podla mna nekedy nemozne
Re: Utok na web server v praxi
torproject.org - a nemusis sa az tak bat. Sice este stale nebudes uplne v bezpeci, ale budes na tom neporovnatelne lepsie.
Re: Utok na web server v praxi
Ok ,thx idem pozriet