SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Analýza hlavního zaváděcího
sektoru a bootovacího procesu
Windows 8.1
Martin Dráb
martin.drab@email.cz
Http://www.jadro-windows.cz
Obsah přednášky
● Základní pojmy
● Struktura MBR
● Kód MBR
● Průběh bootování
● …
Platné převážně od Windows Vista
Struktura (peného) disku
● Rozdělen na sektory (obvykle 512 B)
● FS většinou pracují s clustery (4 KB) (alokační
jednotky)
Struktura MBR
● 512 bajtů celkem
● 355 bajtů užitečného kódu (70 %)
● 85 bajtů chybových hlášek (15 %)
● 4 bajty na ID disku (1 %)
● 2 bajty neznámé funkce (0,5 %)
● 4*16 bajtů na tabulku oddílů (13 %)
● 2 bajty na značku konce (0x55 0xAA) (0,5 %)
ID disku
● 4bajtové číslo jedinečně identifikující disk v
rámci systému.
● HKLMSYSTEMMountedDevices, hodnoty
DosDevicesX:
– 12bajtová data
– 4 bajty identifikují disk (ID)
– 8 bajtů udává pozici prvního bajtu oddílu
mapovaného pod písmenem X
Záznam o oddílu
Offset Velikost Popis
0 1 Příznaky
0x80 = aktivní (bootovatelný)
0x00 = neaktivní
1 3 CHS adresa prvního sektoru
4 1 Typ/souborový systém (hint)
0x07 = NTFS
0x06 = FAT
0x0C = FAT32
0x07 = exFAT
0x0F = extended
5 3 CHS adresa posledního sektoru
8 4 LBA prvního sektoru
12 4 Délka oddílu, v sektorech
CHS
LBA
Tabulka oddílů a vlastnosti disku
Běhové prostředí
4bajtové adresy
– Segment (2 bajty) – obvykle zadán implicitně
– Offset (2 bajty)
– 16 * Segment + Offset = Fyzická adresa
● Příklad shodných adres:
– 0x0000:0x7C00
– 0x07C0:0x0000
– 0x0700:0x0C00
● „služby OS“ přes přerušení
– INT 0x10 – obrazovka
– INT 0x13 – práce s diskem
– INT 0x18 – restart počítače
– ...
Struktura kódu MBR
● Kopírování MBR (relokace)
● Hledání aktivního oddílu
● Čtení VBR
● 8042 controller
● TPM
● Předání řízení na první bajt VBR
Kopírování
● MBR načten na adresu 0x0000:0x7C00
● Na stejné adrese by měl být spuštěn i VBR
– Disk nemusí vůbec obsahovat MBR
– Transparentnost
● Proto:
– celý obsah MBR překopírován na adresu
0x0000:0x0600
– a spuštěn.
Hledání aktivního oddílu
● Postupné zkoumání (primárních) oddílů
● Rozhoduje se podle hodnoty prvního bajtu
(příznaky):
– 0x00 = neaktivní oddíl, hledání pokračuje,
– 0x80 = aktivní oddíl, hledání končí, začíná práce s
diskem,
– Jiná hodnota = neplatný oddíl, chyba „Invalid
partition table“,
– žádný oddíl není aktivní = předání řízení firmwaru
(reboot, nebo nic)
Čtení VBR
● Detekce, zda disk podporuje LBA
● ANO = pokus o čtení VBR přes LBA, v případě
chyby se pokračuje dalším bodem
● NE = pokus o čtení přes CHS
● Pokud chyba, reset disku a nový pokus
● Maximálně pět pokusů
● Chyba „Error loading operating system“
● INT 0x13
8042 Controller
● Nepovinné
● Ovládá
– Klávesnici (PS/2)
– Myš (PS/2)
– Pin A20, restart stroje
● MBR
– Povolí A20
– Povolí přerušení generovaná klávesnicí (stisk či
uvolnění klávesy)
TPM
● Nepovinné
● Speciální HW modul dovolující provádět
kryptografické operace
● Přístupný přes přerušení 0x1A
● MBR jej používá k výpočtu hashe obsahu VBR
– Z výsledku nedělá žádné závěry
Volume Boot Record (VBR)
● 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
Boot loader (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 a ntoskrnl
● Winload.exe
– Cíl: načíst hlavní modul jádra a ovladače, které
budou v rámci startu OS potřeba
– Obsah: standardní PE soubor
– Stejně jako bootmgr čte a chová se podle
konfigurace uložené v BCD.
● 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í)
???
Martin Dráb
Email: martin.drab@email.cz
● Jabber: vrtule@jabber.cz
ICQ: 332970040
WWW: http://www.jadro-windows.cz

Weitere ähnliche Inhalte

Mehr von Security Session

Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...Security Session
 
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...Security Session
 
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Security Session
 
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]Security Session
 
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]Security Session
 
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Security Session
 
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...Security Session
 
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]Security Session
 
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...Security Session
 
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]Security Session
 
Exploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan KopeckýExploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan KopeckýSecurity Session
 
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin DrábKontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin DrábSecurity Session
 
Research in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin DrahanskýResearch in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin DrahanskýSecurity Session
 
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan ČernockýDolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan ČernockýSecurity Session
 
Co se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel MinaříkCo se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel MinaříkSecurity Session
 
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - 	Pavel TáborskýJak odesílat zprávy, když někdo vypne Internet - 	Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - Pavel TáborskýSecurity Session
 
Two Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal AmbrožTwo Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal AmbrožSecurity Session
 

Mehr von Security Session (20)

Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
Getting your hands dirty: How to Analyze the Behavior of Malware Traffic / SE...
 
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
Základy reverse engineeringu a assembleru / KAREL LEJSKA, MILAN BARTOŠ [DEFEN...
 
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
Zabezpečení nejen SSH na serveru pomocí Fail2Ban a jednoduchého honeypotu. / ...
 
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
Insights of a brute-forcing botnet / VERONICA VALEROS [CISCO]
 
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
Softwarove protektory / KAREL LEJSKA, MILAN BARTOŠ [DEFENDIO]
 
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
Wintel Hell: průvodce devíti kruhy Dantova technologického pekla / MARTIN HRO...
 
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
Robots against robots: How a Machine Learning IDS detected a novel Linux Botn...
 
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
#ochranadat pred sebou samotným / MATEJ ZACHAR [SAFETICA TECHNOLOGIES S.R.O.]
 
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
Co vše skrývá síťový provoz a jak detekovat kybernetické hrozby? / MARTIN ŠKO...
 
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
Bezpečnější pošta díky protokolu DANE / ONDŘEJ CALETKA [CESNET]
 
Prezentace brno
Prezentace brnoPrezentace brno
Prezentace brno
 
OSINT and beyond
OSINT and beyondOSINT and beyond
OSINT and beyond
 
Exploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan KopeckýExploitace – od minulosti po současnost - Jan Kopecký
Exploitace – od minulosti po současnost - Jan Kopecký
 
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin DrábKontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
Kontrola uživatelských účtů ve Windows a jak ji obejít - Martin Dráb
 
Research in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin DrahanskýResearch in Liveness Detection - Martin Drahanský
Research in Liveness Detection - Martin Drahanský
 
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan ČernockýDolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
Dolování dat z řeči pro bezpečnostní aplikace - Jan Černocký
 
Turris - Robert Šefr
Turris - Robert ŠefrTurris - Robert Šefr
Turris - Robert Šefr
 
Co se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel MinaříkCo se skrývá v datovém provozu? - Pavel Minařík
Co se skrývá v datovém provozu? - Pavel Minařík
 
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - 	Pavel TáborskýJak odesílat zprávy, když někdo vypne Internet - 	Pavel Táborský
Jak odesílat zprávy, když někdo vypne Internet - Pavel Táborský
 
Two Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal AmbrožTwo Years with botnet Asprox - Michal Ambrož
Two Years with botnet Asprox - Michal Ambrož
 

Analýza zaváděcího sektoru a procesu bootování Windows 8.1

  • 1. Analýza hlavního zaváděcího sektoru a bootovacího procesu Windows 8.1 Martin Dráb martin.drab@email.cz Http://www.jadro-windows.cz
  • 2. Obsah přednášky ● Základní pojmy ● Struktura MBR ● Kód MBR ● Průběh bootování ● … Platné převážně od Windows Vista
  • 3. Struktura (peného) disku ● Rozdělen na sektory (obvykle 512 B) ● FS většinou pracují s clustery (4 KB) (alokační jednotky)
  • 4. Struktura MBR ● 512 bajtů celkem ● 355 bajtů užitečného kódu (70 %) ● 85 bajtů chybových hlášek (15 %) ● 4 bajty na ID disku (1 %) ● 2 bajty neznámé funkce (0,5 %) ● 4*16 bajtů na tabulku oddílů (13 %) ● 2 bajty na značku konce (0x55 0xAA) (0,5 %)
  • 5. ID disku ● 4bajtové číslo jedinečně identifikující disk v rámci systému. ● HKLMSYSTEMMountedDevices, hodnoty DosDevicesX: – 12bajtová data – 4 bajty identifikují disk (ID) – 8 bajtů udává pozici prvního bajtu oddílu mapovaného pod písmenem X
  • 6. Záznam o oddílu Offset Velikost Popis 0 1 Příznaky 0x80 = aktivní (bootovatelný) 0x00 = neaktivní 1 3 CHS adresa prvního sektoru 4 1 Typ/souborový systém (hint) 0x07 = NTFS 0x06 = FAT 0x0C = FAT32 0x07 = exFAT 0x0F = extended 5 3 CHS adresa posledního sektoru 8 4 LBA prvního sektoru 12 4 Délka oddílu, v sektorech
  • 7. CHS
  • 8. LBA
  • 9. Tabulka oddílů a vlastnosti disku
  • 10. Běhové prostředí 4bajtové adresy – Segment (2 bajty) – obvykle zadán implicitně – Offset (2 bajty) – 16 * Segment + Offset = Fyzická adresa ● Příklad shodných adres: – 0x0000:0x7C00 – 0x07C0:0x0000 – 0x0700:0x0C00 ● „služby OS“ přes přerušení – INT 0x10 – obrazovka – INT 0x13 – práce s diskem – INT 0x18 – restart počítače – ...
  • 11. Struktura kódu MBR ● Kopírování MBR (relokace) ● Hledání aktivního oddílu ● Čtení VBR ● 8042 controller ● TPM ● Předání řízení na první bajt VBR
  • 12. Kopírování ● MBR načten na adresu 0x0000:0x7C00 ● Na stejné adrese by měl být spuštěn i VBR – Disk nemusí vůbec obsahovat MBR – Transparentnost ● Proto: – celý obsah MBR překopírován na adresu 0x0000:0x0600 – a spuštěn.
  • 13. Hledání aktivního oddílu ● Postupné zkoumání (primárních) oddílů ● Rozhoduje se podle hodnoty prvního bajtu (příznaky): – 0x00 = neaktivní oddíl, hledání pokračuje, – 0x80 = aktivní oddíl, hledání končí, začíná práce s diskem, – Jiná hodnota = neplatný oddíl, chyba „Invalid partition table“, – žádný oddíl není aktivní = předání řízení firmwaru (reboot, nebo nic)
  • 14. Čtení VBR ● Detekce, zda disk podporuje LBA ● ANO = pokus o čtení VBR přes LBA, v případě chyby se pokračuje dalším bodem ● NE = pokus o čtení přes CHS ● Pokud chyba, reset disku a nový pokus ● Maximálně pět pokusů ● Chyba „Error loading operating system“ ● INT 0x13
  • 15. 8042 Controller ● Nepovinné ● Ovládá – Klávesnici (PS/2) – Myš (PS/2) – Pin A20, restart stroje ● MBR – Povolí A20 – Povolí přerušení generovaná klávesnicí (stisk či uvolnění klávesy)
  • 16. TPM ● Nepovinné ● Speciální HW modul dovolující provádět kryptografické operace ● Přístupný přes přerušení 0x1A ● MBR jej používá k výpočtu hashe obsahu VBR – Z výsledku nedělá žádné závěry
  • 17. Volume Boot Record (VBR) ● 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
  • 18. Boot loader (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
  • 19. Winload a ntoskrnl ● Winload.exe – Cíl: načíst hlavní modul jádra a ovladače, které budou v rámci startu OS potřeba – Obsah: standardní PE soubor – Stejně jako bootmgr čte a chová se podle konfigurace uložené v BCD. ● 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í)
  • 20. ??? Martin Dráb Email: martin.drab@email.cz ● Jabber: vrtule@jabber.cz ICQ: 332970040 WWW: http://www.jadro-windows.cz