Amikor először láttam a szőnyegbombázós Safari trükköt, nem gondoltam volna, hogy még egy hónap múlva is erről fognak beszélni. Aztán Aviv Raff felfedezte, hogy a hiba hozzásegíthet ahhoz, hogy tetszőleges kódot futtassunk Safarit és Internet Explorert egyaránt futtató Windows felhasználók számítógépén. Ez már sokkal érdekesebbnek hangzott, de érthető okokból részleteket nem árultak el. Most viszont Liu Die Yu közzétette a támadás lépéseit, melyeket - mint kiderült - bárki, aki az utóbbi két évben nyomon követte az IT-biztonság híreit ki tudott volna sakkozni.
Valójában két olyan veszélytelennek tűnő lehetőség kombinálásáról van szó, amelyekről a két gyártó - a Microsoft és az Apple - már rég óta tud, de nem tekint biztonsági problémának, ezért nem is javít. Az első a már említett Safari szőnyegbombázás, melynek segítségével a felhasználó tudta nélkül lehet fájlokat letölteni az Asztalra. A második pedig nem más, mint a régi jó Internet Exploreres DLL betöltési furcsaság: a böngésző ahelyett, hogy a megfelelő dinamikus könyvtárakat a szokásos rendszerkönyvtárakból töltené be, először a PATH rendszerváltozóban szereplő könyvtárakban - köztük a felhasználó Asztalán - kezd keresgélni, és ha talál egyező nevű fájlt, akkor azt fogja betölteni a rendes DLL helyett.
Innentől kezdve remélem senkinek nem okoz problémát, hogy összerakja a darabokat... Tény, hogy a támadás valószínűsége viszonylag kicsi, de a kivitelezés nem elképzelhetetlen! Másrészt azt hiszem ez az eset szép példája annak, hogy hogyan válhat egy jelentéktelennek tűnő kis bug fenyegető biztonsági réssé.
Gyors frissítés: Érdemes volt átnézni a kommenteket is, kiderült még egy pár érdekes részlet. Először is a DLL betöltést nem az IE, hanem a Windows LoadLibrary függvénye szabályozza, tehát ez egy operációs rendszer szintű tulajdonság. Másrészt az egyik hozzászó szerint a dolog emiatt tovább gondolható: mi van, ha a kernel32.dll-t töltjük le? Ilyenkor elképzelhető, hogy bármilyen új program (nem csak IE) betöltésekor lefut a kódunk! Érdemes lenne eljátszani vele...
Innentől kezdve remélem senkinek nem okoz problémát, hogy összerakja a darabokat... Tény, hogy a támadás valószínűsége viszonylag kicsi, de a kivitelezés nem elképzelhetetlen! Másrészt azt hiszem ez az eset szép példája annak, hogy hogyan válhat egy jelentéktelennek tűnő kis bug fenyegető biztonsági réssé.
Gyors frissítés: Érdemes volt átnézni a kommenteket is, kiderült még egy pár érdekes részlet. Először is a DLL betöltést nem az IE, hanem a Windows LoadLibrary függvénye szabályozza, tehát ez egy operációs rendszer szintű tulajdonság. Másrészt az egyik hozzászó szerint a dolog emiatt tovább gondolható: mi van, ha a kernel32.dll-t töltjük le? Ilyenkor elképzelhető, hogy bármilyen új program (nem csak IE) betöltésekor lefut a kódunk! Érdemes lenne eljátszani vele...
.Andrei (törölt) · http://www.andreiground.com/ 2008.06.18. 14:43:37
Úgy látom, hogy csak IE7 alatt van, de gondolom ez az áldásos lyukacska öröklődni fog.
Érdemes Liu Die Yu oldalán a kommenteket is olvasgatni. Egész jó kis ötlettár...
sghctoma 2008.06.18. 22:46:23
nos, ez így nem pontos... a PATH-ban nincs bent az asztal alapból... a LoadLibrary API először abban a könyvtárban néz körül, ahol van az alkalmazás, aztán az aktuális (working) könyvtárban.. és ez a gond.. ugyanis ez a könyvtár az asztal, ha az asztalról, vagy a start menüből indítottunk valamit..
pem 2008.06.19. 00:22:43
"Készülök ugyanis, nagy unalmaban egy kis aranyos shell scriptel, amit fel szeretnék ajánlani a köz szolgálatára. :D Benne van már egy fél délután, de azért még erőteljesen 0.1 béta szagú szegényke. Várok addig is ötleteket is, mit látnátok szívesen."
Ne faradj, par ezer ember mar megelozott. Tobbek kozt: pentestmonkey.net.
Azt mar nem is mondom, hogy r57...
pem 2008.06.19. 00:25:28
Kezdem erteni Raavencroftot...
sghctoma 2008.06.19. 00:42:44
kicsit utánanéztem a dolognak, mert én egy régi Win API doksiból tanultam Win32-t, hátha változott valami... változott.. XP SP2-től már alapból engedélyezett a SafeDllSearchMode.. így az aktuális könyvtár visszakerült a system32, system, és a windows mappák mögé.. ergo nem hinném, hogy ez rendszerszintű probléma, valami az IE-ben van elszúrva...
próbáltam Olly-ban breakelni minden LoadLibrary-re IE-t futtatva, de schannel.dll-t egyszer sem próbál ezzel a fv-el betölteni.. szóval wtf? kár, hogy bevmatot kell tanulnom, marha kíváncsi vagyok...
.Andrei (törölt) · http://www.andreiground.com/ 2008.06.19. 12:35:15
scripter-man 2008.06.19. 14:27:02
Másodszor nem a spanyolviaszt akartam felfedezi, szerintem, ez a kommentből sem érződik. ( kövezzetek meg ha igen. ) Egy meglévő technikát szeretnék a saját módszeremmel kivitelezni. ( Ne adj isten tovább fejleszteni. )
Harmadszorra pedig csak annyit, hogy asszem már az elején említettem, hogy léggé foghíjas a tudásom. És mint tudjuk gyakorlat teszi a mestert.