Вы находитесь на странице: 1из 8

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Hacking.
Sztuka penetracji
Autor: Jon Erickson
Tumaczenie: Bartomiej Garbacz (rozdz. 1,2),
Marcin Jdrysiak (rozdz. 3,4)
ISBN: 83-7361-418-4
Tytu oryginau: Hacking: The Art of Exploitation
Format: B5, stron: 248

Haker kojarzy si zwykle z wrogiem publicznym, przed ktrym przestrzegaj nas


media. Najczciej kojarzymy hakerw z wamaniami do systemw komputerowych
i wielomilionowymi stratami zaatakowanych przez nich firm. Prawda jest jednak
zupenie inna. Haker to kto, kto potrafi w niekonwencjonalny sposb wykorzysta
nieprzewidziane lub przeoczone waciwoci systemw, bd te stosuje znane
wszystkim metody do rozwizania problemw, dla ktrych nie byy one przewidziane.
Wiele osb mwi o sobie jestem hakerem, jednak niewiele spord nich posiada
wiedz umoliwiajc udowodnienie tego w praktyce. Tematyce hakerstwa powicono
ju wiele ksiek, ale adna z nich nie wyjania szczegw technicznych metod,
ktre stosuj przedstawiciele tej grupy. Ksika Hacking. Sztuka penetracji jest inna.
Zawiera wyjanienie wielu zagadnie, ktre powinien zna kady, kto nazywa siebie
hakerem. Przedstawia zarwno teoretyczne, jak i praktyczne aspekty hackingu.
Autor ksiki, kryptolog i specjalista w zakresie bezpieczestwa informacji,
opisuje w niej techniki i sztuczki hakerw:
Wykorzystywanie bdw w programach
Tworzenie wasnego kodu powoki
Techniki powracania do funkcji biblioteki libc
Podsuchiwanie i przekierowywanie ruchu w sieci
Skanowanie portw
Techniki amania hase

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Wiadomoci zawarte w tej ksice mog by wykorzystane przez wszystkich,


ktrzy chc zainteresowa si hackingiem. Przyszli hakerzy dowiedz si z niej,
od czego zacz i jak rozwin swoje umiejtnoci, a specjalici od zabezpiecze
na co zwrci szczegln uwag w swojej pracy.

Spis treci
Podzikowania...................................................................................................... 7
Przedmowa........................................................................................................... 8
0x100

Wprowadzenie ........................................................................................ 9

0x200

Programowanie .................................................................................... 15
0x210
0x220
0x230
0x240
0x250

0x260
0x270

0x280

0x290

Istota programowania..................................................................................................16
Naduywanie programw ...........................................................................................19
Uoglnione techniki naduy .....................................................................................22
Uprawnienia dostpu do plikw w rodowiskach wielouytkownikowych ...............23
Pami.........................................................................................................................25
0x251 Deklaracja pamici .........................................................................................26
0x252 Zakoczenie bajtem NULL ............................................................................26
0x253 Podzia na segmenty pamici programu.........................................................27
Przepenienia bufora ...................................................................................................31
Przepenienia stosowe.................................................................................................32
0x271 Wykorzystywanie kodu naduycia.................................................................37
0x272 Wykorzystanie rodowiska.............................................................................40
Przepenienia w przypadku segmentw heap oraz bss ...............................................49
0x281 Podstawowe przepenienie stertowe...............................................................49
0x282 Przepenienia wskanikw funkcyjnych ........................................................54
Cigi formatujce........................................................................................................61
0x291 Cigi formatujce i instrukcja printf()............................................................61
0x292 Podatno cigw formatujcych na ataki .....................................................66
0x293 Odczyt spod dowolnych adresw pamici .....................................................68
0x294 Zapis pod dowolnymi adresami pamici........................................................69
0x295 Bezporedni dostp do parametrw ...............................................................76
0x296 Obejcia z uyciem sekcji dtors .....................................................................79
0x297 Nadpisywanie globalnej tabeli przesuni .....................................................85

Hacking. Sztuka penetracji


0x2a0 Pisanie kodu powoki..................................................................................................88
0x2a1 Podstawowe instrukcje asemblera..................................................................89
0x2a2 Wywoania systemowe Linuksa.....................................................................90
0x2a3 Hello, world! ..................................................................................................91
0x2a4 Kod wywoania powoki ................................................................................94
0x2a5 Unikanie wykorzystywania innych segmentw .............................................96
0x2a6 Usuwanie bajtw zerowych............................................................................98
0x2a7 Dalsze zmniejszenie objtoci kodu powoki poprzez wykorzystanie stosu...102
0x2a8 Instrukcje w postaci drukowalnych znakw ASCII .....................................106
0x2a9 Polimorficzny kod powoki ..........................................................................107
0x2aa Polimorficzny kod powoki z drukowalnymi znakami ASCII.....................107
0x2ab Dissembler....................................................................................................121
0x2b0 Powracanie do funkcji biblioteki libc .......................................................................131
0x2b1 Powrt do funkcji system() ..........................................................................132
0x2b2 Wizanie wywoa powrotnych do biblioteki libc.......................................134
0x2b3 Uycie programu opakowujcego ................................................................135
0x2b4 Zapisywanie bajtw zerowych z powrceniem do biblioteki libc ...............137
0x2b5 Zapis wielu sw w ramach pojedynczego wywoania ................................139

0x300

Sieci .................................................................................................. 143


0x310 Czym s sieci?...........................................................................................................143
0x311 Model OSI ....................................................................................................144
0x320 Szczegowe przedstawienie niektrych warstw OSI ..............................................145
0x321 Warstwa sieci ...............................................................................................146
0x322 Warstwa transportowa..................................................................................147
0x323 Warstwa cza danych ..................................................................................149
0x330 Podsuchiwanie w sieci .............................................................................................150
0x331 Aktywne podsuchiwanie .............................................................................153
0x340 Przejcie TCP/IP.......................................................................................................159
0x341 Rozczanie przy pomocy RST ....................................................................160
0x350 Odmowa usugi .........................................................................................................163
0x351 Atak Ping of Death .......................................................................................164
0x352 Atak Teardrop...............................................................................................164
0x353 Zalew pakietw ping (Ping Flooding)..........................................................164
0x354 Atak ze wzmocnieniem (Amplification) ......................................................164
0x355 Rozproszony atak DoS .................................................................................165
0x356 Zalew pakietw SYN (SYN Flooding) ........................................................165
0x360 Skanowanie portw...................................................................................................166
0x361 Ukryte skanowanie SYN ..............................................................................166
0x362 Skanowanie FIN, X-mas i Null ....................................................................167
0x363 Skanowanie z ukrycia...................................................................................167
0x364 Skanowanie z uyciem bezczynnego komputera .........................................167
0x365 Aktywne zabezpieczenie (Shroud)...............................................................169

0x400

Kryptologia......................................................................................... 177
0x410 Teoria informacji ......................................................................................................178
0x411 Bezwarunkowe bezpieczestwo...................................................................178
0x412 Szyfr z kluczem jednorazowym ...................................................................178
0x413 Kwantowa dystrybucja kluczy .....................................................................179
0x414 Bezpieczestwo obliczeniowe......................................................................180

Spis treci

0x420 Rozlego algorytmw ............................................................................................180


0x421 Notacja asymptotyczna.................................................................................182
0x430 Szyfrowanie symetryczne .........................................................................................182
0x431 Kwantowy algorytm przeszukiwania ...........................................................183
0x440 Szyfrowanie asymetryczne .......................................................................................184
0x441 RSA ..............................................................................................................184
0x442 Kwantowy algorytm rozkadu na czynniki ..................................................189
0x450 Szyfry hybrydowe.....................................................................................................190
0x451 Ataki z ukrytym porednikiem .....................................................................191
0x452 Odciski palcw komputerw w protokole SSH........................................193
0x453 Rozmyte odciski palcw...........................................................................196
0x460 amanie hase ...........................................................................................................201
0x461 Ataki sownikowe.........................................................................................202
0x462 Ataki na zasadzie penego przegldu ...........................................................203
0x463 Tablica wyszukiwania skrtw ....................................................................205
0x464 Macierz prawdopodobiestwa hase ............................................................205
0x470 Szyfrowanie w sieci bezprzewodowej 802.11b ........................................................215
0x471 Protok Wired Equivalent Privacy (WEP)..................................................215
0x472 Szyfr strumieniowy RC4 ..............................................................................217
0x480 Ataki na WEP ...........................................................................................................218
0x481 Ataki na zasadzie penego przegldu w trybie offline .................................218
0x482 Ponowne uycie strumienia klucza ..............................................................218
0x483 Tablice sownikowe z wektorami IV............................................................220
0x484 Przekierowanie IP.........................................................................................220
0x485 Atak Fluhrera, Mantina i Shamira (FMS) ....................................................222

0x500

Podsumowanie ................................................................................... 231


Bibliografia i dodatkowe informacje.....................................................................................232

Skorowidz......................................................................................................... 235

0x300
Sieci
Wamania do sieci s oparte na tych samych zasadach, co sztuczki programistyczne.
Po pierwsze, naley zrozumie reguy systemu, a nastpnie odkry metod, dziki
ktrej bdzie moliwe wykorzystanie tych regu do osignicia podanego wyniku.

0x350 Odmowa usugi


Inn form atakw sieciowych s ataki odmowy usugi (ang. Denial of Service, DoS).
Rozczanie przy pomocy RST to w gruncie rzeczy forma ataku DoS. W przypadku
ataku tego typu wamywacz nie prbuje ukra adnych informacji, ale chce zablokowa dostp do okrelonej usugi lub zasobu. Ataki DoS mona podzieli na dwa podstawowe rodzaje ataki powodujce zawieszanie si usug oraz ataki przepenienia.
Ataki odmowy usugi, ktrych celem jest jej zawieszenie, przypominaj bardziej prby wamania do programw ni typowe ataki sieciowe. Nieprawidowo przeprowadzony atak przepenienia bufora zwykle powoduje zawieszenie caego programu docelowego zamiast przekierowania pracy systemu do wasnego fragmentu kodu. Jeeli taki
program znajduje si na serwerze, aden inny uytkownik nie bdzie mg uzyska
dostpu do tej usugi. Ataki DoS powodujce zawieszanie si usug zwykle s cile
powizane z konkretnymi programami, a nawet okrelonymi wersjami oprogramowania. Istnieje jednak kilka wyjtkw od tej reguy; niektre ataki DoS mog zosta przeprowadzane przeciwko aplikacjom wielu producentw ze wzgldu na podobne bdy
lub struktur kodu. Cho w wikszoci nowoczesnych systemw operacyjnych istniej
wymagane zabezpieczenia przeciwko takim atakom, warto przyjrze si poszczeglnym technikom wamania i metodom ich zastosowania w rnych sytuacjach.

144

Hacking. Sztuka penetracji

0x351 Atak Ping of Death


Zgodnie ze specyfikacj protokou ICMP komunikaty echa ICMP mog zawiera maksymalnie 216, czyli 65 536 bajtw w obszarze danych pakietu. Mnstwo osb zapomina o tym fakcie, poniewa najwaniejsze informacje znajduj si zwykle w nagwkach takiego pakietu. Wiele systemw operacyjnych moe si jednak zawiesi po
odebraniu komunikatw echa ICMP, ktrych wielko przekracza dozwolony limit.
Proces wysyania komunikatw echa o bardzo duej wielkoci zosta nazwany atakiem
Ping of Death. Jest to bardzo prosta technika ataku, poniewa wikszo twrcw
oprogramowania nigdy nie zwracaa uwagi na t kwesti. Obecnie wikszo systemw operacyjnych zostaa jednak zabezpieczona przeciwko atakom tego typu.

0x352 Atak Teardrop


Inny popularny typ ataku DoS, ktry powoduje zawieszenie si usugi, zyska nazw
ataku Teardrop. Wykorzystuje on luki w implementacji procedur czenia defragmentowanych pakietw, jakie s wykorzystywane przez wielu dostawcw oprogramowania. W normalnej sytuacji informacje o przesuniciu fragmentw pakietu, zapisywane
w przesyanych nagwkach, nie mog si nakada, co umoliwia odtworzenie pakietu.
Podczas ataku Teardrop wysyane s fragmenty pakietw z nakadajcymi si przesuniciami, co powoduje zawieszanie si programw, ktre nie sprawdzaj odbieranych
pakietw pod tym wzgldem.

0x353 Zalew pakietw ping (Ping Flooding)


Ataki przepenienia DoS zwykle nie powoduj zawieszenia si usugi lub zasobu, ale powoduj ich nadmierne obcienie, co z kolei uniemoliwia obsug da uytkownikw.
Ataki przepenienia s cile zwizane z zasobami sieciowymi, aczkolwiek istniej podobne techniki atakw skierowanych przeciwko cyklom procesora i procesom systemowym.
Najprostszym typem tego ataku jest zalew pakietami ping. Powoduje to wykorzystanie caego cza sieciowego ofiary, przez co normalny ruch zostaje zablokowany. Haker wysya do komputera ofiary ogromn liczb pakietw ping o bardzo duej wielkoci, co moe doprowadzi do penego wykorzystania dostpnej przepustowoci cza.
Atak zalewu pakietami ping nie wymaga zastosowania adnych sprytnych sztuczek,
gdy w gruncie rzeczy jego powodzenie zaley od przepustowoci cza ofiary i napastnika. Jeeli haker ma lepsze cze ni ofiara, moe wysya ogromn ilo danych,
ktrych odbir nie bdzie moliwy. Spowoduje to jednoczenie zablokowanie normalnego ruchu, jaki jest skierowany do sieci ofiary.

0x354 Atak ze wzmocnieniem (Amplification)


Naley zwrci uwag, e dostpne s rwnie metody przeprowadzania ataku zalewu
pakietami RKPI nawet w przypadku, gdy haker dysponuje czem o niewielkiej przepustowoci. Podczas ataku ze wzmocnieniem techniki faszowania i adresy rozgaszania

0x300 Sieci

145

wykorzystywane s w celu wielokrotnego powikszenia pojedynczego strumienia pakietw. Aby moliwe byo przeprowadzenie takiego ataku, naley najpierw znale
waciwy system docelowy. Zwykle jest to sie z du liczb aktywnych komputerw,
pozwalajca na komunikowanie si z adresem rozgaszania. Wamywacz wysya due
pakiety dania echa ICMP na adres rozgaszania takiej sieci. Jako adres rdowy
tych pakietw podawany jest adres systemu ofiary. Pakiety zostan rozgoszone do
wszystkich systemw w sieci wzmacniajcej, co spowoduje przesanie pakietw odpowiedzi echa ICMP na faszywy adres rdowy, czyli do komputera ofiary. Sposb
przeprowadzenia tego ataku przedstawiono na rysunku 3.8.
Rysunek 3.8.
Atak ze
wzmocnieniem

Dziki technice wzmacniania ruchu haker moe wysa relatywnie niewielki strumie
pakietw dania echa ICMP, natomiast ofiara zostanie zalana ogromn iloci pakietw odpowiedzi echa ICMP. Atak tego typu mona przeprowadzi z uyciem pakietw ICMP (technika o nazwie smurf), jak rwnie pakietw echa UDP (technika znana jako fraggle).

0x355 Rozproszony atak DoS


Rozproszony atak DoS (DDoS) stanowi szczegln odmian klasycznego ataku przepenienia. Jak ju wczeniej wspomniano, atak przepenienia jest przeprowadzany
w celu cakowitego zablokowania cza sieciowego ofiary. W przypadku ataku DDoS
haker musi najpierw wama si do wielu rnych systemw i zainstalowa w nich
wasne demony, ktre bd czekay w ukryciu na sygna do ataku. Wamywacz wykorzystuje specjalny program sterujcy; po jego uruchomieniu wszystkie demony jednoczenie uderzaj w ofiar, wykonujc okrelony typ ataku DoS. Taka technika ataku
moe spowodowa powane szkody, utrudniajc jednoczenie prby wykrycia rzeczywistego pooenia hakera.

0x356 Zalew pakietw SYN (SYN Flooding)


Ataki zalewania pakietami SYN nie powoduj zablokowania cza sieciowego, ale s
skierowane przeciwko stosowi TCP/IP. Protok TCP jest odpowiedzialny za obsug
pocze, co oznacza konieczno ledzenia ich stanu. Za to zadanie odpowiedzialny

146

Hacking. Sztuka penetracji

jest stos TCP/IP, ktry moe jednak ledzi tylko okrelon liczb pocze. Atak
przepenienia typu SYN Flooding wykorzystuje to ograniczenie, uniemoliwiajc nawizywanie nowych pocze sieciowych.
Haker wysya do systemu ofiary du liczb pakietw SYN z faszywym, nieistniejcym adresem rdowym. Poniewa pakiet SYN jest uywany do inicjowania pocze
TCP, komputer ofiary bdzie wysya w odpowiedzi pakiet SYN/ACK, oczekujc z kolei
na odpowied ACK. Kade takie czciowo otwarte poczenie jest umieszczane w kolejce, ktra ma jednak ograniczon pojemno. Poniewa faszywe adresy rdowe
nie istniej, system nigdy nie odbierze odpowiedzi ACK, ktre spowodowayby usunicie niepotrzebnych wpisw z kolejki i nawizanie penego poczenia. W tym przypadku musi upyn czas wanoci poszczeglnych pocze, co zwykle trwa do dugo.
Jeeli haker kontynuuje zalewanie systemu ofiary faszywymi pakietami SYN, kolejka pocze pozostanie zapeniona, przez co prawdziwe pakiety SYN nie bd mogy
przedosta si do tego systemu. Oznacza to brak moliwoci tworzenia nowych pocze TCP/IP.

Вам также может понравиться