Hidden Rootkits in Windows - Microsoft Center

advertisement
Hidden Rootkits in Windows
Presented by: Brian Bourne, CMS Consulting Inc.
CMS Consulting Inc.
Microsoft Infrastructure and Security Experts
Active Directory - Windows Server - Exchange - SMS - ISA
MOM - Clustering - Office – Desktop Deployment - SQL –
Terminal Services - Security Assessments - Lockdown – Wireless
Training by Experts for Experts
MS Infrastructure – Security - Vista and Office Deployment
Visit us online: www.cms.ca
Downloads – Resources – White Papers
For Security Solutions
For Advanced Infrastructure
For Network Solutions
For Information Worker
For Mobility Solutions
Agenda
What is a rootkit?
Kernal mode vs user mode
Popular and New rootkits
History of Rootkits
What can they hide
DEMO – Hacker Defender Anatomy 101
How they hide and go undetected
DEMO - Hacker Defender In Action!
DEMO – Covert Channels
DEMO – FUTo
Detection, Protection and Removal
DEMO – Detection
Hardware Virtualization Rootkits
Vista
Trends
Overview
What is a rootkit?
A root kit is a set of tools used by an intruder after
cracking a computer system. These tools can help
the attacker maintain his or her access to the
system and use it for malicious purposes.
Root kits exist for a variety of operating systems
such as Linux, Solaris, and versions of Microsoft
Windows
Reference: http://en.wikipedia.org/wiki/Rootkit
Types of rootkits 1 of 3
Persistent Rootkits
A persistent rootkit is one associated with malware
that activates each time the system boots. Because
such malware contain code that must be executed
automatically each system start or when a user
logs in, they must store code in a persistent store,
such as the Registry or file system, and configure a
method by which the code executes without user
intervention.
Memory-Based Rootkits
Memory-based rootkits are malware that has no
persistent code and therefore does not survive a
reboot.
Types of rootkits 2 of 3
User-mode Rootkits
There are many methods by which rootkits attempt to
evade detection.
Example:
• a user-mode rootkit might intercept all calls to the
Windows FindFirstFile/FindNextFile APIs, which are
used by file system exploration utilities, including
Explorer and the command prompt, to enumerate the
contents of file system directories.
• When an application performs a directory listing that
would otherwise return results that contain entries
identifying the files associated with the rootkit, the
rootkit intercepts and modifies the output to remove
the entries.
Types of rootkits 3 of 3
Kernel-mode Rootkits
Kernel-mode rootkits can be even more powerful since,
not only can they intercept the native API in kernel-mode,
but they can also directly manipulate kernel-mode data
structures. A common technique for hiding the presence
of a malware process is to remove the process from the
kernel's list of active processes. Since process
management APIs rely on the contents of the list, the
malware process will not display in process management
tools like Task Manager or Process Explorer.
Reference: http://www.sysinternals.com
Windows Architecture
Applications
·
Explorer
·
Task manager
·
User applications
Subsystems
·
OS/2
·
POSIX
·
Windows
·
Windows DLLs
Services
·
Services.exe
·
Spoolsvc.exe
·
Svchost.exe
·
Winmgt.exe
System Processes
·
LSASS
·
Service Control Manager
·
Session manager
·
Winlogon
Ring 3
User Mode
NTDLL.DLL
Ring 0
Kernel Mode
System threads
System Service Dispatcher
(Kernel mode callable interfaces)
I/O
Manager
File
System
Cache
Config
Manager
(registry)
Device &
File Sys
Drivers
Local
Procedure
Call
Object
Manager
Plug &
Play
Kernel
Hardware Abstraction Layer
Reference: http://www.microsoft.com
Processess
& Threads
Security
Reference
Monitor
Virtual
Memory
Windows
USER,
GDI
Graphics
drivers
History of Rootkits
First
Generation
Second
Generation
Fifth
Generation
Third
Generation
Fourth
Generation
Primitive
Binary file replacement (password logging / UNIX)
Hiding traces/tracks (log cleaners)
More
advanced
hiding - “stealthy” (Hxdef,HE4Hook)
Hardware
Virtualization
Hooking
techniques
Boot Root
Kits
Direct dynamic manipulation of kernel structures
(FU)
Difficult for detection software to identify
Advanced Memory hooking/hiding (Shadow
Walker)
Used in collusion with 3rd Generation rootkit
Extremely “stealthy”
Popular Rootkits
AFX Rootkit 2005
FU
Hacker Defender
HE4Hook
NT Root
NTFSHider
NTIllusion
Vanquish
Winlogon Hijack
New Rootkits
FUTo
KIrcBot
SubVirt
Shadow Walker
BluePill (PoC)
BootRoot and VBootKit
Commercial Stealth
Commercially available products that use rootkit type technologies.
Sony DRM
Mr. & Mrs. Smith DVD
(Alpha-Disc DRM)
Norton System Works
Hide Folders XP
Tracking and Monitoring software
What can they hide
Covert Channels
Custom GINA’s
Files and Directories
Processes
Registry Keys
Services
TCP/UPD ports
Memory pages (New)
VM’s (New)
How they hide and go undetected
Kernel Native API hooking
User Native API hooking
Dynamic Forking of Win32 EXE
Direct Kernel Object Manipulation (DKOM)
Interrupt Descriptor Table Hooking
Memory Hooking (Shadow Walker)
Reference: www.security.org.sg / www.hbgary.com / www.rootkit.com
DEMO Network
Windows Server 2003
SMTP Service
Domain Controller
IP: 172.16.0.1
rk-win2k3.domain.com
Windows XP
IP: 172.16.0.x
rk-winxp.domain.com
172.16.0.x
Windows Server 2003
ISA 2004 Firewall
IP: 172.16.0.10
rk-isa.domain.com
IP: 10.10.8.100
Internet
Windows XP
IP: 10.10.8.200
winxp.attacker.com
DEMO Introduction
Hacker Defender - Anatomy 101
Hxdef100.exe
Hxdef100.ini
Hxdefdrv.sys (Embedded in hxdef100.exe)
Rdrbs100.exe
Rdrbs100.ini
Bdcli100.exe
Reference: http://hxdef.czweb.org
DEMO
Hacker Defender – In Action!
Security Compromise - Exploit
Avoiding Antivirus Detection
Hiding Folders/Files
Hiding Services
Hiding TCP Ports
Hacker Defender – Covert Channel
Backdoor shell access via SMTP
Covert Channel Summary
Backdoor Client
Internet
1
Port 25 is intercepted by Backdoor
2
Normal email is sent to the SMTP service
3
4
Firewall
1
2
3
Backdoor
Server
Intercept
TCP:25
4
Remote
Shell
TCP:100
Special 256 bit key is sent
SMTP
Service
TCP:25
Remote Shell on TCP:100 started
Windows 2003
DEMO
FUTo
Security Compromise - Exploit
Avoiding Antivirus Detection
Changing Security Token
Hiding Process
Detection
How to detect rootkits?
Darkspy
1.0.5
F-Secure BlackLight Beta
2.2.1061
GMER
1.0.12.12244
IceSword
1.20
KProcCheck
0.2-beta2
Malicious Software Removal Tool
V1.29 5/12/2007
Process Magic by WinEggDrop
V1.0
RootKit Shark
3.11
RootkitRevealer
1.7
Strider (Microsoft)
beta
System Virginity Verifier
2.3
Windows Defender
1.1.1505.0
UnHackMe
4.5
DEMO
Detecting rootkits
F-Secure Blacklight
GMER
Rootkit Revealer
IceSword
Detection Results
Version
AFX Rootkit 2005
FU
Hacker
Defender
Vanquish
2.2.1037
Yes
Yes
Yes
Yes
Flister
0.1
Yes
No *1
Yes
Yes
Need to type in the exact dir path
Keensense
2.0
Yes
Yes
Yes
No
Installs system driver and requires a
reboot. Unstable.
3.150
Yes
Yes
Yes
Yes
Install requires a reboot. All Global
Protection optiosn manually turned on.
Needs to “learn” a baseline of the system.
1.0.10.10111
Yes
Yes
Yes
Yes
Choice of reboot for advanced features
IceSword
1.18
Yes
Yes
Yes
Yes
Choice of reboot for advanced features
Rootkit Revealer
1.55
Yes
No
Yes
Yes
Strider
beta
Yes
No *1
Yes
Yes
Name
Blacklight
Process Guard
GMER
*1 Could not detect FU because it does not hide folders/files. Only processes.
Notes
Hidden directory/file compare of
comprimised state and clean state from a
WinPE boot CD using windiff.
Detection Summary
All “stock” rootkits discovered with various
detection tools
Custom recompiled rootkits by pass antivirus
detection
Commercially available customized
rootkits that hide files, services,
processes, registry keys would
not be detected in the
compromised OS
Hardware Virtualization Rootkits
Dino Dai Zovi presented an essentially
undetectable hypervisor rootkit using:
Intel VT processor
Mac OS-X
“Vitriol” to be demo’d at BlueHat
Joanna Rutkowska presented an essentially
undetectable hypervisor rootkit using:
AMD Pacifica processor
Microsoft Vista Beta 2
SUMMARY: THIS IS NOT AN AMD OR
INTEL NOR VISTA OR MAC ISSUE!
Hardware Virtualization Rootkits
Preventing detection was a design goal:
– “There is no software-visible bit whose setting indicates whether
a logical processor is in VMX non-root operation. This fact may
allow a VMM to prevent guest software from determining that it is
running in a virtual machine” -- Intel VT-x specification
The design goals of AMD and Intel were to provide full
virtualization. This means FULL virtualization.
There is no hardware bit or register that indicates that the
processor is running in VMX non-root mode
Read Dino and Joanna’s presentations for details regarding
new CPU instructions and how hypervisors work.
Bypassing Vista Kernel
Signed Drivers
Well Joanna did have some extra complexity to deal with
because of Vista requiring all kernel drivers to be signed.
Essentially, she figured out a way to cause it to page out
null.sys, then modified the pagefile.sys directly using raw
disk access to get Vista to run her rootkit. The process:
Allocate lots of memory to cause unused drivers code to be
paged
Replace the paged out code (inside pagefile) with some
shellcode
Ask kernel to call the driver code which was just replaced
“Fixed” in Vista RC2 – by disabling raw disk access from
user mode (including administrator)
BP Detection
Some ideas for BluePill detection were presented by both
Dino and Joanna. Essentially they are:
Attempt to use VMX to create a VM
Bluepill a box with Bluepill – although this exception could be
handled and the second Bluepill to run would end up being
virtualized also)
Attempt to detect VM exit latency
Dino demo’d using CPUID, but a number of instructions cause a
VM Exit and you could measure latency. Although the timer could
be altered by the Bluepill and hence would require an external
time source. How could is your stop watch?
Joanna came up with an undisclosed method to blue
screen a BluePill’ed box, but that’s not really great
detection.
Hardware Virtualization Rootkits
Bottom line
Arbitrary code can be injected into Vista x64 kernel despite code
signing requirement, and in really any other operating system.
This could be abused to create “Blue Pill” based malware on
processors supporting virtualization
BP installs itself on the fly and does not introduce any modifications
to BIOS nor hard disk
BP can be used in many different ways to create the actual malware
BP should be undetectable in any practical way (when fully
implemented)
Blocking BP based attacks on software level will also prevent ISVs
from providing their own VMMs and security products based on SVM
technology
Changes in hardware (processor) could allow for easy BP detection
Protection
Defence in Depth practices!
Application Layer firewalls
Add rootkit detection and removal software to
your toolkit
Baseline your systems in another kernel (WinPE)
using the Microsoft Strider technique for
comparing modified/added binaries
on a regular basis
Removal
Rootkit removal tools (eg. “Unhackme” by Greatis
Software, F-Secure Blacklight, GMER, IceSword)
Clean from another kernel (eg. BackTrack, WinPE, etc)
Use technology that reverts back to a previous state if
your environment allows for it:
Undo disks in Microsoft Virtual PC/Server
Microsoft Shared Computer Toolkit v1.1
Faronics Deep Freeze
Symantec Norton GoBack
Winternals Recovery Manager
Once a machine has been compromised, the
only true cleaning method is to low-level format and reload!
Trends 1 of 2
It’s a cat and mouse game
As rootkit detection methods/signatures are updated; so
are the techniques/methods of the rootkits evading
detection; just like viruses but much more sophisticated
Encrypting the memory pages where the rootkit is
running to avoid detection
Polymorphism
Spyware and Viruses utilizing functions of rootkits to hide
their presence and payload; This has already happened
and will continue to escalate to an extremely “stealthy”
version
Trends 2 of 2
Memory Hiding (e.g. Shadow Walker)
Using other system writeable memory locations.
(e.g. VideoCardKit, MTDWin, ACPI, BIOS)
Boot sector rootkits (e.g. BootRootKit, VBootKit)
Virtual Machine rootkits
Database rootkits
(presented in concept by Alexander Kornbrust at BH2005)
Hardware based rootkit detection
Intel Rootkit detection (Code name: LaGrande)
TPM (Trusted Platform Module)
Co-Pilot (PCI card) http://www.komoku.com
VISTA
Windows Defender
Microsoft plans to move device
drivers out of the kernel and in
to the user level (starting with
Vista)
Address Space Layout
Randomization (ASLR)
Digital Signatures for Kernel
Modules on x64-based Systems
Running Windows Vista
Microsoft Patch Guard on x64
Based Systems
Reference:
http://www.microsoft.com
Need to Know
Prevention
Response
Learn
More
Stop rootkits from entering and executing in your
environment.
Non-critical systems can be cleaned and/or
reloaded.
Critical systems require professional assistance,
particularly if forensic evidence is desired.
http://www.rootkit.com
http://www.antirootkit.com
Participate in the Toronto Area Security Klatch
http://www.task.to
Security Education
Conference in Toronto
November 20 – 21, 2007, MTCC, Toronto, ON, Canada
http://www.sector.ca/
CMS Training Offerings
INSPIRE Infrastructure Workshop
4 days of classroom training - demo intensive
AD, Exchange, ISA, Windows Server, SMS, MOM, Virtual Server
Business Desktop Deployment – Deploying Vista/Office
3 days of classroom training - hands on labs (computers provide)
Business Desktop Deployment Concepts, Tools, Processes, etc.
Vista and Office
Securing Internet Information Services
Securing ActiveDirectory
Securing Exchange 2003
1 day classroom training per topic
TRAINING BY EXPERTS FOR EXPERTS
Contacting Us.
Brian Bourne, President – brian@cms.ca
Robert Buren, VP Business Development –
robert@cms.ca
CMS Consulting Inc. – http://www.cms.ca/
CMS Training – http://www.cms.ca/training/
Toronto Area Security Klatch – http://www.task.to/
CMS Consulting Inc.
Q&A
Thank You!
Visit: CMS Consulting at http://www.cms.ca
Join: Toronto Area Security Klatch at http://www.task.to
Register: Security Education in Toronto at
http://www.sector.ca
Download