A hétvégén került megrendezésre az Offensive-Security 48 órás "How-Strong is Your Fu?" címet viselő versenye, melyen összesen több mint ezer (>1000!), a világ különböző tájáról érkező hacker mérhette össze a tudását a szervezők által berendezett mini-pokolban. Mi is ott voltunk, az alábbiakban következzenek a tapasztalatok, és persze a különböző pályák megoldásai!
n00b-filter
A jelentkezők nagy számára való tekintettel a szervezők először is egy selejtező pályát állítottak fel, amit a játékosok frusztrációjának növelése érdekében nemes egyszerűséggel csak n00b-filternek neveztek el. A célpont egy nyilvánosan elérhető domain webszervere volt, melyet a terheléselosztás miatt aldomaineken kétszerezve lehetett elérni. Az első 100 bejutó kaphatta meg a hozzáférést a további kihívásokhoz.
A kedves látogatót ezen az oldalon egy szép kis login felület fogadta. Persze neki is estünk, mint Micimackó a mézescsupornak, és csak fokozta a lelkesedésünket, mikor láttuk, hogy bizony egy DotDefender alkalmazás-tűzfal védi a login.php-t. Ezt megkerülni ugyanis nem volt nagy tudomány, egy ' or 3>2 /* már nem verte ki szegény buta IPS-nél a biztosítékot. Innentől kezdve viszont jókedvünk meredeken zuhanni kezdett, főleg mikor a start után kb. másfél órával már ott figyelt Woff - aki(k) nem mellesleg szintén hazánk fia(i), de ennél pontosabbat nem tudunk - a ranglista első helyén 25 ponttal.
Ezek után mindent kipróbáltunk a puffer-túlcsordulástól az LDAP injectionig, hiába. 11 órán keresztül azt hiszem az összes ismert támadási formát bevetettük, és újakat eszeltünk ki, de egyre csak azt kaptuk a pofánkba, hogy "Próbáljátok keményebben ti lusta disznók!".
Arra jutottunk, hogy a login szkript valószínűleg semmit sem csinál, csak ezt az üzenetet jeleníti meg, így más felé kell próbálkoznunk. A megoldás utólag pofonegyszerű, és tényeg azt a fajta gondolkodásmódot igényli, amire egy hackernek szüksége van: ha nem tudod feltörni az alkalmazást, törd fel a védelmi rendszert!
Már az indulás pillanatában elkezdtünk feltelepíteni egy DotDefendert, hogy kiismerjük a kicsikét, de mikor a telepítő szólt, hogy tele fogja szemetelni az összes konfigurációnkat, a védelmet pedig már úgyis kijátszottuk, inkább letettünk a dologról, ez hiba volt (meg az is, hogy nem virtuális gépbe próbáltuk kapásból telepíteni a kis drágát). No persze, elég lett volna megnézni az exploit-db.com-ot, hogy lássuk, létezik publikus exploit a DotDefender bizonyos változataihoz...
Végül is innentől fogva már csak a DotDefender menedzsment felületét védő HTTP autentikáció állta az utunkat, de szerencsére az admin/password kombinációt már nem volt nehéz kitalálni. Az exploit távoli parancsfuttatásra adott lehetőséget, a HTTP kiszolgáló pedig éppen elegendő jogosultságot adott ahhoz, hogy hozzáférjünk az áhított n00bSecret.txt-hez (amit természetesen valami véletlengenerált könyvtárba pakoltak el kedves házigazdáink:). Megkönnyebbülve léptünk be a "nem-n00bok" szintjére, nagyjából középmezőnyben.
killthen00b
A selejtező teljesítése után VPN hozzáférést kaptunk az Offensive Security laborhálózatához, ahol két gép várta a játékosokat, összesen hat felé replikálva, fél óránként revert-elve. A könnyebbik darabnak a killthen00b nevet viselő kiszolgáló tűnt, mivel a SurgeMail nevű e-mail-szerver-csoda kinyitott rajta legalább egy tucat portot, ráadásul a szervezők voltak olyan kedvesek, hogy megajándékoztak egy korlátozott jogú FTP felhasználóval is erre a szerverre.
Miután installáltunk egy SurgeMailt (itt már tanultunk az előzőekből) láttuk, hogy ez a szoftver önmagában komoly biztonsági kockázatot jelent, a távoli asztalon (mert ilyen is volt) láttuk viszont, hogy az egész kóceráj egy Windows7 Ultimate-en fut, amire nem a legviccesebb exploitot írni. Másrészt az az FTP hozzáférés sem lehetett fölösleges...
Az FTP felhasználó be volt zárva a saját My Documents könyvtárába, ahol nem volt semmi a standard könyvtárakon kívül. Magáról az FTP szolgáltatásról nem találtunk semmilyen használható infót, ami azonosíthatta volna a szoftvert, így nekiálltunk letesztelni a tipikus FTP sérülékenysgeket: puffer túlcsordulás, directory traversal.
Utóbbi próbálkozásunkat siker koronázta: megfelelően hosszú "..\" szekvenciákkal ki lehetett látni egészen a gyökérig. Az FTP szolgáltatással viszont még nem tudtunk kódot futtatni, és az Adminisztrátor asztalát - ahol a továbbjutáshoz szükséges kód leledzett - sem voltunk képesek elérni.
A SurgeMail viszont megtette nekünk azt a szívességet, hogy a WWW gyökerébe feltöltött állományokat CGI-ként lefuttata, ha meghivatkoztuk őket egy böngészőből. Így hát szépen feltöltöttünk egy NetCat-et meg néhány segédszkriptet a megfelelő könyvtárba, és máris kaptunk egy szép kis shellt, méghozzá a levelező webszerverének jogosultságaival, ami itt NT AUTHORITY/SYSTEM volt (egyéb esetben egy kis mázlival tudtuk volna használni az ominózus univerzális jogosultságkiterjesztő exploitot).
ghost
Az utolsó célpont ghost névre hallgatott, és a pszihológiai hadviselés jegyében egy a n00bfilterhez nagyon hasonló login felület látszódott belőle összesen. Mielőtt rátérnék a pálya megoldására megemlékeznék arról a néhány kedves kis csapdáról, amit a szervezők megszerkesztettek ezen a gépen:
A login szkript ezúttal a login.asp nevet viselte, a webszerver pedig Microsoft IIS-ként azonosította magát a fejlécben (más szolgáltatás nem volt elérhető). Ez persze mind hazugság volt. A login szkriptnek néhány PHP easter egget megadva nyilvánvalóvá vált, hogy egy legalább 5.0-s verziójú PHP interpreterrel van dolgunk. A webkiszolgáló azonosításának bevett módszere a visszaküldött HTTP fejlécek sorrendjének, valamint a hibaüzenetek vizsgálata. Ezek az információk egyetlen általunk vizsgált webszerverére sem illeszkedtek. Végül döntő bizonyítékként értékeltük, hogy a túloldal rendelkezik az alapértelmezett Apache könyvtárakkal és htaccess beállításokkal, valamint a hibaüzenetek formátuma is szinte pontosan egyezett. Végül az operációs rendszerek közül kizártuk a Windows-okat, mivel a fájlnevek nagybetű-érzékenyek voltak.
Mindez azonban csak részben járult hozzá a megoldáshoz, ami valójában itt is pofonegyszerű volt: a /1/ útvonalon elérhető volt egy újabb login felület, melynek mezőnevei alapján egy kis guglizással kideríthető volt, hogy Mario Valdez Simple Text-File Login script-je figyel a túloldalon. A forráskódot letöltöttük, és melegség tötötte el a szívünket mikor láttuk, hogy vannak szorgalmas programozók, akik időt és energiát nem kímélve fejlesztenek olyan szoftvereket, amelyek kaput nyitnak a t. felhasználó számítógépére. Nagyjából 5 perc alatt találtunk egy távoli fájl inclusion sebezhetőséget, amit ki is használtunk, bent voltunk a szerveren, de csupán www-data jogosultsággal.
A jogosultságkiterjesztés eszközeinek halmazát jelentősen leszűkítette, hogy egy viszonylag új kernel futott a kiszolgálón, miután pedig láttuk, hogy az fstabban ott figyel egy felhasználóként mountolható, de fel nem csatolt ReiserFS fájlrendszer, egyértelművé vált, hogy Jon Oberheide a rendszermag ReiserFS kezelését célzó exploitja lesz a segítségünkre.
A nyilvánosan elérhető szkriptet persze kicsit át kellett írni, hogy illeszkedjen a környezetbe, ami nem lett volna baj, ha valamelyik jószándékú versenytársunk nem törölgette volna folyamatosan a feltöltött fájljainkat, meg nem éppen a meló közepén revertelték volna a virtuális gépeket amiken játszottunk... De mindez már nem állíthatott meg minket, sikerül root jogot szerezni ghoston is, ezzel az összes feladatot teljesítettük.
Eredmények és konklúzió
A 48 órás versenyt kb. 26 óra alatt teljesítettük, ez alatt 4-5 órát aludtunk, elfogyott 4 üveg Club Mate, egy Bomba, egy Hell, kb. 6 doboz sör és két pizza. A pontszám majd részidő alapján rendezett ranglistában jelenleg az 5. és a 6. hely a miénk, közvetlenül utánunk következik Woff nevű honfitársunk/aink, aki(k)nek ezúton is külön gratulálunk, (különösen a n00bfilteres teljesítményhez!), és üzenjük, hogy jó lenne ha lerántaná(k) az anonimitás leplét :) Az eredményekbe 40%-ban be fog számítani a leadott dokumentáció, így a fentiek még változhatnak az elkövetkező 48 órában.
Összességében rendkívül színvonalas versenyen vehettünk részt, neves társaságban, és azt hiszem az eredmények miatt sem szégyenkezhetünk. Az Offensive-Security blogposztja szerint hagyomány lesz a "How Strong is Your fu?", jövőre az első helyért indulunk!
Azoknak pedig, akik a Hacktivity wargame-re készülnek csak annyit mondok: kössétek fel a gatyát, sokat tanultunk! :)
A poszt a végleges eredmények megjelenése előtt született. Az Offsec azóta frissítette a pontszámokat a dokumentációkra adott osztályzatok alapján, így összességében a 3. helyre sikerült befutnunk. Ezen kívül megjelent a hivatalos megoldás első része is, melyben látható, hogy nem vettünk észre mindent, de hát jó pap holtig tanul (meg a franc gondolta, hogy 3 szintű 0day-t kell keresni a beugró szinten :P)... Még egyszer gratulálunk az összes résztvevőnek, különösen az ezüstöt szerzett Touzoku-nak és a megosztott első helyet szerző Vadiumnak és Woffnak (akivel tényleg szívesen meginnánk egy sört)!
synapse · http://www.synsecblog.com 2010.05.12. 23:50:38
Nembaj, szep volt fiuk ;)
synapse
EQ · http://rycon.hu 2010.05.13. 00:44:13
RGrof 2010.05.13. 06:15:26
Gratula!
Csizmazia Darab István [Rambo] · http://antivirus.blog.hu 2010.05.13. 09:21:54
|Z| 2010.05.13. 09:28:27
_2501 2010.05.14. 00:00:00
Kaptatok ajánlatot is?
axt · http://axtaxt.wordpress.com/ 2010.05.14. 14:00:41
conscience 2010.05.16. 02:04:58
flawless 2010.05.21. 06:40:55
Masodik dolog amit le szeretnek irni, hogy nem volt szep dolog titokban tartani ezt az esemenyt es sunyi modon benevezni rajta, figyelmen kivul hagyni a tobbieket, nem rolam van szo megint, altalanossagban beszelek, olvasok peldaul. Talan ha kihirdetitek az esemenyt egy jobb csapat osszegyult volna. Ezek utan remelem, hogy nem fogunk talalkozni a DEFCON CTF-en, felteve hogy ott is indultok. Mi a taktika, ha jo helyet csiptek meg flameltek vele, ha utolsok lesztek elsunyizzatok?
buherator · http://buhera.blog.hu 2010.05.21. 11:16:27
- Ne kérj elnézést, azért van a kommentdoboz hogy kiírd a véleményedet
- Mi is maximalisták vagyunk, de nem hinném hogy leírtuk volna magunkat egy összetett harmadik hellyel, mint ahogy a többi versenyző sem írta le magát azzal, hogy néhány "csóringer magyar" rájuk vert x órát és y pontot. Woff idén jobb jelentést írt, mi meg kicsit gyorsabbak voltunk, legközelebb visszavágó, így megy ez.
- Durva lenne, ha rajtam múlna, hogy egy ilyen esemény titokban marad-e vagy sem, a felhívás kint volt az interneten. Szánom-bánom hogy a blogon nem volt róla poszt, de ha megnézed az archívumot láthatod, hogy az utóbbi időben a posztgyakoriság sajnos visszaesett, ennek az oka pedig nem az hogy titokban akarok tartani bármit is - a személyes problémáimmal nem traktálnék senkit.
- Az álláspontodat figyelembe véve miért nem futnál velünk össze egy másik megmérettetésen?
_2501 2010.05.23. 17:39:26