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