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

Mac-es kártevők márpedig vannak

2012.04.04. 16:00 | buherator | Szólj hozzá!

Bár többségük feltehetően nem tud róla, az OS X felhasználók izgalmas napokat élnek mostanában. A Lamadai/Flashback kártevő kifejezetten almás gépekbe próbálja berágni magát Javán keresztül, ami még nem is lenne akkora baj, ha lenne elérhető folt a problémára, de sajnos nincs már van, tegnap (laza 7 héttel a hivatalos folt megjelenése után), mikor kezdtem írni a posztot még nem volt...

A sebezhetőség minden támogatott platformot érint, Windowst, Linuxos ugyanúgy borítani lehet vele, de a frissítés ezekre a rendszerekre február 14-én már elérhető volt. Közben az exploit március 25-én bekerült a zombitoborzó-tisztek közkedvelt BlackHole csomagjába is.

A kihasznált sebezhetőség a CVE-2012-0507 azonosítót kapta, és nagy örömünkre rengeteg információ fellelhető róla a neten. Ezek közül a leginformatívabbak a Metasploit Project vonatkozó commitja (erre lesznek hivatkozások, nyissátok ki új lapon!), valamint a felfedező Jeroen Frijters saját leírása, a hibás típusegyeztetésből adódó Java sérülékenységeket pedig remekül összegzi ez az oldal.

A sebezhetőség lényege az, hogy az AtomicReferenceArray objektumokban el lehet tárolni A típusú elemeket, majd ki lehet olvasni ezeket B típusúként, anélkül, hogy a futtatókörnyezet értesülne a csalásról. Frijters példájával:

AtomicReferenceArray ara = new AtomicReferenceArray(new Integer[1]);
ara.set(0, "foo");
Integer value = (Integer)ara.get(0);

A value ekkor egy Integer típusú(nak hitt) String objektumot tartalmaz. 

Az Exploit osztályban található as tömb egy szerializált Java objektum, ami a 39-40. sorban deszerializálódik. Ha rámegyünk debuggerrel erre a részre, ezt kapjuk:

cve20120507_debugger.jpg

Amint látható, egy objektum tömbről van szó melyben egy AtomicReferenceArray és egy Help objektum (tömb) szerepel. A Help a támadó által definiált osztály, a ClassLoader leszármazottja. A ClassLoader osztály védett defineClass() metódusa lehetővé teszi tetszőleges jogosultsággal rendelkező osztályok létrehozását, mivel azonban ezt a metódust nem lehet megbízhatatlan kódból hívni, vagy az osztályt példányosítani, ezért ezzel egyelőre nem sokra megyünk. 

A 42. sorban példányosítjuk az AtomicReferenceArray osztályt, méghozzá a fent említett szerializált állapotból. Erre azért van szükség, mert az AtomicReferenceArray-ba kerülő objektumok egy Object[] típusú attributumban kerülnek tárolásra alap esetben, a szerializáció azonban lehetővé teszi, hogy ennek az adattagnak más típust, ebben az esetben Help[]-et adjunk, másrészt a tárolt tömb referenciájára még szükségünk lesz a későbbiekben. Az as-ból visszahozott aobj tömb első AtomicReferenceArray típusú eleme valójában a nulladik Help[] objektumra hivatkozik vissza az array adattaggal.

A trükk a 44. sorban következik, amikor is az atomicreferencearray nulladik (Help típusú) elemének az Exploit osztály Applet ősétől kapott ClassLoader-ét allítjuk be. Erre az objektumra van egy referenciánk ahelp néven, amiről a futtatókörnyezet azt hiszi, hogy Help típusú, de valójában egy ClassLoadert tartalmaz. Ezt a referenciát átadhatjuk a Help.doWork() statikus metódusnak. Mivel a futtatókörnyezet azt hiszi, hogy a Help.doWork() egy Help típusú objektummal dolgozik, meg fogja engedni a védett defineClass() hívását, ami azonban nem egy Help, hanem az Applettől kapott ClassLoaderen fog lefutni, jogosultan tetszőleges biztonsági beállítások meghatározására. Ezzel vége a játéknak.

Friss: A Dr.Web eddig 600.000 fertőzött Mac-et számolt össze, ebből 274-et Cupertinoban

Címkék: java malware os x

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.

Nincsenek hozzászólások.

Tetszett a bejegyzés? Kövesd a blogot!

blog.hu