background image

20

 

POCZĄTKI

HAKIN9 6/2009

K

ino i telewizja zasypują nas wizerunkiem 
hakera, który uległ pewnej mitologizacji. 
Realia życia i działalności tych obywateli 

cybernetycznego świata są zdecydowanie 
odmienne. Także przeprowadzane ataki nie 
zajmują kilku sekund, ale kilka godzin, dni, a 
czasem miesięcy. Sukcesu nie gwarantuje lekka, 
lecz ciężka i monotonna praca. 

Cel i przygotowania

W wielu produkcjach filmowych działalność 
hakerska ukazana jest w sposób paradoksalny 
i kompletnie fałszywy. Główny bohater wpisuje 
magiczne kody na klawiaturze, po czym w 
cudowny sposób uzyskuje dostęp do wszystkich 
danych, np. banku czy wojska. Oczywiście 
nie zajmuje mu to więcej niż dwie minuty. Bez 
przygotowań, zbierania informacji, a jedyną 
motywacją jest chęć zysku lub presja wywołana 
przez osoby trzecie. Jest to jedna z głównych 
przyczyn zniechęcających dużą część przyszłych 
hakerów, którzy dochodzą do wniosku, że 
nigdy nie osiągną takiego poziomu wiedzy i 
umiejętności, jak filmowy bohater. Nie ma jednak 
bardziej błędnego ukazania rzeczywistości, 
która zdecydowanie odbiega od realiów 
przedstawianych w scenariuszach filmowych. 
Włamanie jest efektem długiej i żmudnej pracy 
wykonanej w ciągu wielu dni, tygodni, a czasem 
nawet miesięcy. Można określić to jako sowitą 
nagrodę dla hakera za jego cierpliwość i 
rzetelne przygotowanie niezbędnej wiedzy oraz 

ŁUKASZ CIESIELSKI

Z ARTYKUŁU 

DOWIESZ SIĘ

w jaki sposób hakerzy 

przeprowadzają ataki,

z jakich narzędzi korzystają,

którymi stronami WWW się 

wspierają,

zrozumiesz czym różni się realny 

atak od filmowego.

CO POWINIENEŚ 

WIEDZIEĆ

znać podstawowe zagadnienia 

związane z funkcjonowaniem 

sieci,

sprawnie posługiwać się 

konsolą,

znać kluczowe pojęcia z zakresu 

hakingu.

niewątpliwie ogromnych ilości informacji na temat 
przyszłego celu. Choć działania takie nazywane 
są z języka angielskiego footprinting, można 
określić je jako prowadzenie obserwacji i tropienie 
wszystkiego, co można wykorzystać w trakcie 
pokonywania zabezpieczeń. Nawet detale, które 
z pozoru wydają się nieistotne, czasami okazują 
się niezbędnymi do osiągnięcia sukcesu. Aby 
zachować przejrzystość i chronologię, wątek ten 
rozwiniemy w dalszej części tekstu. 

Zaczniemy od podstaw, czyli od określenia 

celu i zakresu działań. Dla urozmaicenia załóżmy, 
że będzie to jakaś organizacja, np. Ciesielski 
& Lucas S.A. Pierwszym nasuwającym się 
pytaniem jest: Na co należy zwrócić uwagę i 
od czego zacząć? Dostęp frontalny do fikcyjnej 
spółki będzie z pewnością doskonale strzeżony 
(oczywiście nie na tyle by włamanie stało się 
niemożliwym). Zawsze znajdzie się słaby punkt 
zabezpieczeń, który można wykorzystać, np. 
chwilowe wyłączenie ściany ogniowej z powodu 
testowania połączenia z nowymi elementami 
sieci itp. W Polsce, z niewiadomych przyczyn, 
wiele urzędów nie stosuje żadnych dodatkowych 
zabezpieczeń poza oprogramowaniem 
antywirusowym. Właśnie dlatego tak ważne jest 
dokładne rozeznanie. W przeciwnym wypadku 
haker spędzi długie godziny na szukaniu 
metody pokonania ściany ogniowej lub innego 
zabezpieczenia, a na końcu okaże się, że go 
w ogóle nie było. Ale skąd zdobyć te wszystkie 
dane? Nie można przecież wejść do budynku 

Stopień trudności

Tak robią to 

prawdziwi 

hakerzy

Jak wyglądają przygotowania do przeprowadzenia ataku? 

Co stanowi istotną informację, a co jest mało ważne? Jakie 

narzędzia należy znać? Są to jedynie podstawowe zagadnienia, 

na które odpowiada poniższy artykuł.

background image

21

 

TAK ROBIĄ TO PRAWDZIWI HAKERZY

HAKIN9 

6/2009

(to zaskakujące, ale jednak sytuacje takie 
się zdarzają!), usiąść przed komputerem 
i pozostając niezauważonym skopiować 
numery IP, maski, bramy, sprawdzić 
system operacyjny, zabezpieczenia 
itd. Doskonałym początkiem jest 
dokładne prześledzenie firmowej strony 
internetowej oraz jej kodu źródłowego 
(wiele przeglądarek ma wbudowaną taką 
opcję). Wbrew pozorom bardzo często 
skrywa ona cenne informacje. Gdzie 
należy szukać interesujących elementów? 
Oczywiście w komentarzach do kodu, 
np. HTML. Jeśli jest to rozbudowana 
strona, programiści zamieszczają w 
komentarzach dane, które z założenia 
przeznaczone są wyłącznie dla nich. 
Chodzi po prostu o to, aby ułatwić 
sobie pracę i oszczędzić żmudnego 
przeszukiwania kodu. Jeżeli pracujemy 
w systemie Linux, bardzo wygodnym 
narzędziem okazuje się program Wget, 
dzięki któremu jesteśmy w stanie stworzyć 
kopię całej witryny i przeglądać jej kod 
na dysku twardym komputera. Jest to o 
tyle wygodne, że można pracować nawet 
w trybie offline. Często popełnianym 
błędem jest skupianie uwagi jedynie 
na głównej stronie. A tymczasem wiele 
cennych wskazówek ukrywa się właśnie 
na podstronach. Zdarza się też, że 
firmy wykorzystują witryny obsługujące 
zdalny dostęp do wewnętrznych 
zasobów. Oczywiście oknem do nich 
stają się przeglądarki internetowe. 
Doskonałym przykładem jest powszechnie 
wykorzystywany Microsoft Outlook. Co z 
tego wynika? Otóż oznacza to, że adres 
URL będzie miał postać https://outlook.
ciesielskiandlucas.com
. Jest to dopiero 
kropla w morzu, jednak od czegoś zawsze 
należy zacząć. Czasami można znaleźć 
tam dodatkowe informacje, takie jak 
numery telefonów do działu technicznego, 
z którego może skorzystać np. pracownik 
podczas awarii systemu.

Może się jednak zdarzyć, że atakujący 

będzie w posiadaniu numeru telefonu, a 
niezbędny okaże się fizyczny adres firmy. 
Zastanawiacie się, do czego? W celu 
udania się na miejsce, przyjrzeniu się 
zabezpieczeniom, rozmieszczeniu kamer, 
niekiedy można także dowiedzieć się, 
jakiego systemu używa przyszła ofiara i 
czy posiada wgrany firewall lub program 
antywirusowy. Jeżeli jest to Microsoft 

Windows wystarczy jedno spojrzenie na 
ikonki znajdujące się w dolnym, prawym 
rogu ekranu. W przypadku Linuksa 
lub BSD będzie to trudniejsze, jednak 
może się zdarzyć, że haker zostanie 
na pięć minut sam z komputerem i 
otworzy sobie tylne drzwi. Możliwości 
jest tak wiele, że opisanie ich zajęłoby 
zbyt wiele miejsca. Wszystko zależy od 
danej chwili, pomysłowości, odwagi i 
zdeterminowania napastnika. Skąd zatem 
uzyskać dane adresowe posiadając 
jedynie numer telefonu? Oczywiście 
z książki telefonicznej. Aby usprawnić 
pracę, najlepiej wybrać wersję online, 
np. http://ksiazka-telefoniczna.com lub 
http://www.pkt.pl. Jeżeli szukamy danych 
firmy znajdującej się poza granicami 
Polski, warto skorzystać ze strony http:
//www.yellowpages.com
 oraz http:
//www.phonenumber.com
. Znając adres 
nic nie stoi na przeszkodzie, aby dokładnie 
przyjrzeć się miejscu docelowemu. 
Doskonałym narzędziem umożliwiającym 
podróżowanie po świecie bez 
wychodzenia z domu jest Google Earth. 
Dzięki niemu możemy nie tylko sprawdzić 
położenie na mapie, ale również przyjrzeć 
się obiektowi dzięki zdjęciom satelitarnym. 
Drugim serwisem, na który warto zwrócić 
uwagę, jest http://terraserver-usa.com
Pozornie informacje te mogą wydawać 
się zbędne, jednak dobre rozeznanie 
w sprawie jest podstawą sukcesu. 
Złota zasada głosi, że do pokonania 
przeciwnika należy wiedzieć o nim więcej 
niż on sam.

Czy warto śledzić bieżące wydarzenia 

w firmie? Albo sprawdzać partnerów 
biznesowych? Bez wątpienia, warto. 
Dlaczego? Załóżmy, że organizacja 
Ciesielski & Lucas S.A. ma zamiar związać 
się z inną spółką. Jednym z pierwszych 
zabiegów w dzisiejszych czasach jest 
oczywiście połączenie baz danych i 
stworzenie sieci pomiędzy firmami. Ma to 
na celu nie tylko ułatwienie zarządzania 
i pracy, ale również zacieśniania więzów 
pomiędzy organizacjami. Dla osoby 
planującej atak oznacza to jednak 
niesłychanie dobre wiadomości. Czas, 
w którym będą prowadzone prace nad 
połączeniem dwóch sieci, to okres, kiedy 
zarówno jedna, jak i druga są najsłabiej 
chronione. Ponadto bardzo często 
zdarza się, że w wyniku przeoczenia lub 

niedbalstwa pozostaje mnóstwo luk, 
którymi można dostać się do systemu. 
Innym przykładem są wspomniani 
partnerzy biznesowi. Są oni niezwykle 
istotni. Jeżeli okaże się, że cel został 
solidnie zabezpieczony przed włamaniem, 
należy poszukać innej drogi zamiast 
niepotrzebnie tracić czas na wyważanie 
frontowych drzwi. Najczęściej okazuje 
się, że któraś z firm współpracujących 
jest o wiele słabiej i mniej restrykcyjnie 
chroniona, przez co staje się łatwiejszym 
celem. Posiadając dostęp do niej, 
haker jest w stanie dotrzeć do firmy 
macierzystej. Jest to oczywiście droga 
na około, jednak niekiedy okazuje się 
jedynym rozwiązaniem. Istnieje również 
ewentualność zaatakowania prywatnego 
komputera pracownika. Jest bardzo 
prawdopodobne, że będzie on miał zdalny 
dostęp do sieci firmowej, więc wystarczy 
zainstalować na jego komputerze program 
do przechwytywania naciskanych klawiszy. 
W ten sposób atakujący otrzymuje loginy i 
hasła zapewniające dostęp do prywatnych 
zasobów.

Jednym z najczęstszych powodów 

aktualizacji strony internetowej są wykryte 
usterki i niedociągnięcia, które mogłyby 
zagrażać bezpieczeństwu i stabilności 
firmy. Ale co dzieje się ze starymi wersjami 
takich witryn? W zdecydowanej większości 
przypadków są one archiwizowane i 
składowane w sieci. Choć teoretycznie 
już nie istnieją, wciąż tam się znajdują. 
Wystarczy skorzystać z wyszukiwarki na 
stronie http://www.archive.org lub http:
//www.thememoryhole.org
. Następnie 
pobieramy nieaktualne wersje na dysk 
twardy i szczegółowo analizujemy 
kod. Niekiedy programiści oznaczają 
niebezpieczne fragmenty kodu za pomocą 
odpowiednich komentarzy. Dzięki temu 
haker otrzymuje gotowe rozwiązanie, a 
webmasterzy nie potrafią określić, skąd 
włamywacz mógł to wiedzieć.

Kolejną zadziwiającą rzeczą 

są możliwości, jakie dają hakerowi 
współczesne wyszukiwarki. Choć 
nieustannie poprawia się zabezpieczenia, 
wystarczy sięgnąć po standardowe filtry 
lub zaawansowane metody przeszukiwania 
stron i ich zawartości, aby odnaleźć 
interesujące elementy. Parametry takie 
jak znak + (plus) czy - (minus) zapewne 
każdy zna, gdyż są one powszechnie 

background image

22

 

POCZATKI

HAKIN9 6/2009

TAK ROBIĄ TO PRAWDZIWI HAKERZY

23

 

HAKIN9 

6/2009

wykorzystywane. Pierwszego używamy, 
kiedy chcemy, aby wyniki przeszukiwania 
sieci zawierały także podane wyrażenie, 
natomiast drugiego, jeżeli wyrażenie to 
chcemy wyeliminować z uzyskanych 
wyników. Bardzo często niezbędne jest 
odnalezienie konkretnej frazy, składającej 
się z kilku wyrazów, np. Jan Kowalski. Aby 
znaleźć odnośniki do stron, na których 
występuje podane wyrażenie, wystarczy 
wpisać w wyszukiwarce „Jan Kowalski”
korzystając przy tym z cudzysłowu. Należy 
jednak pamiętać, że podczas szukania 
podanego zestawienia wyniki będą 
zawierać dokładnie taką formę, jaka została 
zadeklarowana. Nie zostaną odnalezione 
strony, zawierające odwrotną kolejność 
wyrazów, np. Kowalski Jan. Ciekawym, 
aczkolwiek rzadziej wykorzystywanym 
filtrem jest znak kropki umieszczony 
pomiędzy szukanymi elementami. 
Załóżmy, że zależy nam na odnalezieniu 
dokumentów zawierających słowo wirus
najprawdopodobniej będące podzielone 
na dwie części wir- oraz -us. Należy również 
wziąć pod uwagę możliwość występowania 
pomiędzy nimi dodatkowych znaków. Dla 
zapytania wir.us otrzymamy takie wyniki jak: 
wir us, wir2us, wir4us itd. Filtr ten wstawia 
w miejsce kropki zawsze tylko jeden znak. 
Jeśli natomiast zależy nam na całym 
wyrazie, wystarczy zamienić znak kropki 
na * (gwiazdka). Wynikiem zapytania wir 
* us
, będą chociażby: wir for us, wir to us 
itd. Istnieje również grupa rozszerzonych 
filtrów, dzięki którym można niezwykle 
precyzyjnie określić cel. Pierwszym jest 
site, umożliwiający ograniczenie wyników 
jedynie do interesujących nas domen, np. 
zxy.pl. Chcąc odnaleźć wszystkie strony 
zawierające słowo wirus i występujące 
w domenie zxy.pl, należy wpisać w 
wyszukiwarce site:zxy.pl wirus. Jest to 
niezwykle użyteczna opcja, która potrafi 
znacznie zmniejszyć zbiór odnalezionych 

stron. Ale domena to nie wszystko. A 
co z tytułami stron, przecież one także 
zawierają dużo pomocnych informacji. 
Dzięki filtrowi intitle można określić 
słowo, które powinno znajdować się 
w tytułach i słowo wchodzące w skład 
treści stron, a następnie odpowiednio je 
wyselekcjonować. Gdybyśmy poszukiwali 
stron mających w temacie słowo wirus
a w treści komputerowy niebezpieczny
to efektem będzie lista stron opisujących 
w większości najgroźniejsze wirusy 
komputerowe. Jak to zapisać? Wystarczy 
wydać polecenie intitle:wirus +komputerowy 
+niebezpieczny
. Dla uściślenia dodano 
znaki plusa, aby każdy wynik zawierał 
jednocześnie obydwa słowa. Dzięki temu 
niepozornemu filtrowi haker jest w stanie 
przeglądać zawartości katalogów na 
konkretnych serwerach. Najprostszym 
przykładem jest zapytanie "Microsoft IIS/7.0 
Server" intitle:index.of, 
którego efektem 
będzie lista serwerów działających w 
oparciu o oprogramowanie Microsoft IIS 
7.0. Nietrudno się domyśleć, że pewna 
część danych krążących w Internecie 
jest zagrożona. Może się jednak zdarzyć, 
że strona, na której nam zależy, musi 
zawierać w tytule dwa lub trzy z góry 
określone słowa, np. very danger virus
Są dwa sposoby na osiągnięcie tego 
celu. Pierwszy to wpisanie trzykrotnie 
zapytania intitle:wyraz1 itd. Jest to jednak 
nieco uciążliwe, zwłaszcza podczas 
szukania kilku wyrażeń. Właśnie w tym 
celu opracowano filtr allintitle. Założenie 
jest proste: ma on odszukać strony, w 
których występują wszystkie szukane 
słowa. Na tej samej zasadzie działają 
inurl oraz allinurl. Jak łatwo się domyśleć, 
różnica polega jedynie na tym, że dotyczą 
one adresu URL. Na deser pozostała 
perła wśród opcji filtrujących wyniki 
wyszukiwarki (w tym przypadku Google) 
– filetype. To właśnie ona daje atakującym 

możliwość zdobycia takich informacji 
jak: życiorys (dzięki np. Curriculum 
Vitae), dane adresowe (rozmaite książki 
adresowe i kopie zapasowe), kontakty 
(kopie zapasowe), a niekiedy także loginy 
i hasła do prywatnych kont internetowych. 
Dzięki filetype wyszukiwarka odnajdzie 
dowolny typ pliku. Wystarczy wydać 
polecenie, np. 

filetype:doc

 i naszym 

oczom ukażą się dokumenty zapisane w 
tym formacie (Microsoft Word). Dokładne 
zaznajomienie się z wbudowanymi 
poleceniami, np. Google.com , sprawi, 
że w prosty i szybki sposób będziemy 
mogli odnaleźć interesujące zagadnienia. 
Jest to umiejętność niezwykle przydatna 
nawet podczas codziennego użytkowania 
Internetu. Doskonałą lekturą poruszającą 
ten temat jest artykuł „Niebezpieczne 
Google – wyszukiwanie poufnych 
informacji” , 
zamieszczony w numerze 3/
2005. Autor w sposób niezwykle przystępny 
objaśnia mechanizmy umożliwiające 
zadziwiająco dokładną segregację.

Dopiero kiedy haker zbierze wszelkie 

niezbędne (ale także te mniej istotne) 
informacje, może przystąpić do działania. 
Dlaczego to takie ważne? Ponieważ w 
przeciwnym razie istnieje bardzo duże 
prawdopodobieństwo, że popełni błąd 
i pozostawi ślad swojej obecności, co, 
jak nietrudno się domyślić, doprowadzi 
do jego aresztowania. Choć footprinting 
mógłby wydawać się niepowiązany z 
technikami stosowanymi przez hakerów, w 
rzeczywistości jest z nimi nierozerwalnie 
związany. Przyszli „włamywacze” bardzo 
często pomijają ten etap, co skutkuje 
tym, że ich pierwsze włamanie okazuje 
się jednocześnie ostatnim. Świadomość 
osiągalności prywatnych danych przez 
osoby niepożądane niewątpliwie daje do 
myślenia. Być może stanie się bodźcem 
do przywiązywania większej uwagi nie tylko 
na takie zabezpieczenia jak login i hasło, 
ponieważ one nie są niezawodne, ale także 
na nazwy i formaty plików. Jeżeli nazwa 
pliku zawierającego niezwykle cenne 
informacje będzie podobna do np. Ważne-
dane-2009.doc
, to szansa że zostaną one 
przeczytane przez niepowołaną osobę 
jest bardzo duża (chociażby filetype:
doc +”ważne.dane” 
). Wystarczy jednak, 
że zostanie ona zmieniona na Wd-
2009.doc
 i szanse na znalezienie tego 
pliku przez hakera zdecydowanie maleją. 

Listing 1. 

Wpisu do pliku określającego reguły dla programu Snort

var DNS_SERVERS [xxx.xxx.xxx.xxx/yy, xxx.xxx.xxx.xxx/yy]
pass udp 

$DNS_SERVERS

 numer_portu -> 

$DNS_SERVERS

 numer_portu

pass udp 

$EXTERNAL_NET

 numer_portu -> 

$DNS_SERVERS

 numer_portu

Listing 2. 

Metody uruchamiania programu Snort

1. snort -c /etc/snort/snort.conf -D
2. snort -c /etc/snort/snort.conf -l ./katalog_dla_logow -b -L snort.dump -A fast -T

background image

22

 

POCZATKI

HAKIN9 6/2009

TAK ROBIĄ TO PRAWDZIWI HAKERZY

23

 

HAKIN9 

6/2009

Oczywiście nie uchroni to informacji przed 
nieuniknionym przepływem, ale nieco 
utrudni jej wydostawanie się ze źródła.

Wyposażenie i atak

Metody wykorzystywane przez 
doświadczonych hakerów nigdy nie 
ograniczają się do jednej czy dwóch. 
Istnieje wiele sposobów na uzyskanie 
dostępu do upragnionych danych. Są one 
zróżnicowane ze względu na rodzaje sieci, 
ich zabezpieczenia itp. Można wyodrębnić 
około dziesięciu podstawowych ataków 
stosowanych przez współczesnych 
włamywaczy komputerowych. Wszystkie 
jednak powiązane są ze sobą wspólną 
cechą - podstawą do ich wykorzystania 
jest odpowiednio przygotowane zaplecze 
informacyjne. Wiedza zdobyta w rozmaity 
sposób gwarantuje nie tylko ukonkretnienie 
odpowiedniej ofiary i jej lokalizacji, lecz 
także wybór najskuteczniejszej metody 
ataku. Ponadto zapobiega to ujawnieniu 
włamania, a przynajmniej skutecznie 
opóźnia ten moment. Aby wprowadzić 
Czytelnika w świat sieci i ukazać tok 
myślenia hakera, rozpoczniemy od tzw. 
sniffingu. Celowo została użyta nazwa 
zaczerpnięta z języka angielskiego, 
ponieważ żaden z polskich odpowiedników 
nie oddaje w pełni charakteru sprawy. 
Można określić sniffing jako sieciowy 
podsłuch, dzięki któremu atakujący 
może przechwytywać określone 
pakiety danych swojej ofiary. Jak się 
okazuje, podsłuchiwanie jest jednym z 
podstawowych zagrożeń współczesnych 
sieci. Dosłowne tłumaczenie terminu 
sniffing oznacza węszenie, a sposób 
postępowania hakera korzystającego 
z tej metody niezwykle odpowiada jej 
nazwie. W rzeczywistości sniffing sięga 
korzeniami początków sieci, kiedy bazą ich 
tworzenia był kabel koncentryczny lub tzw. 
hub. Funkcjonowanie takiej sieci opierało 
się na kilku niezwykle prostych zasadach. 
Dla osoby obserwującej ruch sieciowy 
najistotniejszym faktem był sposób 
przemieszczania się pakietów danych. Z 
założenia informacja trafiała do każdego 
podłączonego użytkownika, jednak aby 
odpowiednio pogrupować przesyłane 
pakiety, nie każdy był przetwarzany przez 
dany komputer. Rozwiązanie okazało się 
banalne. Wystarczyło opatrzyć każdą 
wysłaną ramkę adresem karty sieciowej 

(MAC), dla której była ona przeznaczona. 
Jak zatem zmusić kartę sieciową do 
przejmowania również tych paczek, które 
były zaadresowane dla innego odbiorcy? 
Wystarczyło przestawić kartę sieciową 
w tryb ogólny (ang. promiscuous). Dzięki 
temu możliwy okazał się dostęp do ramek 
krążących po lokalnej sieci. Sniffing, o 
którym mowa, ma charakter pasywny 
lub inaczej bierny. W podsłuchiwanej 
sieci nie zostawały umieszczane przez 
atakującego dodatkowe informacje. A jak 
odnosi się to do współczesnych sieci? 
Choć wydawałoby się, że taka sytuacja 
nie może mieć miejsca, rzeczywistość 
okazuje się zaskakująca. Na podobnych 
zasadach opiera się węszenie po sieciach 
bezprzewodowych, ale o tym w dalszej 
części tekstu. Co stało się schyłkiem 
podsłuchiwania sieci przewodowych 
w sposób pasywny? Podstawową 
barierą stało się upowszechnienie tzw. 
przełączników (ang. switch). Przełącznik 
jest rodzajem centrali, która rozpoznaje 
adres MAC odbiorcy danego pakietu, a 
następnie przesyła ten pakiet do portu o 
określonym adresie fizycznym. Z punktu 
widzenia hakera oznacza to, że maszyny 
o adresie innym niż opisujący daną 
paczkę, nie otrzymają jej. I tu nastąpił 
schyłek klasycznego sniffingu oraz rozwój 
jego aktywnych odmian, jak np. ARP-
spoofing i MAC-flooding. Łatwo dostrzec, 
że kolejne metody są pochodnymi ich 
wcześniejszych odmian. Już same nazwy 
wskazują dwa rozwiązania, które wymyślili 
hakerzy, aby ominąć zabezpieczenia, 
jakim niewątpliwie stały się przełączniki. 
Pierwsze polega na fałszowaniu pakietów 
ARP (ang. Address Resolution Protocol). 
Zadaniem atakującego jest wysłanie 
sfałszowanej paczki – ARP Reply – dzięki 
której komputery podłączone do sieci 
są informowane o odwzorowaniach 
numerów IP (adresy logiczne) na numery 
MAC (adresy fizyczne). Najprościej 
wytłumaczyć to na przykładzie. Nadawca 
wysyła zapytanie o konkretny numer IP, 
po czym od komputera należącego do 
hakera otrzymuje odpowiedź z numerem 
MAC. W dynamicznej tablicy ARP (na 
komputerze wysyłającym zapytanie) zostaje 
odnotowany odpowiedni wpis. Umożliwia 
to komunikację pomiędzy nadawcą 
pierwszego zapytania a urządzeniem 
hakera. Teraz atakujący może wysłać 

zapytanie ARP do prawidłowego odbiorcy 
pakietów, a po otrzymaniu odpowiedzi 
i dokonaniu wpisu we wspomnianej już 
tablicy ARP nawiązać z nim połączenie. 
Dzięki temu, nie ujawniając się, haker staje 
się pośrednikiem pomiędzy właściwym 
nadawcą i odbiorcą. Może w ten sposób 
odczytywać i modyfikować transmitowane 
dane. Czas na praktykę! 
Tcpdump – ach te pakiety

Doskonałym snifferem pakietów dla 

systemów z rodziny Linuksa jest Tcpdump
Jego odpowiednikiem dla systemu 
Windows jest WinDump. Programy te 
działają w konsoli i zostały stworzone z 
myślą o monitorowaniu oraz analizowaniu 
sieci. Umożliwiają prowadzenie testów 
ruchu sieciowego i, co najistotniejsze, 
przechwytywanie krążących pakietów. 
Choć powszechnie oprogramowanie 
to uważa się za oprogramowanie 
stworzone z myślą o hakerach, nie jest 
to prawdą. Trafniej byłoby określić je 
jako narzędzie administratorów sieci. 
Wykorzystanie programu w celu łamania 
zabezpieczeń i, co za tym idzie, prawa, 
to efekt uboczny jego możliwości. 
Choć obsługa Tcpdump nie należy do 
najłatwiejszych, to opanowanie jej pozwala 
na przeprowadzenie skrupulatnej diagnozy 
i zdobycie szczegółowych informacji 
o pakietach. Instalacja nie powinna 
sprawić kłopotu, ponieważ w większości 
dystrybucji systemu Linux program 
Tcpdump dostępny jest w standardowych 
repozytoriach. Jeżeli jednak okazałoby 
się, że jest inaczej, można go znaleźć 
pod adresem www.tcpdump.org. Należy 
także pamiętać, że program ten wymaga 
uprawnień użytkownika root oraz biblioteki 
libpcap. Teraz można już uruchomić 
Tcpdump. Jeżeli w konsoli zostanie 
wywołany program bez dodatkowych 
parametrów, użytkownik zobaczy mnóstwo 
przewijających się informacji (nazwy 
komputerów, czas, numery IP itp.). Z całą 
pewnością nie zostanie wyświetlona 
zawartość pakietów. Zanim przejdziemy 
do przeglądania dostępnych filtrów, 
warto wspomnieć, że istnieje możliwość 
stosowania operatorów logicznych (AND, 
OR, NOT). W niektórych sytuacjach może 
okazać się to niezwykle pomocne.

Pierwszym parametrem, z którym 

może zostać wywołany Tcpdump , jest 

-i

 

oraz interfejs karty sieciowej, np. 

tcpdump 

background image

24

 

POCZATKI

HAKIN9 6/2009

TAK ROBIĄ TO PRAWDZIWI HAKERZY

25

 

HAKIN9 

6/2009

-i eth0

 (w systemach Unix/Linux 

dostępne interfejsy możemy sprawdzić 
poleceniem 

ifconfig)

Efektem będzie 

nasłuchiwanie przechodzących przez 
wskazany interfejs pakietów. Czasami 
wyniki nie są tak czytelne, jak byśmy chcieli, 
jednak dzięki opcji 

-n

 numery IP nie będą 

konwertowane na nazwy komputerów. 
Oznacza to, że zamiast x.gadugadu.pl.8074 
zostanie wyświetlony adres w postaci 
xxx.xxx.xxx.xxx.yyy. Szczegółowość 
wyświetlanych informacji można regulować 
parametrem 

-v

. Co ciekawe, im więcej liter 

v , tym dane są dokładniejsze (

-vv

-vvv

). 

Przedstawione wyżej dodatkowe opcje są 
niezwykle użyteczne, jednak dla hakera 
jednym z najważniejszych parametrów 
jest 

-X

. To właśnie dzięki niemu program 

wyświetli zawartość pakietów w postaci 
ASCII (stosując 

-x

 , zawartość będzie 

mieć postać szesnastkową). Wiesz już 
w jakim celu można wykorzystać taką 
funkcję? Oczywiście, do przejęcia loginów 
i haseł do kont innych użytkowników. 
Wymaga to cierpliwości i wprawy, ale 
wyniki są zdumiewające. Niezwykle 
wygodnym sposobem jest zapisywanie 
bieżących wyników do plików. Ułatwia to 
późniejsze przeglądanie. Wystarczy, że 
na końcu dowolnego polecenia dodamy 
lub >>. W pierwszym przypadku przed 
zapisem zostanie usunięta zawartość pliku, 
natomiast w drugim wartości zostaną 
dopisane na końcu pliku.

Drugim etapem poznawania Tcpdump 

są tzw. kwalifikatory. Można je podzielić 
na kilka kluczowych grup, np. typu (host, 
net, port
), protokołu (udp, tcp, icmp), 
kierunkowe (src, dst) i kilka dodatkowych 
(gateway, broadcast, proto, mask). Brzmi 
to jak magiczne zaklęcia. Należy jednak 
pamiętać, że jest to narzędzie uruchamiane 
w konsoli. Ma ogromne możliwości, a brak 
graficznej nakładki wpływa niewątpliwie na 
szybkość działania i niewielkie wymagania. 
Zacznijmy więc od kwalifikatorów typu. 
Składnia może przybierać postać: tcpdump 
host xxx.xxx.xxx.xxx
. W tym przypadku 
program wyświetli informacje o pakietach 
z lub do komputera znajdującego się 

pod numerem xxx.xxx.xxx.xxx. Jeśli 
jednak będziemy chcieli przechwycić 
jedynie ruch World Wide Web, okaże się, 
że powyższe polecenie nie wystarczy. 
Wystarczy jednak skorzystać z parametru 
port oraz operatora logicznego jako 
spoiwa, i gotowe! Całość powinna mieć 
postać tcpdump host xxx.xxx.xxx.xxx and 
port 80
. Oczywiście polecenie należy 
uzupełnić odpowiednim numerem IP. Aby 
skrupulatniej filtrować wyniki, należy dodać 
kwalifikator kierunkowy src lub dst. Program 
zajmie się ruchem wychodzącym z danego 
adresu i skierowanym do określonego 
portu WWW. Jeżeli nie zostanie określony 
kwalifikator kierunku, domyślnie 
obserwowany jest ruch w obu kierunkach. 
Jeżeli chcielibyśmy podsłuchiwać określony 
port na danej maszynie, wystarczy 
wpisać w konsoli polecenie 

tcpdump -

i eth0 src xxx.xxx.xxx.xxx and 
port 80

. Załóżmy, że jakiś włamywacz 

chce przechwycić pakiety związane z 
popularnym komunikatorem Gadu-Gadu. 
Co powinien wiedzieć haker? IP już zna. 
Wie także, że komunikator korzysta z portu 
o numerze 8074. Teraz wystarczy jedynie 
wpisać jako root polecenie tcpdump -i 
eth0 -X 'port 8074 && host xxx.xxx.xxx.xxx'

Wynik będzie podobny jak na Rysunku 1. 
Narzędzie to posiada również szerodki 
wachlarz opcji wiersza poleceń. Warto 
zaznajomić się z oryginalną dokumentacją 
programu, ponieważ byłoby trudnym 
zadaniem przedstawienie wszystkich 
dodatkowych parametrów, chociażby z 
dwóch względów. Po pierwsze, jest ich 
dużo, a po drugie, każdy musi sam wybrać 
te, których faktycznie będzie używał. Nawet 
doświadczeni hakerzy nie korzystają 
z każdej dostępnej opcji. Proponuję 
rozpocząć naukę od polecenia 

man 

tcpdump

.

Dsniff – najlepszy węch w sieci

Prędzej czy później zawsze sprawdza się 
powiedzenie, że medal ma dwie strony. 
Oprogramowanie nie jest tu wyjątkiem 
od reguły. Nawet najdoskonalsze 
dzieło programistów mające służyć 

ochronie danych, sieci itd. stanie się 
także obiektem zainteresowania osób, 
które będą chciały wykorzystać w złej 
intencji lub niezgodnie z prawem. Dsniff 
jest darmowym zestawem narzędzi 
stworzonych jako oprogramowanie 
testujące sieci i ich możliwości. Po 
niedługim czasie okazało się, że program 
stał się jednym z najcenniejszych narzędzi 
wykorzystywanych przez hakerów. Choć 
intencje twórców były jak najbardziej 
szlachetne, obecnym zastosowaniem tych 
niezwykle popularnych programów jest 
głównie podsłuchiwanie i przechwytywanie 
sieciowych sesji. Na początek kilka uwag 
związanych z instalacją. W dystrybucjach 
mających zautomatyzowany proces 
instalacji nowego oprogramowania 
wystarczy wpisać odpowiednie polecenie, 
a zależności zostaną automatycznie 
doinstalowane, np. apt-get install dsniff 
(Debian i jego pochodne). W takich 
dystrybucjach jak Slackware wygląda 
to nieco inaczej. Na początku należy 
zainstalować odpowiednie zależności: 
libpcap, OpenSSL, libnet, Berkeley DB i 
libnids. Sam program można pobrać ze 
strony http://monkey.org/~dugsong/dsniff/
A teraz sprawa kluczowa. Niezwykle 
istotna jest kolejność instalacji. Najpierw 
instalujemy libpcap, następnie libnet 
libnids. Jeżeli chcemy skompilować 
program ze źródeł, wystarczy użyć w 
konsoli kolejno 

configure

make

 i 

make 

install

. Teraz całość powinna być 

gotowa do pracy. Nowe oprogramowanie 
najczęściej znajduje się w katalogu /usr/
local/sbin
 (choć nie jest to regułą). Jakie 
narzędzia udostępnia Dsniff ? Jest ich 
ponad dziesięć. Do najważniejszych można 
zaliczyć chociażby: ArpspoofDnsspoof
Dsniff (od niego zaczerpnął nazwę 
cały pakiet), FilesnarfMacofMailsnarf
MsgsnarfTcpkillTcpniceSshmitm oraz 
wiele innych, którymi zajmiemy się w 
tekście.

Skąd wzięła się taka popularność 

narzędzia Dsniff (nie całego pakietu)? Do 
czego służy? Wystarczy odpowiedzieć 
sobie na pytanie: Czego najbardziej 
pożąda osoba o niecnych zamiarach? 
Nic 
bardziej oczywistego – loginów i haseł do 
kont. Program ten jest bardzo skutecznym 
snifferem loginów i haseł. Jego atutem 
jest umiejętność rozpoznawania długiej 
listy protokołów, np. POP, SMTP, IMAP

Rysunek 1. 

Wynik działania programu Tcpdump podsłuchującego rozmowy Gadu-Gadu

background image

24

 

POCZATKI

HAKIN9 6/2009

TAK ROBIĄ TO PRAWDZIWI HAKERZY

25

 

HAKIN9 

6/2009

FTP, TELNET, HTTP, CVS, SMB, a nawet 
Oracle. Nie jest to cała lista, a jedynie jej 
najistotniejsze fragmenty. Łatwo jednak 
zauważyć, że są to kluczowe protokoły, 
z których korzysta każdy użytkownik 
Internetu. Co przemawia na korzyść tego 
sniffera
? Istnieją przecież równie skuteczne 
narzędzia, jak chociażby Ethereal. Otóż 
dzięki Dsniff uzyskamy konkretnie loginy 
oraz hasła, bez zbędnych informacji 
dodatkowych. Oczywiście, czasami 
szczegółowe informacje dotyczące 
zawartości pakietów są niezbędne, jednak 
w tym przypadku jedynie zamazywałyby 
obraz całości. Obsługa programu nie 
jest skomplikowana. Wystarczy znać kilka 
podstawowych opcji wiersza poleceń. 
Polecenie może przybrać postać np. 

dsniff -t 21/tcp=ftp

. Spowoduje 

ono rozpoczęcie nasłuchowania loginów 
i haseł dla sesji ftp. Opcja 

-t

 ładuje tzw. 

wyzwalacze. Mogą być one oddzielone 
przecinkami. Dane, jakie podajemy w 
roli wyzwalacza, to kolejno: numer portu, 
proto i usługa. Ważne jest, aby wiedzieć, 
jakie porty są standardowo przypisywane 
do konkretnych usług, jednak należy też 
mieć na uwadze, że użytkownik mógł je 
zmienić. Dla pop3 może to być port 110
a dla telnetu 23. Dla ułatwienia można 
zapisać wyniki do pliku. Służy do tego 
opcja 

-w

. Aby analizować zawartość, należy 

odczytać ją używając parametru 

-r

. Jest 

to istotne, ponieważ dane zapisywane 
są do pliku w formacie Berkeley DB. W 
ten sposób za pomocą kilku prostych 
poleceń można przechwytywać hasła i 
loginy. Z jednej strony jest to niezwykle 
pożyteczny program, który może – a nawet 
powinien – być wykorzystywany do zadań 
diagnostycznych. Z drugiej jednak, Dsniff 
wykorzystany w nieodpowiedni sposób 
staje się bardzo groźnym narzędziem.

Kolejnym programem wchodzącym w 

skład pakietu Dsniff jest wspomniany już 
Arpspoof. Idealne rozwiązanie podczas 
walki z przełącznikami sieciowymi. Łatwo 
domyśleć się, że zostały one wprowadzone, 
aby utrudnić hakerom ich działalność, a 
tym samym zwiększyć bezpieczeństwo 
w sieci. Zasada działania jest prosta. 
Przełącznik zna adresy MAC urządzeń 
podłączonych do wszystkich portów, 
dzięki czemu tylko adresat, dla którego 
przeznaczony jest dany pakiet, może go 
otrzymać. Taka jest teoria, a czy praktyka 

wygląda identycznie? Niestety nie. Dzięki 
narzędziom takim jak np. Arpspoof można 
wysyłać sfałszowane pakiety ARP, a co 
za tym idzie podsłuchiwać ruch w sieci. 
Wystarczy poinformować przełącznik, 
że to my jesteśmy adresatami danego 
pakietu. Po otrzymaniu go robimy kopię 
i przesyłamy do właściwego odbiorcy. 
Stajemy się kimś w rodzaju ukrytego 
pośrednika. Zajmijmy się teraz składnią 
Arpspoof. Jest ona dosyć prosta, jednak 
może się zdarzyć, że program nie zadziała 
poprawnie. Częstą przyczyną w takich 
wypadkach jest brak wkompilowanej 
w jądro opcji przekierowania IP. Aby 
sprawdzić dostępność tej opcji wystarczy 
jedno polecenie: 

cat /proc/sys/net/

ipv4/ip _ forward

. Jeżeli plik wskazany w 

ścieżce istnieje, oznacza to, że jądro zostało 
odpowiednio skompilowane i możemy 
przystąpić do korzystania z Arpspoof. W 
przeciwnym wypadku należy ponownie 
skompilować jądro, włączając przy tym 
niezbędną opcję. Drugie polecenie 
powinno uruchomić przekierowywanie 
IP. W konsoli wpisujemy 

echo 1 > /

proc/sys/net/ipv4/ip _ forward.

 

Teraz można przystąpić do właściwego 
działania. Załóżmy, że chcemy oszukać 
komputer xxx.xxx.xxx.xxx podszywając się 
pod bramę zzz.zzz.zzz.zzz. Należy wziąć 
pod uwagę dwa aspekty. Ofiara nie może 
dowiedzieć się, że jest oszukiwana, a 
router koniecznie musi w rzeczywistości 
otrzymywać skierowane do niego pakiety. 
W przeciwnym razie cała lokalna sieć 
straci połączenie. Do dzieła! Poinformujmy 
ofiarę, że jesteśmy jej domyślną bramą: 
arpspoof -t xxx.xxx.xxx.xxx zzz.zzz.zzz.zzz &
A teraz odwrotnie, poinformujemy bramę, 
że jesteśmy komputerem ofiary: arpspoof 
-t zzz.zzz.zzz.zzz xxx.xxx.xxx.xxx
. W ten oto 
sposób pozostajemy niezauważeni.

Opisując Arpspoof nie wolno 

zapomnieć o programie Dnsspoof
Razem narzędzia tworzą spójny zespół, 
który niełatwo wykryć. Jak sama nazwa 
wskazuje, dzięki Dnsspoof można 
podrabiać odpowiedzi DNS. Należy 
pamiętać, że DNS wykorzystuje protokół 
UDP. Cóż to oznacza? Otóż nic innego jak 
to, że klient DNS wysyła zapytania i czeka 
na odpowiedzi. Działanie Dnsspoof polega 
na wskazaniu klientowi DNS naszego IP 
i co ważniejsze, zdążyć przed prawdziwą 
odpowiedzią z danego serwera DNS. Jeżeli 

chodzi o podrabianie zapytań, to istnieją 
dwie możliwości: fałszowanie wszystkich 
lub określonych. Oczywiście, korzystniej 
jest wybrać te, które są naprawdę istotne. 
W tym celu należy stworzyć plik, np. spoof
Następnie wpisujemy 

nasze _ IP usługa

 

np. 

192.168.1.1 www*

. Jeśli uruchomimy 

Arpspoof wykorzystując IP ofiary oraz IP 
serwera DNS, to adres MAC tego serwera 
zostanie podrobiony. Efektem będzie 
niemalże stuprocentowa skuteczność 
podczas użycia Dnsspoof. Polecenie 
użycia tego narzędzia może przybierać 
postać np. 

dnsspoof -f plik _ spoof 

host xxx.xxx.xxx.xxx and udp port 
53

. Chociaż te dwa programy wydają się 

niepozorne, w rzeczywistości są potężnymi 
narzędziami. Dzięki nim haker może 
podszywać się pod dowolną maszynę 
znajdującą się w sieci. 

Poznaliśmy już trzy podstawowe 

programy z pakietu Dsniff. Warto jednak 
wspomnieć także o pozostałych. O ile 
Tcpdum potrafi podsłuchać ruch NFS, to 
Filesnarf jest w stanie złożyć podsłuchiwany 
plik i zapisać na dysku twardym. Obsługa 
jest banalna. Narzędzie przyjmuje jedynie 
dwa dodatkowe parametry: 

-i

 (wskazuje 

interfejs) oraz 

-v

 (pozwala wykluczyć 

pliki o określonym rozszerzeniu). Jeśli 
chcielibyśmy przechwycić plik z komputera 
o konkretnym IP i rozszerzeniu w konsoli, 
wydajemy polecenie 

filesnarf -v 

`*.doc` host xxx.xxx.xxx.xxx

. W ten 

sam sposób haker może podsłuchiwać 
wiadomości e-mail. Wystarczy, że użyje 
programu Mailsnarf, którego obsługa jest 
niemalże identyczna jak Filesnarf. Mogłoby 
się wydawać, że już więcej nie można 
oczekiwać od Dsniff. A jednak okazuje się, 
że to nie koniec. Podsłuchiwanie rozmów 
prowadzonych za pomocą komunikatorów 
internetowych nie sprawi problemu 
nawet jeżeli ktoś nigdy tego nie próbował. 
Niezwykle przydatną opcją jest możliwość 
określenia wzorca. Dzięki temu zostaną 
zapisane jedynie informacje zawierające 
np. dane słowo. Załóżmy, że chcielibyśmy 
przechwycić jakiś login. Możemy 
wydać polecenie 

msgsnarf „login”

Jeżeli w tekście pojawi się słowo login, 
automatycznie zostanie on przechwycony.

W pakiecie Dsniff istnieje również 

grupa bardzo złośliwych i groźnych 
narzędzi. Z wiadomych względów są 
one dosyć często wykorzystywane przez 

background image

26

 

POCZATKI

HAKIN9 6/2009

TAK ROBIĄ TO PRAWDZIWI HAKERZY

27

 

HAKIN9 

6/2009

hakerów. Jednym z takich narzędzi jest 
Sshmitm, czyli Ssh Monkey in the Middle
Doskonale współpracuje z Dnsspoof
Jedynym minusem jest fakt, że obsługuje 
jedynie SSH w wersji 1. Ale do czego 
właściwie służy Sshmitm? Otóż przed 
użyciem tego narzędzia warto za pomocą 
Dnsspoof przejąć połączenie SSH z 
danym komputerem. Kolejnym krokiem 
jest uruchomienie Sshmitm (najlepiej 
na porcie 22), np. 

sshmitm -p 22 

xxx.xxx.xxx.xxx 22

Podszywając 

się pod tzw. komputer foohost można 
przechwycić klucz z innego komputera 
i zastąpić go własnym, co w efekcie 
pozwoli nam na rozszyfrowanie przejętych 
informacji. Gdyby zależało nam na ruchu 
WWW z szyfrowaniem SSL, wystarczy 
skorzystać z Webmitm. Podobnie jak 
opisany powyżej Sshmitm, narzędzie to 
wymaga Dnsspoof. Działa wstrzykując 
sfałszowane certyfikaty SSL. Następnie 
przekazywane w dwukierunkowym ruchu 
dane zostają odszyfrowane. Technika 
ta jest możliwa do wykorzystania dzięki 
ponieważ większość użytkowników nie 
zwraca uwagi na komunikaty wyświetlane 
przez przeglądarkę internetową, z której 
korzystają. Ta z kolei prawie zawsze 
poinformuje użytkownika o zmianie 
certyfikatu. Jaka jest jednak szansa, że 
ktoś się nad tym zastanowi? Niewielka. 
Nieco mniej wyrafinowanym, ale bardzo 
pożytecznym programem jest Urlsnarf. Aby 
zaczął monitorowanie, wystarczy wywołać 
go w konsoli. Wszystkie adresy URL jakie 
odnajdzie zostaną zapisane w pliku 
dziennika.

Na koniec nie pozostało nic innego, 

jak wspomnieć o mniej istotnych 
narzędziach, również wchodzących w 
skład Dsniff. Jednym z nich jest Macof
którego głównym celem jest zasypanie 
lokalnej sieci losowo wybranymi adresami 
MAC, aby spowodować jej awarię. 
Oczywiście wyeliminowanie przełączników 
może bezsprzecznie uprościć zadanie 
hakerowi. Kolejne dwa to Tcpkill i Tcpnice
Pierwszy ze wspomnianych programów 
ma za zadanie przerwać połączenie 
TCP poprzez sfałszowanie RST (pakiet 
resetujący). Następnie zostaje on 
wstrzyknięty do rzeczywistego połączenia. 
Tcpnice natomiast nie przerywa 
połączenia, ale bardzo skutecznie je 
spowalnia. 

Ciekawym programem jest 

Webspy. Pozwala on śledzić strony, 
które są aktualnie przeglądane na 
innym komputerze w sieci lokalnej. Aby 
wszystko działało poprawnie, trzeba mieć 
zainstalowaną przeglądarkę Netscape. 
Ponieważ narzędzia te nie są istotne, nie 
będziemy się im dokładniej przyglądać. 
Warto jednak pamiętać, że istnieją.

Ettercap – skażone pakiety!

W 2001 roku pojawiła się pierwsza 
odsłona programu uważanego za 
jeden z najbardziej wyrafinowanych i 
zagrażających bezpieczeństwu. Ettercap 
– bo o nim właśnie mowa – powstał 
z myślą o podsłuchiwaniu lokalnych 
sieci. Program można bez problemów 
zainstalować ze standardowych 
repozytoriów większości dystrybucji lub 
pobrać ze strony domowej http://ettercap
.sourceforge.net
. Uniwersalność zapewnia 
możliwość pracy wykorzystując jeden z 
trzech dostępnych trybów. W zależności 
od potrzeb i własnych upodobań, 
można korzystać z GUI działającego w 
środowisku graficznym (parametr 

-G

), GUI 

dla środowiska tekstowego (parametr 

-C

lub zrezygnować z interfejsu na rzecz linii 
komend (parametr 

-T

). Ettercap umożliwia 

wstrzykiwanie zatrutych pakietów ARP 
do ruchu sieciowego. Zezwala on na 
podsłuchiwanie komputerów także 
w sieciach z przełącznikami. Pracę z 
programem najczęściej rozpoczynamy 
od wyboru jednej z dwóch dostępnych 
opcji znajdujących się w menu Sniff: 
Unified sniffing
 lub Bridget sniffing
Najczęściej wskazujemy tą pierwszą, która 
uruchamia przechwytywanie pakietów. 
Teraz – jeżeli wcześniej tego nie zrobiliśmy 
– zostaniemy poproszeni o wskazanie 
interfejsu, np. eth0. W tym momencie 
w menu pojawią się nowe pozycje. 
Program jest już gotowy do uruchomienia, 
więc wybieramy Start –> Start sniffing 
lub wciskamy skrót [Ctrl+w]. Jeśli nie 
zależy nam na konkretnym adresie IP, 
podstawowe podsłuchiwanie w zupełności 
wystarczy. Wiąże się to oczywiście 
z wielogodzinnym oczekiwaniem na 
upragniony login i hasło do konta ofiary.

To jednak nie wszystko. Dzięki Ettercap 

użytkownik może sprawdzić nawet, z 
jakiego systemu operacyjnego korzysta 
potencjalna ofiara. Wystarczy wybrać z 

zakładki View –> Profiles lub skorzystać 
ze skrótu [Shift+o]. Następnie należy 
wskazać adres IP, a program wyświetli 
kilka przydatnych informacji na temat 
wybranego komputera. Wszystkie te 
informacje, które potrafi przejąć program 
(z podsłuchem włącznie), nie miałyby 
większej wartości i nie uczyniłyby z 
Ettercap tak potężnego narzędzia, jakim 
bez wątpienia jest. Kluczem do sukcesu 
są doskonale przeprowadzane ataki typu 
Man In The Middle z wykorzystaniem 
tzw. ARP poisoning, czyli zatruwania 
pakietów ARP. Systemy operacyjne ofiar 
są skutecznie oszukiwane, a powiązania 
IP-MAC doprowadzają je do naszego 
komputera. Atakujący staje się rodzajem 
pośrednika. Pakiety najpierw trafiają do 
jego komputera i może je przeglądać, a 
następnie są wysyłane do właściwego 
odbiorcy. Jest to niebezpieczne, ponieważ 
w takim układzie zawartość pakietów 
i transmisja może zostać nie tylko 
wyświetlona, ale także podmieniona. 
Ryzyko przechwycenia poufnych danych 
jest ogromne. Ponadto ataki typu MIT są 
możliwe na routerze i gatewayu. Załóżmy, 
że pewna osoba, którą obserwuje haker, 
będzie chciała się zalogować na własne 
konto bankowe, np. http://www.bank.pl/
przelew_krajowy
. Po ustawieniu kilku 
filtrów istnieje możliwość podmiany 
każdego ciągu znaków stanowiącego 
powyższy odnośnik tak, aby wskazywał 
przygotowany wcześniej bliźniaczy, lecz 
fałszywy serwis. Niczego nieświadoma 
ofiara chcąc się zalogować wpisze login 
i hasło. Odpowiednio spreparowana 
strona banku może mieć odnośniki 
do robienia przelewów itp. W prosty 
sposób haker jest w stanie zdobyć dane 
niezbędne do zalogowania się w banku 
ofiary, a dodatkowo może zyskać hasła 
jednorazowe niezbędne do wykonania 
przelewów. Widzimy zatem, że nie chodzi 
już o czytanie cudzej poczty, ale o 
dokonywanie poważnych przestępstw. 
Dlatego Ettercap uznawany jest za jeden 
z najgroźniejszych programów tego 
typu. Opisane wyżej funkcje są jedynie 
namiastką tego, co można zrobić z tym 
programem. Każdy, kto chce śledzić ruch 
sieciowy (niekoniecznie w celu popełnienia 
przestępstwa) powinien posiadać Ettercap 
w swoim warsztacie. Należy jednak 
zachować ostrożność, ponieważ można 

background image

26

 

POCZATKI

HAKIN9 6/2009

TAK ROBIĄ TO PRAWDZIWI HAKERZY

27

 

HAKIN9 

6/2009

uszkodzić innym użytkownikom sieci 
ważne dane.

Snort – intruz, intruz, intruz!

W narzędziowni hakera nie mogłoby 
zabraknąć programu Snort. Omówiliśmy 
już kluczowe programy służące do 
szpiegowania i wyciągania rozmaitych 
cennych informacji. Nie wolno jednak 
zapominać, że istnieją także narzędzia 
stworzone w celu ochrony prywatności 
i danych. Są to tzw. systemy detekcji 
włamań (IDS – Intrusion Detection 
System
). Najlepszym przykładem takiego 
oprogramowania jest właśnie Snort
Często umieszczany jest w kluczowych 
miejscach sieci, stając się strażnikiem 
ruchu sieciowego. Celem systemu detekcji 
włamań jest kontrolowanie wszystkich 
pakietów i wyszukiwanie sygnatur, które 
zdefiniował administrator sieci. Jeżeli 
IDS znajdzie elementy pasujące do 
sygnatury, natychmiast o tym informuje. 
O jakich sygnaturach mowa? Chodzi o 
niepożądane lub zmodyfikowane pakiety. 
Program jest na tym punkcie niezwykle 
wyczulony. Biorąc pod uwagę wydajność 
oraz dostępność zarówno dla systemów z 
rodziny Windows , Linux, jak i BSD, stawia 
to Snorta bardzo wysoko w rankingu 
oprogramowania IDS.

Zacznijmy jednak od podstaw, 

czyli instalacji i konfiguracji. Jeżeli w 
repozytoriach naszej dystrybucji nie ma 
Snorta (co jest mało prawdopodobne), 
możemy pobrać pliki źródłowe ze strony 
http://www.snort.org. Aktualna stabilna 
wersja to 2.8.3.2. Kompilacja przebiega 
w sposób standardowy, czyli – znajdując 
się oczywiście w katalogu rozpakowanego 
Snorta – w konsoli wpisujemy kolejno 
polecenia 

make

 i 

make install

Wygodniejszym sposobem jest pobranie 
ze strony domowej programu gotowych 
paczek binarnych w postaci plików RPM.

Standardowo program może działać 

w trzech trybach: klasyczny sniffer
narzędzie rejestrujące pakiety lub system 
monitorujący NIDS 
(Network Intrusion 
Detection System
).Od pozostałych 
snifferów Snort odróżnia właśnie ostatnia 
z wymienionych funkcji. Drugą wyjątkową 
umiejętnością programu jest możliwość 
zapisywania podsłuchiwanych pakietów 
na dysku twardym oraz przejrzyste 
uporządkowanie ich dzięki zastosowaniu 

odpowiedniej struktury katalogów. Kluczem 
do prawidłowej pracy z programem jest 
jednak odpowiednie skonfigurowanie go 
i określenie reguł, do których ma się on 
stosować. Plik konfiguracyjny znajduje 
się najczęściej pod adresem /etc/snort/
snort.conf
. Pierwszym wpisem, który 
możemy zmodyfikować, jest zmienna 

var HOME _ NET

. Domyślnie przyjmuje 

ona wartość 

any

, czyli każdy. Aby 

uprościć i przyspieszyć pracę programu 
możemy w tym miejscu podać adres 
IP naszego komputera lub interfejs, np. 

$eth0 _ ADDRESS

. Teraz wskazujemy 

programowi, skąd może nastąpić atak. 
Oczywiście najczęściej są to sieci lokalne 
lub zewnętrzne. Aby Snort uważał na 
każdy możliwy adres, zostawiamy 

var 

EXTERNAL _ NET any

. W sytuacji, w której 

chodziłoby o konkretny adres, moglibyśmy 
go w tym miejscu dopisać. Teraz pozostało 
jeszcze ustawienie odpowiednich serwerów 
DNS. Ich adresy podajemy w linii 

var 

DNS _ SERVERS

. Te proste ustawienia 

to zaledwie początek konfiguracji 
programu. Prawdą jest, że nie należy on 
do najprostszych w obsłudze, jednak daje 
zdumiewające efekty. Przed przystąpieniem 
do modyfikacji pliku konfiguracyjnego 
dobrze jest wypróbować ustawienia 
domyślne.

Snort w dużej mierze jest sterowany 

przez specjalne reguły. Mają one na celu 
filtrowanie pakietów oraz dopasowywanie 
ich biorąc pod uwagę np. numery IP, 
portów, znaczników itd. Dla ułatwienia, 
reguły zostały podzielone na kilka grup. 
Pierwszą stanowią reguły alarmów, 
dzięki którym odpowiednie pakiety są 
rejestrowane. W takim wypadku do pliku 
alarmów program wysyła komunikat 
alarmujący. Drugą grupę stanowią reguły 
aktywacji. Jeżeli dane pakiety ją spełniają, 
zostaje zgłoszony alarm i uruchomiona 
kolejna reguła – tym razem dynamiczna. 
Ta z kolei sprawdza, czy spełnione 
zostały reguły rejestracji przez pakiety. 
Jeśli tak, to zostają one zarejestrowane 
bez podnoszenia alarmu. W podobny 
sposób działają typowe reguły rejestracji. 
Różnica pomiędzy nimi polega na 
tym, że pierwsze są w pewnym sensie 
samodzielne, natomiast drugie uruchamia 
reguła aktywacji, która musi zostać 
wywołana wcześniej. Na koniec zostały 
tzw. reguły przejścia. Jeżeli dany pakiet je 

spełnia, zostaje przepuszczony i uznany 
za nieistotny dla programu. Wszystkie te 
zasady brzmią skomplikowanie. Podczas 
początkowego korzystania ze Snorta 
nie trzeba się ich obawiać. Dopóki nie 
poznamy programu wystarczająco 
dokładnie, bez obaw można wykorzystać 
ustawienia domyślne dla jego reguł. 
Są one wystarczające do wykrywania 
skanowania programem Nmap, prób 
przepełnienia bufora i wykorzystania 
znanych luk systemowych, a nawet 
anonimowego dostępu do FTP. Oczywiście 
tych usług jest znacznie więcej. Celem 
tekstu nie jest dublowanie dokumentacji, 
a wskazanie doskonałych programów 
i zachęcenie do korzystania z nich. 
Standardowa hierarchia reguł wygląda w 
taki sposób, że najpierw zostają wywołane 
reguły alarmów, a następnie przejścia i 
rejestracji. Minusem ustawień domyślnych 
jest brak reguł przejścia i rejestracji. 
Pozostawienie pliku konfiguracyjnego bez 
zmian spowoduje, że najprawdopodobniej 
Snort wykaże mnóstwo fałszywych 
alarmów. Jak widzimy, nie jest to najlepsze 
rozwiązanie, jednak poprawne ustawienie 
programu wymaga cierpliwości i wiedzy. 
W jaki sposób można wykorzystać 
reguły? Załóżmy, że chcielibyśmy, aby 
określony ruch w sieci był ignorowany, np. 
kiedy z naszej lokalnej sieci otrzymamy 
serię zapytań do naszego serwera DNS 
z innego serwera DNS, Snort wykryje 
fałszywe skanowanie portów. Aby 
wyeliminować ten problem, wystarczy 
określić zmienną 

DNS _ SERVERS

Przypisujemy do nich adresy IP naszych 
serwerów DNS. Przykładowy wpis może 
wyglądać jak w Listingu 1. Oczywiście 
zamiast xxx.xxx.xxx.xxx/yy należy wstawić 
prawdziwe numery. Dwie dodatkowe 
linijki w przykładzie to właśnie omawiane 
reguły. Na ich podstawie możemy 
prześledzić, w jaki sposób zostały 
utworzone. Najpierw określamy w tzw. 
nagłówku o typie reguły, np. pass, alert, 
log
. Następnie wskazujemy odpowiedni 
protokół. Mamy tu do wyboru chociażby 
ip, tcp, icmp, udp itd. W przykładzie 
wykorzystano operator kierunkowy 
określający ruch jednokierunkowy. Istnieje 
możliwość przypisania także komunikacji 
dwukierunkowej. Służy do tego operator 
<>. Na koniec podajemy numery portów 
oraz cel i źródło. Szczegółowa lista 

background image

28

 

POCZATKI

HAKIN9 6/2009

poleceń dostępnych dla programu 
dostępna jest w dokumentacji, którą 
trudno byłoby streścić w kilku zdaniach. 
Na temat Snorta napisano wiele 
doskonałych książek, a nawet one nie 
wyczerpały tego rozległego zagadnienia. 
Zapomnieliśmy o jeszcze jednym 
bardzo istotnym aspekcie. W jaki sposób 
uruchomić program, tak aby wczytał 
reguły zapisane w pliku snort.conf ? W 
Listingu 2 przedstawione zostały dwa 
różne sposoby. Pierwszy ogranicza się 
do wskazania pliku konfiguracyjnego 
i uruchomiania programu w tle jako 
tzw. deamona. Drugi jest bardziej 
rozbudowany. Podobnie jak w poprzednim 
wskazujemy plik konfiguracyjny, następnie 
wskazujemy katalog, do którego mają 
zostać zapisane alarmy i pakiety. Dla 
przyspieszenia pracy pakiety zostaną 
zapisane w formacie tcpdump, ponieważ 
jest on zdecydowanie szybszy (-b). 
Wskazaliśmy katalog dla logów i alarmów, 
ale zabrakło przypisania pliku binarnego, 
w którym mają one zostać zapisane. 
Robimy to parametrem 

-L nazwa _

pliku.dump

. Dla poprawy wydajności 

warto także, jak pokazano to w przykładzie, 
zmusić program do pobierania tylko 
minimalnej ilości szczegółów dotyczących 
pakietów. Wstępna konfiguracja już za 
nami, a program jest gotowy do użycia. 
Dokładniejsze ustawianie opcji dla Snorta 
zależy od tego, co użytkownik chce 
dzięki niemu uzyskać. Autor zachęca do 
dokładnego zapoznania się z doskonałym 
podręcznikiem dla użytkowników, który 
można znaleźć na stronie domowej 
programu.

Nmap, czyli co piszczy w portach?

Każdy haker prędzej czy później stanie 
przed koniecznością przeskanowania 
portów. Jednym z najbardziej znanych 
skanerów jest Nmap. Program ten stał 
się niezwykle popularny dzięki swoim 
możliwościom oraz dostępności 
zarówno dla Windowsa, jak i Linuksa. 
Najprostsze wywołanie skanera ogranicza 
się do wpisania nazwy programu oraz 
skanowanego hosta lub numeru IP, np. 
nmap 127.0.0.1. Wynikiem tego polecenia 
będzie lista otwartych portów oraz 
odpowiadające im serwisy. Obok otwartych 
portów często pojawiają się także porty 
filtrowane. Należy jednak zwrócić uwagę, 

że narzędzie to nie sprawdza, co w 
rzeczywistości znajduje się na danym 
porcie. Numer danego portu zostaje 
porównany z tablicą domyślnych portów. 
Choć w pewnym sensie jest to próba 
odgadnięcia serwisu, najczęściej okazuje 
się trafna.

Pierwszą z oferowanych przez 

program opcji jest tzw. ciche skanowanie 
(-sS). Opcja ta musi zostać wywołana z 
konta roota. Wizualnie efekt skanowania 
wykorzystującego parametr 

-sS

 będzie 

dokładnie taki sam jak w przypadku 
polecenia nmap 127.0.0.1. Jest jednak 
zasadnicza różnica. Otóż użycie tej opcji 
powoduje, że w standardowych logach 
systemu nie zostanie zamieszczona 
wzmianka o przeprowadzonym 
skanowaniu. Sytuacja taka ma natomiast 
miejsce podczas użycia programu bez 
dodatkowych opcji. Nie oznacza to jednak, 
że skanowanie to jest niemożliwe do 
wykrycia. Wystarczy bowiem dodatkowe 
oprogramowanie, jak np. rozbudowany 
firewall, IDS itd. Drugą interesującą opcją 
jest 

-sV

. Dzięki niej możemy zobaczyć 

wersję demona znajdującego się na 
danym porcie. W rzeczywistości mamy 
tu do czynienia ze zbieraniem tekstów 
zwracanych przez daną usługę (tzw. 
banery). Nie są to informacje rzetelne, 
ponieważ mogą być zmodyfikowane przez 
administratora systemu, który skanujemy. 
Nmap zezwala także na skanowanie 
metodą wykorzystującą ping. Funkcja ta 
przydaje się w momencie, gdy zależy nam 
na sprawdzeniu, jakie komputery wchodzą 
w skład sieci, do której włączony jest 
skanowany komputer. Jest to możliwe dzięki 
parametrowi 

-sP

. Podajemy tu także zakres 

skanowania, czyli ile komputerów ma 
zostać sprawdzonych. Zdarza się, że nmap 
nie może przeskanować pewnego adresu. 
Należy wtedy zamienić 

-sP

 na 

-P0

. Opcja 

ta jest przydatna, gdy skanowany komputer 
ma w firewall'u wyłączone odbieranie 
pakietów ICMP. To zaskakujące, ale skaner 
ten potrafi również wskazać typ urządzenia, 
rodzaj zainstalowanego systemu, a nawet 
wersję jego jądra.

Jeżeli zależy nam na pozostaniu 

niewidocznymi dla właścicieli skanowanych 
komputerów, warto wypróbować opcję 

-sT

. Zostaną wyświetlone otwarte porty, 

jednak w logach nmap nie pozostawi 
żadnych śladów. Metodą wydającą się 

być przeciwieństwem powyższej jest 
skanowanie tcp ack (

-sF

). Opiera się 

ono na sfałszowanych pakietach ACK i 
bazuje na nienawiązanych połączeniach. 
Jeśli dany port jest zamknięty, otrzymamy 
od niego odpowiedź. W przeciwnym 
razie nie otrzymamy niczego. Metoda ta 
jest bezpieczna i działająca w ukryciu. 
Oczywiście, standardowe wykorzystanie 
programu nie gwarantuje anonimowości. 
Wykrycie takiego skanowania jest możliwe. 
A czy można oszukać wpisy w plikach typu 
*.log? Warto spróbować polecenia 

nmap 

-S fikcyjne _ ip -e eth0 -P0 -sF -v 
ip _ ofiary

. Po wykonaniu tego polecenia 

w logach znajdzie się zapis, że intruzem 
jest komputer o numerze IP podanym w 
miejscu 

fikcyjne _ ip

Nmap pomimo wielu niewątpliwych 

zalet posiada także pewne wady. 
Najważniejszą jest fakt, że jest to skaner 
o charakterze aktywnym. Oznacza to 
generowanie dużej ilości ruchu, przez co 
nieustannie jest narażony na wykrycie. 
Pomimo tego warto jednak zaznajomić 
się z tym doskonałym programem. Z 
jednej strony jest to już klasyka, z drugiej 
jednak wciąż pozostaje na topie wśród 
najlepszych narzędzi wykorzystywanych nie 
tylko przez hakerów.

Podsumowanie

Sumiennie zebrane informacje w pierwszej 
fazie pozwalają na dobór odpowiednich 
technik ataku i narzędzi, które będą 
najbardziej skuteczne. Ataki prowadzone 
bez przygotowania najczęściej skazane 
są na porażkę. Drugim warunkiem 
osiągnięcia sukcesu jest odpowiednie 
przygotowanie i warsztat pracy. Narzędzia 
zaprezentowane w artykule nie są jedynymi, 
które potrafią wykonać opisane działania, 
jednak zdecydowanie są najskuteczniejsze 
i stosowane na szeroką skalę od wielu 
lat. Ich znajomość jest obowiązkiem nie 
tylko hakera, lecz także administratora. 
Poznaj opisane programy i zbuduj własne 
zaplecze narzędziowe. Nie zwlekaj, 
rozpocznij praktykę!

Łukasz Ciesielski

Autor od lat zajmuje się systemami z rodziny Linuksa, 

zwłaszcza Debianem i Slackware. W wolnych chwilach 

pisze programy w C/C++, Javie, Pythonie, Pascalu (także 

z wykorzystaniem bibliotek Qt i GTK). Od kilku lat autor 

zajmuje się zabezpieczeniami sieci i systemu. 

Kontakt z autorem: lucas.ciesielski@o2.pl.