Hakowanie_Internet_Explorera.pdf

(1576 KB) Pobierz
7626281 UNPDF
Delikatność Internet
Explorera
Atak
Krzysztof Kozłowski
stopień trudności
Jedno z pytań, które z biegu zostaną przez czytelników
Hakin9u zaliczone do grupy retorycznych, jest pytanie o to
która z przeglądarek jest przeglądarką najdelikatniejszą. I choć
powiedzenie „wszystko co piękne jest delikatne” do niedawna
nie miało zupełnie żadnego odniesienia w stosunku do
najpopularniejszej przeglądarki na świecie, to przynajmniej na
co działo się do tej pory z obecnym
synonimem internetu, bo to wcale nie
od niego się zaczęło. Zaczęło się bowiem od
przeglądarki WorldWideWeb (Rysunek 1.)
napisanej około roku 1990, oraz Silversmith,
której niektóre z funkcji do tej pory nie zosta-
ły zaimplementowane w żadnej z obecnych
przeglądarek. Przed spopularyzowaniem IE
triumfy święciły także ViolaWWW i NCSA
Mosaic, która w pewien sposób przekształciła
się ostatecznie w legendarnego Netscape
Navigatora. To właśnie Netscape Navigator
dał początek Mozilli, która powstała na bazie
jego silnika. Poprzez podzielenie Mozilli i wy-
odrębnienie jedynie przeglądarki WWW stwo-
rzono Firefoxa, który wydaje się być obecnie
największym konkurentem IE. Ponieważ za-
uważyłem, że coraz więcej młodych ludzi nie
kojarzy przyczyn sukcesu przeglądarki Micro-
softu, kojarząc za to, że nie był on pierwszą
przeglądarką i nie zawsze był przeglądarką
najpopularniejszą, muszę powiedzieć jedną
rzecz. Sukces IE jednoznacznie kojarzony
jest z sukcesem systemu Windows. Statysty-
ki jednoznacznie pokazują, że popularność
przeglądarki rosła z popularnością systemu
z Redmond. Największy skok odnotowuje się
tu przy Windows95 z którym to przeglądar-
ka została zintegrowana. Można tu jeszcze
wspomnieć o głośnych procesach w stanach
odnośnie stopnia integracji IE z Windows 98
i o tym, że proces dotyczył niemożności usu-
nięcia przeglądarki z systemu tak jak normal-
nych programów. To tyle w kwestii wyjaśnienia
i wstępu.
IE <=> Windows?
Większość phisherów czy ktokolwiek nastawio-
ny na obnażanie dziur związanych z WWW,
najwięcej może się nauczyć dzięki IE i jego
delikatności. To jedna z przyczyn, które bez-
pośrednio wpłynęły na fakt, że i sam Windows
uważany jest za jeden z najdelikatniejszych
systemów. Nie wszyscy jednak wiedzą, że zda-
nie IE <=> Windows jest nie prawdziwe.
Po wydaniu Windows 95 zapowiedziano
wydanie IE na inne platformy systemowe jak
MAC i UNIX (Solaris i HP-UX). Pierwszą wyda-
ną wersją była 4,01; ostatnią 5,0 SP1 (Rysunek
2.). Obecnie MS nie pracuje już nad wersjami
dla Unixów, a od wersji 7 nie ma już nawet
Microsoft Internet Explorer. Jest Windows In-
ternet Explorer.
2
hakin9 Nr 1/2007
www.hakin9.org
N a początek warto wspomnieć o tym
7626281.021.png 7626281.022.png 7626281.023.png
xxxxx
Rysunek 1. Pierwsza przeglądarka - World Wide Web
19 wciąż pozostaje niezałatanych.
Wśród nich większość oznaczona
jest jako „ekstremalnie krytyczne”.
Dla porównania, największy konku-
rent IE - Mozilla Firefox, w tym czasie
miał zgłoszonych 36 dziur. Trzy wciąż
pozostają niezałatane, a ich ozna-
czenie to „najmniej krytyczne”. Inny
konkurent IE - czyli Opera ma jedną
zgłoszoną dziurę, która jest załatana.
Nie ma żadnych niezałatanych dziur.
W maju 2006, magazyn PC World
oznaczył Internet Explorera 6 jako
najgorszy produkt wszech czasów.
Znany jest także fakt braku wsparcia
dla standardów, co znacznie utrudnia
pisanie aplikacji webowych kompaty-
bilnych z IE i innymi przeglądarkami.
Problemem dla programistów MS
było nawet dodanie dobrego wspar-
cia dla formatu .png. Do tej pory IE
pozostawiał także wiele do życzenia
pod względem prędkości.
Teoria
Internet Explorer 3 był pierwszą z po-
pularnych przeglądarek obsługują-
cych CSS, ze wsparciem dla ActiveX,
apletów Javy. To dało mu przewagę
nad Netscape Navigatorem.
Przeglądarka używa „ zone-ba-
sed security framework ” co spro-
wadza się do grupowania stron wg.
pewnych kryteriów. W zamierzeniach
ma to zapobiegać wykonywaniu się
niepożądanych funkcji (Rysunek 8).
Aplikacja monitoruje każde żądanie
instalacji dzięki czemu dopóki użyt-
kownik nie potwierdzi źródła jako
bezpiecznego, system będzie moni-
tował żądaniem potwierdzenia.
W Windows Vista IE7 posiada tryb
chroniony - „Protected Mode”, w try-
bie tym, przeglądarka działa nawet
z mniejszymi prawami niż użytkow-
nik, który ją uruchomił. Przeglądarka
ma wówczas dostęp tylko do katalogu
Temporary Internet Files, nie może in-
stalować żadnego oprogramowania,
ani zmieniać koniguracji bez poro-
zumienia z odpowiednim procesem
systemowym ( broker process ).
Delikatność Internet Explorera
została uznana dzięki dużej ilości
spyware, adware, czy wirusów wyko-
rzystujących IE jako furtkę do syste-
mu. Czasem wystarczyło odwiedzić
specjalnie przygotowaną stronę by
umożliwić instalację złośliwej apli-
kacji (Rysunek 8). Po stronie złośli-
wego oprogramowania stała także
postawa Microsoftu, bardzo wolno
reagującego na zgłaszane dziury
bezpieczeństwa. Znacznie wolniej niż
konkurencja. Wykorzystywane było
to przez rzesze script kiddies oraz
całkiem dojrzałych programistów im-
plementujących złośliwe oprogramo-
wanie w większych aplikacjach.
Przykładem niech będą tutaj bazy
danych na temat bezpieczeństwa.
Według Secunii od 28 maja tego roku
na 104 dziury w Internet Explorerze
Szczegóły
Istnieje wiele znaczących słabości
i dziur w technologiach zaimple-
mentowanych w Internet Explorerze,
a mających związek z modelem do-
men i stref bezpieczeństwa, lokalnego
systemu plików ( Local Machine Zone ),
dynamicznego HTML (DHTML), stron
pomocy w HTML, rozpoznawania ty-
pów MIME, interfejsem użytkownika
(GUI), oraz ActiveX. Z uwagi na fakt,
że IE jest mocno zintegrowany z Win-
Rysunek 2. IE przygotowany przez MS dla Unixa
www.hakin9.org
hakin9 Nr 1/2007
3
 
7626281.001.png 7626281.002.png 7626281.003.png
 
atak
Ulepszona wersja tego ataku
czyni go znacznie bardziej niebez-
piecznym i polega na wprowadze-
niu wartości 0x01 po symbolu @
w fałszywym adresie. Można spra-
wić, że Internet Explorer nie będzie
wcale wyświetlał reszty adresu. Na
przykład: http://www.microsoft.co-
m&session%123123123@0x01krzy-
siek.software.com.pl
Rysunek 3. Internet Explorer 2.0
W ogóle
Jakiś czas temu odkryto możliwość
wykorzystania Google Desktop do
uzyskania zdalnego dostępu do
prywatnych danych, jak numery
kart kredytowych czy hasła. Można
tego dokonać poprzez odpowiednio
przygotowaną stronę internetową.
Dzięki kilku słabościom projekto-
wym Internet Explorera możliwe
jest tu zmuszenie odwiedzających
do uruchomienia wyszukiwania pro-
wadzącego na strony internetowe
wykorzystujące te słabości. Na czym
polegają te słabości i jak je wykorzy-
stać? Wystarczy IE w wersji 6, o co
w tej chwili nie trudno – bo jest to
najpopularniejsza i najaktualniejsza
pełna wersja dostępna w momencie
pisania tego artykułu. Przyda się
także Google Desktop w wersji v2,
oczywiście zainstalowany. Można
go przetestować za pomocą skryptu
z Listingu 1. Co prawda Google za-
łatało juz swoje strony, jednak przy-
kład daje dobre wyobrażenie.
dows, często udany atak na przeglą-
darkę prowadzi do uzyskania dostępu
do systemu operacyjnego.
Vista przynosi dwa rozwiązania:
mechanizm „User Account Control”,
który zmusza użytkownika do po-
twierdzenia każdej akcji mogącej
mieć wpływ na bezpieczeństwo
systemu, nawet w przypadku pracy
jako administrator systemu oraz
„Protected-mode IE”, dzięki któremu
przeglądarka pracuje ze znacznie
mniejszymi prawami niż użytkownik.
Duża część dziur bezpieczeństwa
Internet Explorera związana jest za-
implementowanym modelem obiekto-
wym dla komponentów. (Component
Object Model - COM). Wbudowanie
COM w Internet Explorera przez me-
chanizm ActiveX czy Browser Helper
Objects (BHO) otworzyło szereg
możliwości które stały się bramą dla
wirusów, trojanów i infekcji spywaru.
Atak na słabości Internet Explo-
rera w celu przechwycenia informa-
cji o użytkowniku za pomocą Google
Desktop.
Większa część czytelników praw-
dopodobnie jest ostrożna jeśli chodzi
o bardzo popularny trick używany
przez spamerów i im podobnych,
którzy tworzą adresy URL z nazwa-
mi użytkownika, które wyglądają jak
nazwy hostów, by sprawić by ludzie
ufali niebezpiecznym stronom.
Na przykład http://www.microsoft
.com&session%123123123@krzysie
k.software.com.pl . Ten trick używany
jest często do kradzieży kont typu
paypal, przez oszukiwanie użytkowni-
ków. Wprowadza ich bowiem w błąd,
że hasło zostało zresetowane, lub źle
wpisane. Komunikat generowany jest
oczywiście przez stronę przygotowaną
specjalnie w tym celu, a na którą adres
przekierowuje. Użytkownik poinformo-
wany o tym, że hasło należy zmienić
i że należy najpierw wpisać stare hasło
może faktycznie to uczynić – dając tym
samym je na tacy phisherowi.
Rysunek 4. Internet Explorer 3.0
4
hakin9 Nr 1/2007
www.hakin9.org
7626281.004.png
 
7626281.005.png
 
7626281.006.png
 
7626281.007.png 7626281.008.png
 
7626281.009.png 7626281.010.png
 
xxxxx
Rysunek 5. Internet Explorer 4
Reguły CSS determinują wygląd
stron i z reguły określają wybór,
własność i wartości. Własność
i wartości są oddzielane dwukrop-
kiem i zamknięte przez nawiasy. Na
przykład by pokolorować linki na
stronie trzeba zdeiniować reguły
CSS a { color: white }. W celu odzy-
skania kodu z danego adresu, który
dostarcza niepoprawny kod CSS,
strona docelowa musi zawierać kilka
znaków używanych w CSS jak na
przykład nawiasy. Na szczęście wiele
obecnych stron zawiera je, ponieważ
są one bardzo popularne w kodzie
Javascript i regułach CSS imple-
mentowanych na stronach. Jak tylko
parser CSS Internet Explorera trai
na odpowiednie nawiasy, spróbuje on
odczytać dane i zinterpretować dane
po nich występujące. Nawet w przy-
padku gdy te reguły CSS nie będą
miały dla niego żadnego sensu, IE
wciąż będzie je interpretował i pozwo-
li obejrzeć je w „cssText”. Kombinacje
nawiasów, dwukropków i średników
pozwala decydować, które kawałki
kodu mogą zostać odczytane.
Podczas używania technik CSSXSS
atakujący z pewnością będzie w sta-
nie uzyskać kod JavaScript. Jednak
może dopomóc szczęściu poprzez
wstrzykiwanie znaków CSS w prze-
strzeń docelową adresu. Ponieważ
wiele stron generowanych jest dy-
W szczególe
Zwykle przeglądarki mają wbudowane
silne restrykcje co do interakcji związa-
nych z kilkoma domenami. Odpowied-
nio przygotowana strona pozwala prze
kierować użytkownika na inny adres.
Nie może jednak sprawić by czytana
była jej zawartość lub manipulowany
był jakikolwiek obiekt DOM. To ob-
ostrzenie jest dobrze przetestowane,
w związku z czym właściciel strony
nie może szpiegować użytkownika
surfującego po internecie za pomocą
JavaScrtiptu. Dodatkowo, jeśli użyt-
kownik jest już zalogowany do jakiejś
usługi (gmail lub hotmail) to gdyby nie
było tych zabezpieczeń, odwiedzana
strona mogłaby wykonywać pewne
operacje na koncie użytkownika (np.
kasowanie wiadomości czy wysyłanie
ich). W Internet Explorerze te zabez-
pieczenia działają dobrze, dopóki do
gry nie wejdą importy CSS. Popular-
nie zwie się to atakami CSSXSS lub
Cascading Style Sheets Cross Site
Scripting.
Odpowiednio przygotowana stro-
na może zaimportować reguły CSS
przy użyciu dyrektywy „@import”. IE
ma jeszcze bardzo wygodną funkcję
dostępną z poziomu javascriptu :
„addImport” która działa jak „@im-
port” ale w środowisku uruchomie-
niowym. Reguły CSS mogą później
posłużyć do uzyskania dostępu do
właściwości „cssText” w zestawie
document.styleSheets . Co jednak
stanie się jeśli strona zaimportuje
URL, który nie jest poprawnym
plikiem CSS? Otóż IE pozwoli na
przetworzenie CSS pozwalając tym
samym na czytanie właściwości
„cssTex” oraz zdalne czytanie kodu
html który został wczytany do reguł
CSS. Ponieważ reguły CSS wyma-
gają pewnej struktury dla odpowied-
niej ilości kodu, może się on różnić
w zależności od źródła strony.
Rysunek 6. Internet Explorer 6 z blokadą wyskakujących okienek
www.hakin9.org
hakin9 Nr 1/2007
5
 
7626281.011.png 7626281.012.png 7626281.013.png
 
atak
Rysunek 7. Internet Explorer 7 z zakładkami
ny jest jedynie z lokalną maszyną
127.0.0.1, co uniemożliwia nawią-
zanie bezpośredniego połączenia
z zewnątrz.
Google dodało także dodatkowe
zabezpieczenie, które uniemożliwia
dostęp zewnętrznych stron do lokal-
nego serwera – stąd próby explo-
itowania dziur XSS raczej się nie
powiodą. W celu uzyskania dostępu
do interfejsu GDS generowany jest
pseudo-losowo klucz, który musi
zostać przekazany jako parametr
w adresie URL. Klucz generowany
jest w momencie gdy użytkownik
klika na ikonę GDS, a domyślna
przeglądarka używając wygenero-
wanego przez serwer klucza łączy
się z nim. Jeśli klucz okaże się błęd-
ny lub nie będzie go wcale, GDS
nie pozwoli na wykonanie żadnego
zapytania i zwróci komunikat błędu.
W takim wypadku jedyną rzeczą do
jakiej przeglądarka będzie miała do-
stęp, będzie obrazek w formacie .gif
– logo Google.
Google zintegrowało po za tym
GDS z jej sztandarową wyszuki-
warką na google.com . Po instalacji
GDS, pojawi się nowy link w go-
ogle.com nad polem zapytania. Link
nazwany został „Desktop”. Link
prowadzi do adresu URL lokalnego
serwera i zawiera klucz. Dzięki te-
mu użytkownik będzie mógł przejść
do wyszukiwania lokalnych plików,
nie zauważając nawet, że opusz-
cza stronę Google. Link „desktop”
w zasadzie nie pochodzi nawet od
Google, ale jest wstrzykiwany przez
GDS poprzez plugin przeglądarki
namicznie i dostaje parametry przez
URL, wstrzykiwanie znaków jest zwy-
kle trywialnie proste. Mechanizm jest
podobny do tego używanego w przy-
padku klasycznych ataków XSS, z tą
różnicą, że tutaj atakujący wstrzykuje
znaki, które przez większość stron
uznawane są za nieszkodliwe.
Podobnie jak w przypadku więk-
szości dziur XSS, błędy projektowe
Internet Explorera pozwalają ataku-
jącemu przechwycenie prywatnych
danych lub wykonanie odpowiednie-
go kodu na zdalnej maszynie. Różni-
ca w tym przypadku polega na tym,
że strona wcale nie musi być podatna
na wstrzykiwanie kodu. Wszystko co
musi zrobić atakujący to skuteczne
zaproszenie oiary na odpowiednio
przygotowaną stronę. Tysiące stron
może zostać do tego użytych, a do-
datkowo nie ma łatwego rozwiązania
chroniącego przed atakami, do póki
IE nie zostanie załatane. Daje to
całkiem sporą liczbę użytkowników
podatnych na atak.
Podatność ta testowana była na
w pełni spatchowanej przeglądarce
Microsoft Internet Explorer w wersji
6, wcześniejsze najprawdopodobniej
także są wrażliwe. Dla porównania
Mozilla Firefox wydaje się prze-
strzegać restrykcji i zachowywać je
w importach CSS co z kolei czyni ją
odporną na tego typu ataki. Opera
nie jest wrażliwa, ponieważ nie ob-
sługuje kolekcji styleSheets. Zabez-
pieczeniem dla użytkowników może
być wyłączenie obsługi Javascriptu
w Internet Explorerze lub użycie in-
nej przeglądarki.
Exploit
dla Google Desktop
By zademonstrować co można zro-
bić dzięki opisanej wyżej słabości,
przygotujemy skrypt exploitujący
Google Desktop Search (GDS) do
wyszukiwania i przechwytywania
prywatnych danych użytkowników
poprzez zdalną stronę. Jednak za-
nim do tego przejdziemy – krótka
charakterystyka działania mechani-
zmu GDS.
Google Desktop Search to
całkiem użyteczny kawałek kodu,
który indeksuje dane użytkownika.
Do indeksowanych danych zalicza
dokumenty, maile, arkusze itd. Po
zindeksowaniu użytkownik może
przeszukiwać pliki za pomocą in-
terfejsu podobnego do tego który
posiada wyszukiwarka Google.
Wyszukiwanie realizowane jest za
pomocą serwera http zainstalowa-
nego na lokalnej maszynie. Serwer
nasłuchuje na porcie 4664 i związa-
100%
80%
60%
40%
20%
0%
1996
1998
2001
2002
2004
2006
Rysunek 8. Popularność Internet Explorera
6
hakin9 Nr 1/2007
www.hakin9.org
7626281.014.png
 
7626281.015.png
 
7626281.016.png
 
7626281.017.png 7626281.018.png
 
7626281.019.png 7626281.020.png
 
Zgłoś jeśli naruszono regulamin