Exploitace zranitelností. Obsah



Podobné dokumenty
ISU Cvičení 7. Marta Čudová

Vulnerabilities - Zranitelnosti

8. Laboratoř: Aritmetika a řídicí struktury programu

Tvar dat a nástroj přeskupování

ČÁST 1. Základy 32bitového programování ve Windows

Připojení systémů CNC 8x9 DUAL do sítí pomocí protokolu TCP/IP (Platí od verze panelu 40.31)

František Hudek. červen ročník

DUM 06 téma: Tvorba makra pomocí VBA

Petr Krajča. 26. říjen, 2012

Vložení expiračního kódu do spojů ALCOMA

Možnosti využití Windows Server 2003

Čísla, reprezentace, zjednodušené výpočty

NÁVOD K POUŽITÍ. IP kamerový systém.

Střední odborná škola a Střední odborné učiliště, Hořovice

ISU Cvičení 2. Marta Čudová

Čísla, reprezentace, zjednodušené výpočty

Penetrační test & bezpečnostní audit: Co mají společného? V čem se liší?

Analýza síťového provozu. Ing. Dominik Breitenbacher Mgr. Radim Janča

NÁVOD PRO PŘIPOJENÍ NA FTP SERVER PRO PŘENOS TISKOVÝCH DAT

Strojový kód. Instrukce počítače

František Hudek. duben ročník

Struktura programu v době běhu

Systém adresace paměti

IMTEE Přednáška č. 8. interrupt vector table CPU při vzniku přerušení skáče na pevně dané místo v paměti (obvykle začátek CODE seg.

Lineární datové struktury

ISU Cvičení 3. Marta Čudová

ANALÝZA MALWARE V PAMĚTI POČÍTAČE. Vašek Lorenc

Pochvalná vyjádření k prvnímu vydání Hacking umění exploitace

František Hudek. duben 2013

Rozklad na prvočinitele. 3. prosince 2010

Programovací software ConfigTool. Základní obsluha a postup připojení k zařízení přes USB a GPRS. Verze 2.00

POSTUP PŘIPOJENÍ POKLADNÍ TISKÁRNY PRO PRÁCI S ABRA GEN SPUŠTĚNOU NA VZDÁLENÉ PLOŠE

Reinstalace programu Poslední aktualizace

NÁVOD K POUŽITÍ. IP kamerový systém.

Opakování programování

Uživatelská příručka k portálu Společnost pro kvalitu školy, o.s. část druhá. administrace testování na portálu

Obsah. Kapitola 1. Předmluva 11 O této knize 13 Konvence...13

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

java remote method invocation Kateřina Fricková, Matouš Jandek

Vytvoření bootovatelného média

Analýza malware v paměti počítače. Vašek Lorenc

Procesor z pohledu programátora

Vložení expiračního kódu do spojů ALCOMA

Jazyk symbolických adres

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-302

MS WINDOWS II. Jádro. Správa objektů. Správa procesů. Zabezpečení. Správa paměti

Instalace Microsoft SQL serveru 2012 Express

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

REbejs. 1. workshop (draft0)

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Úvod do Web Services

3MA481 Propojení Accessu a Excelu David Hach

Implementace systémů HIPS: historie a současnost. Martin Dráb

Programujeme v softwaru Statistica - příklady

Uživatelský manuál. KNX232e / KNX232e1k

17. července :51 z moravec@yahoo.com

Nastavení programu pro práci v síti

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Comenius Logo. Úterý 20. března. Princip programování. Prostředí Comenius Logo

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Semestální práce z předmětu PC

Základní způsoby: -Statické (přidělění paměti v čase překladu) -Dynamické (přiděleno v run time) v zásobníku na haldě

Komunikační protokol

Operační systémy. Přednáška 8: Správa paměti II

Struktura a architektura počítačů (BI-SAP) 7

Paralelní programování

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

APS Control Panel. Ovládací panel systému APS mini Plus pro SW balík APS Administrator. Uživatelská příručka

tohoto systému. Můžeme propojit Mathcad s dalšími aplikacemi, jako je Excel, MATLAB, Axum, nebo dokumenty jedné aplikace navzájem.

Gabriela Janská. Středočeský vzdělávací institut akademie J. A. Komenského

Ladění ovladačů pomocí virtuálního stroje...2 Úvod...2 Ladění ovladačů pomocí dvou fyzických počítačů...2 Ladění ovladačů pomocí jednoho fyzického

Uživatelský manuál. KNXgw232

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

PB169 Operační systémy a sítě

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Digitalizace dat metodika

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Správné vytvoření a otevření textového souboru pro čtení a zápis představuje

3. Počítačové systémy

Úvod do informačních služeb Internetu

09. Memory management. ZOS 2006, L.Pešička

NÁVOD K POUŽITÍ. IP kamerový systém.

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 8

JAK NASTAVIT SLUŽBU HIK-CONNECT PRO ZAŘÍZENÍ HIKVISION

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Profilová část maturitní zkoušky 2014/2015

Program slouží k provozní evidenci chemických látek, směsí, archivaci bezpečnostních listů a tvorbě rychlých přehledů.

Úvod do Unixu. man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp. pwd: vypíše cestu k aktuální pozici

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY

Zabezpečení organizace v pohybu

Popis instrukční sady procesoru ADOP

Grandstream GXV3175v2 - Jak jej nastavit s 2N Helios IP?

Comenius Logo. Princip programování. Prostředí Comenius Logo

Základy programování (IZP)

Transkript:

Obsah 1 Úvod... 4 1.1 Lockdown a hackerlab...4 1.2 Vaše ochrana... 4 2 Exploit... 5 2.1 Typy exploitů...5 3 Zranitelnost FTP serveru Cesar...5 3.1 Fuzzer ftp-fuzzer.py...5 3.1.1 Spuštění fuzzeru...7 4 Immunity Debugger...8 4.1 Otevření a připojení programu...8 4.1.1 Kódový segment...9 4.1.2 Registry... 10 4.1.3 Paměť programu...11 4.2 Užitečné příkazy a zkratky...11 4.2.1 Bod přerušení (Brakepoint)...11 4.3 Analýza působení fuzzeru...12 4.3.1 Skript pro debugování...13 4.3.2 Reprezentace znaků v paměti (ASCII tabulka)...13 4.3.3 Kostra exploitu (Skeleton exploit)...15 5 Zásobník (Stack)... 19 5.1 Organizace zásobníku v paměti...19 5.2 Zarovnání zásobníku...20 5.3 Práce se zásobníkem...20 5.3.1 Instrukce pop a push...20 5.3.2 Instrukce call a návratová adresa...20 5.3.3 Instrukce ret...21 5.4 Prolog funkce a zásobníkový rámec...22 5.5 Epilog funkce... 23 6 Přívěšek (Payload)...24 6.1 Jak na shellcode...24 6.2 Nástrahy a omezení přívěšků...24 6.2.1 Kódování... 24 6.2.2 Špatné znaky...25 6.2.3 Odhalujeme špatné znaky...25 6.2.4 Zbylé místo pro přívěšek...26 6.2.5 Skok na přívěšek...27 Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu. 2

7 Generujeme shellcode...30 7.1 Metasploit framework...30 7.2 Nejmenší shellcode...30 7.2.1 Integrace shellkódu do skriptu...32 8 Zranitelná funkce (Buffer overflow)...33 8.1 Program v jazyce C...33 8.1.1 Překlad programu (Dev-C++)...34 8.1.2 Spuštění programu...35 8.1.3 Trasování v debugeru...36 9 Závěr... 38 10 Příloha A rozložení paměti procesu...38 Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu. 3

1 Úvod Vítejte v hackerlabu. Tento výukový materiál slouží studentům jako pracovní sešit, který využijete během kurzu jako referenční příručku. 1.1 Lockdown a hackerlab Na trhu působíme od roku 2013 se zaměřením na penetrační testování a bezpečnost dat. Dále provozujeme školící a konzultační činnost. Více informací naleznete na našem webu www.lockdown.cz. Pro školící aktivity máme projekt hackerlab. Přehled aktuálních hacking kurzů naleznete na stránkách www.hackerlab.cz. 1.2 Vaše ochrana Získané znalosti z kurzu etického hackingu můžete aplikovat jen na systémech, které přímo vlastníte (případně s písemným souhlasem jejich vlastníka). V opačném případě Vás i dobrý úmysl může přivést do nepříjemné situace. Úmyslné překonání i velmi triviální obrany může být posuzováno za trestný čin. Každá interakce na síti také zanechává v systému nějakou stopu. Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu. 4

2 Exploit Exploit je krátký program, který využívá specifickou zranitelnost jiného programu, aby získal kontrolu nad programem nebo práva uživatele, pod kterým byl program spuštěn. Zranitelnosti se objevují analýzou zdrojového kódu (zdrojový kód je k dispozici) reverzujeme binární kód a analyzujeme instrukce testování vstupů aplikace (fuzzing) 2.1 Typy exploitů Exploity dělíme z hlediska použití na vzdálené (remote) exploitujeme vzdáleně po síti (nebo přes lokální IP adresu), lokální (local) exploitujeme přímo na stroji (vyžaduje OS účet), zpravidla se jedná o exploity, které eskalují práva na systémového administrátora. 3 Zranitelnost FTP serveru Cesar Pokusíme se exploitovat zranitelnost CVE-2006-2961 FTP serveru Cesar ve verzi 0.99. Zranitelnost přetečení zásobníku (buffer overflow) se nachází ve FTP příkazu MKD. http://www.securityfocus.com/bid/18586/discuss 3.1 Fuzzer ftp-fuzzer.py Fuzzer je nástroj pro fuzzy testování, kdy posíláme na vstupu programu záměrně špatná nebo částečně správná data. Napíšeme si svůj první fuzzer v jazyce Python a otestujeme, zda je skutečně FTP server zranitelný. Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu. 5

8.1.3 Trasování v debugeru Prohlédneme si stav zásobníku v Immunity Debugeru. Otevřeme program buff.exe a v poli arguments zadáme parametr AAAA. Podle informačních tisků v našem programu nalezneme funkci main() a naší zranitelnou funkci tiskni_zpravu(). Nyní vytvoříme bod přerušení klávesou (F2) ve funkci tiskni_zpravu a to na adrese, kde se nachází volání funkce strcpy(). V našem případě je to adresa 0x004012F9. Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu. 36

Spustíme program klávesou (F9), který se znovu zastaví na bodu přerušení, poznamenáme si stav zásobníku před voláním funkce strcpy (obrázek vlevo), provedeme volání funkce klávesou (F8) a srovnáme znovu zásobník (obrázek vpravo). Vidíme, že část paměti zásobníku byla přepsána znaky 'A' (41 hex) a to od adresy 0x0022FF54 až do adresy 0x0022FF8C. Podíváme se nyní na stav registrů, registr EBP ukazuje na adresu 0x0022FF58, která je také přepsána znaky 'A'. Z předešlého výkladu o struktuře zásobníku víme, že na adrese EBP+4 (0x0022FF5C) bude program očekávat návratovou adresu, kterou nahraje do registru EIP po ukončení volání funkce pomocí instrukce RET. K čemuž také dojde, pokud budeme pokračovat v programu stiskem klávesy F9. Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu. 37

9 Závěr Seznámili jsme se s Immunity Debugerem a se základy exploitace zranitelnosti typu přetečení zásobníku na platformě Windows (bez překonání pokročilých ochran). Pokud jste objevili další otázky nebo souvislosti, nezapomeňte se o ně podělit a navštivte naše diskusní fórum http://forum.hackerlab.cz. Věříme, že se vám kurz líbil, a budeme se těšit na další setkání. 10 Příloha A rozložení paměti procesu Petr Juhaňák, lockdown 2013 - Všechna práva vyhrazena, určeno pouze pro osobní potřebu. 38