Hacking – praktický průvodce penetračním testováním

Page 1

HACKING

praktickĂ˝ prĹŻvodce penetraÄ?nĂ­m testovĂĄnĂ­m PřímoÄ?arĂ˝ a praktickĂ˝ přístup k penetraÄ?nĂ­mu testovĂĄnĂ­. Příprava ĂştoÄ?Ă­cĂ­ch hostitelĹŻ. InternĂ­ a externĂ­ aktivnĂ­ odposlech. Postupy pro konfiguraci vzdĂĄlenĂ˝ch ĂştokĹŻ. PenetraÄ?nĂ­ testovĂĄnĂ­ webovĂŠ aplikace. VyuĹžitĂ­ zranitelnosti typu SQL injection, XSS a CSRF. Posuny po sĂ­ti potĂŠ, co jste pronikli do nÄ›jakĂŠho systĂŠmu. Phishing. PasivnĂ­ a aktivnĂ­ Ăştoky. BezdrĂĄtovĂĄ exploitace. FyzickĂŠ penetraÄ?nĂ­ testy. ObchĂĄzenĂ­ antivirovĂŠ ochrany. ProlamovĂĄnĂ­ hesel. VyhledĂĄvĂĄnĂ­ zranitelností‌ Tohle vĹĄechno je jen drobnĂĄ ochutnĂĄvka z atraktivnĂ­ho obsahu, kterĂ˝ naleznete v tĂŠto knize. JejĂ­m autorem je bezpeÄ?nostnĂ­ vĂ˝zkumnĂ­k Peter Kim, kterĂ˝ v souÄ?asnĂŠ dobÄ› pracuje jako Ĺ™editel/prezident spoleÄ?nosti Secure Planet, LLC, kterĂĄ se zaměřuje na penetraÄ?nĂ­ testovĂĄnĂ­ IT systĂŠmĹŻ. Z obsahu knihy vybĂ­rĂĄme:  NastavenĂ­ prostĹ™edĂ­  SkenovĂĄnĂ­ sĂ­tÄ›  Exploitace nĂĄlezĹŻ ze skeneru  Exploitace webovĂ˝ch zranitelnostĂ­  Posuny po sĂ­ti

slevy, akce,

novinky

    

Zoner inShop Je modernĂ­ a profesionĂĄlnĂ­ LQWHUQHWRYÂż REFKRG QD Ă?HVNÂŤP WUKX MLĤ RG URNX - jednoduchĂ˝ a velmi intuitivnĂ­ - responzivnĂ­ design SURSRMHQÂŻ V ÂźĂ?HWQÂŻPL V\VWÂŤP\ PXOWLMD]\Ă?QRVW RQOLQH SODWE\ - SEO PDUNHWLQJRYÂŤ QÂŁVWURMH ]DEH]SHĂ?HQÂŻ +7736 VRFLÂŁOQÂŻ VÂŻWĂ™

SociĂĄlnĂ­ inĹženĂ˝rstvĂ­ Ăštoky vyĹžadujĂ­cĂ­ fyzickĂ˝ přístup Jak se vyhnout antivirovĂŠ ochranÄ› ProlamovĂĄnĂ­ hesel, exploity, triky ZĂĄvÄ›reÄ?nĂŠ zprĂĄvy

Nechejte nåm kontakt na novinky.zonerpress.cz a získåte dalťí bonusy, slevy a jinÊ výhody.

24/7

]ÂŁND]QLFNÂŁ SRGSRUD

www.inShop.cz Š dollarphotoclub.com (64786534)

Z nabĂ­dky vydavatelstvĂ­ Zoner Press

DOPORUÄŒENĂ Ă CENA: 289 KÄŒ KATALOGOVÉ ÄŒĂ?SLO: ZRK1423

ISBN 978-80-7413-313-8 80-7413-313-8

Z O N E R

P R E S S

HACKING praktickĂ˝ prĹŻvodce penetraÄ?nĂ­m testovĂĄnĂ­m

Peter Kim

Peter Kim

testovĂĄnĂ­m HACKING – praktickĂ˝ prĹŻvodce penetraÄ?nĂ­m tes

E N C Y K L O P E D I E

Zoner Press

tel.: 532Â 190Â 883 e-mail: knihy@zoner.cz www.zonerpress.cz ZONER software, a.s., NovĂŠ sady 18, 602Â 00 Brno

9 7 8 8 0 7 4 Â 1 3 3 1 3 8

Peter Kim



HACKING Praktický průvodce penetračním testováním

Peter Kim


THE HACKER PLAYBOOK: PRACTICAL GUIDE TO PENETRATION TESTING Peter Kim

Copyright 2014 by Peter Kim. Title of English-language original: The Hacker Playbook: Practical Guide To Penetration Testing, ISBN 978-1494932633, published by Secure Planet LLC. Czech language edition copyright © 2015 by Zoner Press, ZONER software, a.s. All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording, or by any information storage or retrieval system, without permission from Secure Planet LLC. Copyright 2014, autor Peter Kim. Název originálního anglického vydání: The Hacker Playbook: Practical Guide To Penetration Testing, ISBN 978-1494932633, vydal Secure Planet LLC. České vydání vydal Zoner Press, ZONER software, a.s., copyright © 2015. Všechna práva vyhrazena. Žádná část této publikace nesmí být reprodukována nebo předávána žádnou formou nebo způsobem, elektronicky ani mechanicky, včetně fotokopií, natáčení ani žádnými jinými systémy pro ukládání bez výslovného svolení Secure Planet LLC.

Hacking – praktický průvodce penetračním testováním Autor: Peter Kim Copyright © ZONER software, a.s. Vydání první, v roce 2015. Všechna práva vyhrazena. Zoner Press Katalogové číslo: ZRK1423 ZONER software, a.s. Nové sady 18, 602 00 Brno Překlad: RNDr. Jan Pokorný Odpovědný redaktor: Miroslav Kučera Šéfredaktor: Ing. Pavel Kristián DTP: Miroslav Kučera Obálka: Mgr. Petr Bernát

Informace, které jsou v této knize zveřejněny, mohou byt chráněny jako patent. Jména produktů byla uvedena bez záruky jejich volného použití. Při tvorbě textů a vyobrazení bylo sice postupováno s maximální péčí, ale přesto nelze zcela vyloučit možnost výskytu chyb. Vydavatelé a autoři nepřebírají právní odpovědnost ani žádnou jinou záruku za použití chybných údajů a z toho vyplývající důsledky. Všechna práva vyhrazena. Žádná část této publikace nesmí být reprodukována ani distribuována žádným způsobem ani prostředkem, ani reprodukována v databázi či na jiném záznamovém prostředku či v jiném systému bez výslovného svolení vydavatele, s výjimkou zveřejnění krátkých částí textu pro potřeby recenzí. Veškeré dotazy týkající se distribuce směřujte na: Zoner Press ZONER software, a. s. Nové sady 18, 602 00 Brno tel.: 532 190 883 e-mail: knihy@zoner.cz www.zonerpress.cz

ISBN 978-80-7413-313-8

slevy, akce,

novinky

Nechejte nám kontakt na novinky.zonerpress.cz a získáte další bonusy, slevy a jiné výhody.


3

Stručný obsah Kapitola 1

Nastavení prostředí

11

Kapitola 2

Skenování sítě

21

Kapitola 3

Exploitace nálezů ze skeneru

45

Kapitola 4

Exploitace webových zranitelností

51

Kapitola 5

Posuny po síti

77

Kapitola 6

Sociální inženýrství

113

Kapitola 7

Útoky vyžadující fyzický přístup

127

Kapitola 8

Jak se vyhnout antivirové ochraně

141

Kapitola 9

Prolamování hesel, exploity, triky

151

Kapitola 10

Závěrečné zprávy

167

Kapitola 11

Nepřestávejte se vzdělávat

171

Dodatek

Závěrečné poznámky

175


4

Podrobný obsah Předmluva

8

Úvod

8

Dodatečné informace o knize

10

K etice

10

Kapitola 1

Nastavení prostředí

11

Příprava prostředí pro penetrační testy

11

Hardware

11

Komerční software

12

Kali Linux

13

Virtuální stroj s Windows

17

Shrnutí

Kapitola 2

19

Skenování sítě

Externí skenování Pasivní odposlech

21 21 21

Externí/interní aktivní odposlech

27

Postup pro skenování sítě

28

Skenování webové aplikace

36

Postup skenování webové aplikace

36

Samotné skenování

36

Shrnutí

Kapitola 3

44

Exploitace nálezů ze skeneru

Metasploit

45

Základní kroky pro konfiguraci vzdálených útoků Vyhledávání přes Metasploit (použití zranitelnosti MS08-067) Skripty

46 46 48

Příklad s WarFTP Shrnutí

Kapitola 4

45

48 50

Exploitace webových zranitelností

Penetrační testování webové aplikace

51 51


5 SQL injection

51

Cross-site scripting (XSS)

59

Cross-Site Request Forgery (CSRF)

66

Tokeny relace

69

Dodatečné fuzz testy a validace vstupů

71

Testování funkční/obchodní logiky

75

Závěr

Kapitola 5

76

Posuny po síti

77

Na síti a bez přihlašovacích údajů

77

responder.py (Kali Linux)

77

Na síti a s přihlašovacími údaji k doméně (ale ne administrátorskými)

81

Preference zásad skupiny

81

Vytahování přihlašovacích údajů v čistém textu

83

Tipy pro post exploitaci

85

Na síti a s místním administrátorským nebo doménovým účtem

85

Přisvojení sítě pomocí PSExec

85

Útok na řadič domény

91

Post exploitace s PowerSploitem (Windows) Post exploitace s PowerShellem (Windows) Otrávení ARP

93 97 100

IPv4

100

IPv6

104

Co dál, když se podařilo zfalšovat ARP

105

Proxy mezi hostiteli

112

Závěr

112

Kapitola 6

Sociální inženýrství

113

Záměna domény

113

Útok se SMTP

113

Útok se SSH

114

Cílený phishing

116

Metasploit Pro – modul Phishing

116

Social Engineering Toolkit (Kali Linux)

118

Odesílání masivních kampaní cíleného phishingu

122

Sociální inženýrství s Microsoft Excelem

123

Závěr

126


6 Kapitola 7

Útoky vyžadující fyzický přístup

Bezdrátová exploitace

127 127

Pasivní útoky – průzkum

128

Aktivní útoky

130

Fyzické penetrační testy

137

Klonování karty

137

Hardwarový drop box pro penetrační testy

137

Fyzické sociální inženýrství

140

Závěr

Kapitola 8

140

Jak se vyhnout antivirové ochraně

Obcházení antivirové ochrany

141 141

Skrytí WCE před antivirem (Windows)

141

Python

146

Závěr

Kapitola 9

150

Prolamování hesel, exploity, triky

151

Úvod do prolamování hesel

151

John the Ripper (JtR)

152

oclHashcat

153

Vyhledávání zranitelností

156

Searchsploit (Kali Linux)

156

BugTraq

158

Exploit-DB

158

Dotazy na Metasploit

158

Tipy a triky

160

RC skripty uvnitř Metasploitu

160

Jak obejít ochranu Řízení uživatelských účtů

161

Jak obejít filtrování webů pro vaše domény

162

Windows XP – FTP trik ze staré školy

162

Jak skrývat soubory na Windows (ADS)

162

Jak udržet naše soubory na Windows skryté

164

Nahrávání souborů do hostitelů s Windows 7 nebo 8

165


7 Kapitola 10

Závěrečné zprávy

Jak má vypadat finální zpráva Seznam mých nejlepších postupů a tipů pro tvorbu reportů

Kapitola 11

Nepřestávejte se vzdělávat

167 167 168

171

Hlavní konference

171

Školicí kurzy

172

Knihy

172

Frameworky pro penetrační testování zranitelností

173

CTF hry

174

Držte krok s nejnovějším vývojem

174

Dodatek Poděkování

Rejstřík

Závěrečné poznámky

175 176

177


8

Předmluva Nebylo to tak, že mě jednoho krásného dne napadlo napsat knihu o penetračních testech, jsem ale rád, že k tomu došlo. Stalo se, že jsem si začal dělat poznámky z různých průnikových testů, konferencí, článků o bezpečnosti, výzkumu a životních zkušeností. Jak objem mých poznámek stále narůstal, zjistil jsem, že existují lepší a ještě lepší způsoby, jak vykonávat opakující se úlohy a začal chápat, co fungovalo a co ne. Když jsem začal vyučovat, mluvit na konferencích a zapojovat se do bezpečnostních komunit, dospěl jsem k pocitu, že by tato branže mohla z mých přednášek leccos vytěžit. Tato kniha není nic jiného než jejich sbírka. Chtěl bych však zdůraznit jednu důležitou věc – nejsem profesionální spisovatel. Knihu jsem bral jako svůj koníček, bavilo mě to. Možná využíváte jiné nástroje, techniky a taktiky, protože dáváte přednost právě jim, ale přesně to činí tento obor tak skvělým. Na stejnou otázku často existuje mnoho různých odpovědí a zvu vás, abyste je prozkoumali všechny. Nebudu pro každý typ útoku uvádět průvodce ve stylu krok za krokem – bude jen na vás, abyste sami nepřetržitě zkoumali, zkoušeli různé metody, a zjišťovali, co bude fungovat. V knize se předpokládá, že máte jisté vědomosti o běžných bezpečnostních nástrojích, že jste alespoň chvilku používali Metasploit a že jakž takž držíte krok s bezpečnostním průmyslem. Abyste mohli využít vše, co kniha nabízí, nemusíte být profesí penetrační (průnikový) tester – stačí, když se zajímáte o bezpečnost. Když jsem psal tuto knihu, bylo mým záměrem vytvořit přímočarý a praktický přístup k penetračnímu testování. Existuje mnoho knih o bezpečnosti, v nichž se probírají všechny možné typy nástrojů a zranitelností, přitom se ale zdá, že pro průměrného penetračního testera jsou relevantní jen malé části útoků. Já proto doufám, že právě tato kniha pomůže rozvíjet vaše znalosti o bezpečnosti a že vám pomůže lépe pochopit, jak je třeba chránit své vlastní prostředí. Na různých místech knihy se budu zabývat technikami a postupy, u nichž se domnívám, že pocházejí ze skutečného světa a že jsou součástí typického penetračního klání. Tyto techniky nebudete vždy moci použít přesně tak, jak je budu ukazovat, měly by vám však poskytnout dobrý základ, odkud budete moci vyrazit dál. Přidám ještě několik rad, o nichž jsem zjistil, že jsou prospěšné. Chcete-li se stát lepším bezpečnostním profesionálem, mezi nejdůležitější věci, které byste měli dělat, patří tyto: 1. Zjistěte všechny možné zranitelnosti a běžné bezpečnostní slabiny. Nastudujte je a porozumějte jim. 2. Procvičujte exploitování a zabezpečování zranitelností v prostředích, nad kterými máte kontrolu. 3. Testujte v prostředích ze skutečného světa. 4. Učte ostatní a svá zjištění prezentujte bezpečnostní komunitě. Tyto body reprezentují nepřetržitý životní cyklus, který pomůže rozvíjet vaši odbornou zralost. Ještě jednou děkuji, že čtete tuto knihu, a doufám, že vám přinese tolik potěšení jako mně, když jsem ji psal.

Úvod Shrbeni nad klávesnicí v tlumeně osvětleném pokoji, znechuceni, možná i mírně otráveni z mnoha vypitých energetických drinků, kontrolujete svůj telefon. Jak mhouříte oči nad oslnivě zářící LCD obrazovkou, stěží rozpoznáte údaj o čase – jsou právě tři ráno. "Skvělé," pomyslíte si. Máte ještě pět hodin, než skončí váš test, ale zatím jste nenašli ani jediný exploit nebo kritickou zranitelnost. Vaše skeny nebyly plodné a nikdo se nehodlá spokojit s reportem obsahujícím hromadu záležitostí souvisejících s nezabezpečenými cookie. Naštěstí ale sáhnete po knize "Hacking – praktický průvodce penetračním testováním" a otevřete si kapitolu 4, která se věnuje exploitacím webových zranitelností. Náhle si povšimnete, že jste zapomněli otestovat útoky injekcemi


9 SQL na cookie. To je přece něco, co by mohl jednoduchý webový skener opominout. Spustíte SQLmap a o pár minut později se začne výpis na obrazovce posouvat, až se zastaví na tomto: Web server operating system: Windows 2008 web application technology: ASP.net, Microsoft IIS 7.5 back and DBMS: Microsoft SQL Server 2008

Perfektní. Pomocí SQLmap jste vskočili do příkazového shellu, nicméně téměř okamžitě si uvědomíte, že nemáte administrátorská oprávnění. Co by mohl být další logický krok? Škoda, že nemám v rukávu pár post-exploitačních triků. Pak si ale vzpomenete, že možná i s tímhle vám kniha pomůže. Otevřete si pátou kapitolu věnovanou posunům po síti a čtete si tu a onde. Věcí, co můžete dělat, je strašně moc, nicméně nejprve se podíváte, zdali je daný hostitel připojený k doméně a zdali jsou účty místních administrátorů (Local Administrators) nastavovány s využitím Group Policy Preferences. S využitím schopností příkazu IEX PowerShellu přinutíte server, aby stáhl GPP skript PowerSploitu, vykonal ho a uložil výsledky do souboru. Zdá se, že to prošlo, aniž by se odpálil antivirus! Prostudujete si obsah souboru, který skript exportoval, a – světe div se – máte místní administrátorské heslo. Pak už to všechno dobře známe... Vytvoříte Meterpreter shell s administrátorskými oprávněními, s tímto hostitelem zaútočíte zevnitř dané sítě na klienty a s pomocí SMBExec vytáhnete z řadiče domény (Domain Controlleru) všechny uživatelské hashe. Je jasné, že tohle je pouze všeobecný příklad, nicméně by měl ukázat, jak jsem se snažil pojmout tuto knihu. Kniha se skládá z celkem jedenácti kapitol: Nastavení prostředí. Informace o tom, jak nakonfigurovat své útočící hostitele. Nechybí ani seznam

všech nástrojů, které budete používat v průběhu práce s touto knihou. Skenování sítě. Než můžete rozjet nějaké akce, potřebujete prozkoumat prostředí a pochopit, čemu

všemu vlastně čelíte. Exploitace nálezů ze skeneru. V této kapitole vezmete zranitelnosti, které jste identifikovali ze skenů,

a pokusíte se exploitovat tyto systémy. Zde už skutečně začnete sami něco dělat. Exploitace webových zranitelností. Někdy je potřeba být tvořivý a hledat, kde je v obraně mezera.

Zde se podíváme, jak se proniká do systémů pomocí ručně zjištěných zranitelností webové aplikace. Posuny po síti. Předvedeme si, jak se dá laterálně posouvat po síti poté, co jste úspěšně pronikli do

nějakého systému. Sociální inženýrství. V této kapitole se vysvětlují některé taktiky sociálního inženýrství. Útoky vyžadující fyzický přístup. Zde budu popisovat útoky, které vyžadují fyzický přístup. Jak se vyhnout antivirové ochraně. V praxi občas narazíte na to, že vaše pokusy budou zablokovány

nějakým antivirem (AV). V této kapitole se popisuje, jak se dostat přes tyto drobné překážky. Prolamování hesel, exploity, triky. Závěrečné zprávy. Jak psát zprávy pro vaše klienty o tom, co jste zjistili. Nepřestávejte se vzdělávat. Kapitola plná odkazů na různé zdroje, včetně seznamu konferencí.

Než se ale začneme plně věnovat útokům na různé sítě, útokům na bezpečnostní kontroly zevnitř systému, do něhož jsme pronikli, nebo tomu, jak se vyhnout antivirové ochraně, chci, abyste se dobrali ke správnému způsobu myšlení. Představte si, že jste byli najati jako penetrační tester, který má otestovat celkovou bezpečnost firmy z žebříčku Fortune 500. Kde začnete? Jaké základní bezpečnostní testy máte k dispozici? Jak docílíte toho, aby testování probíhalo vždy konzistentně pro všechny vaše klienty? Kdy budete považovat za správné odchýlit se od této linie? Tato kniha by vám měla pomoci se všemi těmito záležitostmi.


10

Dodatečné informace o knize Je důležité připomenout, že kniha reprezentuje jen mé osobní myšlenky a zkušenosti. Nemá nic společného s žádným mým minulým či současným zaměstnavatelem. Pokud existují nějaká témata nebo myšlenky, které jsem interpretoval mylně, nebo zapomněl uvést zásluhy tam, kde bylo třeba, dejte mi vědět, abych mohl provést patřičné aktualizace na doprovodném webu k této knize www.thehackerplaybook.com. A ještě jedno důležité doporučení pro dobu, po kterou se budete s knihou učit: vezměte dané nástroje a pokuste se je znovu vytvořit v jiném skriptovacím jazyku. Já obvykle s oblibou znovu vytvářím či obnovuji běžné nástroje a nové exploity v pythonu. Časem se to pro vás stane velmi podstatné, protože už nebudete závislí na konkrétních nástrojích. Kromě toho budete také lépe chápat, proč je zranitelnost zranitelností. Nakonec chci zopakovat známé přísloví, že cvičení dělá mistra. Kolem sebe často slyším, že trvá deset tisíc hodin, než se cokoliv zvládne na mistrovské úrovni. Nevěřím ovšem tomu, že tohle je doba, kterou by byl kdokoliv z vás ochoten obětovat tomu, aby dokonale ovládl penetrační testování. Říkám jen to, že s dostatečnou praxí se může penetrační testování stát vaší druhou přirozeností.

K etice Jak se konstatuje i v ostatních etických knihách o hackerství – netestujte systémy, které nevlastníte, nebo k nimž nemáte povolení je skenovat nebo na ně útočit. Pamatujete si ještě na ten případ, jak se kdosi na jednu minutu připojil k útoku hackerské skupiny Anonymous a byl odsouzen k pokutě 183 tisíc dolarů?1 Zajistěte, abyste měli všechno, co děláte, řádně zdokumentované. Nezapomeňte rovněž získat úplný souhlas s vašimi aktivitami od firem, poskytovatelů internetového připojení (ISP), poskytovatelů sdíleného hostingu (shared hosting provider) a vlastně i od všech ostatních, které může průběh vašeho testu nějak zasáhnout. Všechny své skeny a útoky nejprve otestujte v nějakém testovacím prostředí, než se začnete pokoušet o útoky v libovolném ostrém prostředí. Vždy je totiž nenulová šance, že s libovolným typem testu můžete dané systémy zasáhnout tak, že se zhroutí a že způsobíte závažné potíže. A předtím, než začneme, chci ještě uvést, že tato kniha neobsahuje všechny možné typy útoků a že znalosti získané z této knihy nemusí vždy představovat nejlepší nebo nejúčinnější možnou metodu. Jsou zde pouze techniky, které jsem nasbíral ve své praxi a zjistil o nich, že fungují dobře. Pokud najdete nějaké očividné chyby nebo vymyslíte nějaký lepší způsob, jak provést některý test, dejte mi prosím vědět.

1

http://mashable.com/2013/12/09/anonymous-attack-fine/


51

KAPITOLA 4 Exploitace webových zranitelností V této části knihy se popereme s problémem, jak vzít nálezy ze skenů a ručního testování webové aplikace a proniknout s nimi do systémů.

Penetrační testování webové aplikace Témata, která probereme v rámci sekce o testování webové aplikace, jsou tato: SQL injection1, XSS (Cross-site Scripting)2, CSRF (Cross-site Request Forgery)3, entropie (náhodnost) tokenu relace (session token entropy), fuzz testování a validace vstupů, a nakonec obchodní logika. Přestože se nejedná o kompletní výčet všech možných typů testů, které byste měli prověřit, zde uvedené obvykle poskytnou hlavní nálezy vedoucí k nějaké uživatelské bázi, aplikaci nebo systému, kam lze proniknout. Poskytnou vám tak dobrý základ či vzor pro zvládnutí dalších typů webově založených útoků. Pokud chcete zvládnout testovací framework, který je specifický pro webové aplikace více do hloubky, doporučuji se dobře seznámit s testovacím průvodcem OWASP4 a s příručkou The Web Application Hacker’s Handbook5.

SQL injection Některé zranitelnosti vůči SQL injection (SQLi) můžete najít buď z výsledků skenování, nebo také jen tím, že občas "šťoucháte" tam či onam. To je skvělá zpráva, protože zranitelnosti SQLi mohou vést k plnému průniku do databáze samotného systému. Dva open source nástroje, o nichž jsem zjistil, že fungují po většinu času, jsou SQLmap a Sqlninja. Projděme si nyní celý proces od identifikace zranitelnosti až k exploitaci.

1 2 3 4 5

http://cs.wikipedia.org/wiki/SQL_injection http://cs.wikipedia.org/wiki/Cross-site_scripting http://cs.wikipedia.org/wiki/Cross-site_request_forgery http://bit.ly/19GkG5R http://amzn.to/1lxZaCv


Kapitola 4 – Exploitace webových zranitelností

52

Pokud byste při předchozím skenování webové aplikace narazili na to, že Burp našel nějakou zranitelnost SQL injection, vypadalo by to na záložce s výsledky skeneru podobně jako na obrázku 30.

Obrázek 30. Burp našel zranitelnost SQL injection. Jednou z výhod používání nástroje Burp Suite je to, že ohodnotí míru spolehlivosti, zda jde o platné nálezy, nebo o potenciálně falešné poplachy. V tomto případě, viz obrázek 30, je spolehlivost "Certain" (jistá), přičemž zranitelné parametry jsou pole Password, Username a User-Agent.

SQLmap (Kali Linux) SQLmap6 je jedním z mých nejoblíbenějších nástrojů, když chci najít SQLi, manipulovat s databází prostřednictvím dotazů nebo udělat její dump. A to není zdaleka vše, co umí. S využitím injekce umí získat nějaký interaktivní shell, nebo dokonce poskytnout Meterpreter nebo VNC7 relaci zpět k útočníkovi. V následujících příkladech s SQLmap uvidíte jako první na parametr GET, poté na parametr POST, protože to jsou nejběžněji se vyskytující typy SQLi. Útoky oběma HTTP metodami ukazuji proto, že zde velmi záleží na správné konfiguraci vašeho požadavku (v opačném případě se útok pravděpodobně nezdaří). Pro začátek se nejprve podívejme na soubor s nápovědou pro SQLmap. Jak můžete vidět na obrázku 31, obsahuje spoustu všelijakých užitečných parametrů, které lze využívat při útocích SQLi: sqlmap -h

6 7

http://sqlmap.org/ Virtual Network Computing


Hacking – praktický průvodce penetračním testováním

53

Obrázek 31. Nápověda pro SQLmap.

Příklad na parametr GET V následujících příkladech předpokládáme, že parametr GET je právě to místo, kde je s URL spojena zranitelnost SQLi. Chceme otestovat všechny parametry a ujistit se, že nalezená zranitelnost SQLi je skutečná a že se nejedná o falešný poplach. Existuje docela velký počet falešných poplachů, které jsem viděl u skenovacích nástrojů, takže jedinou metodou, jak zaručit, že se skutečně jedná o použitelný nález, je validace. Zapamatujte si, že pokud pro test nespecifikujete žádnou hodnotu, bude SQLmap standardně testovat všechny parametry. Zjistíme, zda je SQL injekce platná (pokud ano, výsledkem bude uvítací hlášení): sqlmap -u "http://site.com/info.php?user=test&pass=test" -b Získáme databázové uživatelské jméno: sqlmap -u "http://site.com/info.php?user=test&pass=test" --current-user Interaktivní shell: sqlmap -u "http://site.com/info.php?user=test&pass=test" --os-shell Několik tipů a triků:

– Možná budete muset specifikovat, na jaký typ databáze se má zaútočit. Pokud si myslíte, že má injekce šanci, ale SQLmap nic nenašel, zkuste nastavit přepínač --dbms=[typ databáze].


54

Kapitola 4 – Exploitace webových zranitelností – Pokud potřebujete otestovat nějaký nález autentizované SQL injekce (authenticated SQL injection), přihlaste se do webu prostřednictvím webového prohlížeče a shrábněte cookie (můžete ji shrábnout přímo z nástroje Burp). Pak definujte cookie pomocí přepínače --data=[COOKIE]. – Nevíte si rady? Zkuste příkaz sqlmap --wizard.

Příklad na parametr POST Příklad s POST bude velmi podobný příkladu s GET. Rozdíl bude v tom, jak budeme předávat zranitelný parametr. Nebude v URL, protože parametry POST se předávají v datové sekci. Toto můžete zcela běžně vidět u předávání uživatelských jmen a hesel, protože webové servery obvykle logují parametry GET a vy nechcete, aby webový server zaznamenal tyto údaje do logu. Kromě toho, u metody GET existují jisté limity na velikost řetězce, takže u rozsáhlejších aplikací se předává spousta dat prostřednictvím metody POST. Zjistíme, zda je SQL injekce platná (pokud ano, výsledkem bude uvítací hlášení): sqlmap -u "http://site.com/info.php " --data= "user=test&pass=test" --b Získáme databázové uživatelské jméno: sqlmap -u "http://site.com/info.php --data= "user=test&pass=test" --current-user  Interaktivní shell: n sqlmap u "http://site.com/info.php --data= "user=test&pass=test" --os-shell

Pokud jste schopni získat přístup k nějakému shellu operačního systému, jako databázový uživatel budete mít úplný přístup k režimu příkazového řádku. V následujícím příkladu (viz obrázek 32) se mi podařilo najít zranitelnou SQLi, získat shell operačního systému a spustit příkaz ipconfig.

Obrázek 32. Příkazový shell SQLmap.


Hacking – praktický průvodce penetračním testováním

55

Být vámi, strávil bych nějaký čas spouštěním různých příkazů pro SQLi. Také bych zkoušel různé parametry, které jsou uvedeny v souboru nápovědy. Pokud SQLmap selže, může to být i kvůli aktuální konfiguraci, takže rozhodně vyzkoušejte i konfiguraci prostřednictvím průvodce (wizard).

Sqlninja (Kali Linux) Sqlninja8 je další skvělý SQLi nástroj pro nahrávání shellů a obcházení síťových IDS (systémů pro detekci útoků). Asi se ptáte, proč bych měl používat Sqlninja, když jsem se právě seznámil s SQLmap a jsem s ním spokojený? Během svých mnohaletých zkušeností jsem viděl značný počet testů, které identifikují zranitelnost SQLi pouze s jedním či druhým nástrojem. Může to být způsobeno tím, jak se detekuje tzv. blind SQLi (kdy se výsledek útoku nikde nezobrazuje), jak tyto nástroje nahrávají binární spustitelné programy, IPS signaturami, které možná detekuje jen jeden nebo druhý nástroj, nebo jak tyto nástroje pracují s cookie. Různých proměnných je opravdu hodně a je prozíravé si vždy dvakrát zkontrolovat svou práci. Veškerou funkcionalitu nástroje Sqlninja zobrazíte parametrem -h, který zobrazí kompletní nápovědu:

Obrázek 33. Stránka s nápovědou pro Sqlninja. Jediná potíž, kterou jsem měl s tímto nástrojem, spočívá v jeho konfiguračním souboru – jeho příprava je poněkud obtížná a mě navíc nikdy nebavilo studovat dokumentaci. Takže v této sekci pro snazší pochopení uvedu dva příklady, které budou podobné výše uvedeným příkladům z SQLmap. V Sqlninja je třeba definovat zranitelnou proměnnou, kterou injektujete příkazem __SQL2INJECT__. To je rozdíl oproti SQLmap, kde není nutné specifikovat, proti kterému poli provádíte testování. (Jakmile si předvedeme několik ukázkových příkladů, měli by se vám věci jevit o něco jasněji.) Předtím, než můžeme nástroj Sqlninja použít, je potřeba vytvořit konfigurační SQL soubor. Ten bude obsahovat veškeré informace o URL, typ HTTP metody, cookie relace a agenty prohlížeče.

8

http://sqlninja.sourceforge.net/


HACKING

praktickĂ˝ prĹŻvodce penetraÄ?nĂ­m testovĂĄnĂ­m PřímoÄ?arĂ˝ a praktickĂ˝ přístup k penetraÄ?nĂ­mu testovĂĄnĂ­. Příprava ĂştoÄ?Ă­cĂ­ch hostitelĹŻ. InternĂ­ a externĂ­ aktivnĂ­ odposlech. Postupy pro konfiguraci vzdĂĄlenĂ˝ch ĂştokĹŻ. PenetraÄ?nĂ­ testovĂĄnĂ­ webovĂŠ aplikace. VyuĹžitĂ­ zranitelnosti typu SQL injection, XSS a CSRF. Posuny po sĂ­ti potĂŠ, co jste pronikli do nÄ›jakĂŠho systĂŠmu. Phishing. PasivnĂ­ a aktivnĂ­ Ăştoky. BezdrĂĄtovĂĄ exploitace. FyzickĂŠ penetraÄ?nĂ­ testy. ObchĂĄzenĂ­ antivirovĂŠ ochrany. ProlamovĂĄnĂ­ hesel. VyhledĂĄvĂĄnĂ­ zranitelností‌ Tohle vĹĄechno je jen drobnĂĄ ochutnĂĄvka z atraktivnĂ­ho obsahu, kterĂ˝ naleznete v tĂŠto knize. JejĂ­m autorem je bezpeÄ?nostnĂ­ vĂ˝zkumnĂ­k Peter Kim, kterĂ˝ v souÄ?asnĂŠ dobÄ› pracuje jako Ĺ™editel/prezident spoleÄ?nosti Secure Planet, LLC, kterĂĄ se zaměřuje na penetraÄ?nĂ­ testovĂĄnĂ­ IT systĂŠmĹŻ. Z obsahu knihy vybĂ­rĂĄme:  NastavenĂ­ prostĹ™edĂ­  SkenovĂĄnĂ­ sĂ­tÄ›  Exploitace nĂĄlezĹŻ ze skeneru  Exploitace webovĂ˝ch zranitelnostĂ­  Posuny po sĂ­ti

slevy, akce,

novinky

    

Zoner inShop Je modernĂ­ a profesionĂĄlnĂ­ LQWHUQHWRYÂż REFKRG QD Ă?HVNÂŤP WUKX MLĤ RG URNX - jednoduchĂ˝ a velmi intuitivnĂ­ - responzivnĂ­ design SURSRMHQÂŻ V ÂźĂ?HWQÂŻPL V\VWÂŤP\ PXOWLMD]\Ă?QRVW RQOLQH SODWE\ - SEO PDUNHWLQJRYÂŤ QÂŁVWURMH ]DEH]SHĂ?HQÂŻ +7736 VRFLÂŁOQÂŻ VÂŻWĂ™

SociĂĄlnĂ­ inĹženĂ˝rstvĂ­ Ăštoky vyĹžadujĂ­cĂ­ fyzickĂ˝ přístup Jak se vyhnout antivirovĂŠ ochranÄ› ProlamovĂĄnĂ­ hesel, exploity, triky ZĂĄvÄ›reÄ?nĂŠ zprĂĄvy

Nechejte nåm kontakt na novinky.zonerpress.cz a získåte dalťí bonusy, slevy a jinÊ výhody.

24/7

]ÂŁND]QLFNÂŁ SRGSRUD

www.inShop.cz Š dollarphotoclub.com (64786534)

Z nabĂ­dky vydavatelstvĂ­ Zoner Press

DOPORUÄŒENĂ Ă CENA: 289 KÄŒ KATALOGOVÉ ÄŒĂ?SLO: ZRK1423

ISBN 978-80-7413-313-8 80-7413-313-8

Z O N E R

P R E S S

HACKING praktickĂ˝ prĹŻvodce penetraÄ?nĂ­m testovĂĄnĂ­m

Peter Kim

Peter Kim

testovĂĄnĂ­m HACKING – praktickĂ˝ prĹŻvodce penetraÄ?nĂ­m tes

E N C Y K L O P E D I E

Zoner Press

tel.: 532Â 190Â 883 e-mail: knihy@zoner.cz www.zonerpress.cz ZONER software, a.s., NovĂŠ sady 18, 602Â 00 Brno

9 7 8 8 0 7 4 Â 1 3 3 1 3 8

Peter Kim


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.