SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Hunting rootkits with
    Windbg v1.1



      Frank Boldewin
        March 2011
Scope of this Talk


  In the next few slides the audience learns
  how to hunt for rootkits with Windbg  g
  To get a good overview of the different ways
  how rootkits hide itself from being
  recognized several techniques from rootkits
  like Runtime2, Rustock.B, Alipop, Stuxnet as
  well as TDL3 and TDL4 are introduced
  Of course the techniques used to detect a
  special rootkit are not limited to the shown
  cases. ;-)
  Prerequisites are a g
         q             good understanding g
  about Windows internals and basic Windbg
  skills                                       2
Finding SSDT hooks


  The SSDT is a data array in kernel memory,
  that stores pointers to the native API
               p
  functions of Windows, e.g. NtCreateFile
  These functions are handled in NTOSKRNL
  Older rootkits used to hook some distinctive
  functions to hide its files or registry entries
  when queried f
    h         i d from usermode d
  Almost every run-of-the-mill antirootkit tool
  is able to detect such hooks today



                                                    3
Finding SSDT hooks


  Viewing the SSDT manually




                              4
Finding Shadow SSDT hooks


  The Shadow SSDT is another array and stores
  p
  pointers to functions in the Win32k.sys
                                        y
  To view its entries we first have to switch to
  a GUI process context and reload the
  symbols for the specific module

  !process 0 0 winlogon.exe
      PROCESS 81ebf6f8 SessionId: .....
  .process /p 81ebf6f8
  .reload
   reload




                                              5
Finding Shadow SSDT hooks




                            6
Finding Shadow SSDT hooks

  To f
     find SSDT and Shadow SSDT hooks automatically we can
  use a Windbg script from Lionel d'Hauenens of Laboskopia




                                                         7
Runtime2 Rootkit – Finding SSDT/Shadow SSDT hooks with a
Windbg script




                                                           8
Rustock.B Rootkit – SYSENTER_EIP hook


  The SYSENTER_EIP (MSR 0x176) usually points to
  KiFastCallEntry to serve requests from the usermode
  to access native functions in the SSDT
  This pointer gets hooked by the Rustock.B rootkit
  If Sysenter gets called Rustock checks in its own SDT
  table if a function is hooked or not. Non hooked
  native functions have a null pointer. Hooked
  functions have a pointer to its own handler
                                        handler.
  To avoid easy hook detections the Sysenter_EIP
  address points to the same module (NTOSKRNL.EXE)
  as KiF tC llE t
     KiFastCallEntry.
  It overwrites a textstring „FATAL_UNHANDLED_HARD_ERROR“
  with a 5 bytes jump to its real rootkit code.
            y    j   p


                                                            9
Rustock.B Rootkit – SYSENTER_EIP hook




                                        10
Rustock.B Rootkit – SYSENTER_EIP hook

Another Laboskopia Windbg command shows us the
hook automatically




                                                 11
Rustock.B Rootkit – Finding hidden registry entries


  To find the hidden registry entries Rustock uses to
  survive a reboot, we walk the windows hive with the
  „!reg“ command and its parameters
   !reg“
  A hive is a logical group of keys, subkeys, and values
  in the registry that has a set of supporting files +
           g                                 g
  backup copies
  Hives are stored as files on disk
  Next
  Ne t to standard hives every user has his o n hi es
          standa d hi es e e    se          own hives
  file




                                                           12
Rustock.B Rootkit – Finding hidden registry entries


  Table of standard hives and their supporting files


Registry hive                 Supporting files
HKEY_CURRENT_CONFIG
    _       _                 System, System.alt, System.log, System.sav
                               y    , y         , y        g, y

HKEY_CURRENT_USER             Ntuser.dat, Ntuser.dat.log

HKEY_LOCAL_MACHINESAM        Sam, Sam.log, Sam.sav

HKEY_LOCAL_MACHINESecurity   Security, Security.log, Security.sav

HKEY_LOCAL_MACHINESoftware   Software, Software.log, Software.sav

HKEY_LOCAL_MACHINESystem     System, System.alt, System.log, System.sav

HKEY_USERS.DEFAULT           Default, Default.log, Default.sav




                                                                           13
Rustock.B Rootkit – Finding hidden registry entries




                                                      14
Rustock.B Rootkit – Finding hidden registry entries




                                                      15
Rustock.B Rootkit – Finding the Hidden Registry Entry




                                                        16
Rustock.B Rootkit – pIofCallDriver Hook


  Hooks at pIofCallDriver are often used to filter
  special IRP requests to drivers
  Rustock filters any attempt to directly communicate
  with NTFS.SYS or FASTFAT.SYS. These files are
  hidden, can‘t be copied, nor overwritten or renamed




                                                        17
Rustock.B Rootkit – IDT hooks


  The Interrupt Descriptor Table (IDT) is a structure
  which is used when dispatching interrupts
  Interrupts can interrupt an execution of a program to
  to handle an event
  Interrupts could be a result of a hardware signal or
  software based using the INT instruction
  The IDT descriptor table can handle 256 entries
  The descriptor to the table can be written with the
  instruction LIDT and read with SIDT
  Rustock hooks INT 2Eh, which is usually pointing to
  KiSystemService, a Zw* functions dispatcher and
  handler for usermode INT 2Eh calls on old hardware
  not supporting fastcalls via the SYSENTER command

                                                         18
Rustock.B Rootkit – SYSENTER_EIP hook

  Rustock hooks INT 2Eh to communicate between
  usermode and kernelmode components
  The „IDT“ command shows us the pointer to the
  handler. KiSystemService is ok, otherwise it‘s hooked




                                                      19
Alipop Rootkit – GDT Callgate


  A callgate is a mechanism in Intel x86 arch to change
  privilege level of the CPU
  The Alipop rootkit installs such a callgate to execute
  code with the highest privilege (Ring 0) from
  usermode (Ring 3) without the need to have a driver,
                  g
  e.g. by calling DeviceIOControl
  Callgate usage works by executing “call far ptr <addr>”
  from usermode code
  Installation of the callgate is done by the bootkit part
  of Alipop
  Other malware seen in the wild used
  DevicePhysicalMemory to install a callgate in the
  GDT (works only on older windows versions)
      (         y                            )


                                                            20
ALIPOP Rootkit – GDT Callgate




                                21
ALIPOP Rootkit – GDT Callgate




                                22
TDL3 Rootkit – ATAPI IRP hooks

  The TDL3 rootkit usually infects the ATAPI driver
  with a small loader for the real rootkit code in the PE
  resource area of atapi.sys and changes the
  entrypoint to its loader code
  The real rootkit part is being stored encrypted on
  disk sectors
  The loader uses low level disk operations to read the
  sectors, decrypts the mini TDL file system and starts
  the real rootkit code
  To hide and protect its sectors TDL3 uses IRP
  hooking in ATAPI.SYS




                                                            23
TDL3 Rootkit – ATAPI IRP hooks




                                 24
TDL3 Rootkit – ATAPI IRP hooks




                                 25
TDL3 Rootkit – Shared Memory structure (Kernel-/User mode)

  To share information with its usermode components
  TDL3 uses the structure KUSER_SHARED_DATA
  This structure is accessable from kernel at address
  0xFFDF0000 and is mapped to userspace at
  0x7FFE0000
  Kernel mode has read/write access to this structure,
  usermode has only read access
  At KUSER_SHARED_DATA+0308h (SystemCallPad)
  TDL3 stores a pointer t an own structure
        t         i t   to        t   t
  This structure stores a bunch of things like
  kernelbase, original ATAPI IRPs, TDL3 FS start, path
              ,    g              ,             ,p
  to its config file …




                                                         26
TDL3 Rootkit – Shared Memory structure (Kernel-/User mode)




                                                         27
TDL3 Rootkit – Shared Memory structure (Kernel-/User mode)




                                                         28
TDL3 Rootkit – TDL mini FS (file system)




                                           29
TDL3 Rootkit – Traces in the system worker threads


  Drivers requiring delayed processing usually use a
  work item, using IoQueueWorkItem with a pointer to
  its callback routine
  When a system worker thread processes the queued
  item it gets removed and the callback gets invoked
          g                             g
  System worker threads run in the system process
  context (PID 4)
  TDL3 rootkit is using work items as well
        ootkit     sing o k            ell
  Whenever work items have been processed or other
  system threads have been created this leaves traces
   y
  on the callstack
  As TDL3 does not belong to any known module, the
  process thread view informs us about this problem

                                                        30
TDL3 Rootkit – Traces in the system worker threads




                                                     31
TDL4 Rootkit – Finding TDL4 with its invalid device object




                                                             32
TDL4 Rootkit – ATAPI DriverStartIO hook


  TDL4 rootkit hooks the ATAPI driver as well, but in a
  lower level way than its precedessor
  As more and more tools were easily able to dump its
  files even from usermode via
  IOCTL_SCSI_PASS_THROUGH_DIRECT calls directly
  to the port device, TDL4 changed the hook method to
  DriverStartIO
  For standard windows miniport drivers like atapi sys
                                             atapi.sys,
  any SCSI request dispatching is always reduced to
  DriverStartIO
  This
  Thi makes it a l t h d
        k        lot harder t d
                            to dump th TDL4 fil
                                    the     files




                                                          33
TDL4 Rootkit – ATAPI DriverStartIO hook




                                          34
TDL4 Rootkit – Finding the Kernel Callback with a Windbg script


  Rootkits often use kernelcallbacks to get notified
  when files are loaded, processes or threads are
  created as well as Registry events occur
                                     occur.
  TDL4 installs a kernelcallback to inject its usermode
  payload in distinctive windows processes




                                                             35
TDL4 Rootkit – Dropper dumping after TDL4 infection (before
reboot)




                                                              36
TDL4 Rootkit – Dumping injected user mode payload




                                                    37
TDL4 Rootkit – Finding inline hooks in user mode payload




                                                           38
Stuxnet Rootkit – IoFsRegistrationChange


  Stuxnet mrxnet.sys driver adds a new device object
  and attaches to the device chain with the objecttype
  FileSystem (default fastfat ntfs cdfs)
                       fastfat, ntfs,
  This makes it possible to control and intercept IRP
  requests
  A filesystem registration callback makes it possible to
  attach the device chain of newly created filesystems




                                                         39
Stuxnet Rootkit – IoFsRegistrationChange




                                           40
Questions?

Thanks for good discussions and ideas


          Michael Hale Ligh
              EP_X0FF
               Cr4sh
          Matthieu Suiche




                                        41

Weitere ähnliche Inhalte

Was ist angesagt?

Modern C++ Explained: Move Semantics (Feb 2018)
Modern C++ Explained: Move Semantics (Feb 2018)Modern C++ Explained: Move Semantics (Feb 2018)
Modern C++ Explained: Move Semantics (Feb 2018)Olve Maudal
 
Something About Dynamic Linking
Something About Dynamic LinkingSomething About Dynamic Linking
Something About Dynamic LinkingWang Hsiangkai
 
C++: Constructor, Copy Constructor and Assignment operator
C++: Constructor, Copy Constructor and Assignment operatorC++: Constructor, Copy Constructor and Assignment operator
C++: Constructor, Copy Constructor and Assignment operatorJussi Pohjolainen
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New HardwareRuggedBoardGroup
 
File Management in C
File Management in CFile Management in C
File Management in CPaurav Shah
 
Clean code & design patterns
Clean code & design patternsClean code & design patterns
Clean code & design patternsPascal Larocque
 
用Raspberry PI學Linux驅動程式
用Raspberry PI學Linux驅動程式用Raspberry PI學Linux驅動程式
用Raspberry PI學Linux驅動程式Stanley Ho
 
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi SubsystemTutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi SubsystemDheryta Jaisinghani
 
Berkeley Packet Filters
Berkeley Packet FiltersBerkeley Packet Filters
Berkeley Packet FiltersKernel TLV
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scriptingvceder
 
GDDR Solution Design and Implementation Techniques
GDDR Solution Design and Implementation Techniques GDDR Solution Design and Implementation Techniques
GDDR Solution Design and Implementation Techniques EMC
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewRajKumar Rampelli
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLinaro
 
C++ shared libraries and loading
C++ shared libraries and loadingC++ shared libraries and loading
C++ shared libraries and loadingRahul Jamwal
 
Linker and loader upload
Linker and loader   uploadLinker and loader   upload
Linker and loader uploadBin Yang
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Thomas Petazzoni
 

Was ist angesagt? (20)

Modern C++ Explained: Move Semantics (Feb 2018)
Modern C++ Explained: Move Semantics (Feb 2018)Modern C++ Explained: Move Semantics (Feb 2018)
Modern C++ Explained: Move Semantics (Feb 2018)
 
Something About Dynamic Linking
Something About Dynamic LinkingSomething About Dynamic Linking
Something About Dynamic Linking
 
C++: Constructor, Copy Constructor and Assignment operator
C++: Constructor, Copy Constructor and Assignment operatorC++: Constructor, Copy Constructor and Assignment operator
C++: Constructor, Copy Constructor and Assignment operator
 
U-Boot Porting on New Hardware
U-Boot Porting on New HardwareU-Boot Porting on New Hardware
U-Boot Porting on New Hardware
 
File Management in C
File Management in CFile Management in C
File Management in C
 
Clean code & design patterns
Clean code & design patternsClean code & design patterns
Clean code & design patterns
 
用Raspberry PI學Linux驅動程式
用Raspberry PI學Linux驅動程式用Raspberry PI學Linux驅動程式
用Raspberry PI學Linux驅動程式
 
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi SubsystemTutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
Tutorial WiFi driver code - Opening Nuts and Bolts of Linux WiFi Subsystem
 
Berkeley Packet Filters
Berkeley Packet FiltersBerkeley Packet Filters
Berkeley Packet Filters
 
Embedded linux network device driver development
Embedded linux network device driver developmentEmbedded linux network device driver development
Embedded linux network device driver development
 
Intro to Linux Shell Scripting
Intro to Linux Shell ScriptingIntro to Linux Shell Scripting
Intro to Linux Shell Scripting
 
GDDR Solution Design and Implementation Techniques
GDDR Solution Design and Implementation Techniques GDDR Solution Design and Implementation Techniques
GDDR Solution Design and Implementation Techniques
 
Linux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver OverviewLinux Kernel MMC Storage driver Overview
Linux Kernel MMC Storage driver Overview
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platform
 
5bit field
5bit field5bit field
5bit field
 
C++ shared libraries and loading
C++ shared libraries and loadingC++ shared libraries and loading
C++ shared libraries and loading
 
Linker and loader upload
Linker and loader   uploadLinker and loader   upload
Linker and loader upload
 
Linux device drivers
Linux device driversLinux device drivers
Linux device drivers
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
 
Ipc in linux
Ipc in linuxIpc in linux
Ipc in linux
 

Andere mochten auch

Anti-Forensic Rootkits
Anti-Forensic RootkitsAnti-Forensic Rootkits
Anti-Forensic Rootkitsamiable_indian
 
Festes d'Inca 2015
Festes d'Inca 2015 Festes d'Inca 2015
Festes d'Inca 2015 Grant Ashley
 
Die Haasen Werbung - Kevin S.
Die Haasen Werbung - Kevin S.Die Haasen Werbung - Kevin S.
Die Haasen Werbung - Kevin S.LAP1aW
 
SpartaNews Spring 15 edition 2
SpartaNews Spring 15 edition 2SpartaNews Spring 15 edition 2
SpartaNews Spring 15 edition 2Tim Leister
 
La carta de jesus
La carta de jesusLa carta de jesus
La carta de jesusVALERIA1006
 
Adn web presentación breve
Adn web presentación breveAdn web presentación breve
Adn web presentación breveThe [K] Team
 
Recomendaiones de seguridad para celulares
Recomendaiones de seguridad para celularesRecomendaiones de seguridad para celulares
Recomendaiones de seguridad para celularesICELL S.A.
 
Slides Successions 18-03-2014
Slides Successions 18-03-2014Slides Successions 18-03-2014
Slides Successions 18-03-2014Lightspeed
 
The Script Around The World - interviews with fans of The Script
The Script Around The World - interviews with fans of The ScriptThe Script Around The World - interviews with fans of The Script
The Script Around The World - interviews with fans of The ScriptAndrea Michaels
 
NeighborWorks Green Profiles 2014
NeighborWorks Green Profiles 2014NeighborWorks Green Profiles 2014
NeighborWorks Green Profiles 2014Design Powers, Inc.
 
Diplomarbeit - Elektrobetrieben Inlineskater
Diplomarbeit - Elektrobetrieben InlineskaterDiplomarbeit - Elektrobetrieben Inlineskater
Diplomarbeit - Elektrobetrieben InlineskaterDaniel Reichl
 
Presentación cap 10 retos y dilemas es
Presentación cap 10 retos y dilemas esPresentación cap 10 retos y dilemas es
Presentación cap 10 retos y dilemas esWaleska Pensamiento
 
Getty Vocabulary Program LOD: Ontologies and Semantic Representation
Getty Vocabulary Program LOD: Ontologies and Semantic RepresentationGetty Vocabulary Program LOD: Ontologies and Semantic Representation
Getty Vocabulary Program LOD: Ontologies and Semantic RepresentationVladimir Alexiev, PhD, PMP
 
Ap deal flow process2
Ap deal flow process2Ap deal flow process2
Ap deal flow process2AP DealFlow
 
Tutorial Aquad V. 6
Tutorial Aquad V. 6Tutorial Aquad V. 6
Tutorial Aquad V. 6guest549104
 

Andere mochten auch (20)

Anti-Forensic Rootkits
Anti-Forensic RootkitsAnti-Forensic Rootkits
Anti-Forensic Rootkits
 
Festes d'Inca 2015
Festes d'Inca 2015 Festes d'Inca 2015
Festes d'Inca 2015
 
Bertram Gugel "Social TV"
Bertram Gugel "Social TV"Bertram Gugel "Social TV"
Bertram Gugel "Social TV"
 
MSc Individual Project
MSc Individual ProjectMSc Individual Project
MSc Individual Project
 
Die Haasen Werbung - Kevin S.
Die Haasen Werbung - Kevin S.Die Haasen Werbung - Kevin S.
Die Haasen Werbung - Kevin S.
 
SpartaNews Spring 15 edition 2
SpartaNews Spring 15 edition 2SpartaNews Spring 15 edition 2
SpartaNews Spring 15 edition 2
 
La carta de jesus
La carta de jesusLa carta de jesus
La carta de jesus
 
Galapagos Big 15
Galapagos Big 15Galapagos Big 15
Galapagos Big 15
 
Adn web presentación breve
Adn web presentación breveAdn web presentación breve
Adn web presentación breve
 
Recomendaiones de seguridad para celulares
Recomendaiones de seguridad para celularesRecomendaiones de seguridad para celulares
Recomendaiones de seguridad para celulares
 
Slides Successions 18-03-2014
Slides Successions 18-03-2014Slides Successions 18-03-2014
Slides Successions 18-03-2014
 
The Script Around The World - interviews with fans of The Script
The Script Around The World - interviews with fans of The ScriptThe Script Around The World - interviews with fans of The Script
The Script Around The World - interviews with fans of The Script
 
NeighborWorks Green Profiles 2014
NeighborWorks Green Profiles 2014NeighborWorks Green Profiles 2014
NeighborWorks Green Profiles 2014
 
Diplomarbeit - Elektrobetrieben Inlineskater
Diplomarbeit - Elektrobetrieben InlineskaterDiplomarbeit - Elektrobetrieben Inlineskater
Diplomarbeit - Elektrobetrieben Inlineskater
 
Borges Poema A Los Amigos +
Borges   Poema A Los Amigos +Borges   Poema A Los Amigos +
Borges Poema A Los Amigos +
 
Presentación cap 10 retos y dilemas es
Presentación cap 10 retos y dilemas esPresentación cap 10 retos y dilemas es
Presentación cap 10 retos y dilemas es
 
Getty Vocabulary Program LOD: Ontologies and Semantic Representation
Getty Vocabulary Program LOD: Ontologies and Semantic RepresentationGetty Vocabulary Program LOD: Ontologies and Semantic Representation
Getty Vocabulary Program LOD: Ontologies and Semantic Representation
 
Manuscrito voynich
Manuscrito voynichManuscrito voynich
Manuscrito voynich
 
Ap deal flow process2
Ap deal flow process2Ap deal flow process2
Ap deal flow process2
 
Tutorial Aquad V. 6
Tutorial Aquad V. 6Tutorial Aquad V. 6
Tutorial Aquad V. 6
 

Ähnlich wie Hunting rootkits with Windbg v1.1

Hunting malware with volatility v2.0
Hunting malware with volatility v2.0Hunting malware with volatility v2.0
Hunting malware with volatility v2.0Frank Boldewin
 
Oleksyk applied-anti-forensics
Oleksyk   applied-anti-forensicsOleksyk   applied-anti-forensics
Oleksyk applied-anti-forensicsDefconRussia
 
IRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the PreemptibleIRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the PreemptibleAlison Chaiken
 
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityOMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityAndrew Case
 
Linux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - WonokaerunLinux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - Wonokaerunidsecconf
 
Introduction to freebsd_6_kernel_hacking
Introduction to freebsd_6_kernel_hackingIntroduction to freebsd_6_kernel_hacking
Introduction to freebsd_6_kernel_hackingSusant Sahani
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemdAlison Chaiken
 
Wonder walk in Rootkit Land by Himanshu Khokhar
Wonder walk in Rootkit Land by Himanshu KhokharWonder walk in Rootkit Land by Himanshu Khokhar
Wonder walk in Rootkit Land by Himanshu KhokharOWASP Delhi
 
Sysdig Open Source Intro
Sysdig Open Source IntroSysdig Open Source Intro
Sysdig Open Source IntroMichael Ducy
 
An overview of unix rootkits
An overview of unix rootkitsAn overview of unix rootkits
An overview of unix rootkitsUltraUploader
 
Linux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slidesLinux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slidesKASHISH BHATIA
 
Securing Applications and Pipelines on a Container Platform
Securing Applications and Pipelines on a Container PlatformSecuring Applications and Pipelines on a Container Platform
Securing Applications and Pipelines on a Container PlatformAll Things Open
 
Bridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracingBridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracingChristian Babeux
 
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityOMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityAndrew Case
 
Hunting Rootkit From the Dark Corners Of Memory
Hunting Rootkit From the Dark Corners Of MemoryHunting Rootkit From the Dark Corners Of Memory
Hunting Rootkit From the Dark Corners Of Memorysecurityxploded
 
Fighting Malware Without Antivirus
Fighting Malware Without AntivirusFighting Malware Without Antivirus
Fighting Malware Without AntivirusEnergySec
 
RING 0/-2 ROOKITS : COMPROMISING DEFENSES
 RING 0/-2 ROOKITS : COMPROMISING DEFENSES RING 0/-2 ROOKITS : COMPROMISING DEFENSES
RING 0/-2 ROOKITS : COMPROMISING DEFENSESPriyanka Aash
 
The Container Security Checklist
The Container Security Checklist The Container Security Checklist
The Container Security Checklist LibbySchulze
 
Confraria Security & IT - Lisbon Set 29, 2011
Confraria Security & IT - Lisbon Set 29, 2011Confraria Security & IT - Lisbon Set 29, 2011
Confraria Security & IT - Lisbon Set 29, 2011ricardomcm
 

Ähnlich wie Hunting rootkits with Windbg v1.1 (20)

Hunting malware with volatility v2.0
Hunting malware with volatility v2.0Hunting malware with volatility v2.0
Hunting malware with volatility v2.0
 
Oleksyk applied-anti-forensics
Oleksyk   applied-anti-forensicsOleksyk   applied-anti-forensics
Oleksyk applied-anti-forensics
 
IRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the PreemptibleIRQs: the Hard, the Soft, the Threaded and the Preemptible
IRQs: the Hard, the Soft, the Threaded and the Preemptible
 
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityOMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
 
Linux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - WonokaerunLinux kernel-rootkit-dev - Wonokaerun
Linux kernel-rootkit-dev - Wonokaerun
 
Introduction to freebsd_6_kernel_hacking
Introduction to freebsd_6_kernel_hackingIntroduction to freebsd_6_kernel_hacking
Introduction to freebsd_6_kernel_hacking
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
 
Wonder walk in Rootkit Land by Himanshu Khokhar
Wonder walk in Rootkit Land by Himanshu KhokharWonder walk in Rootkit Land by Himanshu Khokhar
Wonder walk in Rootkit Land by Himanshu Khokhar
 
Sysdig Open Source Intro
Sysdig Open Source IntroSysdig Open Source Intro
Sysdig Open Source Intro
 
An overview of unix rootkits
An overview of unix rootkitsAn overview of unix rootkits
An overview of unix rootkits
 
Linux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slidesLinux io introduction-fudcon-2015-with-demo-slides
Linux io introduction-fudcon-2015-with-demo-slides
 
Securing Applications and Pipelines on a Container Platform
Securing Applications and Pipelines on a Container PlatformSecuring Applications and Pipelines on a Container Platform
Securing Applications and Pipelines on a Container Platform
 
Bridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracingBridging the gap between hardware and software tracing
Bridging the gap between hardware and software tracing
 
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with VolatlityOMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
OMFW 2012: Analyzing Linux Kernel Rootkits with Volatlity
 
Hunting Rootkit From the Dark Corners Of Memory
Hunting Rootkit From the Dark Corners Of MemoryHunting Rootkit From the Dark Corners Of Memory
Hunting Rootkit From the Dark Corners Of Memory
 
Fighting Malware Without Antivirus
Fighting Malware Without AntivirusFighting Malware Without Antivirus
Fighting Malware Without Antivirus
 
RING 0/-2 ROOKITS : COMPROMISING DEFENSES
 RING 0/-2 ROOKITS : COMPROMISING DEFENSES RING 0/-2 ROOKITS : COMPROMISING DEFENSES
RING 0/-2 ROOKITS : COMPROMISING DEFENSES
 
The Container Security Checklist
The Container Security Checklist The Container Security Checklist
The Container Security Checklist
 
Hunting rootkit from dark corners of memory
Hunting rootkit from dark corners of memoryHunting rootkit from dark corners of memory
Hunting rootkit from dark corners of memory
 
Confraria Security & IT - Lisbon Set 29, 2011
Confraria Security & IT - Lisbon Set 29, 2011Confraria Security & IT - Lisbon Set 29, 2011
Confraria Security & IT - Lisbon Set 29, 2011
 

Kürzlich hochgeladen

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 

Kürzlich hochgeladen (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 

Hunting rootkits with Windbg v1.1

  • 1. Hunting rootkits with Windbg v1.1 Frank Boldewin March 2011
  • 2. Scope of this Talk In the next few slides the audience learns how to hunt for rootkits with Windbg g To get a good overview of the different ways how rootkits hide itself from being recognized several techniques from rootkits like Runtime2, Rustock.B, Alipop, Stuxnet as well as TDL3 and TDL4 are introduced Of course the techniques used to detect a special rootkit are not limited to the shown cases. ;-) Prerequisites are a g q good understanding g about Windows internals and basic Windbg skills 2
  • 3. Finding SSDT hooks The SSDT is a data array in kernel memory, that stores pointers to the native API p functions of Windows, e.g. NtCreateFile These functions are handled in NTOSKRNL Older rootkits used to hook some distinctive functions to hide its files or registry entries when queried f h i d from usermode d Almost every run-of-the-mill antirootkit tool is able to detect such hooks today 3
  • 4. Finding SSDT hooks Viewing the SSDT manually 4
  • 5. Finding Shadow SSDT hooks The Shadow SSDT is another array and stores p pointers to functions in the Win32k.sys y To view its entries we first have to switch to a GUI process context and reload the symbols for the specific module !process 0 0 winlogon.exe PROCESS 81ebf6f8 SessionId: ..... .process /p 81ebf6f8 .reload reload 5
  • 7. Finding Shadow SSDT hooks To f find SSDT and Shadow SSDT hooks automatically we can use a Windbg script from Lionel d'Hauenens of Laboskopia 7
  • 8. Runtime2 Rootkit – Finding SSDT/Shadow SSDT hooks with a Windbg script 8
  • 9. Rustock.B Rootkit – SYSENTER_EIP hook The SYSENTER_EIP (MSR 0x176) usually points to KiFastCallEntry to serve requests from the usermode to access native functions in the SSDT This pointer gets hooked by the Rustock.B rootkit If Sysenter gets called Rustock checks in its own SDT table if a function is hooked or not. Non hooked native functions have a null pointer. Hooked functions have a pointer to its own handler handler. To avoid easy hook detections the Sysenter_EIP address points to the same module (NTOSKRNL.EXE) as KiF tC llE t KiFastCallEntry. It overwrites a textstring „FATAL_UNHANDLED_HARD_ERROR“ with a 5 bytes jump to its real rootkit code. y j p 9
  • 10. Rustock.B Rootkit – SYSENTER_EIP hook 10
  • 11. Rustock.B Rootkit – SYSENTER_EIP hook Another Laboskopia Windbg command shows us the hook automatically 11
  • 12. Rustock.B Rootkit – Finding hidden registry entries To find the hidden registry entries Rustock uses to survive a reboot, we walk the windows hive with the „!reg“ command and its parameters !reg“ A hive is a logical group of keys, subkeys, and values in the registry that has a set of supporting files + g g backup copies Hives are stored as files on disk Next Ne t to standard hives every user has his o n hi es standa d hi es e e se own hives file 12
  • 13. Rustock.B Rootkit – Finding hidden registry entries Table of standard hives and their supporting files Registry hive Supporting files HKEY_CURRENT_CONFIG _ _ System, System.alt, System.log, System.sav y , y , y g, y HKEY_CURRENT_USER Ntuser.dat, Ntuser.dat.log HKEY_LOCAL_MACHINESAM Sam, Sam.log, Sam.sav HKEY_LOCAL_MACHINESecurity Security, Security.log, Security.sav HKEY_LOCAL_MACHINESoftware Software, Software.log, Software.sav HKEY_LOCAL_MACHINESystem System, System.alt, System.log, System.sav HKEY_USERS.DEFAULT Default, Default.log, Default.sav 13
  • 14. Rustock.B Rootkit – Finding hidden registry entries 14
  • 15. Rustock.B Rootkit – Finding hidden registry entries 15
  • 16. Rustock.B Rootkit – Finding the Hidden Registry Entry 16
  • 17. Rustock.B Rootkit – pIofCallDriver Hook Hooks at pIofCallDriver are often used to filter special IRP requests to drivers Rustock filters any attempt to directly communicate with NTFS.SYS or FASTFAT.SYS. These files are hidden, can‘t be copied, nor overwritten or renamed 17
  • 18. Rustock.B Rootkit – IDT hooks The Interrupt Descriptor Table (IDT) is a structure which is used when dispatching interrupts Interrupts can interrupt an execution of a program to to handle an event Interrupts could be a result of a hardware signal or software based using the INT instruction The IDT descriptor table can handle 256 entries The descriptor to the table can be written with the instruction LIDT and read with SIDT Rustock hooks INT 2Eh, which is usually pointing to KiSystemService, a Zw* functions dispatcher and handler for usermode INT 2Eh calls on old hardware not supporting fastcalls via the SYSENTER command 18
  • 19. Rustock.B Rootkit – SYSENTER_EIP hook Rustock hooks INT 2Eh to communicate between usermode and kernelmode components The „IDT“ command shows us the pointer to the handler. KiSystemService is ok, otherwise it‘s hooked 19
  • 20. Alipop Rootkit – GDT Callgate A callgate is a mechanism in Intel x86 arch to change privilege level of the CPU The Alipop rootkit installs such a callgate to execute code with the highest privilege (Ring 0) from usermode (Ring 3) without the need to have a driver, g e.g. by calling DeviceIOControl Callgate usage works by executing “call far ptr <addr>” from usermode code Installation of the callgate is done by the bootkit part of Alipop Other malware seen in the wild used DevicePhysicalMemory to install a callgate in the GDT (works only on older windows versions) ( y ) 20
  • 21. ALIPOP Rootkit – GDT Callgate 21
  • 22. ALIPOP Rootkit – GDT Callgate 22
  • 23. TDL3 Rootkit – ATAPI IRP hooks The TDL3 rootkit usually infects the ATAPI driver with a small loader for the real rootkit code in the PE resource area of atapi.sys and changes the entrypoint to its loader code The real rootkit part is being stored encrypted on disk sectors The loader uses low level disk operations to read the sectors, decrypts the mini TDL file system and starts the real rootkit code To hide and protect its sectors TDL3 uses IRP hooking in ATAPI.SYS 23
  • 24. TDL3 Rootkit – ATAPI IRP hooks 24
  • 25. TDL3 Rootkit – ATAPI IRP hooks 25
  • 26. TDL3 Rootkit – Shared Memory structure (Kernel-/User mode) To share information with its usermode components TDL3 uses the structure KUSER_SHARED_DATA This structure is accessable from kernel at address 0xFFDF0000 and is mapped to userspace at 0x7FFE0000 Kernel mode has read/write access to this structure, usermode has only read access At KUSER_SHARED_DATA+0308h (SystemCallPad) TDL3 stores a pointer t an own structure t i t to t t This structure stores a bunch of things like kernelbase, original ATAPI IRPs, TDL3 FS start, path , g , ,p to its config file … 26
  • 27. TDL3 Rootkit – Shared Memory structure (Kernel-/User mode) 27
  • 28. TDL3 Rootkit – Shared Memory structure (Kernel-/User mode) 28
  • 29. TDL3 Rootkit – TDL mini FS (file system) 29
  • 30. TDL3 Rootkit – Traces in the system worker threads Drivers requiring delayed processing usually use a work item, using IoQueueWorkItem with a pointer to its callback routine When a system worker thread processes the queued item it gets removed and the callback gets invoked g g System worker threads run in the system process context (PID 4) TDL3 rootkit is using work items as well ootkit sing o k ell Whenever work items have been processed or other system threads have been created this leaves traces y on the callstack As TDL3 does not belong to any known module, the process thread view informs us about this problem 30
  • 31. TDL3 Rootkit – Traces in the system worker threads 31
  • 32. TDL4 Rootkit – Finding TDL4 with its invalid device object 32
  • 33. TDL4 Rootkit – ATAPI DriverStartIO hook TDL4 rootkit hooks the ATAPI driver as well, but in a lower level way than its precedessor As more and more tools were easily able to dump its files even from usermode via IOCTL_SCSI_PASS_THROUGH_DIRECT calls directly to the port device, TDL4 changed the hook method to DriverStartIO For standard windows miniport drivers like atapi sys atapi.sys, any SCSI request dispatching is always reduced to DriverStartIO This Thi makes it a l t h d k lot harder t d to dump th TDL4 fil the files 33
  • 34. TDL4 Rootkit – ATAPI DriverStartIO hook 34
  • 35. TDL4 Rootkit – Finding the Kernel Callback with a Windbg script Rootkits often use kernelcallbacks to get notified when files are loaded, processes or threads are created as well as Registry events occur occur. TDL4 installs a kernelcallback to inject its usermode payload in distinctive windows processes 35
  • 36. TDL4 Rootkit – Dropper dumping after TDL4 infection (before reboot) 36
  • 37. TDL4 Rootkit – Dumping injected user mode payload 37
  • 38. TDL4 Rootkit – Finding inline hooks in user mode payload 38
  • 39. Stuxnet Rootkit – IoFsRegistrationChange Stuxnet mrxnet.sys driver adds a new device object and attaches to the device chain with the objecttype FileSystem (default fastfat ntfs cdfs) fastfat, ntfs, This makes it possible to control and intercept IRP requests A filesystem registration callback makes it possible to attach the device chain of newly created filesystems 39
  • 40. Stuxnet Rootkit – IoFsRegistrationChange 40
  • 41. Questions? Thanks for good discussions and ideas Michael Hale Ligh EP_X0FF Cr4sh Matthieu Suiche 41