background image

 

 

 
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

background image

 

 
 
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

background image

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