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

Az MS11-083 kihasználhatóságáról

2011.11.12. 14:49 | buherator | 1 komment

Kedd óta elgé nagy a nyüzsgés a Windows TCP/IP stackjének hibájával kapcsolatban, amit a Microsoft az MS11-083 jelű csomaggal javított. Mint az ismeretes, egy zárt portra küldött UDP folyammal triggerelhető a hiba, ami igen meglepő, és (látszólag) jelentősen megnöveli a kihasználás lehetőségét, hiszen gyakorlatilag minden rendszeren találunk zárt UDP portot. 

A problémát egy 32-bites referenciaszámláló túlcsordulása okozza. A referenciaszámlálók azt tartják nyilván, hogy egy struktúrára hány helyről hivatkoznak - ha nincs hivatkozás, a struktúra által elfoglalt memóriaterület felszabadítható. A fent említett UDP csomagfolyam küldésével elméletileg elérhető, hogy a számláló elérje a maximumát, ezután pedig egy újabb inkrementáció nullázza az értéket (a számláló átfordul). Ezt azt eredményezi, hogy a kernel úgy fogja hinni, hogy a hivatkozott struktúra felszabadítható, a felszabadítás pedig meg is történik például egy egyszerű ICMP echo üzenet fogadása esetében. Ez után a hivatkozott (már szabad) memóriaterületen a támadó elhelyezheti saját kódját, amire azonban még néhány kernel objektum hivatkozni fog, így elméletileg elérhető rendszer szintű kódfuttatás. (A PaX patch már egyébként 2008 óta védelmet nyújt a hasonló sebezhetőségekkel szemben Linuxon)

Van azonban néhány bökkenő. Először is egyszerű matematikával az ember kiszámolhatja, hogy a számláló átfordulásához szükséges 2^32 csomag elküldéséhez hétköznapi hálózaton hosszú hetek (mérések szerint nagyjából 50 nap) szükségesek. Ha ezt sikerül kivárnunk, jó eséllyel kékhalállal megpusztul a rendszer, de a legtöbb támadó valószínűleg inkább kibérelne egy botnetet néhány dollárért, mint hogy ennyi ideig malmozzon és várja, mikor szúrják ki a hálózaton a masszív UDP adatfolyamot - ha egyáltalán elérhető a célpont UDP-vel. Egy nem túl profi PoC exploit erre az esetre elérhető, működését az idő rövidsége miatt még nyilván nem sikerült ellenőrizni.

És akkor még nem beszéltünk a kódfuttatás esélyeiről: hogyan helyezzünk távolról egy megfelelő byte-szekvenciát a megfelelő memóriaterületre, éppen a felszabadulás után, de még éppen a számunka megfelelő kernel objektum hivatkozása előtt? Jó kérdés...

Mindent összevetve kétségtelenül egy érdekes hibáról van szó, az azonban nem túl valószínű, hogy a gyakorlatban erre támaszkodva fognak támadásokat végrehajtani. 

Zárszóként álljon itt egy kamu videó, aminek legalább a zenéje jó :)

Címkék: windows bug udp poc ms11-083

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.

Hunger 2011.11.13. 00:34:30

Wow milyen PaX hivatkozás, már nem is emlékeztem erre a cikkre. :)