2009 06 Tak robią to prawdziwi hakerzy

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 i 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
i 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: Arpspoof, Dnsspoof,
Dsniff (od niego zaczerpnął nazwę
cały pakiet), Filesnarf, Macof, Mailsnarf,
Msgsnarf, Tcpkill, Tcpnice, Sshmitm 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.


Wyszukiwarka

Podobne podstrony:
2009 07 08 Tak robią to prawdziwi hakerzy cz 2
2009 06 15 21;42;51
Elektroinstalator 2009 06 koordynacja ochronników klasy I [B] i II [C]
2009 06 BO Egzamin
Makroekonomia I 11 Cykl koniunkturalny (2009 06 02)
afp egzam 2009 i termin i zawsze jest to samo 940, ponizej pytania z grupy zoltej dzisiejszego egzam
2009 06 09 Kolokwium 2
2009 06 29 Caritas In Veritate
2009 06 26 20;05;26
Codex Alimentarius od 31 grudnia 2009 r NIE POZWÓLMY NA TO, NIEZNANE i CIEKAWE, Codex Alimentarius
2009 06 Szkoła konstruktorów klasa II
06 - CHAŁUPY WELCOME TO, Teksty piosenek
Lubie Gotowac 2009 06
2009 06 03 POZ 11id 26815 ppt
bd w3 (aga's conflicted copy 2009 06 10)
Egzamin 2009 06 22 teoria, MEiL, [NW 125] Podstawy konstrukcji maszyn II, Egzaminy
egzamin 2009.06 (X-92) - czesc 1, odpowiedzi
Egzamin 2009 06 29 teoria v2, MEiL, [NW 125] Podstawy konstrukcji maszyn II, Egzaminy

więcej podobnych podstron