Bootkity v teorii a praxi. Martin Dráb martin.drab@email.cz Http://www.jadro-windows.cz



Podobné dokumenty
Téma 1: Bitová kopie systému. Téma 1: Bitová kopie systému

Konfigurace Windows 7

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Implementace systémů HIPS: ve znamení 64bitových platforem. Martin Dráb

Zranitelnosti ovladačů jádra v praxi Martin Dráb martin.drab@ .cz

Činnost počítače po zapnutí

Desktop systémy Microsoft Windows

Základní programové vybavení počítače

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

XPE91B Windows XP Embedded pro jednotku AP9NW800L0G1

Informační Systém pro Psychiatrii HIPPO

Lekce 7 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Operační systémy (OS)

DUM 11 téma: Úvod do příkazové řádky

Přístup k poště MS Office 365 mají pouze studenti 1. a 2. ročníku EkF prezenčního studia. Přístup k ostatním službám mají všichni studenti.

Přidělování paměti I Mgr. Josef Horálek

Témata profilové maturitní zkoušky

Zálohování v MS Windows 10

PRINCIPY OPERAČNÍCH SYSTÉMŮ

INSTALAČNÍ MANUÁL. TME gadget

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

UniLog-D. v1.01 návod k obsluze software. Strana 1

Stavba operačního systému

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT VY_32_INOVACE_04_ICT_ZIT57PL_Hardware

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

Nahrávání image flash do jednotek APT81xx, PPC81xx

I n f o r m a t i k a a v ý p o č e t n í t e c h n i k a. Operační systém

Obsah. Kapitola 1. Kapitola 2 KAPITOLA 3. Úvod 9

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

Metody připojování periferií BI-MPP Přednáška 2

P D S - 5 P. Psychologický diagnostický systém. Instalační manuál. Popis instalace a odinstalace programu Popis instalace USB driverů

Ukazky Zdroje:... 17

Souborové systémy. Architektura disku

Logická organizace paměti Josef Horálek

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Služby, Registr Služby, Registr Procesy, BCD Pro, Událo cesy, BCD sti, Událo

Správa stanic a uživatelského desktopu

Ovladače pro Windows. Ovladače Windows A4M38KRP. Str. 1

BIOS. Autor: Bc. Miroslav Světlík

Systém adresace paměti

Embedded Linux a možnosti zrychlení startu zařízení

ŘÍZENÍ AUTOMATICKÉ KOTELNY ESRAK 02.3

Pár odpovědí jsem nenašla nikde, a tak jsem je logicky odvodila, a nebo jsem ponechala odpověď z pefky, proto je možné, že někde bude chyba.

Motorola Phone Tools. Začínáme

2.2 Acronis True Image 19

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

Zapnutí a vypnutí počítače

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina

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)

!! UPOZORNĚNÍ!! Po nainstalování programu nezapomeňte instalovat Sestavy a Aktualizaci!! Pokyny k instalaci

Operační systém. Mgr. Renáta Rellová. Výukový materiál zpracován v rámci projektu EU peníze školám

František Hudek. únor ročník

b) červená, zelená, modrá, c) černá, bílá, d) černá, bílá, šedá. 5. PNG je formát: a) textový,

KRONOS GUARD NET Obslužný software pro obchůzkový systém v reálném čase Active Guard. Instalace na pobočky

Obslužný software. PAP ISO 9001

Téma 12: Správa diskových jednotek a system souborů. Téma 12: Správa diskových jednotek a systémů souborů

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

Souborové systémy a logická struktura dat (principy, porovnání, příklady).

Satori. Uživatelský manuál

S ovladačem do jádra! Martin Dráb

Instalace, zálohování a obnova systému založeného na Windows XP embedded

A4300BDL. Ref: JC

ZOS OPAKOVÁNÍ. L. Pešička

NASTAVENÍ PROGRAMU EVIDENCE AUTOBAZARU PRO OS VISTA, WIN7 a WIN8 LOKÁLNÍ INSTALACE (PRO 1 POČÍTAČ)

Uživatelský manuál A4000BDL

Programové vybavení počítačů operační systémy

OPERAČNÍ SYSTÉM. Informační a komunikační technologie

Operační systémy 2. Přednáška číslo 2. Přidělování paměti

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE

1. Úvod. 2. CryptoPlus jak začít. 2.1 HW a SW předpoklady. 2.2 Licenční ujednání a omezení. 2.3 Jazyková podpora. Požadavky na HW.

Základní pojmy informačních technologií

Paměťový podsystém počítače

INSTALACE SOFTWARE PROID+ NA MS WINDOWS

Služba ve Windows. Služba (service) je program

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

Základní typy struktur výpočetních systémů

edice Windows 10 je pro vás nejvhodnější? Firemní prostředí Kancelářské a uživatelské prostředí Správa a nasazení Home Pro Enterprise Education

Tomáš Borland Valenta

2.1 Obecné parametry Obecné parametry Rack serveru

Téma 10: Správa hardwarových zařízení a ovladačů II

úvod Historie operačních systémů

Monitorovací systém Dozorce

Digitální učební materiál

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Informatika 5.ročník

Název DUM: VY_32_INOVACE_2B_9_Software_-_základní_programové_vybavení_počítače

Číslo a název šablony III/2 Inovace a zkvalitnění výuky prostřednictvím ICT H/01 Kuchař - Číšník. IKT Informační a komunikační technologie

Přidělování zdrojů (prostředků)

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

Instalace OS, nastavení systému

Aktualizace softwaru Uživatelská příručka

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

LINUX - INSTALACE & KONFIGURACE

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Informatika 5.ročník

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

VY_32_INOVACE_INF.08. Microsoft Windows II.

Emulátory. Autor: Martin Fiala. Spouštění programů a her z jiných OS nebo jiných platforem. InstallFest

Prostředí pro výuku vývoje PCI ovladačů do operačního systému GNU/Linux

Transkript:

Bootkity v teorii a praxi Martin Dráb martin.drab@email.cz Http://www.jadro-windows.cz

Definice Pod pojmem bootkit budeme rozumět software, který začíná být aktivní během procesu startu počítače ještě před zavedením operačního systému. Cílem této přednášky je ukázat, jakým způsobem může bootkit přežít zavedení operačního systému až do doby, kdy se může začít chovat jako standardní ovladač. Zajímá nás hlavně bootování s podporou BIOSu, (U)EFI ponecháme stranou.

Obsah Struktura (pevného) disku Důležité entity z pohledu startu Windows Implementace bootkitu Praktická ukázka

Struktura disku MBR = Master Boot Record VBR = Volume Boot Record Volné místo se obvykle nachází mezi MBR a prvním oddílem, mezi oddíly a na konci disku. To je pro bootkity velmi důležitá skutečnost

Master Boot Record Cíl: najít oddíl, ze kterého má být spuštěn operační systém, a předat mu řízení Velikost: 512 B (Windows) Prostředí: 16bitové (reálný režim procesoru) Obsah: kód, chybové hlášký, 64 B tabulka oddílů (16 B na každý), 2 B značka konce Umístění: první sektor disku Další funkce: řadič klávesnice, TPM

Volume Boot Record Cíl: najít, načíst a spustit bootmgr Velikost: 512 B 4 KB Prostředí: 16bitové (reálný režim procesoru) Obsah: kód, důležité informace pro souborový systém Umístění: první sektory oddílu Konkrétní podoba VBR závisí na souborovém systému, kterým je oddíl formátován

Bootmgr Cíl: dostat se do 64bitového režimu a předat štafetu programu winload.exe Velikost: stovky KB Prostředí: 16bitové, 32bitové, 64bitové Obsah: kód a data (startup.com + bootmgr.exe) Umístění: kořenový adresář aktivního oddílu. Nesmí být komprimován či šifrován.

Winload.exe Cíl: načíst hlavní modul jádra a ovladače, které budou v rámci startu OS potřeba Velikost: stovky kilobajtů Obsah: standardní PE soubor Prostředí: 64bitové Stejně jako bootmgr čte a chová se podle konfigurace uložené v BCD.

Ntoskrnl.exe & Win32k.sys Ntoskrnl.exe Implementuje většinu mechanismů, bez kterých se žádný větší OS neobejde (VM, plánování, komunikace s HW, synchronizace, obsluha přerušení) Win32k.sys Stará se o grafickou stránku celé věci (ne logo a texty zobrazované během bootování) Inicializuje se až těsně před zobrazením modré přihlašovací obrazovky Uvádím jej zde hlavně proto, že v implementaci mého bootkitu hraje významnou roli

Implementace bootkitu

Uložení na disku Data bootkitu MBR (512 B) Loader (512 B) Driver (lehce nestandardní PE soubor)

Algoritmus přežití Vykonat či emulovat chování originálního MBR Monitorovat data čtená z disku Při detekci, že se načítá bootmgr, winload.exe či ntoskrnl.exe tyto soubory příslušně modifikovat Počkat, dokud není jádro (hlavně ntoskrnl.exe) plně inicializováno Spustit svůj ovladač, kvůli kterému se celá maškaráda provádí

Master Boot Record Relokace Modifikovat adresu vektoru 13h, takže se bootkit dozví o každé diskové operaci Načíst Loader Detekovat, že byl o dokončeno čtení souboru bootmgr a zkopírovat do něj sekci Bootmgr I Spustit originální MBR

Bootmgr Bootmgr se nachází na známé a pevné fyzické adrese Sekce Bootmgr I je vykonána v 16bitovém režimu v momentě, kdy je bootmgr.exe již dekódován. Předá řízení sekci Bootmgr II. Bootmgr II zajistí přesměrování na Bootmgr III v čase, kdy se již bude winload.exe nacházet v paměti (řčekání na winload) Bootmgr III najde v paměti winload.exe a přesměruje funkci OslArchTransferToKernel na sekci Winload (přežití změny režimu)

Winload Konečně 64bitové prostředí Kód je vyvolán těsně před rutinou OslArchTransferToKernel, v jednom z registrů je adresa KiSystemStartup z ntoskrnl.exe Nalezena adresa počátku ntoskrnl.exe Předáno řízení sekci Winload komponenty Loader Do MBR se mi ten kód už nevešel Stále není zapnuto stránkování Bylo vypnuto v sekci Bootmgr III

Loader Winload Překopíruje sekci Kernel do mezery mezi sekcemi namapovaného souboru ntoskrnl.exe Opraví adresy rutin používané v rámci sekce Kernel Modifikuje PsEstablishWin32Callouts, aby předala řízení sekci Kernel Kernel Alokuje paměť a načte do ní komponentu Driver Spustí rutinu DriverEntry

Mapování PE souborů

Driver Omezení Lze použít pouze funkcí z ntoskrnl.exe Jádro jej nereprezentuje objektem Driver (DRIVER_OBJECT), neb o něm neví Postup Případně je tedy nutné si objekt Driver vytvořit sám (nedokumentováno) Provést relokace Nalézt adresy funkcí, které importrtuje Provést libovolný kód

Problémy a zajímavosti Neexistuje mnoho dokumentace http://fyyre.ivory-tower.de Zeptat se na fóru => budou si myslet, že jste původce všeho zla WinDbg lze použít nejdříve v bootmgr Lze použít IDA s Bochs pluginem Závislost na aktualizacích a signaturách Závislost na rozložení oddílů na disku V MBR je opravdu, ale opravdu málo místa

Instalace Postup Načíst ntoskrnl.exe a zjistit offesty funkcí, které budou potřeba v rámci sekce Kernel komponenty Loader Načíst komponentu Driver Načíst originální MBR Zapsat vše na disk

Vylepšení přenositelnosti Najít signatury v bootmgr a winload.exe platné pro více platforem Nepoužívat pevné offsety v bootmgr, ale signatury platné pro více platforem Vyhledávat offsety funkcí ntoskrnl.exe na lepším místě, než je instalace bootkitu Při instalaci automaticky najít volné místo o dostatečné rozloze, neumisťovat kód jen před první sektor. Upravit MBR dle umístění dalších komponent Prozkoumat Windows XP/Server 2003/8

??? E-mail: martin.drab@email.cz ICQ: 332970040 Jabber: vrtule@jabber.cz WWW: http://www..jadro-windows.cz

Závěr