Sieci Zombie.pdf
(
1380 KB
)
Pobierz
4361615 UNPDF
Sieci Zombie
Atak
Dawid Gołuński, Krzysztof Kułaj
stopień trudności
Sieci botnet są coraz bardziej rozpowszechnione. Z danych
statystycznych wynika, że co 4 komputer domowy w sieci to
Zombie. W jaki sposób się one rozprzestrzeniają, co potraią
i dlaczego nie można sobie z nimi poradzić - na te pytania
Czytelnik uzyska odpowiedź po przeczytaniu tego artykułu.
sową skalę pod koniec 2003 roku - wy-
korzystując do tego celu lukę w inter-
fejsie RPC, wykrytą parę miesięcy wcześniej.
Luka ta stanowiła doskonałą okazję do zainfe-
kowania ogromnej liczby komputerów przy ma-
łym nakładzie środków. Na powodzenie zma-
sowanych ataków złożyło się tu wiele czynni-
ków, m.in.: niska świadomość użytkowników,
dostępność kodu
P-O-C
z optymalnym shel-
lcode’m oraz dostępność kodów źródłowych
botów (m.in.
Sd-bot, Spybot
). Od tego czasu
oprogramowanie takie przeżywa rozkwit, do-
skonalone są techniki jego rozprzestrzeniania-
oraz ukrywania się w systemie.
niki i potraią na podstawie sygnatur lub zacho-
wania aplikacji wykryć znane boty. Innym spo-
sobem ich rozprzestrzeniania się jest wykorzy-
stywanie luk w aplikacjach sieciowych, najczę-
ściej Microsoft Internet Explorer oraz Microsoft
Outlook. Specjalnie utworzony exploit, instalu-
jący bota, jest umieszczany na serwerze Web.
Link do spreparowanej strony rozpowszechnia-
ny jest na wszelkie możliwe sposoby - poprzez
komunikatory sieciowe, IRC, mail, grupy dysku-
syjne czy też. fora internetowe. Gdy oiara ak-
Z artykułu dowiesz się
• W jaki sposób działają boty (metody infekcji,
ukrywanie się w systemie),
• Nauczysz się analizować skompilowany plik
bota,
• Poznasz zagrożenia płynące z sieci typu bot-
net.
Metody rozprzestrzeniania się
Jedną z podstawowych cech botów jest możli-
wość rozprzestrzeniania się. Techniki te ewolu-
owały od momentu powstania botów do dnia dzi-
siejszego. Początkowo boty rozprzestrzeniały
się w sposób podobny do wirusów – były wysyła-
ne jako załączniki e-mail. Treść listu była tworzo-
na z użyciem technik inżynierii społecznej (
so-
cial engineering)
– tak, aby nakłonić użytkownika
do otwarcia załącznika. Dzisiaj programy anty-
wirusowe automatycznie skanują jednak załącz-
Co powinieneś wiedzieć
• znać podstawy C,
• znać podstawy assemblera,
• znać podstawy sieci TCP/IP.
2
hakin9 Nr 7/2007
www.hakin9.org
B
oty zaczęły rozprzestrzeniać się na ma-
Sieci Zombie
tywuje link, a używana przeglądar-
ka jest podatna na błąd, bot zainsta-
luje się w systemie. Luki wykorzysty-
wane do tego ataku są wybierane ze
względu na takie czynniki, jak: ilość
podatnego oprogramowania, popu-
larność aplikacji, uniwersalny shellco-
de (najlepiej niezależny od wersji języ-
kowej Windows lub programu). Innym
sposobem na infekcję użytkowników
jest skanowanie sieci w poszukiwa-
niu niezaktualizowanych systemów.
Najczęściej wykorzystywane luki to :
SRVSVC (MS06-040), PNP (MS05-
039) , ASN.1 (MS04-007), LSASS
(MS04-011), DCOM (MS03-026)
– (MS03-043), (MS03-049). (bardziej
dociekliwi czytelnicy mogą zapoznać
się ze szczegółami tych luk na stro-
nach Microsoft, podając numery in-
deksowe zawarte w nawiasach). Pu-
blicznie dostępne boty, m.in.
RxBot
,
GT-Bot
posiadają zaimplementowa-
ne przeszukiwanie sieci oraz infek-
cję za pomocą wyżej wymienionych
dziur. Ciekawym sposobem infekowa-
nia systemów jest wyszukiwanie kom-
puterów i infekcja za pomocą
Netbios.
Schemat ataku wygląda następująco:
agresor wyszukuje komputer z otwar-
tym portem 139, następnie próbuje się
z nim połączyć. Jeśli połączenie doj-
dzie do skutku z pustym hasłem, ko-
piuje się do wszystkich możliwych lo-
kacji. Jeśli istnieje hasło, bot będzie
próbował odgadnąć hasło, podsta-
wiając najczęściej występujące sło-
wa. Często wykorzystywane są dziu-
ry w standardowych lokalnych aplika-
cjach, np. Microsoft Word czy Micro-
soft PowerPoint. Atakujący wysyła
odpowiednio spreparowany plik .doc
lub .pps w załączniku do e-maila. Tym
sposobem można wykorzystać nie-
malże każdą lukę występującą w lo-
kalnym systemie. Jedynym ograni-
czeniem jest treść e-maila – musi być
wystarczająco przekonywująca – co
z reguły nie jest najtrudniejszym za-
daniem, jeśli rozszerzenie załączni-
ka nie jest plikiem wykonywalnym.
Ten atak ma jedną wadę – nie może
być on kierowany do wielu użytkowni-
ków, gdyż jeśli trai do irm antywiru-
sowych, jego sygnatury zostaną do-
dane do bazy wirusów i będzie wykry-
walny, co znacząco zmniejszy możli-
wości rozprzestrzeniania się. Stosun-
kowo prostym w implementacji sposo-
bem rozprzestrzeniania jest kopiowa-
nie bota na komputerze oiary, do fol-
derów, z których korzystają programy
P2P ( np.
Emule, Kazaa
). Nazwy są
najczęściej dobierane wg. schematów
( crack-nazwa_gry.exe, key-gen-na-
zwa_gry.exe etc). Ta metoda jest sku-
teczna jedynie w przypadku dużych
botnetów, ponieważ im więcej kopii te-
go samego pliku w sieci
P2P,
tym wy-
żej znajduje się on na liście wyszuki-
wania. Ciekawą techniką zdobywa-
nia botów, której nie można zaliczyć
do infekcji są kradzieże botnetów. Ten
temat zostanie poruszony w punkcie
Zdobywanie informacji o bocie
.
Instalacja
i ukrywanie w systemie
Domyślnie wszystkie boty instalują
się w kluczach startowych rejestru
Windows. Metoda ta jest bardzo za-
wodna, ponieważ wszystkie progra-
my antywirusowe oraz antyspywaro-
we w pierwszej kolejności sprawdza-
ją domyślne lokalizacje. Nawet stan-
Rysunek 1.
Wywołanie bota, ukryte w usłudze Posłańca
Rysunek 2.
Przechwycenie adresu serwera oraz nicka bota
www.hakin9.org
hakin9 Nr 7/2007
3
Atak
Listing 1.
Przełożenie funkcji decode() na język C
Scenariusz
przykładowego ataku
na konto w banku
internetowym
Jeśli użytkownik korzystający z
usług banku posiada bota, w skraj-
nych przypadkach może stracić pie-
niądze na swoim koncie. Zaprezen-
towana technika może zostać dosto-
sowana do każdego banku stosują-
cego tego typu zabezpieczenia. Ist-
nieją boty mające zaimplementowa-
ną funkcję powiadamiania na kanale,
jeśli na komputerze pojawią się okna
z danym tytułem. W przypadku, gdy
użytkownik wejdzie na stronę banku
– wiadomość z zapisanymi klawisza-
mi wciśniętymi w tym oknie (tj. login
i hasło) zostanie przesłane do wła-
ściciela botnetu. W tym momencie
może się on swobodnie logować na
konto bankowe użytkownika. Jednak
wszystkie kluczowe operacje na kon-
cie są zabezpieczone hasłem jedno-
razowym, które zna jedynie właści-
ciel konta oraz bank. Można sprepa-
rować stronę, do złudzenia przypomi-
char
*
decode
(
char
*
text
,
int
param
,
char
*
where
)
{
int
i
;
for
(
i
=
0
;
text
[
i
]
!=
0
;
i
++)
{
where
[
i
]
=
text
[
i
]
-
param
-
3
*
i
;
}
Where
[
i
]=
0
;
return
where
;
}
dardowe narzędzia Windows ( np.
msconig
) są w stanie wykryć obec-
ność bota. Jednakże nie jest to jedy-
na metoda automatycznego urucha-
miania bota. Istnieje szereg innych,
mniej lub bardziej znanych metod.
Np. dopisanie się do systemowych
usług lub
dll injection
.
istnieją irmy płacące za klikanie w
reklamy na stronach – takie działa-
nie może doprowadzić do osiągnię-
cia korzyści inansowych. Boty czę-
sto są wykorzystywane do wysyła-
nia spamu, posiadają nawet własne
silniki SMTP. Według statystyk, oko-
ło 50% spamu wysyłanego w sieć
pochodzi z zainfekowanych kompu-
terów. Źródła botów potraiących wy-
syłać masowo spam nie są raczej pu-
blicznie dostępne, ale nawet średnio-
zaawansowanemu programiście roz-
szerzenie programu o takie funkcje
nie powinno sprawić trudności.
Możliwości botów
Pierwotnie boty były gromadzone w
celach ataków
DOS
i
DDOS
. Najczę-
ściej używany do tego celu jest
syn-
lood
oraz
ping-lood
. Z czasem boty
stały się coraz bardziej wyrainowa-
ne. Wachlarz ich możliwości stał się
dużo większy. Bardzo szybko została
dodana możliwość skanowania naci-
skanych klawiszy. Dodatkowo, w źró-
dle możemy określić nazwy okien, z
których klawisze mają być logowane.
Określając nazwę okna na:
• PuTTY– możemy uzyskać sporą
ilość kont z dostępem do shella,
• nazwy serwisów aukcyjnych – ha-
sła do kont umożliwiające zawie-
ranie transakcji w imieniu danej
osoby,
• nazwy banków – numery kart
kredytowych, jak również hasła
i loginy do kont bankowych.
Rysunek 3.
Bot spakowany UPXem
To tylko kilka przykładów, potwier-
dzających, że najwrażliwsze dane
użytkownika są w zasięgu ręki po-
siadacza bonetu. Inne funkcje to np.
możliwość klikania w linki interneto-
we. Funkcja ta jest używana do oszu-
kiwania systemów zliczających klik-
nięcia w banery na stronach interne-
towych. Oznacza to, że osoba posia-
dająca bonet może w łatwy sposób
wpływać na wyniki wszelkiego rodza-
ju sond, ankiet, głosowań itp. Jako że
Rysunek 4.
Sekcje dostępne w pliku bota
4
hakin9 Nr 7/2007
www.hakin9.org
Sieci Zombie
nającą stronę banku. Posiadając bo-
ta na komputerze oiary, jesteśmy w
stanie przekierować użytkownika na
podstawioną przez nas stronę. Gdy
użytkownik -- będąc przekonanym,
że kontaktuje się z właściwą stroną
-- wpisze hasło jednorazowe, zamiast
traić do banku traia do właściciela
botów. W tym momencie, atakujący
może zrobić wszystko z naszym kon-
tem bankowym. Działanie to może
wydawać się początkowo skompliko-
wane, jednak coraz więcej osób pada
oiarami tego typu przestępstw. Banki
starają się walczyć z takimi praktyka-
mi, wprowadzając losowe wybieranie
haseł jednorazowych z listy lub hasła
przesyłane na telefonu komórkowe.
wać program bota), przejęcia botnetu
(poprzez poinstruowanie komputerów,
aby wgrały określoną przez nas wersję
bota jednocześnie usuwając starą).
duje się bot. W tym celu można po-
służyć się popularnym snifferem o
nazwie
Ethereal
. Po uruchomieniu
sniffera, należy wybrać odpowiedni
interfejs za pomocą okna
Capture-
->
Interfaces
. Po kliknięciu przycisku
Capture
przy danym interfejsie, roz-
pocznie się nasłuchiwanie pakietów.
Wystarczy teraz uruchomić plik wy-
konywalny bota i odczekać kilkana-
ście sekund. Po wciśnięciu przyci-
sku
stop
w programie
Ethereal
na-
słuchiwanie zostanie przerwane, a
Podsłuchiwanie,
czyli snifing
Najłatwiejszym, a zarazem najszyb-
szym sposobem na ustalenie adresu
docelowego serwera, nazwy kanału
oraz klucza kanału, jest podsłucha-
nie sieciowych pakietów wychodzą-
cych z komputera, na którym znaj-
Zdobywanie
informacji o bocie
Przechwycony plik wykonywalny bo-
ta może wiele powiedzieć o docelo-
wej sieci. Przeprowadzając odpo-
wiednie działania, możemy poznać
dokładną konigurację bota, a w
szczególności:
Rysunek 5.
Niezakodowane dane koniguracyjne bota
• Adres serwera IRC, z jakim na-
stępuje połączenie
• Nazwa kanału IRC, do którego
dołącza bot
• Klucz dostępowy kanału IRC
• Dane potrzebne do uwierzytel-
nienia
Te informacje mogą posłużyć do na-
mierzenia atakującego, zniszczenia
botnetu (znając dane potrzebne do
uwierzytelnienia, jesteśmy w stanie
zalogować się na każdym z zaatako-
wanych komputerów oraz odinstalo-
Rysunek 6.
Podłączanie pod proces bota
W Sieci
• http://www.google.com/codesearch
– wyszukiwarka źródeł ułatwiająca
odnalezienie botów (RxBot, GT-bot
Sd-Bot, Spy-Bot.)
• http://www.secretashell.com/
codomain/peid/ – strona programu
PEiD
• http://www.ollydbg.de/ – strona
programu OllyDbg
• http://upx.sourceforge.net/ – strona
programu UPX
Rysunek 7.
Dane widoczne po podłączeniu się pod proces bota
Rysunek 8.
Lista odwołań do funkcji API
www.hakin9.org
hakin9 Nr 7/2007
5
Atak
przechwycone pakiety zostaną wy-
świetlone.
W jednym z pierwszych pakietów
zobaczymy nawiązanie połączenia
TCP pomiędzy botem a serwerem
IRC. Uzyskujemy tym samym adres
serwera oraz numer portu, na którym
działa usługa IRC. Jeżeli podczas
nasłuchiwania mieliśmy uruchomio-
ne również inne programy sieciowe
– warto ustawić iltr, który usunie nie-
istotne dla nas pakiety. Jeżeli połą-
czenie z serwerem zostało nawiąza-
ne na porcie 6667, można wówczas
ustawić iltr, który pokaże jedynie pa-
kiety odnoszące się do tego portu:
pakerem dla plików wykonywalnych,
takim jak UPX. Jest to dosyć częstą
praktyką wśród twórców botów, ze
względu na to, że skompresowanie
pliku exe pozwala na znaczne zmniej-
szenie objętości, a także utrudnia wy-
krycie programom antywirusowym.
Jeżeli mamy wątpliwości co do pake-
ra, jaki został użyty do skompresowa-
nia pliku, możemy posłużyć się narzę-
dziem
PeiD
(link w ramce
W Sieci
).
W tym przypadku bot jest skom-
presowany programem UPX. W ce-
lu rozpakowania pliku należy wydać
komendę:
Trudne pojęcia
• kod P-O-C – czyli
Proof Of Concept,
jest to nieszkodliwy kod (np. uru-
chamiający kalkulator) – dołączany
do opisu błędu/techniki jako dowód
istnienia błędu oraz pokaz możliwo-
ści jego wykorzystania.
O autorach
Dawid Gołuński jest samoukiem, pa-
sjonatem, od wielu lat interesującym
się Informatyką, a w szczególności
aspektami bezpieczeństwa. Studiu-
je sieci komp. w ramach programu Ci-
sco Network Academy na Politechnice
Poznańskiej.
golunski@crackpl.com
Krzysztof Kułaj jest studentem kierun-
ku Elektronika i Telekomunikacja na
Uniwersytecie Zielonogórskim, na co
dzień zajmuje się wdrożeniami syste-
mów antywirusowych.
krzysztof_kulaj@o2.pl
upx –d bot.exe
tcp.port eq 6667
Kolejne pakiety odzwierciedlają ko-
munikację bota z usługą IRC.
Ethe-
real
oznacza polecenia wydawane
przez bota jako
IRC Request.
Środ-
kowe okno ukazuje treść danego po-
lecenia. Jak określa specyikacja pro-
tokołu IRC, klient zobowiązany jest
przesłać nazwę pod jaką będzie wi-
dziany –
nick
. W tym przypadku
nick
bota ma postać
bot_no-12
. Następ-
nym istotnym poleceniem jest
JOIN
,
wywołane w taki sposób:
Jeśli nie uzyskaliśmy błędów przy
dekompresji, możemy wczytać otrzy-
many plik do edytora
hiew
. Wciskając
[
F4
]
przełączamy edytor w tryb hek-
sadecymalny.
Następnie przy pomocy sekwen-
cji klawiszy [
F8
] , [
F6
] przechodzimy
do tabeli, w której znajduje się spis
sekcji pliku EXE. Aby obejrzeć zade-
JOIN #my-botnet-00 botnet-#chan-00
Rysunek 9.
Kod przy wywołaniu funkcji gethostbyname
Pierwszy parametr stanowi nazwę
kanału, a drugi klucz.
Na podstawie tych informacji je-
steśmy w stanie połączyć się z botne-
tem. Po wejściu na kanał powinniśmy
ujrzeć pozostałe komputery tworzące
sieć. Ze względu na brak hasła, nie
jesteśmy w stanie dokonać uwierzy-
telnienia, dlatego jesteśmy ogranicze-
ni do biernej obserwacji kanału.
Czytanie pliku
binarnego
Główną wadą poprzedniej metody
jest brak możliwości uzyskania hasła.
Podgląd pliku binarnego bota, stwarza
niekiedy szansę na odczytanie zmien-
nych przechowujących dane konigu-
racyjne – w tym hasła. Dobrze do tego
celu nadaje się edytor szesnastkowy
o nazwie
hiew
. Przed rozpoczęciem
analizy pliku należy zwrócić uwagę
na to, czy plik nie jest skompresowany
Rysunek 10.
Ciało funkcji decode
Rysunek 11.
Referencje do funkcji dekodującej
6
hakin9 Nr 7/2007
www.hakin9.org
Plik z chomika:
eksplorator
Inne pliki z tego folderu:
Dodatki do żywności - Lista emulgatorów 2.pdf
(13678 KB)
Sieci Zombie.pdf
(1380 KB)
Format BMP okiem hakera.pdf
(722 KB)
Atak na Bluetooth.pdf
(807 KB)
[Helion] 100 sposobów na Google.pdf
(2302 KB)
Inne foldery tego chomika:
amatorskie video
ariva 200
Dokumenty
Filmy
Galeria
Zgłoś jeśli
naruszono regulamin