VYSOKÁ ŠKOLA POLYTECHNICKÁ JIHLAVA Katedra technických studií Obor Aplikovaná informatika
Datová stopa organizace v kybernetickém p ro s t o r u bakalářská práce
Autor: Matěj Ryček Vedoucí práce: Ing. Lubomír Leupold Jihlava 2016
Abstrakt Cílem této bakalářské práce je zjistit možnosti útoku na organizace a to na základě získaných informací z veřejně dostupných zdrojů. První část práce se zabývá teoretickým popisem využitelných penetračních nástrojů pro odhalování zranitelných míst, sběr informací a metodikou pro bakalářskou práci. Ve druhé části jsou využity vybrané nástroje z teoretické části pro demonstrování, jakým způsobem je schopný etický hacker postupovat k odhalení zranitelných míst, při testování z vnějšího prostředí a z pozice, kdy je znám pouze název organizace. Testování je prováděno pomocí upravené čtyřfázové metodiky a pod distribucí Kali Linux.
Klíčová slova Penetrační testování, sběr informací, odhalování zranitelných míst, Nessus, Nmap, Discover, DNSstuff, DNSrecon, Foca, Nslookup
Abstract The goal of this thesis is to find possible ways of attack on the company based on information which are publicly available to the people. The first part of the paper focuses on theoretical description of penetration tools for exposing vulnerabilities, data gathering and methodics of the thesis. Second part's focus is on the actual usage of chosen tools from theoretical part, to demonstrate how a capable ethical hacker might be able to proceed when discovering organization's vulnerabilities from outer position, meaning he only knows the name of the organization. The testing is being done using an altered 4-phase methodics on Kali Linux distribution.
Key words Penetration testing, information gathering, exposing vulnerabilities, Nessus, Nmap, Discover, DNSstuff, DNSrecon, Foca, Nslookup
Prohlašuji, že předložená bakalářská práce je původní a zpracoval/a jsem ji samostatně. Prohlašuji, že citace použitých pramenů je úplná, že jsem v práci neporušil/a autorská práva (ve smyslu zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů, v platném znění, dále též „AZ“). Souhlasím s umístěním bakalářské práce v knihovně VŠPJ a s jejím užitím k výuce nebo k vlastní vnitřní potřebě VŠPJ. Byl/a jsem seznámen s tím, že na mou bakalářskou práci se plně vztahuje AZ, zejména § 60 (školní dílo). Beru na vědomí, že VŠPJ má právo na uzavření licenční smlouvy o užití mé bakalářské práce a prohlašuji, že s o u h l a s í m s případným užitím mé bakalářské práce (prodej, zapůjčení apod.). Jsem si vědom/a toho, že užít své bakalářské práce či poskytnout licenci k jejímu využití mohu jen se souhlasem VŠPJ, která má právo ode mne požadovat přiměřený příspěvek na úhradu nákladů, vynaložených vysokou školou na vytvoření díla (až do jejich skutečné výše), z výdělku dosaženého v souvislosti s užitím díla či poskytnutí licence. V Jihlavě dne
............................................... Podpis
Poděkování Na tomto místě bych rád poděkoval svému vedoucímu práce Ing. Lubomíru Leupoldovi za možnost vytvářet bakalářskou práci pod jeho vedením, za jeho cenné rady, ochotu a čas strávený při konzultacích. Dále bych rád poděkoval Danielovi Bulantovy za poskytnutí tématu a své přítelkyni Andree Nevosadové za trpělivost a podporu. V poslední řadě bych rád poděkoval rodině a přátelům za podporu během tvorby bakalářké práce, bez nichž bych tuto práci nemohl dokončit.
Obsah 1
Úvod.......................................................................................................................... 8
2
Etický hacking ........................................................................................................ 10
3
2.1
Penetrační testování ......................................................................................... 10
2.2
Rozdělení penetračních testů............................................................................ 10
2.2.1
Podle pozice testera .................................................................................. 10
2.2.2
Podle úrovně informací o testovaném systému ........................................ 11
2.2.3
Podle způsobu provedení .......................................................................... 12
Metologie penetračního testování ........................................................................... 13 3.1
Upravená čtyřfázová metodika ........................................................................ 14
3.1.1
Plánování .................................................................................................. 14
3.1.2
Sběr dat ..................................................................................................... 14
3.1.3
Skenování a exploitace ............................................................................. 15
3.1.4
Report........................................................................................................ 15
4
Kali Linux ............................................................................................................... 16
5
Sběr informací......................................................................................................... 17 5.1
5.1.1
Google hacking ......................................................................................... 17
5.1.2
theHarvester .............................................................................................. 18
5.1.3
Whois ........................................................................................................ 18
5.1.4
Discover .................................................................................................... 19
5.1.5
FOCA ........................................................................................................ 19
5.2
6
7
Aktivní sběr informací ..................................................................................... 20
5.2.1
Nslookup ................................................................................................... 20
5.2.2
DNSrecon.................................................................................................. 21
5.2.3
DNSstuff ................................................................................................... 22
5.2.4
Zenmap ..................................................................................................... 22
Zranitelnosti webových aplikací ............................................................................. 24 6.1
Cross-Site Scripting ......................................................................................... 24
6.2
SQL Injection ................................................................................................... 24
Nástroje pro vyhodnocení zranitelných míst .......................................................... 26 7.1
8
Pasivní sběr informací ...................................................................................... 17
Nessus .............................................................................................................. 26
Demonstrační útok .................................................................................................. 28 8.1
Plánování .......................................................................................................... 28
8.2
Sběr informací .................................................................................................. 29
8.2.1
Pasivní sběr informací pomocí Discover .................................................. 29
8.2.2
Pasivní sběr informací pomocí FOCA ...................................................... 34
8.2.3
Aktivní sběr informací pomocí DNSrecon ............................................... 34
8.2.4
Ověření konfigurace DNS ........................................................................ 37
8.2.5
Skenování otevřených portů a služeb ....................................................... 38
8.3
8.3.1
Identifikování zranitelných míst pomocí Nessus ...................................... 40
8.3.2
SQL injection ............................................................................................ 41
8.3.3
Zranitelnost XSS ....................................................................................... 42
8.3.4
Clickjacking .............................................................................................. 43
8.3.5
Čtení uživatelských údajů ......................................................................... 45
8.3.6
Citlivá data ................................................................................................ 46
8.4
9
Skenování a exploitace ..................................................................................... 39
Report ............................................................................................................... 47
8.4.1
Výsledky zjištěných informací o doméně autocont.cz ............................. 47
8.4.2
Výsledky zranitelností nalezené webové aplikace .................................... 47
Závěr ....................................................................................................................... 49
Seznam použité literatury ............................................................................................... 51 Seznam obrázků .............................................................................................................. 54 Seznam tabulek ............................................................................................................... 55 Seznam použitých zkratek .............................................................................................. 56 Přílohy............................................................................................................................. 58 10 Obsah přiloženého CD ............................................................................................ 58
1 Úvod Když jsem po střední škole přišel na Vysokou školu polytechnickou Jihlava věděl jsem, že obor Aplikovaná informatika je správná volba. V té době jsem ale neměl nejmenší představu o tom, jakým směrem bych se chtěl do budoucna v tomto oboru dále ubírat. V tomto ohledu mi škola dokázala velice pomoct. V průběhu studia, při kterém jsem každý semestr měl možnost seznámit se s různými odvětvími aplikované informatiky, mě nejvíce oslovily předměty zabývající se operačními systémy a počítačovými sítěmi. Tyto skutečnosti hrály zásadní roli při výběru povinné školní praxe, kterou jsem absolvoval u firmy Autocont CZ a.s., kde jsem měl možnost prohloubit své znalosti v oblasti ICT infrastruktur. Během fungování ve firmě Autocont CZ a.s., mně byla nabídnuta možnost zpracování bakalářské práce na téma datová stopa organizace v kybernetickém prostoru, kterou vnímám jako rozšíření znalostí, ačkoli do této doby byly moje zkušenosti s touto problematikou velice nízké. V dnešní době, kdy se pomalu každý den objevují nové hardwarové a softwarové technologie a zařízení jsou připojena do celosvětové sítě internet, se společnosti snaží předejít prolomením systémů z vnějšího a vnitřního prostředí. Jeden z přístupů, jak tuto problematiku řešit jsou metody penetračního testování, které dokáží odhalit zranitelná místa firemní infrastruktury. Právě touto problematikou se zabývá moje bakalářská práce, která má za účel demostrovat, jak útočník postupuje od zjišťování informací o firmě, až po hledání zranitelných míst. V rámci bakalářské práce se mi naskytla možnost postavit se do role etického hackera a pomocí penetračních nástrojů zjistit co nejvíce informací z veřejně dostupných zdrojů o firmě Autocont CZ a.s., kde vycházím z pozice, kdy nejsou známy žádné informace o síťové struktuře, cíle a testy probíhají z vnějšího prostředí. Na základě zjištěných informací jsou provedeny skeny zranitelných míst a navrhnuta možná opatření k snížení rizik. Práce je rozdělena do dvou částí. V první části je popisována teorie týkající se etického hackingu, zvolené a upravené metodiky pro testování, popis softwaru pro pasivní a aktivní sběr informací až po odhalování zranitelných míst webových serverů a webových 8
aplikací. Ve druhé části jsou vybrány penetrační nástroje pro demonstrační útok a poté je provedena analýza zjištěných informací a zranitelných míst.
9
2 Etický hacking Hlavním účelem etického hackingu je vyhodnotit bezpečnost sítě nebo infrastruktury systému. To sebou nese hledání zranitelných míst, které by bylo možné využít k neoprávněným přístupům nebo jiné škodlivé činnosti. Díky tomu je možné vidět slabé stránky v systému a předcházet útokům, které využívají chyby v nezabezpečeném systému. Tyto bezpečností problémy má za úkol odhalit etický hacker, který se pomocí penetračních testů pokouší obejít zabezpečení systému a hledá slabá místa, která by mohla být zneužitelná. Etičtí hackeři využívají stejných technik pro testování jako útočníci, ale za účelem organizaci o možných bezpečnostních rizicích informovat a navrhnout opatření pro jejich eliminaci. [1]
2.1 Penetrační testování Jedná se o techniku etického hackingu, která má za účel nalézt co nejvíce chyb v systému a následně tyto chyby využít. Penetrační testy mohou být využity jak k testování vnější infrastruktury organizace (většinou ze sítě internet) na servery umístěny v DMZ, rozhraní firewallu nebo na webové aplikace, tak i na infrastrukturu z vnitřního prostředí za účelem vniknutí do interní sítě organizace a získání administrátorských práv. Při penetračním testování nesmí dojít k poškození dat organizace a před začátkem testování musí mít etický hacker plný souhlas organizace, aby mohl penetrační testy legálně provádět. [2, 3]
2.2 Rozdělení penetračních testů Testy je možné rozdělit do 3 základních kategorií. Dělí se podle toho, v jaké pozici se tester nachází, podle úrovně informací, které má k dispozici a podle způsobu provedení.
2.2.1 Podle pozice testera
Interní
Externí
10
Při interních testech je prováděn útok na vnitřní síť organizace. Jsou 2 možné způsoby, jakým tester může provádět tyto testy. Buď může přímo fyzicky přistupovat k vnitřní síti nebo za pomocí například prolomení firewallu, emailového serveru z vnější sítě. Při externích testech jsou prováděny testy mimo infrastrukturu ogranizace, tedy z internetu. Testy jsou většinou zaměřeny na překonávání opatření typu DMZ, IDS/IPS, firewall a dalších. Mimoto je vhodné zaměřit testy také na webové aplikace. [4]
2.2.2 Podle úrovně informací o testovaném systému Black-box testy Při black-box testech má tester k dispozici pouze omezené množství informací. Při tomto typu testu je poměrně důležité vymezit si zaměření testu, jinak může dojít k testování aktiv jiné organizace, což může vést k právním důsledkům. Při black-box testování je také odhaleno méně zranitelností a je potřeba poměrně rozsáhlého sběru informací. [5] White-box testy Při white-box testech jsou testerovi poskytnuty všechny potřebné informace. Poskytnuté informace mohou obsahovat IP adresy zařízení, popis používaných technologií, nastavené politiky organizace, nebo v případě, že se jedná o webovou aplikaci, jsou poskytnuty zdrojové kódy aplikace. Výhodou tohoto typu testu je, že tester má v případě testování sítě podrobné informace o struktuře a nemusí probíhat rozsáhlý sběr informací, který by případně neodhalil všechna možná zařízení pro otestování. [5] Grey-box testy Při grey-box testech je využita kombinace black-box a white-box testování. Tester zná pouze některé informace o vnitřní struktuře, které musí následně doplnit svým vlastním zkoumáním. Tento typ testů se většinou používá, když testerovi nechceme poskytnou zdrojové kódy nebo adresy zařízení, ale zároveň není žádoucí, aby tester prováděl skenování celé sítě. V tomto případě je mu poskytnuta topologie testované sítě nebo architektura aplikace. [6]
11
2.2.3 Podle způsobu provedení Manuální testy Při manuálních testech jsou testy vykonávány ručně. Jejich výhodou je, že testy jsou vytvořeny na míru pro specifickou část, což u některých automatických testů nelze dosáhnout. Za nevýhodu je považovaná časová a znalostní náročnost. Tester musí mít dokonalý přehled o možných typech zranitelností, ať už pro webové aplikace, tak pro síťové prvky. [5] Automatizované testy Automatizované penetrační testy mají oproti manuálním testům výhodu v rychlosti a rozšířitelnosti podle vlastních potřeb. Tyto nástroje jsou vyvíjeny profesionály, za účelem ušetření času oproti náročnému vytváření manuálních testů, ale za cenu toho, že nemusí odhalit všechny možné zranitelnosti pro testovanou oblast. [5] Semiautomatizované testy Semiautomatizované testy jsou kombinací automatických a manuálních testů. Při tomto typu testů se nejprve odhalují pomocí automatických testů možné zranitelnosti a na základě toho jsou následně zvoleny manuální testy pro konkrétní zranitelnost. [5]
12
3 Metologie penetračního testování Metodiky pro penetrační testování by měly testerovi ukázat kroky, které jsou vhodné dodržet při testování, ale nemají za účel testera omezovat v jeho výběru nástrojů. Je několik metodik, které jsou upraveny podle zkušeností, požadavků a představ. Jejich počet testovacích fází se však pohybuje od čtyř do sedmi. [5] Metodika OSSTMM (Open Source Security Testing Methology Manual) Je veřejně dostupná metodika pro testování bezpečnosti, vytvořená Petem Herzogem. Tato metodika má jasné kroky, které se musí provést a je rozdělena do 6 oblastí. [7]
Bezpečnost informací (jak organizace funguje, jaká data spravuje)
Sociální inženýrství (jaké informace o sobě organizace prozrazuje)
Síťové zabezpečení (skenování sítě, hledání slabých míst)
Zabezpečení komunikace (telefony, emaily)
Zabezpečení bezdrátových sítí (Wi-Fi, bezdrátové periférie)
Fyzické zabezpečení (alarmy, kamerový systém, dveře)
Metodika Technical Guide to Information Security Testing and Assessment Tato metodika je vyvíjena Národním institutem standardů a technologií (NIST). Metodika je rozdělena do 4 fází.
Plánování
Průzkum
Útok
Report
Přičemž fáze reportování je postupně prováděna během celého procesu. Navíc dokument k metodice poskytuje praktická doporučení pro navrhování, realizace, bezpečnostní techniky a hodnocení procesů a postupů. [8]
13
Metodika OWASP (Open Web Application Security Project) Metodika zaměřená na testování webových aplikací, která nám poskytne informace o nejčastějších typech útoků a zranitelností. Mimoto nám prozradí, jak zranitelnosti detekovat, případně odstranit už při vývoji aplikace. [9]
3.1 Upravená čtyřfázová metodika Tato upravená metodika vychází z modelu od NIST. Na obrázku 1 je vidět, že fáze reportu neprobíhá souběžně s plánováním a sběrem dat, ale až po dokončení celkové bezpečnostní analýzy.
Obrázek 1: Upravená metodika NIST podle [5] (Zdroj: autor)
3.1.1 Plánování Tato fáze slouží k specifikaci detailnějších cílů z obecných zadání, na které jsou následně prováděny penetrační testy. Cílů může být několik, proto je důležité vymezit prioritní cíle. [5]
3.1.2 Sběr dat Při fázi sběru dat se vychází z výstupu fáze plánování, kdy je potřeba o testované organizaci nebo aplikaci zjistit co nejvíce možných informací. Tato fáze má za cíl vytvořit testerovi obraz o tom, kde jsou například servery umístěny, jaké porty jsou otevřeny nebo 14
konkrétní IP adresy dané domény. Při sběru informací se však postupuje podle úrovně znalostí, které byly testerovi poskytnuty (black-box, white-box, grey-box). [5]
3.1.3 Skenování a exploitace Tato fáze je zaměřená na skenování zranitelností systému a pokusy o prolomení bezpečnostních mechanismů. Většinou jsou to přihlašovací údaje, otevřené porty serveru, služby nebo neošetřené webové aplikace. Obecně v této fázi můžeme využít nespočet postupů a nástrojů pro penetrační testování. [5]
3.1.4 Report Ve fázi reportu jsou sepsány všechny nalezené informace, zranitelnosti testovaného systému a doporučení pro odstranění nalezených zranitelností. Tento report je sepsán až po dokončení předchozích fází. [5]
15
4 Kali Linux Kali linux vychází z distribuce Debian, vyvíjen a financován Ofensive Security, se zaměřením na penetrační testování. V základní verzi je vybaven vice jak 600 nástroji, rozdělených podle účelu jejich využití. Ty se rozdělují do 14 oblastí: information gahtering, vulnerability analysis, web application analysis, datbase assessment, password attack, reverse engineering, exploitation tools, sniffing and spoofing, post exploitation, forensics, reporting tools, social engineering tools a system services. [10]
Obrázek 2: Úvodní obrazovka distribuce Kali Linux (Zdroj: autor)
Pomocí teminálu se dají instalovat další nástroje vytvořené testery, které většinou obsahují spojení více nástrojů dohromady. Tyto nástoje jsou ve většině případů dostupné pomocí webové služby GitHub.
16
5 Sběr informací Při sběru informací se tester snaží zjistit co nejvíce informací o cílovém systému za pomocí nejrůznějších nástrojů. Snahou je vyhledat aktivní zařízení, otevřené porty, verze OS, běžící služby a mnoho dalších. Podle toho, jakým způsobem tyto informace vyhledáváme, se dělí sběr informací na pasivní a aktivní.
5.1 Pasivní sběr informací Při pasivním sběru jsou shromažďovány informace s využitím veřejně dostupných zdrojů, bez přímého kontaktu s cílovou organizací. Díky tomu není schopna organizace poznat, jestli je cílem útočníka. [11] Pro tuto techniku jsou využívány vyhledávací dotazy, databáze s doménami, nebo sofistikované vyhledávající nástroje.
5.1.1 Google hacking Google podporuje využívání nejrůznějších vyhledávacích operátorů. Díky těmto operátorům jsme schopni nalézt citlivé informace a slabá místa organizace. [12] Mezi nejdůležitější operátory pro vyhledávání patří: site, intitle, inurl, filetype a intext.
Obrázek 3: Nalezení subdomén pomocí operátoru site (Zdroj: autor)
17
Na obrázku 3 je vidět, jak pro doménu microsoft.cz byly odhaleny subdomény, za použití operátoru site.
5.1.2 theHarvester Christian Martorella vyvinul nástroj používaný především na vyhledávání emailových adres a jmen zaměstnanců cílové organizace. Nicméně dokáže i vyhledávat subdomény pro danou doménu. Tyto informace získává pomocí stránek Google, Bing, Bingapi, Linkedin, Google-profiles, Jigsaw. [13] Pro nalezení všech informací o cílové doméně je využíván příkaz: theharvester -d <doména> -l 500 -b all kde přepínačem -d se nastavuje cílová doména, -l určuje limit nalezených výsledků a -b pro výběr stránek na vyhledávání.
5.1.3 Whois Jedná se o veřejně dostupnou databázi, která slouží pro evidenci o majitelích internetových domén a IP adres. [14] Tato databáze je obvykle publikována Whois serverem přes TCP port 43. Databáze obsahuje názvy jmených serverů (NS), kontaktní údaje, poštovní servery (MX) a registrátora domény.
Obrázek 4: Výpis z Whois databáze pro doménu microsoft.cz (Zdroj: autor)
18
5.1.4 Discover Tento odposlouchávací framework byl vyvinut Lee Bairdem, za účelem rychlého nashromáždění co nejvíce informací o cílové organizaci, metodou pasivního sběru. Discover využívá všech výše zmíněných nástrojů v kapitole 5.1 a navíc využívá i doménové nástroje (mydnstools, goofile, search_email_collector) z nichž vytváří přehledný report nalezených informací. Mimoto může být využit i pro metodu aktivního sběru informací. [15]
Obrázek 5: Výsledný report (Zdroj: autor)
Z obrázku 5 je vidět, že nám dokáže poskytnout informace o nalezených kontaktech nebo nalezené informace o doméně.
5.1.5 FOCA Nástroj, který byl vyvinut pro vyhledávání metadat a skrytých informací v dokumentech. Dokáže analyzovat širokou škálu dokumentů, jako jsou Microsoft Office, PDF, SVG a další. Pro odhalování těchto dokumentů využívá vyhledávacích enginů Google, Bing a Exalead. [16] To znamená, že pokud organizace má někde na internetu zapomenuté konfigurační soubory, nebo dokumenty s přihlašovacími údaji, tak tento nástroj je dokáže najít a vyjmout z nich všechny důležité informace.
19
Foca je primárně určen na platformu Windows, nicméně může se nainstalovat i do Kali Linux, pomocí softwaru Wine.
Obrázek 6: Struktura výpisu (Zdroj: autor)
Na obrázku 6 je vidět, že FOCA dokáže roztřídit informace do mnoha kategorií a přehledně je vypsat.
5.2 Aktivní sběr informací Při aktivním sběru informací, na rozdíl od pasivního, dochází k přímé konfrontaci s cílovou organizací. Nicméně tato technika je poměrně nápadná a snadno zachytitelná pro IDS/IPS, firewally, které si o této aktivitě vytváří logy. Touto technikou jsou získány informace o otevřených portech, verzích OS, verzích služeb ke konktrétnímu portu, nebo také výčet informací z DNS.
5.2.1 Nslookup Tento nástroj je určen pro otestování DNS. Díky tomu dokážeme zjistit z vnějšího prostředí detailnější informace o cílové organizaci. [5] Nslookup je využíván pro:
Zjištění IP adresy
Změnu výchozího DNS serveru, který chceme testovat 20
Nalezení jmených serverů (NS) domény
Nalezení poštovních serverů (MX)
Nalezení Canonical Name (CNAME) organizace
Dokáže nám tedy například vypsat názvy a IP adresy poštovních serverů, pro které vypíše priority, čímž dokážeme zjistit primární a sekundární poštovní server. Lze je také využít pro otestování otevřeného DNS, nebo nalezení primárního NS.
5.2.2 DNSrecon DNSrecon je nástroj vyvinut Carlosem Perezem se zaměřením na výčet informací z DNS. [17] Podobně jako Nslookup nám dokáže prozradit užitečné informace k dalšímu postupu, ale s tím rozdílem, že podporuje mnohem větší rozsah možností. Mezi jeho možnosti, které dokáže vyčít jsou:
Zone transfer
Výčet MX, NS, A, SOA záznamů
Hledání serverů hrubou silou
Hledání serverů reverzní metodou
Zone transfer je obvykle využíván pro replikaci mezi DNS servery, nebo pro zálohování souborů DNS. Tento proces tedy zahrnuje kopírování souborů z primárního serveru (master) k sekundárnímu serveru (slave). Správně nakonfigurovaný DNS by měl umožnit pouze na oprávněný sekundární server. Pokud tedy servery DNS nejsou správně nakonfigurovány, nebo v nejhorším případě nemají odděleny interní a externí DNS, může útočník vyčíst z přenosu mezi servery všechny informace o struktuře celé sítě. [18] Pro ověření zabezpečené komunikace se používá v DNSrecon příkaz: dnsrecon -t axfr -d <doména> Výčet záznamů je stejný jak u Nslookup. Dokáže nám tedy vypsat poštovní servery, IP adresy protokolu IPV4, NS a určit SOA záznam, který určuje primární server zodpovědný za udržování informací o doméně. Příkaz používaný pro výpis záznamů: dnsrecon -d <doména> 21
Při hledání serverů organizace metodou hrubé síly se používá wordlist, obsahující používané názvy služeb. Mezi tyto služby patří ftp, owa, proxy, router, mail a další. Díky tomu je nám vrácena množina všech rozluštěných IP adres pro dané služby. Pro metodu hrubou silou se využívá příkazu: dnsrecon -d <doména> -D <wordlist> -t brt Reverzní metoda se dá definovat, jako obrácený proces DNS, při kterém dochází k překladu IP adres na konkrétní doménová jména. Pro tuto metodu se využívá tzv. PTR záznamu. Pro provedení reverzní metody na celý rozsah domény se používá příkaz: dnsrecon -t rvl -r
5.2.3 DNSstuff Tento webový nástroj dostupný na stránkách https://www.dnsstuff.com se používá pro ověření správně nakonfigurovaného DNS. Díky tomuto nástroji dokážeme v mnoha případech odhalit špatnou konfiguraci jmenovaných serverů (NS) nebo poštovního serveru. Kromě toho dokáže k nalezeným chybám i vypsat, jaké následky mohou způsobit a případně i jak chyby eliminovat.
5.2.4 Zenmap Zenmap je grafickým rozhraním nástroje Nmap sloužící na skenování sítě a bezpečnostním auditům z vnějšího i vnitřního prostředí. Grafické rozhraní je především přehlednější a navíc nám dokáže vykreslovat topologii sítě. Navíc obsahuje přednastavené profily skenů, mezi něž patří rychlý sken nebo obsáhlý sken, při kterém jsou testovány například všechny TCP/UPD porty. [19]
Obrázek 7: Zenmap (Zdroj: autor)
22
Nejčastěji se využívá pro získávání informací o otevřených portech, verzích operačního systému, službách a jejich verzích a také k zjišťování dostupných stanic. Zenmap navíc podporuje tvorbu vlastních scriptů. Pro detekování operačního systému využívá Zenmap tzv. otisky, které jsou specifické pro každý systém. V některých případech, kdy není schopen identifikovat přesný operační systém, je vypsána pouze procentuální shoda. Příkaz pro detekování má tvar: nmap -O Pokud nás bude zajímat nejen verze operačního systému, ale také otevřené porty a k nim náležící služby, tak se dá využít parametru -A. Protože v základním skenu testuje Zenmap pouze 1000 nejčastěji používaných portů, je potřeba pro celkové zjištění upravit příkaz na: nmap -sV -O -p1-65535 V tomto případě parametr -sV určuje, že chceme skenovat otevřené porty a verze služeb. Parametr -p1-65535 určuje sken všech možných portů. Zenmap dále nabízí veliké množství funkcí pro skenování daného cíle, mezi které patří obcházení firewallu (fragmentace paketů, podvrhování MAC, IP adres), FIN a Xmas skenů a mnoho dalších. [5]
23
6 Zranitelnosti webových aplikací Pokud je prováděna bezpečnostní analýza celé organizace, nemělo by být opomíjeno testování webových aplikací, ke kterým tester získá přístup přes sběr informací o cílové doméně. Tyto testy mohou nejen zjistit zranitelnosti, které hrozí návštěvníkům webových stránek, ale také možnost neoprávněného přístupu na webový server, kde mohou být vykonávány nechtěné činnosti. V této kapitole jsou popsány nejčastější zranitelnosti, mezi které patří XSS a SQL Injection.
6.1 Cross-Site Scripting Zranitelnost typu XSS nastává v případě neošetřené nebo žádné validace vstupů aplikace a útočník díky tomu může podstrčit do stránek svůj vlastní kód (html, javascript). Zranitelnosti typu XSS jsou rozděleny na 2 typy:
Non-persistent
Persistent
Non-persistent je předávána prostřednictvím URL a nastává v místech, kde uživatel předává data serveru, která jsou následně zobrazena. Je důležité také rozlišit, jestli je využita metoda GET nebo POST. V případě GET jsou parametry předávány přímo v URL. U metody POST jsou parametry předávány v těle HTTP požadavku. Persistent je na rozdíl od non-persistent uložena trvale na straně serveru. Díky tomu se při každém načtení stránky vykoná útočníkův script. Díky této zranitelnosti, může útočník přesměrovávat uživatele na nechtěné stránky nebo jim třeba zapnout webovou kameru. [20]
6.2 SQL Injection Je to technika, která přes neošetřený vstup může manipulovat s daty v databázi, bez potřeby mít k ní legitimní přístup. Pokud je přítomna tato bezpečnostní chyba ve webové aplikaci, může útočník spouštět vlastní kód na straně serveru, nebo ukrást přihlašovací údaje. [21] 24
Pro ověření SQL injekce se dá využít programu SQLmap, který při odhalení injekce dokáže vypsat uvítací zprávu databáze a pomocí dotazů s ní může dále manipulovat.
25
7 Nástroje pro vyhodnocení zranitelných míst Vyhodnocování zranitelných míst přímo navazuje na informace, které byly nalezeny při sběru dat. Za každou informací se může skrývat nějaká zranitelnost, to znamená, že pokud jsou odhaleny např. otevřené porty, tak na nich běží nějaká služba, která může představovat bezpečnostní riziko. Pro vyhodnocení těchto rizik se používají automatické skenery zranitelností, které porovnávají nalezené verze služeb s databází známých chyb. Nicméně nalezené chyby mohou být mylně vyhodnoceny a je potřeba je manuálními testy ověřit. Existuje několik nástrojů, které dokážou nalézt zranitelná místa. Mezi nejznámější patří komerční nástroj Nessus nebo nekomerční OpenVas a Nikto. Tyto nástroje ve většině případů odhalují stejná rizika, proto je dále popsán pouze nástroj Nessus, který mi přišel nejpřívětivější v oblasti reportování a rychlosti.
7.1 Nessus Nessus Vulnerability Scanner je vyvíjen společností Tenable Network Security a je jedním z nejpopulárnějších skenerů zranitelností, využívaný jak hackery, tak administrátory. Obsahuje více jak 1200 pluginů pro kontrolování konkrétních chyb, jejichž databáze jsou denně aktualizovány. Nástroj navíc pracuje v režimu klient-server, což umožní komukoliv z dané sítě se připojit pomocí webové stránky na server. [22] Mezi podstatné schopnosti Nessusu patří:
Detekce bezpečnostních chyb z interního i externího prostředí
Detekce chybějících aktualizací a záplat
Plánování bezpečnostních auditů
Vlastní úprava skenů
26
Obrázek 8: Možnoti Nessus (Zdroj: autor)
Jak je na obrázku 7 vidět, Nessus dokáže nabídnout velké množství přednastavených šablon, avšak v základní verzi nejsou všechny přistupné. Pokud však je potřeba, může si tester upravit jednotlivé polity testování podle vlastních požadavků, a to pod záložkou policies.
27
8 Demonstrační útok V této kapitole je popsáno, jak probíhá sběr informací a následné odhalování zranitelných míst na cílovou organizaci. Testování bylo prováděno pomocí upravené čtyřfázové metodiky, která byla popisována v kapitole 3.1. Podle metodiky je v první části popisováno, jaký cíl byl stanoven před zahájením celého penetračního testování a z jaké pozice je testování prováděno. Ve druhé je představeno, jak pro danou doménu můžeme získat informace pomocí pasivního i aktivního sběru dat. Nutné k této části podotknout, že i při sběru dat jsou nalezana zranitelná místa, pro která jsou popsány následky, případně jak by je mohl útočník využít ve svůj prospěch. Ve třetí části je popsáno skenování a testování zranitelností webové aplikace a serveru, který byl nalezen pomocí sběru informací. V poslední části je sepsán report o nalezených informacích, zranitelnostech. Pro zranitelnosti jsou navrhnuta možná opatření na jejich odstranění a popis jaké by mohly mít následky, pokud by nebyly odstraněny.
8.1 Plánování V části plánování je popsáno, jaké cíle jsou vytyčeny před začátkem samotného penetračního testování. Tyto cíle budou primární, ale vzhledem k tomu, že testování je prováděno pomocí black-box testů, kdy pro nás testovaná organizace představuje tzv. černou škříňku, mohou být některé cíle upraveny podle konktrétní situace. Primární cíle tedy jsou:
Získání informací o doméně autocont.cz
Provedení analýzy rizik a zranitelností
Navrhnutí možných opatření pro minimalizaci rizik
Testování tedy bude probíhat na doméně autocont.cz, na kterou mi bylo umožněno penetrační testování provádět, a to po dobu 5 hodin v předem stanovený termín. Samotné testování bude prováděno pod distribucí Kali Linux. 28
8.2 Sběr informací V této části je nejdůležitější zjistit informace o doméně autocont.cz, za použití nástrojů pro pasivní a aktivní sběr informací. Nashromážděné informace je nutné vyhodnotit a vytvořit si přehled o tom, jaká místa by mohla být zranitelná. Pro tyto účely jsou použity automatické a semiautomatické testy.
8.2.1 Pasivní sběr informací pomocí Discover V rámci tohoto nástroje je spuštěno veliké množství automatizovaných vyhledávání, která nám poskytnou dobrou představu o doméně autocont.cz. Mezi informace, které nás po provedení testování zajímají jsou:
Informace o DNS
Emailové adresy a jména lidí
Informace o doméně
Informace o DNS Díky nástroji Discover jsme dokázali získat obrovské množství informací o záznamech DNS, ze kterých je jasně vidět, jak vypadá vnější infrastruktura.
Obrázek 9: Struktura DNS záznamů (Zdroj: autor)
29
Na obrázku 9 je ukázáno, jaké DNS záznamy jsme schopni zjistit. Zjistlili jsme tedy, že doména autocont má A záznam 194.228.205.71 a má reverzní (PTR) záznam owa.autocont.cz. Dále je možné vidět, že vlastní 2 poštovní poštovní servery (MX). Jako primární poštovní server doména využívá ares.autocont.cz a pro sekundární acheron.autocont.cz. Je vidět, že doména dále využívá 2 jmené servery (NS) pro překládání IP adres na doménová jména. Pro rozlišení primárního (master) a sekundárního (slave) serveru je potřeba zjistit tzv. SOA záznam, který nám Discover poskytnul.
Obrázek 10: SOA záznam pro NS (Zdroj: autor)
Na obrázku 10 je vidět primární server pro překlad aragorn.autocont.cz. Tyto získané informace se nám budou dále hodit pro testování přenosu informací (zone transfer), mezi NS. Na obrázku 9 je ještě vidět, že veřejné adresy jsou poskytovány od O2 a MUNI. Velice důležitou částí, kterou nám poskytnul Discover, jsou subdomény. Bylo nalezeno 40 subdomén. Tyto informace jsou velice příhodné, pokud by v jedné z nalezených subdomén existovala bezpečnostní chyba, mohl by mít útočník plný přístup do systému.
Obrázek 11: Zkrácený výpis nalezených subdomén (Zdroj: autor)
30
Některé ze subdomén nejsou přístupné z internetu a zřejmě k nim bude přístup pouze s certifikáty nebo pomocí interní sítě. Tento přístup by bylo také možno získat pomocí Citrix Access Gateway (CAG), který umožnuje zabezpečený přístup k interním webovým aplikacím, síťovým diskům a dalším. [23] Tato webová služba byla objevena na adrese cag.autocont.cz. Emailové adresy a jména lidí Discover nám dále nalezl emailové adresy a jména lidí, které jsme byli schopni nashromáždit uvnitř domény autocont.cz.
Obrázek 12: Zkrácený výpis emailových adres uživatelů (Zdroj: autor)
Jak je na obrázku 12 vidět bylo nalezeno 156 emailových adres. Dále bylo nalezeno 60 jmen lidí pracujících ve společnosti Autocont CZ a.s. Tady nastává zásadní zlom při sběru informací. Před nedávnou dobou došlo k velkému průniku do systému Yahoo, kde bylo odcizeno více jak 500 milionů účtů uživatelů, která obsahovala telefonní čísla, emailové adresy, hesla nebo třeba data narození. Tento únik informací není jeden z prvních, už před lety byly prolomeny např. Adobe nebo MySpace. Hesla účtů měla být hashována, nicméně na internetu můžete najít velké množství odtajněných účtů z těchto úniků, které mohou být dále porovnávány s nalezenými emailovými adresami. [24] Pro účely ověření, jestli byla vaše emailová adresa prolomena, slouží internetová stránka https://haveibeenpwned.com.
31
Stránka byla využita na ověření všech nalezených emailových adres a pro žádnou nebylo nalezeno prolomení. V rámci nalezených subdomén, byla nalezena stránka https://posta.autocont.cz/owa, která funguje jako webový outlook (OWA), přes kterou by bylo možné případně vyzkoušet nalezené přihlašovací údaje. Navíc nalezené kontakty lze využít pro cílený phishing (spear phishing). Jde o metody, kdy je na uživatele zaslán email s podvrhnutou internetovou stránkou, za podmínky tedy, že se podaří obejít antispamové filtry. Pokud je email otevřen a spuštěna podvrhnutá stránka, kde se uživatel přihlásí a útočník tyto informace zachytí. Existují i způsoby, kdy uživatel přejde na útočníkovu stránku, kde uvidí verifikační obrazovku s appletem Javy. Pokud uživatel spustí applet, dojde ke spuštění Meterpret shellu, čímž se útočník přihlásí přímo do vámi spuštěného shellu. Jako bezpečnostní opatření bych doporučoval nevystavovat firemní emailové kontakty nebo je nepoužívat v klasickém tvaru uživatel@doména, které by bylo možné zneužívat vyhledávacím robotem, ale spíše uživatel <jiný znak než @> doména. Informace o doméně Při získávání těchto informací využívá discover Whois databáze, Whois IP, nebo Netcraft.
Obrázek 13: Historie domény (Zdroj: autor)
Na obrázku 13 je vidět historie domény. Díky těmto informacím můžeme zjistit, že na serveru je nainstalovaný operační systém Windows Server 2008 a také, že webový server je provozován na IIS 7.5. Dále ve výpisu z Netcraft byly informace, které jsou už výše zmiňovány.
32
Obrázek 14: Výpis rozsahu (Zdroj: autor)
Informace, které jsou vidět na obrázku 14, byly získány pomocí Whois IP. Na tomto obrázku nás nejvíce zajímá inetnum, který obsahuje informace o alokaci a přiděleném prostoru IP adres. Tyto informace jsou velice užitečné pro výčet subdomén, a to pomocí reverzní metody, která byla představena v kapitole 5.2.2. Využití této metody bude představeno dále při aktivním sběru informací. Discover nám navíc nalezl seznam všech domén, které jsou velmi podobné doméně autocont.cz, což se nazývá jako tzv. doménový squatting. Tyto doménové názvy jsou využívané ke špatným úmyslům a vznikají překlepem, vynecháním jednoho znaku nebo změnou TLD.
Obrázek 15: Doménový squatting (Zdroj: autor)
Na obrázku 15 je vidět, že existují 2 domény, které mají stejný název, ale mají jiného vlastníka domény. V tomto případě je zaměněná právě TLD. Toto je velmi cenná informace, protože to může znamenat, že někdo se špatným úmyslem se snaží poškodit doménu. Pro útočníka je toto velice příhodné, protože ve vetšině případů se stává, že doména nabízí reklamu na odprodej. [25] Pokud je útočníkem doména zakoupena, může díky tomu plánovat útoky sociálního inženýrství. Tyto útoky mohou být typu podvrhnutí stránky a vyčkávání až se uživatel překlepne a bude se chtít např. přihlásit do sytému.
Obrázek 16: Doménový squatting autocont.ru (Zdroj: autor)
Jak je na obrázku 16 vidět, někdo se snaží poškodit doménu autocont.cz a jak bylo výše zmíněno, doména autocont.ru nabízí možný odprodej. 33
Doporučení pro odstranění této zranitelnosti není jednoduché, jediný možný způsob je podání žaloby v občanskoprávním řízení, avšak v reálných podmínkách je toto těžko řešitelné, obzvláště pokud se jedná o mezistátní záležitost. [25]
8.2.2 Pasivní sběr informací pomocí FOCA Jak už bylo představeno v kapitole 5.1.5 je tento nástroj využíván pro pasivní sběr informací v zapomenutých dokumentech. Sice nám Discover poskytnul obrovské množství informací, ale tento nástroj je v některých případech skvělým doplněním informací.
Obrázek 17: Nalezené informace pomocí FOCA
Jak je vidět na obrázku 17, nástroj FOCA našel 2 servery, které jsme nalezli už pomocí nástroje Discover. Při testování prověřil 264 dokumentů, ale nenašel v těchto dokumentech žádné přihlašovací údaje, hesla, VPN a další údaje. Díky tomu se dá prohlásit, že doména autocont.cz nemá žádné zapomenuté konfigurační dokumenty.
8.2.3 Aktivní sběr informací pomocí DNSrecon Při pasivním skenu jsme nebyli v přímém kontaktu s doménou autocont.cz. Díky aktivnímu sběru se snažíme co nejvíce zjistit o DNS a testovat, zda jsme schopni vyčíst záznamy o infrastruktuře organizace.
34
Testování metodou hrubé síly Tato metoda už byla popisována v kapitole 5.2.2. Pro testování hrubou silou byl použit už vytvořený wordlist, který je obsažen u nástroje DNSrecon. Tento wordlist má více jak 1000 předepsaných služeb, jako jsou ftp, owa a také spousty číselných kombinací. Pro testování hrubou silou byl zvolen testovací příkaz: dnsrecon-t brt -d autocont.cz
Obrázek 18: Zkrácený výpis subdomén (Zdroj: autor)
Po provedení příkazu bylo zjištěno, že nám byly stejné informace poskytnuty už pomocí Discoveru, s tím rozdílem, že pomocí DNSrecon nám byly vypsány i CNAME, což znamená, že subdomény jsou směrovány na stejný server. Testování reverzní metodou Jak už bylo zmíněno v kapitole 8.2.1, využijeme nalezeného rozsahu inetnum pro testování reverzní metodou. Pokud jsou nastaveny PTR záznamy, jsou nám vráceny IP adresy serverů. Na testování byl využít příkaz: dnsrecon-t rvl -r 194.228.205.64-194.228.205.127
35
Obrázek 19: Výpis reverzní metodou (Zdroj: autor)
Jak je na obrázku 19 vidět, bylo nalezeno 13 záznamů o nalezených IP adresách v nastaveném rozsahu. Většína nalezených adres už byla odhalena, ale 2 adresy patřící scad-ais1.cadstudio.cz a scad-ais0.cdstudio.cz nám byly až teď odhaleny. Tyto adresy patří také doméně autocont.cz, pod které cadstudio spadá. Zone transfer Díky pasivnímu sběru informací víme, že doména autocont.cz má 2 jmené servery. Tyto servery byly testovány na zone transfer, při kterém se snažíme otestovat a vyčíst informace o infrastruktuře. Zvolený příkaz pro otestování: dnsrecon-t -axfr -d autocont.cz
Obrázek 20: Zone transfer (Zdroj: autor)
36
Jak je na obrázku 20 vidět, prvně byl otestován primární NS a následně sekundární. Ani u jednoho nebyla nalezana chyba spočívající v přenosu informací o zóně interní infrastruktury.
8.2.4 Ověření konfigurace DNS Na ověření konfigurace DNS byl zvolen nástroj DNSstuff, který poskytnul dobrý náhled na konfiguraci, případně zranitelná mista. Otevřený DNS server Byla nám poskytnuta informace, že jmený server linuxac.autocont.cz funguje jako rekurzivní jmený server. To znamená, že tento server poskytuje služby vnějšímu okolí. Pro ověření byl použit Nslookup, kterým se překládala adresa google.com pomocí jmeného serveru 217.69.98.53.
Obrázek 21: Ověření otevřeného DNS (Zdroj: autor)
Na obrázku 21 je vidět, jak je dotaz na DNS server přeložen. Tohoto zjištění se může využít k tzv. DNS Amplification útoku (DDoS), při kterém jsou DNS serveru zasílány malé DNS dotazy na IP adresu oběti. Když tedy server obdrží DNS dotaz s podvrženou IP adresou, odpověd z DNS zašle veliké množství odpovědí na podvrženou IP adresu, která je zároveň cílem tohoto útoku. K tomu však nesmí probíhat TCP handshake a je zapotřebí využití UPD protokolu. [26]
Obrázek 22: Otevřené porty na NS (Zdroj: autor)
Na obrázku 22 jsou pomocí Zenmap naskenovány otevřené porty na NS, kde je vidět, že jsou otevřeny pouze TCP porty. Díky tomu jsme zjistili, že funguje jako otevřený DNS server, ale není náchylný na využití k DNS amplification útoku. 37
Dále si lze na obrázku 22 povšimnout, že skenování otevřených portů nám ještě poskytlo verzi DNS. Při hledání exploitů na tyto služby byl nalezen exploit, který však vyžadoval využití služby RPC. Tato služba však není dostupná, proto se dá považovat DNS server za bezpečný.
8.2.5 Skenování otevřených portů a služeb V tomtu testu bylo zvoleno jen testování otevřených portů a služeb na název domény autocont.cz, což znamená testování IP adresy serveru 194.228.205.71. Tímto testem se snažíme odhalit možné bezpečnostní chyby v otevřených portech nebo verzích zranitelných služeb. Případně tímto testem můžeme zjistit operační systém nebo s jakým stupněm bezpečnosti se potýkáme např. DMZ. Pro tyto účely byl zvolen test všech 65535 portů a služeb, které na daném portu existují. nmap -p1-65535 -sV -v -Pn --script=vuln autocont.cz U totoho příkazu byl zvolen přepínač -sV pro detekci služeb, -v na zvýšení získaných informací, -Pn na vypnutí pingu, protože server nepovoluje externí ping a použití skriptu -script=vuln na určení možných zranitelností na testovaných službách a portech.
Obrázek 23: Kompletní sken portů a služeb (Zdroj: autor)
38
Jak je na obrázku 23 vidět, tímto skenem jsme dostali informace o tom, že na portu 80 běží Microsoft ISA server, který chrání aplikace, data a služby pomocí prohledávání paketů a filtrování na aplikační vrstvě. Jak bylo už zjištěno při pasivním sběru informací, doména autocont.cz využívá IIS, který zde byl také odhalen. Jako poslední byl odhalen Fortigate Web Filtering Service, který chrání webové stránky před útoky. Zenmap nám ještě prověřoval, jestli pro tyto otevřené porty a služby nemohou existovat zranitelná místa. V tomto případě nebylo nalezeno žádné zranitelné místo, ani při pokusu provést další testy za pomocí obcházení firewallů, jako jsou fragmentace paketů, podvrhování IP adres nebo čísel portů. Byl proveden ještě jeden test na určení verze OS, který poskytuje dobrý pohled na to, jaké bezpečnostní opatření doména využívá.
Obrázek 24: Zjištění OS (Zdroj: autor)
Na obrázku 24 je vidět, že jako OS nám byl vyhodnocen s největší pravděpodobností firewall. Díky tomu víme, že doména je z vnějšího prostředí chráněná DMZ, a to za použití fortigate 100d. Použitím internetového vyhledávače a prohledáním databáze zranitelností nebyly nalezeny žádné použitelné exploity.
8.3 Skenování a exploitace Při sběru informací se podařilo udělat si obrázek, jak asi daná doména vypadá. Ze získaných informací by určitě neměla být opomíjena zranitelnost webových aplikací a serverů. Pro tyto účely byla vybrána ze sběru informací nalezená webová stránka http://tts.autocont.cz/login.php?ref=%2F, která slouží jako přihlášení do systému řízení servisních zásahů. Aplikace byla otestována pomocí nástroje Nessus a na základě nalezených zranitelností provedena analýza.
39
8.3.1 Identifikování zranitelných míst pomocí Nessus Na otestování zranitelností byla použita šablona pro webové aplikace. Ta nabízí několik možností pro nastavení, jako jsou komplexní skeny nebo jen rychlý sken. Pro tyto účely byl nastavený komplexní sken, který by měl poskytnout mnohem lepší pohled na testovanou aplikaci.
Obrázek 25: Zranitelnosti nalezené pomocí Nessus (Zdroj: autor)
Jak je vidět na obrázku 25, Nessus detekoval několik chyb a rozdělil je podle závažnosti. Poskytnul nám i několik informací o systému, mezi které patří:
PHP verze 4.3.9
Webový server Apache ve verzi 2.0.52
Na základě nalezených zranitelností bude dále probíhat analýza a otestování závažných zranitelností, jestli nedošlo ke špatnému vyhodnocení nástrojem Nessus.
40
8.3.2 SQL injection Nástroj Nessus vyhodnotil, že by se ve webové aplikaci mohla nacházet náchylnost na SQL injection, a to metodou blind SQL injection. Tato metoda je využívána, pokud je webová aplikace náchylná na SQL inejction, ale výsledek útoku není zobrazen a útočník nemá možnost si hned ověřit výsledek. Při tomto typu útoku se útočník snaží ověřit, zda je databáze náchylná na blind SQL injection, a to porovnáním výsledků rozdílných dotazů, které vracejí TRUE nebo FALSE. Nessus nám vyhodnotil, že zranitelný parametr by mohl být firm_id a to pro POST metodu. Pro ověření, jestli je tento parametr náchylný, byl použit nástroj SQLmap, který podporuje rozsáhlé možnosti na útoky SQL injection a pro různé databázové systémy. Příkaz pro ověření byl zvolen: sqlmap -u "tts.autocont.cz/login.php" --data="firm_id=id" -b kde přepínač -u určuje cílovou URL adresu, --data určuje jaké parametry mají být testovány a -b je použit pro vypsání uvítací hlášky databázového systému a vypsání typu při úspěšné injekci. Test pro parametr firm_id byl neúspěšný, a tudíž se dá prohlásit, že nástroj Nessus vyhodnoti zranitelnost pro tento parametr špatně. Nícméně aplikace využívá dalších 4 POST parametrů, které jsem zjistil použitím webového doplňku Temper Data.
Obrázek 26: Zjištěné POST parametry (Zdroj: autor)
Pro parametry na obrázku 26 jsem se rozhodl otestovat, jestli nemohou být zranitelné na blind SQL injection.
41
Příkaz pro ověření byl zvolen: sqlmap -u "tts.autocont.cz/login.php" -data="firm_id=id&ref=ref&username=uziv&passwd=heslo&a=Login" -b Ani při pokusu otestovat všechny nalezené POST metody nebyla SQL injection prokázána a aplikace je pro tento typ útoku zabezpečená.
Obrázek 27: Neúspěšná SQL injection pro všechny POST parametry (Zdroj: autor)
8.3.3 Zranitelnost XSS Nessus identifikoval, že na stránce se nachází zranitelnost XSS a to typu non-persistent. Vstup pro zadání škodlivého kódu se nachází v parametru HTTP požadavku.
Obrázek 28: Zdrojový kód elemtu input (Zdroj: autor)
Na obrázku 28, který obsahuje část zdrojového kódu je vidět, že pro vložení javascriptového kódu je nutné se nejprve dostat mimo element input a až následně poté vložit testovací javascriptový kód. Pro obejití elemetu a vložení javascriptového kódu byl zvolen testovací payloud: http://tts.autocont.cz/login.php?ref=%2F"\"><script>alert(/Non-persistent zranitelnost XSS/);
42
Obrázek 29: Non-persistent zranitelnost XSS (Zdroj: autor)
Na obrázku 29 vidíme, že stránka opravdu obsahuje zranitelnost XSS a to typu nonpersistent. Díky této zranitelnosti může útočník vložit do stránky jakýkoliv javascriptový kód, který může poslat uživateli, kterému se po otevření provede jakýkoliv vložený kód. Jako obranu můžeme využít PHP funkce htmlspecialchars(), která kóduje všechny HTML tagy a speciální znaky. httpOnly cookies a HTTP TRACE / TRACK metoda Tyto zranitelnosti jsou přímo navázané na XSS zranitelnost. Nessus nám detekoval, že na webovém serveru je zapnutá HTTP TRACE / TRACK metoda. Tato metoda má za následek, že pokud je přítomná zranitelnost XSS a útočník vloží do stránky speciální javascriptový kód pro zaslání cookies na server, tak díky této zapnuté metodě jsou vráceny cookies zpět a útočník tyto cookies může přečíst. Tento problém se přímo pojí s httpOnly, kdy je vše pod útočníkovou kontrolou a může číst i httpOnly cookies. Jako obrana proti této bezpečnostní chybě je vypnutí HTTP TRACE / TRACK metody a upgradování webového serveru Apache na verzi 2.2.22 a vyšší.
8.3.4 Clickjacking V tomto případě nám Nessus prozradil, že webová stránka je náchylná na tzv. clickjacking, ve kterém útočník může přimět uživatele ke kliknutí na určitý element stránky, zatímco jejím záměrem je interakce s obsahem úplně jiné stránky. To znamená, 43
že uživatel má pocit, že prochází úplně neškodnou stránku a neví, že za touto stránkou se skrývá jiná podstrčená stránka, kterou si vybral útočník. [27] Základní princip je spojení stránky, kterou chceme, aby viděl uživatel a stránky, na kterou má nevědomě kliknout. Útočník proto podvodnou stránku umístí na své doméně a stránka, na kterou má kliknout, je vložena nad útočníkovu stránku, za pomoci HTML tagu zvaného <iframe> a je nastavená tak, aby měla maximální průhlednost. Díky tomu uživatel vůbec netuší, na co vlastně kliká. Pro otestování, jestli opravdu je stránka na tuto zranitelnost náchylná, byla vytvořena krátká HTML stránka, která nám zobrazí vložení testované stránky do rámu. Test na Clickjacking Úspěšný Clickjacking
<iframe sandbox="povoleni skriptu" src=http://tts.autocont.cz style="width:100%;height:90%"> Při otevření stránky bude v případě úspěšného načtení do rámu vypsáno, že byl clickacking úspěšný a stránka se zobrazí v rámu.
44
Obrázek 30: Clickjacking zranitelnost (Zdroj: autor)
Jak je na obrázku 30 vidět, stránka je opravdu náchylná na zranitelnost typu clickjacking. Obrana proti clicjacking na serverové straně může být realizována zavedením HTTP hlavičky X-FRAME-OPTIONS, při které server sděluje prohlížeči, zda je povoleno zobrazit obsah uvnitř rámu. Obrana ze strany uživatelů, může být realizováno pomocí doplňku NoScript.
8.3.5 Čtení uživatelských údajů Nessus nám vyhodnotil, že vzdálený webový server obsahuje několik polí formuláře ve formátu HTML, které obsahují vstupy typu password a jsou posílány na vzdálený webový server v čistém textu (HTTP). Pokud by útočník byl s uživatelem na stejné síti, mohl by útočník požadavky mezi webovým prohlížečem a serverem odposlouchávat a získat tak přihlašovací jména a hesla platných uživatelů. Obranou pro tuto zranitelnost je přeposílat všechny citlivá data skrz HTTPS, při kterém jsou data šifrována.
45
8.3.6 Citlivá data Při této zranitelnosti, byly programem Nessus zmapovány všechny odkazy, které by mohly vést k citlivým datům. Tyto data mohou mít mnoho podob, jako je předávání parametrů HTTP požadavků nebo ve zdrojových kódech. Byl odhalen pouze dostupný adresář manual, který neposkytuje žádné citlivé informace.
Obrázek 31: Dostupný adresář manual (Zdroj: autor)
46
8.4 Report V této části jsou sepsány všechny nalezené informace při sběru dat, zranitelnosti webové aplikace, které byly odhaleny a představovaly riziko. Ke každé nalezené zranitelnosti je uvedeno doporučení k její nápravě.
8.4.1 Výsledky zjištěných informací o doméně autocont.cz Zde jsou obecně shrnuty informace, které bylo možné v kapitole 8.2 získat. Tabulka 1: Nalezené informace při sběru dat (Zdroj: autor)
Nalezené informace Počet nalezených subdomén
Upřesnění 42
Počet nalezených emailových adres
156
Počet nalezených jmen uživatelů
60
Otevřený DNS server
linuxac.autocont.cz
Otevřené porty a služby na NS linuxac.autocont.cz
25, 53 (Microsoft DNS 6.1.7601)
Operační systém doménového serveru (194.228.205.71) a verze IIS
Windows Server 2008, Microsoft IIS 7.5
Otevřené porty a služby na doménovém serveru (194.228.205.71)
21 (ftp), 25 (smtp), 80 (Microsoft ISA Server http proxy), 110 (pop3), 143 (imap), 443 (Microsoft IIS), 2000 (ciscosccp), 5060 (sip), 8008 (http), 8010(xmpp), 8020 (FortiGate Web Filtering Service)
Odhalené DMZ (firewall) Přidělený prostor IP adresám (inetnum) Odhalený doménový squatting Ověření možného odposlechu informací o zóně (zone transfer)
Fortinet FortiGate 100D 194.228.205.64 -194.228.206.127 autocont.ru (91.195.241.87) Odposlech není možný
8.4.2 Výsledky zranitelností nalezené webové aplikace Zde jsou vypsány zranitelnosti webové aplikace http://tts.autocont.cz, které byly nalezeny a mohly by představovat bezpečnostní riziko. Pro tyto zranitelnosti jsou vypsána doporučení pro jejich eliminaci a úroveň rizika. 47
Tabulka 2: Zranitelosti webové aplikace (Zdroj: autor)
Zranitelnost Na URL
Úroveň rizika Střední
http://tts.autocont.cz/login.php?ref=%
Doporučení Využití PHP funkce htmlspecialchars().
2F se nachází zranitelnost nonpersistent XSS po dosazení do URL parametru: "\"><script>alert(/Nonpersistent zranitelnost XSS/); Na serveru je zapnutá HTTP TRACE
Střední
Vypnutí HTTP TRACE /
/TRACK metoda, díky které útočník
TRACK metody a upgrade
společně se zranitelností XSS dokáže
webového serveru Apache
číst i httpOnly cookies.
na verzi 2.2.22 a vyšší.
Stránku je možné vkládat do rámu.
Střední
Útočník může tuto zranitelnost využít
Zavedení HTTP hlavičky X-FRAME-OPTIONS.
na tzv. Clickjacking. Formulářová pole jsou posílána skrz HTTP na vzdálený webový server.
Nízká
Posílání citlivých dat pouze přes HTTPS.
Možnost odposlouchávání komunikace.
48
9 Závěr Při výběru nástrojů a provádění analýz je důležité pochopit, že etický hacker musí mít velký přehled o nejrůznějších technologiích, programovacích jazycích a v neposlední řadě zkušenosti, které v tomto oboru hrají obrovskou roli. Právě tyto skutečnosti mě na začátku přípravy k testování zdržely a hledal jsem, jaké nástroje je nejrozumnější zvolit. V teoretické části této bakalářské práce jsem se snažil čtenáři přiblížit, kdo je vlastně etický hacker, jaké jsou typy penetračních testů, jakou metodikou se dá provádět penetrační testování a jakou metodiku jsem pro praktickou část zvolil. Dále pak zahrnuje popis nástrojů pro pasivní i aktivní sběr informací a popis nejčastějších zranitelností webových aplikací. Nakonec jsem popsal nástroj Nessus, který se využívá pro analýzu zranitelných míst. Praktická část byla rozdělena na 4 části, a to na plánování, sběr informací, skenování a exploatace a report. V části plánování jsem se snažil zadat primární cíle, kterých je nutné dosáhnout. Primárním cílem bylo získání co nejvíce informací o doméně autocont.cz, provedení analýzy rizik a zranitelností z nalezených informací a na základě toho navrhnout možná opatření pro snížení nalezených zranitelností. Při sběru informací byly spuštěny automatické nástroje pro vyhledávání informací pomocí pasivního i aktivního způsobu. Při sběru informací byly některými nástroji odhaleny podobné výsledky, mezi které patří počet nalezených subdomén. Dále pak byla odhalena DMZ, a jaký firewall brání vnější síť od vnitřní. Mimo to byly také odhaleny otevřené porty a služby na doménovém serveru. Velkým překvapením byl také otevřený DNS server, na kterém bylo analyzováno, jestli není náchylný na tzv. DNS Amplification útok. Díky sběru informací jsem měl možnost skenovat zranitelnosti a provádět exploitace. Rozhodl jsem se otestovat nalezenou webovou aplikaci, na kterou byl použit automatický nástroj na odhalování zranitelností Nessus. Díky tomu jsem měl představu o tom, jaké bezpečnostní chyby se mohou v aplikaci vyskytovat, a na základě toho byly nalezené zranitelnosti podrobeny analýze a manuálnímu testování. V aplikaci byly odhaleny zranitelnosti typu SQL injection, XSS, clickjacking a další. Po provedení analýzy byly
49
v aplikaci odhaleny 4 zranitelnosti a z toho 3 středně závažné a 1 méně závažná. Pro nalezené zranitelnosti byly vypsány doporučení pro jejich eliminaci. V části reportu pak byly shrnuty výsledky nalezené při sběru informací a skenování zranitelností webové aplikace. Cíl bakalářské práce byl splněn, a kromě osobního přínosu, který hodnotím jednoznačně pozitivně, by tato práce mohla být užitečným přínosem pro organizaci Autocont CZ a.s. V této práci však nebyly podrobeny testování všechny servery nebo webové aplikace. Proto bych se rád nadále věnoval etickému hackingu a vyzkoušel si interní penetrační testy, nebo podrobil doménu autocont.cz hlubšímu testování.
50
Seznam použité literatury [1] Ethical hacker. SearchSecurity [online]. 2014 [online]. [cit. 2016-12-15]. Dostupné z: http://searchsecurity.techtarget.com/definition/ethical-hacker [2] Penetrační testování. EXPERIA GROUP [online]. [cit. 2016-12-18]. Dostupné z: https://www.experia.cz/penetracni-testovani [3] Don’t let a penetration test land you in legal hot water. TechRepublic [online]. 2015
[online].
[cit.
2016-12-18].
Dostupné
z:
http://www.techrepublic.com/article/dont-let-a-penetration-test-land-you-inlegal-hot-water [4] Typy penetračních testů. zabezpečujeme.net [online]. [cit. 2016-12-18]. Dostupné z: https://www.zabezpecujeme.net/typy-penetracnich-testu [5] SELECKÝ, Matúš. Penetrační testy a exploitace. 1. vyd. Brno: Computer Press, 2012, 303 s. ISBN 978-80-251-3752-9 [6] Grey box test. CLEVER AND SMART [online]. 2010 [cit. 2016-12-18]. Dostupné z: http://www.cleverandsmart.cz/grey-box-test [7] Penetration testing methodology and standards. SearchNetworking [online]. 2010 [cit.
2016-12-18].
Dostupné
z:
http://searchnetworking.techtarget.com/tutorial/Penetration-testingmethodology-and-standards [8] SCARFONE, Karen, Murugiah SOUPPAYA, Amanda CODY a Angela OREBAUGH. Technical Guide to Information Security Testing and Assessment: Recommendations of the National Institute of Standards and Technology [online]. National Institute of Standards and Technology, 2008 [cit. 2016-12-18]. Dostupné z: http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-115.pdf [9] Bezpečnost webových aplikací: rychlé seznámení s OWASP. CLEVER AND SMART
[online].
2012
[cit.
2016-12-18].
Dostupné
z:
http://www.cleverandsmart.cz/bezpecnost-webovych-aplikaci-rychleseznameni-s-owasp
51
[10] Kali
Linux.
hackerlab
[online].
[cit.
2016-12-18].
Dostupné
z:
http://www.hackingkurzy.cz/blog/kali-linux [11] Passive Information Gathering (Part 1) The Analysis of Leaked Network Security Information. TECHNICAL INFO [online]. [cit. 2016-12-18]. Dostupné z: http://www.technicalinfo.net/papers/PassiveInfoPart1.html [12] What is Google Hacking? acunetix [online]. [cit. 2016-12-18]. Dostupné z: http://www.acunetix.com/websitesecurity/google-hacking [13] Offensive Security. theHarvester [online]. 2014 [cit. 2016-12-18]. Dostupné z: http://tools.kali.org/information-gathering/theharvester [14] DNS and WHOIS – How it Works. ICANN WHOIS [online]. [cit. 2016-12-18]. Dostupné z: https://whois.icann.org/en/dns-and-whois-how-it-works [15] KIM, Peter. Hacking: praktický průvodce penetračním testováním. Přeložil Jan POKORNÝ. Brno: Zoner Press, 2015. Encyklopedie Zoner Press. ISBN 978-807413-313-8. [16] Eleven Paths. FOCA [online]. 2015 [cit. 2016-12-21]. Dostupné z: https://www.elevenpaths.com/labstools/foca [17] Offensive Security. DNSRecon [online]. 2014 [cit. 2016-12-26]. Dostupné z: http://tools.kali.org/information-gathering/dnsrecon [18] LAU, Steven. Why is securing DNS zone transfer necessary? [online]. SANS Institute InfoSec Reading Room, 2003 [cit. 2016-12-26]. Dostupné z: https://www.sans.org/reading-room/whitepapers/dns/securing-dns-zone-transfer868 [19] Nmap from Beginner to Advanced. INFOSEC INSTITUTE [online]. 2012 [cit. 2016-12-26]. Dostupné z: http://resources.infosecinstitute.com/nmap [20] KÜMMEL, Roman. XSS: Cross-Site Scripting v praxi: o reálných zranitelnostech ve virtuálním světě. Zlín: Tigris, 2011. ISBN 978-80-86062-34-1. [21] OWASP. SQL Injection [online]. 2016 [cit. 2016-12-21]. Dostupné z: https://www.owasp.org/index.php/SQL_Injection
52
[22] Network Scanning Using Nessus. INFOSEC INSTITUTE [online]. 2012 [cit. 2016-12-23].
Dostupné
z:
http://resources.infosecinstitute.com/network-
scanning-using-nessus [23] Citrix Access Gateway. TechTarget [online]. 2009 [cit. 2016-12-28]. Dostupné z: http://searchenterprisewan.techtarget.com/Citrix-Access-Gateway [24] Yahoo po dvou letech potvrzuje 500 milionů ukradených účtů. SVĚT HARDWARE
[online].
2016
[cit.
2016-12-28].
Dostupné
z:
http://searchenterprisewan.techtarget.com/Citrix-Access-Gateway [25] Spekulativní registrace doménových jmen. epravo.cz [online]. 2015 [cit. 201612-29]. Dostupné z: http://www.epravo.cz/top/clanky/spekulativni-registracedomenovych-jmen-96360.html [26] Princip amplification útoků zneužívajících DNS, NTP a SNMP. ROOT.CZ [online]. 2015 [cit. 2016-12-29]. Dostupné z: https://www.root.cz/clanky/principamplification-utoku-zneuzivajicich-dns-ntp-a-snmp [27] OWASP. Clickjacking [online]. 2015 [cit. 2017-01-02]. Dostupné z: https://www.owasp.org/index.php/Clickjacking
53
Seznam obrázků Obrázek 1: Upravená metodika NIST podle [5] (Zdroj: autor) ...................................... 14 Obrázek 2: Úvodní obrazovka distribuce Kali Linux (Zdroj: autor) .............................. 16 Obrázek 3: Nalezení subdomén pomocí operátoru site (Zdroj: autor) ........................... 17 Obrázek 4: Výpis z Whois databáze pro doménu microsoft.cz (Zdroj: autor) ............... 18 Obrázek 5: Výsledný report (Zdroj: autor) ..................................................................... 19 Obrázek 6: Struktura výpisu (Zdroj: autor) .................................................................... 20 Obrázek 7: Zenmap (Zdroj: autor) .................................................................................. 22 Obrázek 8: Možnoti Nessus (Zdroj: autor) ..................................................................... 27 Obrázek 9: Struktura DNS záznamů (Zdroj: autor) ........................................................ 29 Obrázek 10: SOA záznam pro NS (Zdroj: autor) ........................................................... 30 Obrázek 11: Zkrácený výpis nalezených subdomén (Zdroj: autor) ................................ 30 Obrázek 12: Zkrácený výpis emailových adres uživatelů (Zdroj: autor) ....................... 31 Obrázek 13: Historie domény (Zdroj: autor) .................................................................. 32 Obrázek 14: Výpis rozsahu (Zdroj: autor) ...................................................................... 33 Obrázek 15: Doménový squatting (Zdroj: autor) ........................................................... 33 Obrázek 16: Doménový squatting autocont.ru (Zdroj: autor) ........................................ 33 Obrázek 17: Nalezené informace pomocí FOCA ........................................................... 34 Obrázek 18: Zkrácený výpis subdomén (Zdroj: autor) ................................................... 35 Obrázek 19: Výpis reverzní metodou (Zdroj: autor) ...................................................... 36 Obrázek 20: Zone transfer (Zdroj: autor) ....................................................................... 36 Obrázek 21: Ověření otevřeného DNS (Zdroj: autor) .................................................... 37 Obrázek 22: Otevřené porty na NS (Zdroj: autor) .......................................................... 37 Obrázek 23: Kompletní sken portů a služeb (Zdroj: autor) ............................................ 38 Obrázek 24: Zjištění OS (Zdroj: autor)........................................................................... 39 Obrázek 25: Zranitelnosti nalezené pomocí Nessus (Zdroj: autor) ................................ 40 Obrázek 26: Zjištěné POST parametry (Zdroj: autor) .................................................... 41 Obrázek 27: Neúspěšná SQL injection pro všechny POST parametry (Zdroj: autor).... 42 Obrázek 28: Zdrojový kód elemtu input (Zdroj: autor) .................................................. 42 Obrázek 29: Non-persistent zranitelnost XSS (Zdroj: autor) ......................................... 43 Obrázek 30: Clickjacking zranitelnost (Zdroj: autor) ..................................................... 45 Obrázek 31: Dostupný adresář manual (Zdroj: autor) .................................................... 46
54
Seznam tabulek Tabulka 1: Nalezené informace při sběru dat (Zdroj: autor) .......................................... 47 Tabulka 2: Zranitelosti webové aplikace (Zdroj: autor) ................................................. 48
55
Seznam použitých zkratek ICT – Information and Communication Technologies a.s. – Akciová společnost DMZ – Demilitarized zone IDS – Intrusion detection system IPS – Intrusion prevention system IP – Internet Protocol OSSTMM – Open Source Security Testing Methodology Manual OWASP – Open Web Application Security Project NIST – National Institute of Standards and Technology Wi-Fi – Wireless Fidelity OS – Operační systém TCP – Transfer Control Protocol UDP – User Datagram Protocol NS – Name server DNS – Domain Name System MX – Mail exchange CNAME – Canonical name SOA – Start of authority PTR – Pointer PDF – Portable Document Format SVG – Scalable Vector Graphics FTP – File Transfer Protocol OWA – Outlook Web App MAC – Media Access Control XSS – Cross-Site Scripting SQL – Structured Query Language URL – Uniform Resource Locator HTTP – Hypertext Transfer Protocol HTTPS – Hypertext Transfer Protocol Secure MUNI – Masarykova univerzita CAG – Citrix Access Gateway IIS – Internet Information Services 56
TLD – Top-level domain VPN – Virtual Private Network DDoS – Distributed Denial of Service PHP – Hypertext Preprocessor HTML – Hyper Text Markup Language SMTP – Simple Mail Transfer Protocol SIP –Session Initiation Protocol IMAP – Internet Message Access Protocol POP3 – Post Office Protocol třetí generace XMPP – Extensible Messaging and Presence Protocol
57
Přílohy 10 Obsah přiloženého CD Na přiložením CD se v kořenovém adresáři nachází tato bakalářská práce ve formátu bakalarska_prace.pdf a výstup z programu Discover, který se nachází ve složce vysledky_report a otevírá se pomocí report.htm.
58