Warsztaty internetowe: Narzędzia i techniki ataków na komputery w sieci
Sniffer protokołu HTTP - Achilles
Achilles jest aplikacją działającą na zasadzie serwera proxy, umożliwiającego zatrzymywanie ruchu
przepływających danych w celu analizy ich poprawności (zgodności z założeniami). Program
posiada możliwość zmieniania "w locie" zawartości przesyłanych danych takich jak wartości plików
cookie, zapytań typu GET i POST, wartości ukrytych pól formularzy (typu HIDDEN) oraz innych
elementów związanych z transmisją HTTP (HyperText Transfer Protocol).
Achilles działa na zasadzie pośrednika typu man-in-the-middle (przechwytuje cały ruch i po
ewentualnej modyfikacji przesyła go dalej). Program potrafi też negocjować z obiema stronami
szczegóły połączenia szyfrowanego SSL (Secure Socket Layer).
Achillesa można pobrać z naszego archiwum lokalnego:
Achilles 0.27
Archiwum ZIP zawiera program, inne niezbędne pliki oraz krótką dokumentację w formacie PDF.
Archiwum należy rozpakować, a następnie skonfigurować przeglądarkę internetową do korzystania
z serwera proxy (adres IP serwera: jeśli korzystamy z Achillesa lokalnie to 127.0.0.1 oraz port
(domyślnie) 5000).
Oto przykładowa ścieżka postępowania dla użytkowników MS Internet Explorera. Najpierw z menu
Internet Explorera wybieramy Narzędzia (Tools), potem Opcje internetowe (Internet options) i w
okienku, które się pojawi zaznaczamy kartę Połączenia (Connections). Następnie w ustawieniach
sieci lokalnej (LAN) klikamy przycisk Ustawienia sieci LAN (LAN Settings). Ustawiamy adres IP oraz
port serwera proxy (czyli Achillesa). Domyślne wartości przedstawione są na obrazku (gdy Achilles
ma działać na tym samym hoście, co nasz klient WWW, wtedy najlepiej wpisać adres IP
127.0.0.1). Domyślny port (5000) musi być taki sam jak w ustawieniach Achillesa.
Tak naprawdę, każda przeglądarka od Lynxa do Internet Explorera lub Netscape Navigatora może
być obsługiwana przez Achillesa. Miłośnicy innych przeglądarek powinni bez problemu znaleźć
opcje umożliwiające skorzystanie z serwera proxy. Sam Achilles jest jednak aplikacją Win32, więc
musi być uruchomiony w środowisku Windows.
Page 1 of 3
haker.pl Krzysztof Satoła
2008-06-30
http://www.haker.pl/haker_start.pl?warsztaty1_temat=37
Achilles może działać w dwóch trybach: przechwytywania (intercept mode) oraz zwykłym (non-
intercept mode). Tryb przechwytywania pozwala na modyfikowanie przepływających przez serwer
pośredniczący danych, natomiast drugi tryb zmienia Achillesa w zwyczajny serwer pośredniczący
(proxy).
W pliku logów (jeśli wybierzemy opcję Log to File) program zapisuje wszystkie informacje
przesyłane między klientem a serwerem. Można też przeglądać kod źródłowy HTML przesyłany w
obie strony między serwerem WWW a dowolnym klientem WWW umożliwiającym korzystanie z
serwera proxy poprzez dwa okienka. Okienko Serwera oraz okienko klienta.
Program umożliwia manipulowanie zapytaniami GET oraz POST, jak również wartościami plików
cookie.
Spróbujmy prześledzić ruch danych przesyłanych między lokalnym klientem WWW (nasz MS
Internet Explorer 6.0) a popularnym portalem www.onet.pl.
Krok 1 - Włączam Achillesa. Wcześniej skonfigurowałem przeglądarkę do korzystania z
serwera proxy (tak jak to zostało opisane wyżej). Upewniam się, że Achilles został
uruchomiony w trybie intercept (jak na poprzednim obrazku) oraz że statusem programu
jest Running (klikam przycisk z obrazkiem trójkąta) - patrz poprzedni obrazek.
Krok 2 - w okienku URL przeglądarki internetowej wpisuję np.: www.onet.pl i naciskam .
Następnie przechodzę do okienka programu Achilles i patrzę co się stanie:
Page 2 of 3
haker.pl Krzysztof Satoła
2008-06-30
http://www.haker.pl/haker_start.pl?warsztaty1_temat=37
Krok 3 - naciskam "send" akceptując dane wysyłane przez przeglądarkę do serwera i
czekam na odpowiedź tego drugiego:
GET / HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
Accept-Language: en-us
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host: www.onet.pl
Proxy-Connection: Keep-Alive
Krok 4 - Znowu naciskam "send":
HTTP/1.0 200 OK
Pragma: no-cache
Cache-Control: no-cache
Expires: Sun, 05 May 2002 16:50:03 GMT
P3P: CP="ALL DSP COR IVD IVA PSD PSA TEL TAI CUS ADM CUR CON SAM OUR IND
"Set-Cookie:
GUID=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF;
expires=Sunday, 29-Feb-2004 23:59:59 GMT; path=/; domain=.onet.pl;
Date: Mon, 05 May 2003 16:46:38 GMT
Server: AOLserver/3.4.2
Content-Type: text/html; charset=iso-8859-2
Content-Length: 53518Connection: close
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0
[...]
Dalsza część kodu to "strona internetowa" w HTML (pomijam, aby zachować czytelność).
Następnie przeglądarka internetowa wysyła różnego rodzaju zapytania dotyczące plików
dodatkowych: JavaScript, obrazków i innych, na przykład:
GET /_s/style14.css HTTP/1.0
Accept: */*
Referer: http://www.onet.pl/
Accept-Language: en-us
User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
Host: www.onet.pl
Proxy-Connection: Keep-AliveCookie:
GUID=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
Dostaje też różne odpowiedzi od serwera. Te pozytywne:
HTTP/1.0 200 OK
Connection: close
Date: Mon, 05 May 2003 16:51:50 GMT
Age: 582341
Server: Apache/1.3.4 (Unix)
Accept-Ranges: bytes
Last-Modified: Wed, 26 Feb 2003 19:22:35 GMT
ETag: "655b2-3e5d13fb"Content-Length: 4 Conte
Content-Type: text/plainMSCF
oraz te negatywne:
HTTP/1.0 400 Bad Request
MIME-Version: 1.0
Date: Mon, 05 May 2003 16:51:21 GMT
Server: AOLserver/3.4.2
Content-Type: text/html
Content-Length: 540
Connection: close
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD><TITLE>Invalid Request</TITLE>
</HEAD><BODY><H2>Invalid Request</H2>
The HTTP request presented by your browser is invalid.
<P>Invalid HTTP request<P ALIGN=RIGHT>
<SMALL><I>AOLserver/3.4.2 on http://www.onet.pl</I></SMALL>
</P></BODY></HTML>
Programista dostaje do ręki potężne narzędzie do testowania, a i potencjalny intruz może się wiele
nauczyć przeglądając przebieg komunikacji. Achilles umożliwia też ręczne generowanie zapytań i
wysyłanie ich w obie strony, co umożliwia przeprowadzanie ataków typu man-in-the-middle
(zamiany przesyłanych treści w trakcie transmisji).
Należy pamiętać, że program działa tylko w trybie tekstowym. Jako serwer proxy pośredniczy przy
przesyłaniu każdego typu danych, ale modyfikować można tylko dane przesyłane tekstem.
Kontrolki ActiveX, archiwa ZIP, TAR i inne, grafiki oraz pliki binarne nie mogą być modyfikowane
przy pomocy Achillesa.
|
Strona główna
|
Projekty
|
Zagrożenia
|
Kontakt
|
© 2000-2007
Krzysztof
Satoła. Wszelkie prawa zastrzeżone.
odwiedzin:
698164
Page 3 of 3
haker.pl Krzysztof Satoła
2008-06-30
http://www.haker.pl/haker_start.pl?warsztaty1_temat=37