************o*** *********1****** 6*******0***0***0***0***0***0***0
Download
Report
Transcript ************o*** *********1****** 6*******0***0***0***0***0***0***0
TDL 4
TDL 4
A Sophisticated Fraudster’s Rootkit
TDL 4
Agenda
What are rootkits?
TDL4
System Infection
Anti-rootkits
Conclusion
TDL 4
A rootkit is
“A set of programs and code that allows a
permanent or consistent, undetectable presence
on a computer” [1]
TDL 4
Theories for
selfreplicating
programs are
created
First Apple
virus found
“in the wild”
- Spreads
through
pirated
computer
games
Boot sector
Virus
Polymorphic
Virus
- command
com infector
- toolkits for
creating
viruses
become
available
online
Macro Virus
Melissa
Java
infectors
-Email
spammer
Chernobyl
- uses MS
Word
documents
-destructive
viruses that
destroy data
on certain
dates
ILoveYou
virus
Slammer
Worm
Conficker
Worm
- fastest
spreading
worm to date;
infecting
75,000
computers in
approximately
ten minutes
- Most
number of
computers
infected since
Slammer in
2003
TDL
Stuxnet
Rustock
Trojans
Mobile
trojans
Sends via
email
An exponential growth on malware technology throughout the years.
TDL 4
Rootkits are gaining popularity…
Experts in the security industry have seen
how rootkits rose and continue to advance
in its level of sophistication.
Data from http://www.securelist.com/en/analysis/168740859/
TDL 4
In fact, there is no reason for them
not to...
As rootkits provides the most basic
yet most effective feature a malware
needs…
Stealth
TDL 4
How they avoid detection
- Replacing / Modifying system files
- Modification of internal Windows structures
- Direct Kernel Object Manipulation
- Memory hooking (Shadow Walker)
TDL 4
Commonly “hooked” system tables
•
•
•
SSDT – System Service Dispatch Table
IDT – Interrupt Descriptor Table
GDT – Global Descriptor Table
TDL 4
Normal Behaviour
Kernel32.dll
User Mode Process
SSDT
CreateFile()
Kernel
ZwCreateFile
TDL 4
Compromised
Kernel32.dll
User Mode Process
SSDT
CreateFile()
Kernel
Malicious Code
ZwCreateFile
TDL 4
TDL 4
“One of the stealthiest rootkit in the wild”
“Uses sophisticated techniques to avoid
detection”
“32bit and 64bit support”
“Owns a very large botnet”
“Continously evolving”
TDL 4
Evolution of TDL
RC4 encryption
Hooked Functions
Encrypted File System
Priveledge Escalation
64 bit support
Overwriting of MBR
Complexity (1-5)
TDL1
no
TDL2
no
TDL3
YES
TDL4
YES
NtFlushInstructionCache
IofCallDriver
AddPrintProcessor AddPrintProvidor
NtEnumerateKey
IofCompleteRequest AddPrintProvidor
ZwConnectPort
PsLoadedModuleList
NtSaveKey
NtQueryValueKey
no
no
YES
YES
no
no
no
YES
no
no
no
YES
no
no
no
YES
2
2
3
4
Hiding of TDL Registries
Hiding of TDL Files
Hiding TCP ports
Process injection
TDL 4
Key Features of TDL4
•
•
•
•
•
•
•
•
•
•
Bypasses Windows PatchGuard for 64bit mode support
Exploits MS10-092 for privilege escalation
Infects the MBR to ensure survivability upon reboot
Loaded before the operating system can initialize
Hiding the critical files & registry keys it uses
Creates own file system to store rootkit components
Injecting malicious code into system processes from a kernel-mode driver
MS10-092
Disables kernel debugger to avoid being analyzed
Task Scheduler Vulnerability that
Uses a watchdog to guard the system hooks
and the MBR
could allow for elevation of
privilege
Able to re-infect if a discrepancy is found
Task Scheduler improperly validates whether
scheduled tasks run within the intended security
context
TDL 4
Hex view of the last sector of an
infected hard disk
- creates a hidden and encrypted(RC4
algorithm) partition in the last sector of the hard
disk
-Using its own file system, it saves other rootkit
components and the original MBR for later use.
TDL 4
TDL4 components
Module
mbr
ldr16
ldr32
ldr64
drv32
drv64
cmd.dll
cmd64.dll
cfg.ini
bckfg.tmp
Description
Original MBR of infected system
16bit real mode loader code
fake kdcom.dll for 32 bit systems
fake kdcom.dll for 64 bit systems
rootkit driver for 32 bit systems
rootkit driver for 64 bit systems
payload for 32 bit processes
payload for 64 bit processes
configuration
encrypted list of C&C URLs
TDL 4
System Infection
TDL 4
Unpack and Initialize
What
bit is
running
proces
s
32bit infection
64bit infection
TDL 4
Success
Privileged Account?
XP
Fail
Instal
lation
OS Check
Hook ZwConnectPort
Vista/7
Call AddPrintProvidor
Make a copy of itself on
temp folder
MS10-092
Fail
Modifies MBR
Make a manifest to request
privilege escalation
Displays the little dialog message
box requesting administrative
Infecting 32bit Systems
rights
ShellExecute
TDL 4
64bit, Improved defence?
- Code Integrity Policy prevents unsigned kernel-mode drivers on loading
- Windows PatchGuard protects modification of
- SSDT System Service Dispatch Table
- IDT Interrupt Descriptor Table
- Global Descriptor Table
- Patching codes on kernel
TDL 4
Prepare FileSystem(FS)
image
Modifies MBR and write FS
on disk
Success
Make a copy of itself on
temp folder
MS10-092
Force Shutdown
Fail
Make a copy of itself on
temp folder
Infecting 64bit systems
ShellExecute
BSOD
TDL 4
“The Master Boot Record (MBR) is the first 512 bytes of a data storage
device that contains code for bootstrapping an operating system. It
houses the table of primary partitions using the IBM partition table
scheme. It’s primary purpose is to load the boot sector and pass control to
it (volume boot record)”
TDL 4
Load MBR
MBR
Bootmgr
Master Boot Record
Load VBR
Loads the VBR
VBR
Load Bootmgr
Volume Boot Record
Loads the Bootmgr
Reads BCD (Boot Configuration Data)
Loads either winload.exe or
winresume.exe (restore the state of
hibernating system)
Winload.exe
Kernel Initialization
Initializes code integrity policy
Load winload.exe or
winresume.exe
Load kernel and other
drivers
Calls KdDebuggerInitialize1
loads kernel and its dependencies
from kdcom.dll to initialize the
hal.dll, bootvid.dll, kdcom.dll
debugging facilities of the system
TDL 4
Load Winload.exe
(WINPE mode)
Load infected MBR
Infected MBR
Since the value in BCD registry hive
was replaced WinPE mode is activated.
Contains malicious codes for
loading TDL4
Loads LDR16
Load LDR16 from its
file system
Load ntoskernel.exe,
hal.dll and kdcom.dll
Replaces a key BCD value in registry to
initiate WinPE mode
Hooks INT13
Hook
INT13
WINPE mode
Hooks INT13 and
restore original MBR
Waits for kdcom.dll to be loaded, then
replaces the image of it in memory with
LDR32 or LDR64 (platform dependent)
Code Integrity disabled
Loads kernel
dependencies
Call
KdDebuggerInitialize1Loads dependencies, when hook finds
kdcom.dll in memory, replaces the
Contains the same functions as original
image with LDR32 or LDR64
kdcom.dll but only one works
Contains a function that is called by the
KdDebuggerInitialize1
system to initialize system debuggers.
Load VBR
Initialize kernel
debugger
AllKernel
others are
dummies disabled
and return 0
LDR32 / 64
Why KDCOM.DLL
DRV32 or DRV64 (rootkit’s main
component for hooking) will be
loaded
Load Bootmgr
Continue loading as if nothing
happened
TDL 4
TDL 4
PAYLOAD
•
TDL – “Trojan Downloader”
–
–
–
–
•
•
•
Keyloggers
Clickers
Fake AVs
Adware
Receives commands from botnet C&C and runs them
Intercepts user searches and spoofs the search result
Creates search requests to popular search engines.
TDL 4
Should we be alarmed?
“Stealth is nothing new to the anti-virus industry"
TDL 4
There is a war…
TDL 4
-Signature Based
-Behavioural
-Kernel hooking
-Integrity Checkers
-Diff Based
TDL 4
- Rootkit detection and removal is
an integral part of Advanced
Malware Detection
- More and more companies are
opting for this technology
TDL 4
http://www.gfi.com/
TDL 4
Clean
Infected
TDL 4
Infected MBR disassembly
TDL 4
After decryption and loading
LDR16
TDL 4
INT13 hooked
TDL 4
BCD modification