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

Angol shellkód

2009.11.24. 17:50 | buherator | 1 komment

A szoftverek szűrőmechanizmusainak megkerülése miatt néha szükséges, hogy egy sebezhetőségen kersztül bejuttatandó shellkód ne tartalmazzon bizonyos karaktereket. Láttunk már olyan shellkódot, ami túléli az Unicode transzformációt, és csak egyszerű alfanumerikus karaktereket tartalmazóról is lehetett hallani

Négy kutató azonban a perverzió tudomány egy magasasabb szintjére lépett, és kitalálták, hogyan lehet angol nyelvű shellkódot generálni. Igen, jól olvastátok!  Bár nem jutottam a doksi végére, a módszer lényege a következő:

Először is megnézik, hogy minek felelnek meg az angol ABC betűinek ASCII értékei az adott platformon (esetünkben sima IA32). Ezek az utasítások egy incializációs utasítássor alapját fogják képezni. Elékszítenek egy kiindulási példányt az inicializációs utasítássorból, majd egy nagymáretű angol szövegtörzsből részleteket választanak, melyeknek annál nagyobb pontszámot adnak, minél hosszabb részletet fednek le az előállítandó utasítássorból. Így az inicializációs rész egy értelmes szöveghalmaz kisebb részeiből fog felépülni. Ez az inicializációs rész aztán kibontja az ún. dekódert, ami hasonló módon "becsomagolva" pihen a memóriába. A kibontás azt jelenti, hogy a dekódert reprezentáló byte-ok értékeit futásidőben megváltoztatják, így elérhetővé téve olyan instrukciókat, melyeket nem fedett le az angol ABC.  A dekóder ezután a szintén egy értelmes szövegekből előállított byte-sorozatot dekódol a fentiekhez hasonlóan, ez pedig már maga a "hasznos teher" lesz.

A módszer lényege természetesen nem a különböző szűréseken és transzformációkon történő átjutás megkönnyítése, hanem a minta vagy akár spektrumfelbontás alapú shellkód-detektálási módszerek kijátszása. Egy ilyen módon felépített utasítássort egy számítógép nagy valószínűséggel nem fog tudni megkülönböztetni egy egyszerű szövegtől, pl. egy e-mail tartalmától.

Címkék: perverz shellcode

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.