GNU/Linux >> Znalost Linux >  >> Linux

Útoky TCP:Predikce sekvenčního čísla TCP a útoky resetování TCP

Ačkoli je protokol TCP spojově orientovaný a spolehlivý protokol, stále existují různé mezery, které lze zneužít. Tyto smyčkové díry se většinou vysvětlují z hlediska útoků.

V předchozím článku o sérii Útoky TCP/IP jsme vysvětlili otravu mezipamětí ARP.

Tento článek vysvětluje následující dva útoky:

  1.  Útok predikce sekvence TCP
  2.  Útoky resetování TCP

Přehled TCP

Než začneme s vysvětlením útoků. Pojďme si rozvinout základní pochopení toho, jak TCP funguje.

TCP hlavička vypadá následovně:

Níže uvedené vysvětlení vysvětluje, jak je navázáno spojení mezi dvěma hostiteli na úrovni TCP. Toto je známé jako třícestné podání ruky. Toto handshake je nutné před odesláním jakéhokoli druhu dat v každém směru. Jakmile je spojení navázáno, data mohou proudit obousměrně s každým paketem obsahujícím pořadové číslo počátečního bajtu dat, která obsahuje, a potvrzení přijatých dat.

  • Předpokládejme, že existují dva hostitelé (A a B), kteří spolu chtějí komunikovat. Předpokládejme, že hostitel A zahájí komunikaci. Nyní z pohledu TCP hostitel A posílá SYN paket hostiteli B.
  • Paket SYN je paket TCP se zapnutým příznakem SYN.
  • V tomto paketu je také uvedeno počáteční pořadové číslo (což je hodnota generovaná TCP hostitele A), zdrojový port, cílový port atd.
  • Když je tento paket přijat na vrstvě TCP hostitele B, tento hostitel odpoví paketem TCP se zapnutými příznaky SYN a ACK, počátečním pořadovým číslem a dalšími informacemi.
  • Když hostitel A přijme tento paket, zkontroluje některé informace, jako je příznak SYN, číslo potvrzení (což by mělo být počáteční pořadové číslo hostitele A + 1) atd., aby ověřil, že se jedná o očekávaný paket od hostitele B.
  • V odpovědi hostitel A odešle paket se zapnutým příznakem ACK a číslem potvrzení nastaveným na počáteční pořadové číslo hostitele B + 1.

Vidíme tedy, že sekvenční čísla hrají důležitou roli v TCP komunikaci. Pořadové číslo je číslo, které TCP spojuje s počátečním bytem dat v konkrétním paketu. Tímto způsobem přijímající TCP sleduje přijatá data a odpovídajícím způsobem je potvrzuje. Číslo potvrzení je vždy další očekávané pořadové číslo.

Útok předpovědi sekvence TCP

Předpokládejme, že hostitel A a hostitel B spolu komunikují. Nyní řekněme, že útočník sedící mezi nimi je nějakým způsobem schopen monitorovat pakety mezi A a B.

Uvidíme, co udělá útočník :

  • Útočník chce zaútočit na hostitele A.
  • Zahltí hostitele B novými požadavky, které způsobí útok typu Denial of service, který zabrání hostiteli B komunikovat s A.
  • Nyní může útočník předpovědět pořadové číslo paketu, který A očekává od B.
  • Útočník připraví takový druh paketu a odešle ho hostiteli A.
  • Vzhledem k tomu, že je to falešné balení, hostitel A si myslí, že pochází z B.
  • Nyní může být tento paket paketem, který ukončí spojení nebo požádá hostitele A, aby spustil nějaké škodlivé příkazy/skripty atd.

Takže tímto způsobem může být připojení uneseno útočníkem.

Dalším způsobem by mohla být předpověď ISN (počáteční pořadové číslo).

Podívejme se na úryvek z RFC-793:

Když jsou vytvořena nová spojení, použije se generátor počátečních sekvenčních čísel (ISN), který vybere nové 32bitové ISN. Generátor je vázán na (možná fiktivní) 32bitové hodiny, jejichž bit nízkého řádu se zvyšuje zhruba každé 4 mikrosekundy. ISN tedy cykluje přibližně každých 4,55 hodiny. Protože předpokládáme, že segmenty nezůstanou v síti déle, než je maximální životnost segmentu (MSL) a že MSL je kratší než 4,55 hodiny, můžeme rozumně předpokládat, že ISN budou jedinečná.

BSD TCP/IP zásobníky odkloní od výše uvedeného mechanismu. BSD TCP/IP zásobníky zvyšují pořadové číslo o 128 000 každou sekundu ao 64 000 pro každé nové připojení TCP. To, jak si dokážete představit, je předvídatelnější, a proto jej lze snadno zneužít.

Útoky resetování TCP

Tento útok je poměrně snadné pochopit, jakmile je vám výše uvedený útok jasný. V tomto útoku:

  • Jakmile se útočníkovi podaří unést relaci TCP (jak je uvedeno výše), lze tento útok spustit.
  • Útočník posílá pakety se zapnutým příznakem RST jak A, tak B nebo kterémukoli z hostitelů.
  • Vzhledem k tomu, že A ani B nevědí, že tyto pakety odeslal útočník, zacházejí s těmito pakety normálně.
  • Protože se jedná o resetované pakety, spojení mezi A a B je ukončeno.

Můžeme tedy vidět, že útoky TCP reset jsou zaměřeny na ukončení platného TCP spojení mezi dvěma hostiteli.


Linux
  1. Jak zjistit počet souborů v adresáři a podadresářích

  2. Jak vytisknout řádky číslo 15 a 25 z každých 50 řádků?

  3. Linux – sdílení souborů mezi hostitelem Linuxu a hostem Windows?

  1. Bash .hushlogin, zachovat čas posledního přihlášení a hostitele?

  2. Získejte počet navázaných spojení TCP

  3. Kdy vypnout TCP SACK?

  1. Jak spravovat statický a dynamický inventář hostitelů Ansible

  2. Třídit a počítat Počet výskytů řádků?

  3. Jak zabít jediné TCP spojení v Linuxu?