SÍTĚ

Hackování sítí má stejný princip jako hackování programů:

v prvé řadě jde o pochopení pravidel systému a v druhé o vymyšlení

způsobu, jak tato pravidla využít k dosažení cíle.

0x310 Co jsou sítě?

Celé sítě jsou především o komunikaci, a k tomu, aby byla komunikace

možná mezi dvěmi čí více stranami, musí také existovat nějaké standardy

a protokoly. Je to stejně jako hovořit japonsky k někomu, kdo rozumí jenom

anglicky ­ počítače a síťový hardware se musí dorozumívat stejným jazykem,

aby mohli efektivně komunikovat. To znamená, že se nejprve musí

stanovit standardy, podle nichž se vytvoří komunikační jazyk. Tyto standardy

ale skutečně představují více, než jenom jazyk ­ stanoví také pravidla

komunikace.

Když například na hot-line zvedne operátor telefon, musí se informace

poslat a přijmout podle určitých pravidel, protokolu. Operátor se nejprve

musí zeptat na účastníkovo jméno, příjmení a typ problému, který ho trápí,

než přepojí hovor na příslušné oddělení. Tohle je jednoduchý příklad toho,

jak funguje protokol ­ a jakákoliv odchylka od tohoto protokolu je nežádou158

0x300 Sítě

cí. Síťové komunikace se také řídí sadou protokolů, které jsou definovány

v referenčním modelu OSI ( Open System Interconnection).

0x311 Model OSI

Referenční model OSI poskytuje sadu mezinárodních pravidel a standardů,

které umožňují všem systémům respektující tyto protokoly komunikovat

s ostatními systémy, které jej také používají. Tyto protokoly jsou seskládané

v 7 oddělených, avšak propojených vrstev, kde se každá vrstva stará o odlišnou

stránku komunikace.

Mimo jiné tento návrh umožňuje hardwaru, jakým jsou třeba směrovače

( routery) a firewally, zaměřit se na dílčí části komunikace, které se jich týkají,

a ignorovat ostatní.

Model OSI má následujících 7 vrstev:

1. Fyzická vrstva ( Physical layer): Tato vrstva obsluhuje fyzické spojení

mezi dvěma body. Jedná se o nejnižší vrstvu a její hlavní role spočívá

v posílání syrových bitů po síti. Tato vrstva je také zodpovědná za aktivaci,

správu a deaktivaci této komunikace na bitové úrovni.

2. Linková vrstva ( Data-link layer): Tato vrstva pracuje s posíláním dat

mezi dvěma body. Fyzická vrstva se stará o zasílání samotných bitů,

ale tato vrstva poskytuje vysokoúrovňové funkce, jako je třeba korekce

chyb nebo řízení toku. Také poskytuje procedury pro aktivaci, správu

a deaktivaci datových připojení.

3. Síťová vrstva ( Network layer): Její hlavní role spočívá v zasílání informací

mezi nižšími a vyššími vrstvami a také poskytuje funkce adresování

a směrování.

4. Transportní vrstva ( Transport layer): Ta poskytuje transparentní přenos

dat mezi systémy. Tím se myslí spolehlivé a efektivní zasílání dat,

o což se už nemusejí starat vrstvy vyšší úrovně.

5. Relační vrstva ( Session layer): Tato vrstva je zodpovědná za sestavení

a správu připojení mezi síťovými aplikacemi.

6. Prezentační vrstva ( Presentation layer): Ta zodpovídá za prezentaci

dat aplikacím v syntaxi nebo jazyce, kterému aplikace rozumějí. Umožňuje

tedy věci, jakými jsou třeba šifrování a komprese dat.

7. Aplikační vrstva ( Application layer): Tato poslední vrstva se stará

o udržování požadavků aplikace.

Když jsou data zasílána prostřednictvím těchto protokolů, děje se to ve

formě malých kousků dat zvaných pakety ( packets). Každý paket obsahuje

implementaci těchto protokolů ve vrstvách. Paket jdoucí z aplikační vrstvy

Hacking: umění exploitace 159

je obalený daty z prezentační vrstvy, které zase daty obaluje relační vrstva,

kterou obaluje transportní vrstva a tak dále. Tomuto procesu se říká zapouzdření

( encapsulation). Každá zapouzdřená vrstva obsahuje hlavičku

a tělo: hlavička obsahuje informace o protokolu vyžadované touto vrstvou,

zatímco tělo obsahuje data pro tuto vrstvu. Tělo jedné vrstvy obsahuje celý

balíček předchozích zapouzdřených vrstev, podobně jako slupky cibule

nebo kontexty funkcí na programovém zásobníku.

Když dvě aplikace pracující na dvou odlišných privátních sítí komunikují

přes Internet, jsou datové pakety zapouzdřovány směrem dolů k fyzické

vrstvě, kde jsou posléze předány směrovači. Protože se směrovač nezajímá

o to, co je v paketech ukryto, musí implementovat pouze protokoly do síťové

vrstvy. Směrovač zašle data po Internetu, kde narazí na další směrovač

v síti, který zapouzdří tento paket hlavičkami protokolů na nižší vrstvě potřebných

k tomu, aby paket dorazil na cílové místo. Tento proces je znázorněn

na následujícím obrázku.

aplikce

siť 1

internet

aplikace

síť 2

(7) Aplikační vrstva

(6) Prezentační vrstva

(5) Relační vrstva

(4) Transportní vrstva

(3) Síťová vrstva

(2) Linková vrstva

(1) Fyzická vrstva

Tento proces si můžeme představit jako spletitou byrokracii mezi kancelářemi,

připomínající film Brazil. Na každé vrstvě sedí vysoce specializovaný

úředník, který rozumí pouze jazyku a protokolu příslušné vrstvy. Zatímco

se po síti zasílají data, každý úředník provede nezbytné povinnosti příslušící

každé vrstvě, strčí data do mezi-kancelářské obálky, na obálku napíše

hlavičku a předá ji úředníkovi z další vrstvy. Ten opět zpracuje data, strčí je

do obálky, napíše na ni hlavičku a pošle dalšímu úředníkovi.

Každý úředník se stará pouze o funkce a povinnosti spadající do jeho

vrstvy. Tyto role a odpovědnosti jsou definovány ve striktním protokolu,

eliminující potřebu nějakého opravdového rozumu v okamžiku, kdy je tento

protokol znám. Tento typ neustále se opakující činnosti není vhodný

pro lidi, je ale ideální pro počítač. Kreativita a inteligence lidské duše se

více hodí k navrhování takových protokolů, vytvoření programu, který je

160 0x300 Sítě

implementuje, a vynalézání hacků, které je využijí k dosažení zajímavých

a nepředpokládaných výsledků. Ale stejně jako u ostatních hacků je potřeba

nejprve pochopit pravidla systému před tím, než je dokážeme nově

využít.

0x320 Zajímavé vrstvy v detailech

Samotná síťová vrstva, transportní vrstva nad ní a linková vrstva pod ní, ty

všechny mají jistá specifika, která můžeme exploitovat. Nyní když jsou tyto

vrstvy teoreticky probrány, můžeme se zaměřit na ty části, které se jsou

náchylné k útokům.

0x321 Síťová vrstva

Když se na okamžik vrátíme k analogii s úředníky a byrokracií, síťová vrstva

je jako celosvětová poštovní služba, která k zasílání dat používá různé

metody adresování a dopravování. Protokol, který se na této vrstvě používá,

se nazývá IP (Internet Protokol). Větší část Internetu používá protokol

IP ve verzi 4, takže pokud nebude řečeno jinak, vše, co se v této knize vztahuje

k IP, se vztahuje k této verzi.

Každý systém připojený v síti Internet má svou vlastní IP adresu, která

se skládá ze čtyř bajtů ve formě xx.xx.xx.xx. V této vrstvě se pracuje jak

s pakety IP, tak i s pakety ICMP ( Internet Control Message Protocol). IP pakety

se používají k zasílání samotných dat, kdežto ICMP pakety slouží pro

zasílání diagnostických zpráv. IP je méně spolehlivý jako poštovní úřad,

což znamená, že neexistuje záruka, že IP paket opravdu dorazí do svého

cíle. Pokud nastane problém, zašle se zpět ICMP paket a upozorní se odesílatel.

ICMP se také často využívá pro test konektivity. ICMP zprávy typu Echo

Request a Echo Reply se používají v utilitě ping. Jestliže chce jeden počítač

otestovat, zda je možné směrovat zprávy na cílový počítač, pošle na

onen stroj zprávu ICMP Echo Request. Jakmile počítač obdrží tuto zprávu,

zašle zpět zprávu ICMP Echo Reply. Tyto zprávy se dají využít k zjišťování

latence připojení mezi dvěma stroji. Nicméně je důležité si zapamatovat,

že ICMP a IP jsou oba nespojované protokoly; vše, o co se vrstva stará, je

pouhé doručení paketu na cílovou adresu.

Občas dojde k tomu, že má systém omezenou velikost paketu, takže neumožní

přenos paketů o větší velikosti. To IP vyřeší tak, že rozkouskuje

data na menší pakety, jak můžete vidět na následujícím obrázku:

Hacking: umění exploitace 161

Velký IP paket

Hlavička (header) Data Pokračování dat Další data

Fragmenty paketů

Hlavička (header) Data

Hlavička (header) Pokračování dat

Hlavička (header) Další data

Paket se rozdělí na menší fragmenty, které se už dají po síti poslat, IP hlavičky

se vloží do každého fragmentu a všechna data se poté odešlou. Každý

fragment má jiný offset, který je také uložen v hlavičce. Když cílový počítač

příjme tyto fragmenty, použije se hodnota offset v hlavičce ke zpětnému

sestavení IP paketu.

Opatření typu fragmentace paketů pomáhá při doručování IP paketů, ale

neslouží ke správě připojení nebo zajištění doručení paketu. O to se stará

transportní vrstva.

0x322 Transportní vrstva

Transportní vrstvu si můžeme představit jako první linii úředníků, kteří vyzvedávají

poštu ze síťové vrstvy. Jestliže chce zákazník reklamovat vadné

zboží, musí mu úředník zaslat autorizační kód. Potom se podle protokolu

zeptá na stvrzenku a případně vydá autorizační kód, takže zákazník bude

moci zaslat vadné zboží. Poštovní úřad se stará pouze o zasílání těchto

zpráv (a paketů) a už ne o to, co se s nimi děje dál nebo co obsahují.

Dva hlavní protokoly této vrstvy jsou TCP ( Transport Control Protocol)

a UDP ( User Datagram Protocol). TCP se nejvíce používá pro internetové

služby: Telnet, HTTP ( webový provoz), SMTP ( poštovní provoz) a FTP

( přenos souborů) ­ všechny tyto služby používají protokol TCP. Jeden

z důvodů, proč se tento protokol tolik používá a je tolik oblíbený, je ten, že

poskytuje transparentní, spolehlivé a obousměrné spojení mezi dvěmi IP

adresami. Obousměrné spojení v protokolu TCP je podobné telefonu ­ po

vytočení čísla se vytvoří spojení, přes které mohou obě strany komunikovat.

Spolehlivostí je myšleno to, že TCP zajišťuje, že zaslaná data dorazí do

cíle ve správném pořadí. Jestliže pakety během cesty změní pořadí, TCP

je složí dohromady, než je předá další vrstvě. Jestliže se některé pakety po

cestě ztratí, cílový počítač si ponechá doručené pakety a počká, než zdrojový

počítač znovu doručí chybějící pakety.

Veškerá funkčnost spočívá v nastavení tzv. příznaků TCP a sledování tzv.

sekvenčních čísel. Příznaky TCP jsou tyto:

162 0x300 Sítě

TCP příznaky Znamená Účel

URG urgent určuje, že se jedná o důležitá data

ACK acknowledgment potvrzení spojení, je zapnuto na většině

spojení

PSH push protlačí data bez bufferování

RST reset resetuje spojení

SYN synchronize synchronizuje sekvenční čísla během

počátku spojení

FIN finis ukončuje spojení

Příznaky SYN a ACK se oba používají k vytvoření spojení ve třech krocích

(tzv. three-step handshaking). Když chce klient vytvořit spojení se serverem,

pošle mu paket se zapnutým příznakem SYN, ale vypnutým ACK. Server

odpoví paketem, který má nastaveny příznaky SYN a ACK. K završení

spojení klient zpátky odešle paket s vypnutým příznakem SYN a zapnutým

ACK. Potom už bude mít každý paket zapnutý příznak ACK a vypnutý SYN.

Pouze první dva pakety jednoho spojení budou mít zapnutý příznak SYN,

protože slouží k synchronizaci sekvenčních čísel.

KlienKlient Server

SYN paket

SYN on ACK off

seq # = 324808530

ack # = 0

SYN paket

SYN on ACK off

seq # = 288666267

ack # = 324808531

ACK paket

SYN off ACK on

seq # = 324808531

ack # = 288666268

Sekvenční čísla se používají k zajištění spolehlivosti, neboť umožňují protokolu

TCP zpětně seřadit dosud neseřazené pakety, zjistit, jestli nějaké

pakety nechybí, a odlišit pakety z jiného spojení tak, aby se nemísily dohromady.

Když je iniciováno spojení, každá strana vygeneruje počáteční sekvenční

číslo. Toto číslo si obě strany vymění v prvních dvou SYN paketech.

Potom se s každým zaslaným paketem toto číslo zvyšuje o počet bajtů nalezených

v datové části paketu. Toto sekvenční číslo je vloženo do hlavičky

Hacking: umění exploitace 163

paketu TCP. Navíc má každá TCP hlavička čítač potvrzení, což je jednoduše

sekvenční číslo druhé strany plus jedna.

TCP se hodí pro aplikace, které vyžadují spolehlivé a obousměrné spojení.

Nicméně je cena za tuto funkčnost zaplacena přenosem většího množství

dat.

Protokol UDP má menší nároky a jeho funkčnost je omezenější než u protokolu

TCP. Díky tomu se více chová jako protokol IP: je nespojovaný a nespolehlivý.

Namísto funkčnosti a spravování spolehlivosti UDP očekává, že

se o to stará aplikace sama. Někdy není spojení zapotřebí a použití protokolu

UDP může být jednodušším způsobem, jak některé situace řešit.

0x323 Linková vrstva

Pokud si síťovou vrstvu představujeme jako celosvětový poštovní systém

a fyzickou vrstvu jako vozík, ve kterém se mezi kancelářemi převážejí jednotlivé

zásilky, je linková vrstva systémem výměny mezi kancelářemi. Tato

vrstva poskytuje možnosti adresování a zasílání zpráv ostatním mimo kancelář,

stejně tak jako způsoby zjišťování, kdo v kanceláři sedí.

Na této vrstvě pracuje Ethernet a vrstva poskytuje standardní adresovací

systém pro všechna zařízení Ethernetu. Tyto adresy jsou známy pod

pojmem MAC ( Media Access Control) adresy. Každému zařízení Ethernetu

je přiřazena unikátní adresa skládající se z šesti bajtů, která se většinou zapisuje

ve formě hexadecimálních čísel xx:xx:xx:xx:xx:xx. Tyto adresy se

občas označují za hardwarové adresy, protože je adresa unikátní u každého

kusu hardware a je v něm uložena v integrované paměti. MAC adresy si

můžeme představit jako rodné číslo (nebo číslo sociálního pojištění) hardwaru,

neboť se předpokládá, že každý hardware na světě má svou unikátní

MAC adresu.

Hlavičky Ethernetu obsahují zdrojovou a cílovou adresu, které se používají

ke směrování paketů Ethernetu. Adresování v síti Ethernet má také

speciální všesměrovou adresu, která obsahuje samé binární jedničky, tedy

ff:ff:ff:ff:ff:ff. Jakýkoliv paket zaslaný na tuto adresu bude přijat

všemi připojenými zařízeními.

MAC adresu nemůžeme změnit, ale IP adresu ano. Protokol IP pracuje

o vrstvu výš, takže se nestará o hardwarové adresy, ale používá mechanismus

pro převod mezi dvěmi adresovacími schématy. Tomu se říká ARP

(Address Resolution Protocol).

Existují 4 různé typy zpráv ARP, přičemž dvě nejdůležitější jsou ARP request

(požadavek) a ARP reply (odpověď). ARP request je zpráva, která se

zašle na všesměrovou adresu, obsahující odesílatelovu IP adresu a MAC

adresu, a v podstatě říká: "Hej, kdo má tuto IP? Pokud jsi to ty, prosím odpověz

a pošli mi svou MAC adresu." ARP reply je korespondující odpověď,

která se zašle na specifickou MAC adresu (a IP adresu) a praví: "Toto je

164 0x300 Sítě

moje MAC adresa a mám tuto IP adresu." Většina implementací tohoto protokolu

dočasně ukládá pár adres MAC/IP, které systém získá od ARP, takže

není nutné adresy pro každý paket takto konvertovat.

Například pokud jeden systém používá IP adresu 10.10.10.20 a MAC

adresu 00:00:00:aa:aa:aa a druhý systém je na stejné síti s IP adresou

10.10.10.50 a MAC adresou 00:00:00:bb:bb:bb, ani jeden systém nemůže

komunikovat do doby, než si oba zjistí MAC adresy toho druhého.

ARP požadavek (requestARP request)

zdroj MAC: 00:00:00:aa:aa:aa

cíl MAC: ff:ff:ff:ff:ff:ff

"Kdo má 10.10.10.50?"

ARP odpověď (reply)

zdroj MAC: 00:00:00:bb:bb:bb

cíl MAC: 00:00:00:aa:aa:aa

"10.10.10.50 je na 00:00:00:bb:bb:bb"

První systém

IP: 10.10.10.50

MAC: 00:00:00:aa:aa:aa

Druhý systém

IP: 10.10.10.50

MAC: 00:00:00:bb:bb:bb

Pokud bude chtít první systém vytvořit TCP spojení přes IP na adrese druhého

systému 10.10.10.50, první systém nejprve nakoukne do vyrovnávací

paměti ARPu a pokusí se najít záznam pro 10.10.10.50. Protože je

to poprvé, co se spolu tyto systémy pokouší komunikovat, žádný záznam

nalezen nebude a vyšle se ARP request na všesměrovou adresu. Ten říká:

"Pokud jsi 10.10.10.50, odpověz mi na 00:00:00:aa:aa:aa." Protože

se tento požadavek posílá na všesměrovou adresu, obdrží tuto zprávu

všechny připojené systémy, avšak odpoví pouze systém s korespondující IP

adresou. V tomto případě odpoví druhý systém na MAC adresu 00:00:00:

aa:aa:aa: "Já jsem 10.10.10.50 a mám MAC adresu 00:00:00:bb:bb:

bb." První systém přijme odezvu, uloží pár IP a MAC adres do vyrovnávací

paměti a použije hardwarovou adresu k další komunikaci.

0x330 Odposlouchávání na síti

Na linkové vrstvě také spočívá rozdíl mezi přepínanými a nepřepínanými

sítěmi. Na nepřepínané síti všechny pakety Ethernetu procházejí přes

všechna zařízení na síti s předpokladem, že pakety přijmou pouze ty systémy,

pro něž jsou určeny. Je nicméně triviální přepnout zařízení do tzv. promiskuitního

režimu, ve kterém zařízení přijímá všechny pakety, bez ohledu

na cílovou adresu.

Hacking: umění exploitace 165

Mnoho programu pro odchytávání paketů (tzv. sniffer), jako je třeba tcpdump,

standardně přepne zařízení do tohoto režimu. Můžeme se do něj přepnout

také programem ifconfig, jak je vidět v následujícím výstupu.

# ifconfig eth# eth0

eth0 Link encap:Ethernet HWaddr 00:00:AD:D1:C7:ED

BROADCAST MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Interrupt:9 Base address:0xc000

# ifconfig eth0 promisc

# ifconfig eth0

eth0 Link encap:Ethernet HWaddr 00:00:AD:D1:C7:ED

BROADCAST PROMISC MULTICAST MTU:1500 Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Interrupt:9 Base address:0xc000

#

Procesu odchytávání paketů, které nejsou určeny pro veřejné prohlížení,

se říká odposlouchávání ( sniffing). Odposlouchávání paketů v promiskuitním

režimu na nepřepínané síti má za výsledek vyzrazení celé řady užitečných

informací, jak ukazuje následující výstup.

# tcpdump -l -X 'ip host 192.168.0.118'

tcpdump: listening on eth0

21:27:44.684964 192.168.0.118.ftp > 192.168.0.193.32778: P 1:42(41) ack 1

win 17316 <nop,nop,timestamp 466808 920202> (DF)

0x0000 4500 005d e065 4000 8006 97ad c0a8 0076 E..].e@........v

0x0010 c0a8 00c1 0015 800a 292e 8a73 5ed4 9ce8 ........)..s^...

0x0020 8018 43a4 a12f 0000 0101 080a 0007 1f78 ..C../.........x

0x0030 000e 0a8a 3232 3020 5459 5053 6f66 7420 ....220.TYPSoft.

0x0040 4654 5020 5365 7276 6572 2030 2e39 392e FTP.Server.0.99.

0x0050 3133 13

21:27:44.685132 192.168.0.193.32778 > 192.168.0.118.ftp: . ack 42 win 5840

<nop,nop,timestamp 920662 466808> (DF) [tos 0x10]

0x0000 4510 0034 966f 4000 4006 21bd c0a8 00c1 E..4.o@.@.!.....

0x0010 c0a8 0076 800a 0015 5ed4 9ce8 292e 8a9c ...v....^...)...

166 0x300 Sítě

0x0020 8010 16d0 81db 0000 0101 080a 000e 0c56 ...............V

0x0030 0007 1f78 ...x

21:27:52.406177 192.168.0.193.32778 > 192.168.0.118.ftp: P 1:13(12) ack 42

win 5840 <nop,nop,timestamp 921434 466808> (DF) [tos 0x10]

0x0000 4510 0040 9670 4000 4006 21b0 c0a8 00c1 E..@.p@.@.!.....

0x0010 c0a8 0076 800a 0015 5ed4 9ce8 292e 8a9c ...v....^...)...

0x0020 8018 16d0 edd9 0000 0101 080a 000e 0f5a ...............Z

0x0030 0007 1f78 5553 4552 206c 6565 6368 0d0a ...xUSER.leech..

21:27:52.415487 192.168.0.118.ftp > 192.168.0.193.32778: P 42:76(34) ack

13 win 17304 <nop,nop,timestamp 466885 921434> (DF)

0x0000 4500 0056 e0ac 4000 8006 976d c0a8 0076 E..V..@....m...v

0x0010 c0a8 00c1 0015 800a 292e 8a9c 5ed4 9cf4 ........)...^...

0x0020 8018 4398 4e2c 0000 0101 080a 0007 1fc5 ..C.N,..........

0x0030 000e 0f5a 3333 3120 5061 7373 776f 7264 ...Z331.Password

0x0040 2072 6571 7569 7265 6420 666f 7220 6c65 .required.for.le

0x0050 6563 ec

21:27:52.415832 192.168.0.193.32778 > 192.168.0.118.ftp: . ack 76 win 5840

<nop,nop,timestamp 921435 466885> (DF) [tos 0x10]

0x0000 4510 0034 9671 4000 4006 21bb c0a8 00c1 E..4.q@.@.!.....

0x0010 c0a8 0076 800a 0015 5ed4 9cf4 292e 8abe ...v....^...)...

0x0020 8010 16d0 7e5b 0000 0101 080a 000e 0f5b ....~[.........[

0x0030 0007 1fc5 ....

21:27:56.155458 192.168.0.193.32778 > 192.168.0.118.ftp: P 13:27(14) ack

76 win 5840 <nop,nop,timestamp 921809 466885> (DF) [tos 0x10]

0x0000 4510 0042 9672 4000 4006 21ac c0a8 00c1 E..B.r@.@.!.....

0x0010 c0a8 0076 800a 0015 5ed4 9cf4 292e 8abe ...v....^...)...

0x0020 8018 16d0 90b5 0000 0101 080a 000e 10d1 ................

0x0030 0007 1fc5 5041 5353 206c 3840 6e69 7465 ....PASS.l8@nite

0x0040 0d0a ..

21:27:56.179427 192.168.0.118.ftp > 192.168.0.193.32778: P 76:103(27) ack

27 win 17290 <nop,nop,timestamp 466923 921809> (DF)

0x0000 4500 004f e0cc 4000 8006 9754 c0a8 0076 E..O..@....T...v

0x0010 c0a8 00c1 0015 800a 292e 8abe 5ed4 9d02 ........)...^...

0x0020 8018 438a 4c8c 0000 0101 080a 0007 1feb ..C.L...........

0x0030 000e 10d1 3233 3020 5573 6572 206c 6565 ....230.User.lee

0x0040 6368 206c 6f67 6765 6420 696e 2e0d 0a ch.logged.in...

Služby, jako je třeba telnet, FTP a POP3, jsou nešifrované. V předchozím

příkladě můžeme vidět uživatele leech přihlašujícího se na FTP server

heslem l8@nite. Protože je proces autentizace během přihlašování nešifrovaný,

přihlašovací jména a hesla jsou obsažena v částech dat v přijatých

paketech.

Hacking: umění exploitace 167

Tcpdump je úžasný paketový sniffer pro obecné použití, ale existují i specializovanější

nástroje pro vyhledávání přihlašovacích jmen a hesel. Za

zmínku stojí program dsniff.

# dsniff -n

dsniff: listening on eth0

-----------------

12/10/02 21:43:21 tcp 192.168.0.193.32782 -> 192.168.0.118.21 (ftp)

USER leech

PASS l8@nite

-----------------

12/10/02 21:47:49 tcp 192.168.0.193.32785 -> 192.168.0.120.23 (telnet)

USER root

PASS 5eCr3t

I bez asistence nástroje, jakým je třeba dsniff, je pro útočníka odposlouchávajícího

na síti relativně jednoduché najít v těchto paketech přihlašovací

jména a hesla a použít je ke kompromitaci jiných systémů. Z bezpečnostního

hlediska to není dobré, proto inteligentnější spínané huby (tzv. switche)

poskytují přepínané síťové prostředí.

0x331 Aktivní odposlouchávání

V přepínaném síťovém prostředí se pakety zasílají pouze na porty, na které

jsou určeny, podle jejich cílových MAC adres. To vyžaduje inteligentnější

hardware, které umí vytvořit a spravovat tabulku asociovanou s MAC adresami

s porty, v závislosti na tom, které zařízení je na který port připojeno,

jak je vidět na tomto obrázku:

Port 1 = 00:00:00:AA:AA:AA

Port 2 = 00:00:00:BB:BB:BB

Port 3 = 00:00:00:CC:CC:CC

tabulka Port / MAC

switch

1 2 3

00:00:00:AA:AA:AA 00:00:00:BB:BB:BB 00:00:00:CC:CC:CC

Výhoda přepínaného prostředí spočívá v tom, že jsou pakety zasílány pouze

těm zařízením, kterým jsou určeny, takže zařízení v promiskuitním režimu

nejsou schopny ostatní pakety přijímat. Ale i v přepínaném prostředí

TOPlist