Tweets by @buherablog
profile for buherator at IT Security Stack Exchange, Q&A for IT security professionals

A BitBetyár Blog

Túljártál a nagyokosok eszén? Küldd be a mutatványodat! (e-mail a buherator gmailkomra jöhet)

Full-Disclosure / Névjegy / Coming out


Promó

H.A.C.K.

Címkék

0day (110) adobe (87) adobe reader (21) anonymous (26) apple (60) az olvasó ír (49) blackhat (20) botnet (22) bug (200) buherablog (44) buhera sörözés (39) bukta (49) deface (38) dns (22) dos (29) esemény (82) facebook (26) firefox (64) flash (33) gondolat (31) google (59) google chrome (36) hacktivity (37) hírek (117) incidens (224) internet explorer (88) iphone (35) java (50) jog (22) kína (21) kriptográfia (68) kultúra (21) linux (24) malware (43) microsoft (142) móka (48) mozilla (23) office (26) oracle (40) os x (43) patch (197) php (20) politika (31) privacy (58) programozás (22) safari (34) sql injection (62) windows (85) xss (77) Címkefelhő

Licensz

Creative Commons Licenc

Kúszás a szögesdrót alatt

2009.10.05. 12:16 | buherator | 12 komment

Kicsit megkésve ugyan, de elérkezett a Hacktivity második Hack the Vendor játékáról szóló beszámoló ideje.

A kihívást ezúttal a DNS Hungary által beüzemelt McAfee hálózati és hoszton futó behatolás-megelőző rendszerei jelentették. Mivel az ilyen rendszerek egyik célja, hogy akár sebezhető infrastruktúra esetén is védelmet nyújtsanak, a Hacktivity szervezői a kifejezetten demonstratív céllal készült Foundstone Hackme Bank szoftvert ültették a védelmi rendszerek mögé, egy meglehetősen lyukacsos konfigurációra.

A Hackme Bank egy Microsoft SQL Server adatbázist használó .NET webalkalmazás, melyet készítői direkt telepakoltak egy halom sebezhetőséggel, ezeket pedig szépen dokumentélták is az okulni vágyók kevéért (nem mintha szükségünk lett volna rá :) Sajnos a rendszer összeállítása nagyobb akadályokba ütközött, ezért a valódi játék csak vasárnap kezdődhetett el, a játék elérhetősége viszont már szombattól nyilvános volt, ezért - nem tudva, hogy még nincs védelem a gépeken - már idejekorán nekiláttunk belemászni a kiszolgálóba: nagyjából fél óra után már csorgott is le a szerver merevlemezének teljes tartalma.

Ezzel persze nem értünk sokat, a feladat ugyanis egy, a Rendszergazda felhasználó asztalán elhelyezett fájl megszerzése volt, ezt pedig ekkor még nem töltötték fel. 

Mikor a játék valóban beélesedett, rögötön nekiláttunk az alaplépések végrehajtásának: login felület átvágása SQL injection-nel, az Admin süti átírása "true" értéküre. Azaz nekiláttunk volna, de a hálózati IPS azonnal lebontotta a kapcsolatunkat, amint meglátta a szokásos 

' or 1=1 -- 

karakterláncot a kérésünkben. Ezen a problémán azonban hamar túljutottunk, egy kis trükközéssel már biztos eredményt lehetett elérni:

' /**/ or /**/ 2+3=5 --

A süti átírásával persze már nem volt gond, erre semmilyen IPS-t nem lehet felkészíteni. Ez után jött a dolog érdekesebb része: Előzetes próbálkozásaink során az xp_cmdshell MSSQL eljárást alkalmazva hamar létre tudtunk hozni egy hálózati megosztást, valamint egy ehhez hozzáférő felhasználót, a gonosz HIPS azonban ezúttal blokkolta az SQL Server összes olyan hívását, amivel hozzá tudtunk volna férni az operációs rendszer megfelelő API-jához (hogy ez pontosan melyik volt, azt nem tudom megmondani, de ha valaki utánajár az xp_cmdshell megvalósításának, az biztosan megtalálja - siettünk, na).

A parancsfuttatás ezen módját tehát el kellett vetnünk, ezért más utakat kerestünk. A fájlolvasás némi guglizás után pofonegyszerű volt: először létre kellett hozni, egy megfelelő méretű mezővel rendelkező táblát

CREATE TABLE data(line text); 

ebbe szépen be kellett olvasni a kívánt fájlt,

BULK INSERT data FROM 'C:\boot.ini'

majd kiolvasni belőle a beírt adatokat:

SELECT line FROM data

Ekkor úgy tűnt, miénk a vár, de akadt egy kis bökkenő, nevezetesen, hogy nem tudtuk a kiolvasandó fájl nevét - és ezesetben valójában ez tartalmazta a feladat teljesítését bizonyító jelszót! Ezt a problémát lehet, hogy egy MSSQL guru könnyedén áthidalta volna (ezúton is várom a javaslatokat!), de mi sajnos nem voltunk kellő tapasztalat birtokában. Próbáltunk összeheggeszteni mindenféle VBScriptet generáló és futtató tárolt eljárásokat - mert MS SQL Serveren ezt is lehet! - de végeznünk sajnos már nem sikerült a konferencia zárása előtt. 

Miután bemutattuk az alkalmazott módszereket, és demonstráltuk, hogy egy ismert nevű fájl tartalmának kiolvasása még a Rendszergazda asztaláról sem jelent problémát, a játék szponzorai nagylelkűen megszavazták nekünk az eredeti nyeremény felét, melyet a játékban résztvevőkkel közösen a budapesti hackerspace-nek ajánlottunk fel.

Tanulságként én azt a következtetést vonnám le, hogy egyrészt behatolás-megelőző rendszereket telepíteni nem gyerekjáték, a megfelelő egyensúlyozás a biztonság és a használhatóság között pedig még sokkal nehezebb. Másrészt az ember a hacker soha nem tudhatja, hogy éppen milyen rendszerrel kell farkasszemet néznie, ezért jó, ha a lehető legtöbb szoftver lelkivilágába beleássuk magunkat. Persze a specialistában és a polihisztorban csak egy a közös: valójában egyik sem ért semmihez.

Még egyszer szeretnék köszönetet mondani a McAfee és a DNS Hungary szakembereinek a kitartó munkáért, amit a játék felélesztésére fordítottak, remélem jövőre is részünk lehet majd hasonló izgalmakban! :) 

Címkék: hacktivity sql injection hips ips mssql mcaffee hack the vendor nips

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

P1ngW1n 2009.10.05. 13:29:06

2 dolgot azért megjegyeznék:
- A francia mukinak azért így is sikerült valahogy annyira szétkapnia az SQL szervert, hogy az csontá fagyott
- Azt az SQLNinja-s ötletet lehet tényleg nem lett volna rossz kipróbálni ( bár utólag persze könnyen okoskodik az ember ), tekintve, hogy az beépített utasításokkal rendelkezik direkt MS-SQL szerverek ellen.

buherator · http://buhera.blog.hu 2009.10.05. 13:40:46

@P1ngW1n:

Jah, az a DoS kemény volt :) Az SQLninja meg fasza, de hát nem elegáns (jó kifogás :P), egyébként te is kipróbálhattad volna ;)

buherator · http://buhera.blog.hu 2009.10.05. 13:42:12

Ja, másrészt SQLninja is csak annyit csinál emlékeim szerint, hogy grantol magának xp_cmdshellre jogokat, aztán azon keresztül ad egy shellt, de lehet rosszul tudom.

P1ngW1n 2009.10.05. 14:10:44

@buherator:
ha jól emlékszem ott azért netcat feltöltés után még lehet vicces dolgokat csinálni, de amúgy jogos az észrevétel, miszerint lehet azt is megfogta volna az ottani védelem ( tekintve, hogy ha jól emlékszem whitelist-inget használtak és nem blacklist-inget )

Amúgy meg azért nem próbáltam ki, mert a ti gondolatmeneteteken próbáltam továbbhaladni én is ( jó kifogás :D )

sghctoma · http://sghctoma.extra.hu 2009.10.05. 16:01:41

eszembe jutott valami a file nevenek kideritesevel kapcsolatban.. nem tul megbizhato, meg nem is biztos, hogy mukodne, de egy probat lehet, hogy megert volna: ha a file-t a gepen hoztak letre, akkor lehet, hogy ott van a legutobb hasznalt file-ok kozott, ezek listaja pedig elerheto a registry-bol, innen: HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs.. a HKCU hive az ntuser.dat file-ban van, lehet, hogy lehetett volna kezdeni vele valamit..

|Z| 2009.10.05. 16:14:41

A teljesen szubjektív, minden szakmaiságot nélkülöző véleményem az, hogy az IPS-ek a mai formájukban nem sokat érnek. Nagyon drágák, nagyon sok szívás van velük, de egy komolyabb támadást (értsd: nem szkript kiddie) nem tudnak megfogni, max lassítani.

Bevezetés után pedig az IT kedvenc mumusa tud lenni, ha vmi hiba van mindig az IPS-re (és a security csapatra) lehet fogni.
"Konfigurálj félre még egy rendszert, és fogd rá az IPS-re"...

P1ngW1n 2009.10.05. 17:05:06

@sghctoma:
Ezt mi is próbáltuk :)
Az ntuser.dat-ot lock miatt nem tudtuk olvasni ( mivel csak Admin jogkör volt, és nem system, így nem tudtunk futás közben hozzáférni ), a registry-t meg valamilyen furcsa oknál fogna nem sikerült, pedig mi is próbáltuk..

sghctoma · http://sghctoma.extra.hu 2009.10.05. 18:45:46

ehh, tenyleg, futo rendszeren nehezkes hozzaferni az ntuser.dat-hoz.. a registry tobbi reszehez meg szerintem ugyanezen okbol nem fertetek hozza..

r@ek (törölt) 2009.10.05. 23:27:25

"mivel csak Admin jogkör volt, és nem system, így nem tudtunk futás közben hozzáférni"

Ez azert eleg egyszeruen megoldhato.. ;-)

NickFry 2009.10.06. 00:21:27

master.sys.xp_dirtree

HoaxSpecialist · http://hacker.blog.hu 2009.10.07. 04:10:35

Hejj!
Egy blikkes cikk szerint Cintia hoppon maradt? nem szep dolog!
Adjatok az ehezo arvaknak vagy csinaljunk belole opensource csajszit :D
süti beállítások módosítása