Rootkitek. Előadó: Barta Csaba



Hasonló dokumentumok
Operációs rendszerek. Az NT folyamatok kezelése

Operációs rendszerek. A Windows NT felépítése

Operációs rendszerek III.

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Állásidő minimalizálása: BTRFS, kgraft

Operációs rendszerek

Operációs rendszerek. Az NT memóriakezelése

Dr. Sipos Marianna ZMNE BJKMK

OE-NIK 2010/11 ősz OE-NIK ősz

Operációs rendszerek. Windows NT. A Windows NT

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

OPERÁCIÓS RENDSZEREK I. BEVEZETÉS Koczka Ferenc -

Telepítési Kézikönyv

Az ESET NOD32 program 2.7 verzió bemutatása a FU rootkit felismerése közben. Sicontact Kft

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05 Geodéziai Feldolgozó Program

Könyvtári címkéző munkahely

WebEC kliens számítógép telepítése és szükséges feltételek beállítása, az alábbi ellenőrző lista alapján történik.

A GeoEasy telepítése. Tartalomjegyzék. Hardver, szoftver igények. GeoEasy telepítése. GeoEasy V2.05+ Geodéziai Feldolgozó Program

386 processzor címzés

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

Utolsó módosítás:

Ismerkedjünk meg a Linuxszal!

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

Hardver és szoftver követelmények

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Windows Szerver teszt

MMTS AZONNALI PIAC KERESKEDÉSI MUNKAÁLLOMÁS SZOFTVER

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

Operációs rendszerek. UNIX fájlrendszer

EL-USB-1 EL-USB-2. Az adatrögzítő készenléti állapotban van. Adatrögzítés, nincs riasztás. Dupla villanás. Egy villanás. Magas riasztási fokozat

Infocentrum Számlázó hálózatos verzió + Firebird Adatbázismotor

Assembly. Iványi Péter

telepítési útmutató K&H Bank Zrt.

BMD Rendszerkövetelmények

Melyek a Windows Server 2008 R2 tiszta telepítésének (Clean Install) legfontosabb lépései?

1. Bevezető. 2. Sérülékenységek

Operációs rendszer ismeretek

Windows hálózati adminisztráció

Bevezetés a Python programozási nyelvbe

Moodle -egy ingyenes, sokoldalú LMS rendszer használata a felsőoktatásban

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Microsoft SQL Server telepítése

Az ESET NOD32 program 2.7 verzió új Anti-Stealth technológiájának bemutatása az AFX rootkit program segítségével. Sicontact Kft, 2007.

Hálózati ismeretek. Az együttműködés szükségessége:

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

ARM Cortex magú mikrovezérlők. mbed

Operációs rendszerek

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Android alapok. Android játékfejlesztés

KELER KID Internetwork System (KIS)

System Center Service Manager 2012 áttekintése. Ker-Soft Kft. Kaszás Orsolya - tanácsadó Nagy Dániel - rendszermérnök

Veeam Agent for Windows and Linux

Sharpdesk Információs útmutató

Windows történet Windows 1.0. DOS kiegészítő Grafikus felület

Dr. Pétery Kristóf: Windows XP Professional

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Az Evolut Főkönyv program telepítési és beállítási útmutatója v2.0

1. A Windows Vista munkakörnyezete 1

A CA-42 adatkommunikációs kábel gyors telepítési útmutatója

Windows Server 2012: a felhő OS

Virtual Call Center kliens program MSI csomag telepítése

3Sz-s Kft. Tisztelt Felhasználó!

Megoldás. Feladat 1. Statikus teszt Specifikáció felülvizsgálat

Biztonságos programozás Puffer túlcsordulásos támadások

Windows há lo záti ádminisztrá cio gyákorlát

Operációs rendszerek. A védelem célja. A fenyegetés forrásai. Védelmi tartományok. Belső biztonság. Tartalom

Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter

A Java EE 5 plattform

Laborgyakorlat: Egy vezeték nélküli NIC beszerelése

Az Ön kézikönyve SAMSUNG CLP-770ND

Matematikai és Informatikai Intézet. 4. Folyamatok

CCS Hungary, 2000 szeptember. Handling rendszer technikai specifikáció

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

SAP Business One. Méretre szabás. Mosaic Business System Kft.; Support:

Szoftver alapfogalmak

Utolsó módosítás:

Windows biztonsági problémák

Private Cloud architektúra keretrendszer

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

hardver-szoftver integrált rendszer, amely Xwindow alapú terminálokat szervez egy hálózatba

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz

LINUX LDAP címtár. Mi a címtár?

Ismerkedés a Windows Explorer-rel

Stack Vezérlés szerkezet Adat 2.

Dr. Schuster György október 30.

Adatbázis rendszerek. dr. Siki Zoltán

SQLServer. Probléma megoldás

Selling Platform Telepítési útmutató Gyakori hibák és megoldások

SAP Business One. Áttekintés, gyakorlati ismertetı. Mosaic Business System Kft.; Support:

EESZT műszaki csatlakozási dokumentáció

UNIX / Linux rendszeradminisztráció

National Instruments NI LabVIEW gyakorlati szeminárium: Szoftver telepítési segédlet

Az operációs rendszer. Az operációs rendszer feladatai, részei, fajtái Az operációs rendszer beállítása

Á l t a l á n o s a n a L i n u x r ó l. DE-EFK Egészségügyi Ügyvitelszervező Szak Linux c. tantárgy 2006 I. félév

Szabálykezelés a gyakorlatban

Tanúsítvány feltöltése Oberthur kártyára és Oberthur SIM termékre

Átírás:

Rootkitek Előadó: Barta Csaba

Rövid tartalom Definíció Rootkitek rövid története Felhasználói és kernel mód Megoldandó problémák Driver betöltés Verziófüggőség Programhiba, debuggolás Technikák DKOM Hooking, patching Filter driverek Néhány szó és bevezetés a következő előadáshoz

Definíció Rootkit: Olyan "programok" összessége, amelyek a "felhasználónak" adminisztrátori hozzáférést adnak a célgépen a rendszer "megfelelő" módosításával Többféle célt szolgálhat (néhány példa): Folyamatos, rejtett adminisztrátori hozzáférés Megfigyelés Adatlopás

Rootkitek rövid története Első generációs rootkitek (1990) Eredendően módosított adminisztrációs parancsok UNIX-on Programokat cserélnek le a rendszeren User módban működnek 1990 Az első ismert rootkit /SunOS/ (Lane Davis és Steven Dake)

Rootkitek rövid története Második generációs rootkitek (1999) OS függvényeket módosítanak o Hooking o Patching User és kernel módban működnek 1999 Első rootkit Windows-ra /NT Rootkit/ (Greg Hoglund) 2003 Hacker Defender 2004 NT Illusion

Rootkitek rövid története Harmadik generációs rootkitek (2004) Elsősorban kernel módú rootkitek Kernel objektumok módosítása (DKOM) 2004 FU rootkit (Greg Hoglund) 2005 Shadow Walker (James Butler, Sherri Sparks) 2006 FUTo (Peter Silberman)

Rootkitek rövid története Negyedik generációs rootkitek (2007) Virtualizációs rootkitek Az OS szempontjából hardver szintű 2007 Bluepill project (Joanna Rutkovska)

Felhasználói és kernel mód Felhasználói mód - Ring3 Hátrányok Minden kérés Ring3-ban szolgálódik ki Alacsonyabb jogosultsági szint Nincs közvetlen hardware elérés Előnyök Szabványos interfészek és függvények Verziók között kevesebb különbség van Programhibák kevésbé befolyásolják a rendszer stabilitását Könnyebb implementáció és "telepítés"

Felhasználói és kernel mód Kernel mód - Ring0 Hátrányok Verziók között jelentős különbségek Programhiba összedönti az egész rendszert Nehézkes "telepítés", bonyolultabb implementáció Előnyök (ha sikerült a telepítés:)) Minden kérés Ring0-ban szolgálódik ki Legmagasabb jogosultsági szint Közvetlen hardware elérés Minden védelmi funkció megkerülhető

Megoldandó problémák Driver betöltés Ahhoz, hogy a rootkit működőképes legyen, a kódnak be kell jutnia a kernel területre (betöltés) A driver betöltéshez adminisztrátori jogosultság kell (ez a megfelelő exploit birtokában nem lehet probléma:)) A betöltésnek két módja van: 1. Service Control Manager (standard, dokumentált) 2. SystemLoadAndCallImage (limitált lehetőségek, nem dokumentált)

Megoldandó problémák Driver betöltés Service Control Manager Ez a standard módja a driver betöltésnek Hátrányok o Az eventlogban és registry-ben nyomot hagy Előnyök o Nonpaged területere töltődik a programkód o Nem verziófüggő SystemLoadAndCallImage Nem dokumentált funkció Hátrányok o Lapozható területre töltődik be a kód => a későbbi elérhetősége nem garantált o Verziófüggő Előnyök o Kevesebb nyomot hagy

Megoldandó problémák Driver betöltés Digitális aláírás Windows Vista x64-en aláírt driverek kellenek azonban... 1.Minden számítógépen akad 3rd party driver 2.Ezek közül sok hibás A hiba kihasználható a saját kódunk betöltésére 3.Ha nincs hibás driver, tegyünk fel egyet, majd az abban levő ismert hibát használjuk ki :)

Megoldandó problémák Driver betöltés

Megoldandó problémák Verziófüggőség A kernel belső adatszerkezetei akár service packenként is változhatnak: optimalizálás hibajavítás új funkciók bevezetése A kernelen belül a driverek számára elérhető API változik: új függvények jelennek meg egyes függvények megszűnnek egyes függvények paraméterezése megváltozik => A régebbi verzón működő kód az új verzión be sem töltődik, vagy "kékhalált" okoz

Megoldandó problémák Verziófüggőség A kernel belső adatszerkezetei akár service packenként is változhatnak: optimalizálás hibajavítás új funkciók bevezetése A kernelen belül a driverek számára elérhető API változik: új függvények jelennek meg egyes függvények megszűnnek egyes függvények paraméterezése megváltozik => A régebbi verzón működő kód az új verzión be sem töltődik, vagy "kékhalált" okoz

Megoldandó problémák Programhibák Egy esetleges programhiba, kezeletelen kivétel kékhalálhoz vezet Ring0-ban Ez rootkitek esetében fokozottan igaz!!!! A debuggolásra két módszer használható: DbgPrint (dbgviewer) Kernel debuggolás (kd, vagy windbg)

Megoldandó problémák Programhibák

Technikák DKOM A kernel által kezelt objektumok közvetlen módosítása Objektumok, amelyeket módosítani szoktak: eprocess ethread token driver Hátrányok Erősen verziófüggő Az objektum módosítása befolyásolja a rendszer stabilitását Előnyök Nem változik kernelkód A módosításokat nehéz észrevenni

Technikák DKOM

Technikák DKOM

Technikák DKOM - Példa Avagy hogyan verjünk át egy felületes forensic vizsgálatot...:) A legtöbb rendszergazda szereti a parancssort (cmd.exe) Ez általában rendszergazdai jogokkal fut Lopjuk el a tokent Indítsuk a parancsainkat az ő parancssorának a nevében

DEMO Hamarosan videó formában http://hacktivity.hu

Technikák Hooking, patching Patching: A memóriában, vagy a lemezen levő kód módosítása úgy, hogy az bizonyos esetekben nekünk kedvező módon viselkedjen Példa: Jó példa lehet, az összes "crackme", ahol a regisztrációs kódot ellenőrző eljárásokat kell módosítani

Technikák Hooking, patching Detour patching Eljárás memóriában levő kódjának módosítása Egy részét felülírja egy jmp utasítással A vezérlést egy általunk írt kódot tartalmazó területre írányítjuk Az általunk írt kód végrehajtása o Lefut a mi kódunk o Lefuttatja a felülírt utasításokat (konzisztencia) o Visszaadja a vezérlést eredeti függvényre

Detour patching példa: nt!seaccesscheck Technikák Hooking, patching Függvény felülírandó része nt!seaccesscheck 805ef232 mov edi, edi 805ef234 push ebp 805ef235 mov ebp, esp 805ef237 push ebx 805ef238 xor ebx, ebx Függvény változatlanul hagyott része nt!seaccesscheck+0x08: 805ef23a cmp byte ptr [ebp+24h, bl 805ef23d jne nt!seaccesscheck+0x36 (805ef268)]

Technikák Hooking, patching Detour patching példa: nt!seaccesscheck Függvény felülírt része nt!seaccesscheck 805ef232 jmp rootkit kód Rootkit kód Felülírt kód futtatása mov edi, edi push ebp mov ebp, esp push ebx xor ebx, ebx Vezérlés visszaadása jmp nt!seaccesscheck+0x08 (805ef23a) Függvény változatlanul hagyott része nt!seaccesscheck+0x08: 805ef23a cmp byte ptr [ebp+24h, bl 805ef23d jne nt!seaccesscheck+0x36 (805ef268)]

Technikák Hooking, patching Hooking: Függvénymutatókat módosít Átirányítja a vezérlést a mi általunk kontrollált területre Hol találhatók függvény mutatók IAT (Import Address Table) SSDT (System Service Dispatch Table) IDT (Interrupt Descriptor Table) Driver objektum

Technikák Hooking, patching - Példa IRP Hooking A driverek alapvetően IRP-ben érkező kéréseket szolgálnak ki Ehhez szükség van a megfelelő IRP handlerekre Az IRP handler futásidőben lecserélhető Hogyan működik a keyboard loggerem Keyboard device megkeresése A device-hoz tartozó driver megkeresése A megfelelő IRP handler hookolása

Technikák Hooking, patching - Példa

Technikák Hooking, patching - Példa

Technikák Hooking, patching Előnyök: Minden memóriában levő kód módosítható Jó implementáció esetén nehezen detektálható Hátrányok: Erős verziófüggés Befolyásolja a rendszer stabilitását

DEMO Hamarosan videó formában http://hacktivity.hu

Technikák Filter driverek A driverekkel való kommunikáció IRP (interrupt request packet) formájában történik Ez részben dokumentálatlan Fontosabb kezelendő típusok: o IRP_MJ_READ (olvasás) o IRP_MJ_WRITE (írás) o IRP_MJ_DEVICE_CONTROL (IOCTL)

Technikák Filter driverek

Technikák Filter driverek A driverek által létrehozott device objektumokat lehetőségünk van egymáshoz kapcsolni Az erre használható függvények: IoAttachDevice IoAttachDeviceByPointer IoAttachDeviceToDeviceStack I/O Manager I/O Manager Attached device Target device Target device

Technikák Filter driverek Előnyök: Módosíthatjuk a filter láncban alattunk levő drivernek küldött, illetve az onnan visszafelé jövő IRP-ket Ezzel az alattunk levő driver által kiszolgált kérés eredményéből adatokat vehetünk ki, illetve adhatunk hozzá Hátrányok: Könnyen észrevehető Nem biztos, hogy mi vagyunk a legközelebb a láncban a célponthoz

DEMO Hamarosan videó formában http://hacktivity.hu

Néhány szó a bemutatott rootkitről Támogatott windows verziók Windows XP SP2, SP3 Windows Server 2003 SP2 Windows Server 2008 SP1, SP2 Windows Vista SP1, SP2 Windows 7 Beta, RC1, Enterprise Fontosabb funkciók Folyamatok elrejtése (process hiding) Token lopás (Access Token stealing) Állomány és könyvtár rejtés (File & Directory hiding) Billentyű letütések naplózása (Keylogging)

Rootkitek története Felhasználói és kernel mód Alkalmazott technikák Saját rootkit demo Rövid összefoglaló

Elérhetőségek e-mail cím csaba.barta@gmail.com Letöltés http://www.csababarta.com