SlideShare a Scribd company logo
© 2009 Verizon. All Rights Reserved. PTEXXXXX XX/09
Escaping from Protected Mode
Internet Explorer
Tom Keetch
Application Security Specialist
Threat & Vulnerability Management EMEA
Introduction
Outline
•What is Protected Mode Internet Explorer?
•The Design of Protected Mode Internet Explorer
•Mandatory Integrity Control / Integrity Levels
•Attack Patterns and Bypassing the feature
•Impact on Adobe Reader, Google Chrome & Microsoft Office
2
Protected Mode Internet Explorer
Introduction
•Feature introduced in Internet Explorer 7
•Requires Windows Vista and later OS.
•Uses Mandatory Integrity Control
•a.k.a “Integrity Levels”
•According to Microsoft, this mechanism “significantly reduces
the ability of an attack [against IE] to write, alter or destroy
data on the user’s machine”.
•Mitigates 0-day attacks against IE.
•Based on “Practical Sandboxing” technology.
“The idea behind Protected Mode IE is that even if an attacker
somehow defeated every defense mechanism and gained
control of the IE process and got it to run some arbitrary
code that code would be severely limited in what it could do.”
– IEBlog (2006)
4
Protected Mode Internet Explorer
Introduction
“What's interesting about this is the fact that Firefox doesn't
have the benefit of Protected Mode under Vista, which can
somewhat mitigate the damage that can be done if Internet
Explorer 7 is exploited by [the ANI] vulnerability.”
– ZDNet (2007)
5
Protected Mode Internet Explorer
Introduction
“[Protected Mode is not a security Boundary]”
- Mark Russinovich
(Windows Security Boundaries)
6
What’s a “Security Boundary”?
•Microsoft Terminology
•A security boundary is a separation between distinct privilege
levels which can enforce a security policy. Any security holes
within this boundary will be patched within the monthly
update cycle.
•E.g. A web server cannot execute arbitrary code on the client
without informed consent.
7
•Unclear exactly how much PMIE protects users from remote code
execution attacks.
•This research set out to make this clear....
8
Protected Mode Internet Explorer
Introduction
Protected Mode Internet Explorer
When is it enabled?
•UAC must be enabled
•Protected Mode is a per-zone setting
•Current default settings :-
9
IE Zone Protected Mode?
Trusted Internet Zone No
Local Intranet Zone* No**
Internet Zone Yes
Restricted Sites Yes
Local Computer Zone No
* Enabled by Default in domain-joined workstation
** Previously enabled by default.
Protected Mode Internet Explorer
Design
10
Protected Mode Internet Explorer
Design
•IE Processes can run at different Integrity levels
–Un-trusted tabs at Low Integrity
–Trusted tabs at Medium/High integrity.
–In IE 7, trusted and un-trusted tabs appeared in different windows.
•Compatibility shim part of Low Rights IE (LRIE)
–Redirects requests for privileged operations to broker.
–Re-directs file and registry access.
•Loosely-Coupled IE (LCIE) in IE8
– Trusted and un-trusted tabs in same window
•Elevating Low-> Medium will bypass PMIE.
11
Protected Mode Internet Explorer
Broker Interface
•Available to callers at all integrity levels in user session.
•Implemented using Local Procedure Calls (LPC)
•Privileged operations require either:
– User consent, OR
– To be authorised by the Elevation Policy.
•Allows Low Integrity Processes to:
– Launch of new processes at Low or Medium Integrity
– Create new tabs/windows
– Save files in User folders marked Medium Integrity
12
Protected Mode Internet Explorer
Elevation Policy
•SOFTWAREMicrosoftInternet ExplorerLow RightsElevationPolicy
13
Value
(DWORD)
Numeric Value Example
3 Protected Mode silently launches the broker as
a medium integrity process
Winword.exe
2 Protected Mode prompts the user for
permission to launch the process. If permission
is granted, the process is launched as a
medium integrity process
All other
processes
1 Protected mode silently launches the broker as
a low integrity process
iexplore.exe
0 Protected mode prevents the process from
launching
cmd.exe
Protected Mode Internet Explorer
Trusted Brokers
•Auto-elevating processes are of particular interest
– Potential elevation routes
– Low -> Medium Integrity
•Compare with UAC
– Medium -> High Integrity
•“Trusted Brokers” used by IE and IE extensions to complete
trusted operations
•What about Low -> High Integrity via UAC?
14
Protected Mode Internet Explorer
UAC Elevation from Low Integrity
15
•PMIE Elevations do not allow the current working directory (CWD)
of the elevated process to be set.
•Allowing this exposes DLL-Load hijacking attacks.
– DLLs are frequently loaded from the CWD.
– Possibility of tricking launched process into loading a malicious DLL.
•But CWD can be set for UAC elevations.
– Such elevations are possible from Low Integrity processes.
– As the next slide shows....
– A UAC bypass will also bypass Protected Mode. (Low->High)
Protected Mode Internet Explorer
UAC Elevation from Low Integrity
16
Protected Mode Internet Explorer
Compatibility Shim
17
•2 different hooking mechanisms
•IE Broker Shim
– iebrshim.dll
– Redirects process launch requests to broker
• Application Compatibility shims
– AcLayers.dll
– AcRedir.dll
– Redirect registry and file access to low integrity locations
Protected Mode Internet Explorer
Compatibility Shim
18
•User mode hooking is implemented within the same virtual
address space
– Therefore arbitrary code executing in a hooked process can
ignore hooking policy.
– User mode hooking is a compatibility feature...
– Many pre-existing IE extensions can continue to work without
modification.
•But this shim can protect against some attacks.
– E.g. Arbitrary file read/write vulnerabilities in In-Process
extensions.
Mandatory Access Control
• Mandatory Access Control
•Under control of the operating system (mandatory)
• e.g. Mandatory Integrity Control, SE Linux.
• Discretionary Access
• At the discretion of the resource owner
• e.g. Users and Groups
• First Mandatory, then Discretionary access check.
Mandatory Integrity Control
•Introduces the concept of a less-trusted process.
Integrity Level (IL) Numeric
Value
Example
Un-trusted 0x0000h Anonymous Sessions
Low 0x1000h Protected Mode IE
Medium (Default) 0x2000h Normal User, Un-elevated Super-Users
High 0x3000h Super-Users (including Admin)
System 0x4000h All services
Protected 0x5000h DRM Processes
Mandatory Integrity Control
•Every securable object has an integrity level.
–And one or more “mandatory labels”
•Policies are defined in terms of generic access rights.
GENERIC_MAPPINGs define how policy applies to object
specific access rights.
Label Applied by Default to..
No Write Up Files, Processes, Synchronisation objects, ...
No Read Up Processes
No Execute Up Out of Process COM servers
Mandatory Integrity Control
winnt.h on GENERIC_MAPPINGs
#define GENERIC_READ (0x80000000L)
#define GENERIC_WRITE (0x40000000L)
#define GENERIC_EXECUTE (0x20000000L)
#define GENERIC_ALL (0x10000000L)
// Define the generic mapping array. This is used to denote the
// mapping of each generic access right to a specific access mask.
typedef struct _GENERIC_MAPPING {
ACCESS_MASK GenericRead;
ACCESS_MASK GenericWrite;
ACCESS_MASK GenericExecute;
ACCESS_MASK GenericAll;
} GENERIC_MAPPING;
typedef GENERIC_MAPPING *PGENERIC_MAPPING;
Mandatory Integrity Control
No Write Up
•This policy gives us the feature’s informal name
“Integrity Levels”
•Processes are unable to modify higher integrity objects
–Including other processes
•Low IL processes can only write to designated files and
registry keys
–Prevent drive-by downloads from installing malware
–Maintain the integrity of the machine
•Maintains confidentiality.
•Applied only to processes by default.
•ReadProcessMemory() and WriteProcessMemory() are
denied on higher integrity processes.
Mandatory Integrity Control
No Read Up
•COM is “Integrity-Aware”
•By default out-of-process COM objects are marked as
“No Execute Up”.
•Otherwise Low Integrity objects could get COM objects
to perform actions on their behalf.
Mandatory Integrity Control
No Execute Up
•The browser process runs at Low Integrity
•The user’s files are Medium Integrity
•Files/Registry are marked No Write Up
•Therefore a compromised IE process can read (and
steal), but not write, alter or delete user files.
• But else what can a low integrity process do?
Mandatory Integrity Control
Protected Mode Internet Explorer
Generic Mappings
Some Points of Interest
• Low IL processes can:
– Enumerate and Terminate higher integrity processes
– Be notified when threads/processes terminate
– Hold (and abandon) a higher integrity mutex
• There are also a couple of anomalies:
– Requesting “no-access” to a ↑IL file succeeds
– GENERIC_WRITE access to a ↑IL Mutex is allowed
•Registry “Symlink attacks” are possible
– Registry Symlinks can point to higher integrity registry keys
•These mappings will be useful later on...
Mandatory Integrity Control
Applicability to object types
•All SE_KERNEL_OBJECTs are subject to MIC
– But not all objects are SE_KERNEL_OBJECTs
•What’s not subject to MIC?
– Sockets
– Services
– Base Named Object (BNO) namespace
– Kernel interfaces (IOCTLs)
– Remote Procedure Calls
– ...
•Also, open handles!
– Access check has already happened.
Sockets
•Processes can bind to any port, regardless of Integrity Level
•The Windows XP Firewall cannot prevent Low IL servers either.
•In a Windows Vista Beta release, SMB loopback was used to
bypass UAC.
– localhostc$...
– Fixed in final release.
•Use loopback-bound servers to elevate privilege?
– E.g. SSDP bound to 127.0.0.1 by default.
29
Services
•The Service Control Manager is not “Integrity-Aware” like the COM
subsystem
•But discretionary access control still applies.
– No privileged groups enabled in a Low/Medium Integrity Access Token
– Privileged groups are only enabled in the High-Integrity “Linked Token”
– This is functionality implemented by UAC
•However, weak service ACLs may still be exploitable from Low IL.
30
Base Named Object Namespace
•This is where securable (named) objects are created
•Mandatory Integrity Control doesn’t apply here either.
– Namespace squatting attacks?
•This was given as one of two main reasons why Protected Mode was
not a “security boundary” by Mark Russinovich
– The other was UI overlay attacks
– Required user intervention / “social engineering”
•Candidate for good PMIE bypass methods
31
Window Stations & Desktops
• Both are objects of type SE_WINDOW_OBJECT
– Not SE_KERNEL_OBJECT
•Also, every interactive process has handles to:
– A Winsta0 – default window station for session
–The “Default” desktop – shared with other interactive processes.
•Sharing a desktop allows UI spoofing attacks
– Known limitation of PMIE.
•Sharing a Window Station allows other attacks!
32
Window Stations & Desktops
Window Station Attack Surface
•Another example is the Global Atom Table
– Contains strings and Integers
– Primitive form of Inter-Process Communication.
•Created a dumb Atom Table fuzzer running at Low Integrity
– NULL dereference in Process Explorer (running at High Integrity)
– Internet Explorer’s UI got mangled, but no crashes.
• Dynamic Data Exchange (DDE) IPC used Global Atoms
– So a smarter fuzzer might find more interesting bugs.
– Global Atoms are normally trustworthy
– So it’s likely that exploitable bugs exist in atom handling code.
33
Open Handles
What are the interesting ones?
•Write-access handles that are shared with higher integrity
processes
•Handles that refer to higher integrity securable objects
•One of the first Protected Mode IE bypasses was a handle leak
–Handle was to a medium integrity process/thread object
–Handle was closed by a low integrity process
–Discovered by SkyWing
–Published in the Uninformed.org journal – volume 8.
•Wrote a tool “Shandle” to find these which uses
GENERIC_MAPPINGs from before. (BSoD)
34
Kernel Object
Type
Name (Kernel Space)
Directory KnownDlls
WindowStation Sessions1WindowsWindowStationsWinSta0
Desktop Default
Directory Sessions1BaseNamedObjects
Section Sessions1BaseNamedObjectswindows_shell_global_counters
Section BaseNamedObjectswindows_shell_global_counters
Section Sessions1BaseNamedObjectsUrlZonesSM_Tom
Mutant Sessions1BaseNamedObjectsZonesCounterMutex
Mutant Sessions1BaseNamedObjectsZoneAttributeCacheCounterMutex
Mutant Sessions1BaseNamedObjectsZonesCacheCounterMutex
Mutant Sessions1BaseNamedObjectsZonesLockedCacheCounterMutex
Mutant Sessions1BaseNamedObjectsLRIEElevationPolicyMutex
Section Sessions1BaseNamedObjectsLRIEElevationPolicy_
Open Handles
Do any provide elevation routes?
• Already discussed :-
– Sessions1WindowsWindowStationsWinSta0
– Default
– Sessions1BaseNamedObjects
•We have FILE_ADD_FILE access to KnownDlls
– Is this exploitable?
• Interesting Attack Surface :-
– Sessions1BaseNamedObjectsLRIEElevationPolicyMutex
– Sessions1BaseNamedObjectsLRIEElevationPolicy_
• IE extensions provide new options.
36
37
Other Attack Vectors...
• IE Zone Elevations...
– Local
– Remote
– XSS
•Via Clipboard (part of WinSta0)
• File Reads
– Session Cookies written to disk?
– Files containing credentials etc.
• Trusted Broker Attacks
– Malicious Command Lines to Auto-elevate brokers.
– Vulnerabilities in Low Integrity Interfaces.
38
How To Escape From Protected Mode IE
The harder way
39
How To Escape From Protected Mode IE
Step By Step
40
1) Browser visits web server (1) on
a domain joined workstation.
2) IE exploited using exploit A.
3) The payload binds a web server
(2) to loopback interface.
4) The payload navigates to
webpage hosted by web server(2).
5) IE Exploited using exploit A.
6) Payload has full privileges of
the user!
The Exploit Re-Use Problem
•Design Flaw
•We can use the same exploit twice to bypass Protected
Mode IE.
•Exploits == $Money.
•Exploit Mitigation Mechanisms should materially raise the
cost of successful exploitation.
•No estimated fix release date from MS.
41
42
How To Escape From Protected Mode IE
The easier way
•Embed malicious site in the IFRAME of a trusted site.
•Protected Mode is determined by outermost frame.
•Exploit payload will run at Medium Integrity.
•Assuming Adobe Shockwave is installed…
43
How To Escape From Protected Mode IE
The easy way
•The design of PMIE has exposed new attack surface to
applications between applications in the same session.
Conclusions
• Protected Mode IE currently provides relatively little in terms of
additional assurance against memory corruption attacks.
– Too many options for elevating Integrity Level.
– New attack surface that didn’t previously exist
•Security features should clearly state what guarantees they are
making
– In this case, the claims are unclear.
•But ultimately should bypassing PMIE be considered a
vulnerability? MS say no (It’s not a “security boundary”)
– Is it reasonable to think that Protected Mode would make you a lot
safer?
44
Protected Mode
The Saga Continues...
•Protected Mode Adobe Reader is due out November 2010
•Protected Mode Microsoft Office is already available
•Google Chrome uses Practical Sandboxing
•If Microsoft are unwilling to consider PMIE a security boundary,
what does this mean for other products based on similar
techniques?
45
More Information
•A fully referenced technical whitepaper is available from:
– http://.???
•Questions/Comments/Corrections/Flames to:
– Email: tom.keetch @ uk.verizonbusiness.com
– Twitter: @tkeetch
46
Bonus Slide

More Related Content

PPT
Hack In Paris 2011 - Practical Sandboxing
PDF
IDA Vulnerabilities and Bug Bounty  by Masaaki Chida
PDF
CNIT 128: Android Implementation Issues (Part 2)
PDF
CSW2017 Yuhao song+Huimingliu cyber_wmd_vulnerable_IoT
PDF
Csw2017 bazhaniuk exploring_yoursystemdeeper_updated
PDF
CNIT 128 8. Android Implementation Issues (Part 2)
PPTX
Abusing Adobe Reader’s JavaScript APIs by Abdul-Aziz Hariri & Brian Gorenc - ...
PPTX
Revealing the Attack Operations Targeting Japan by Shusei Tomonaga & Yuu Nak...
Hack In Paris 2011 - Practical Sandboxing
IDA Vulnerabilities and Bug Bounty  by Masaaki Chida
CNIT 128: Android Implementation Issues (Part 2)
CSW2017 Yuhao song+Huimingliu cyber_wmd_vulnerable_IoT
Csw2017 bazhaniuk exploring_yoursystemdeeper_updated
CNIT 128 8. Android Implementation Issues (Part 2)
Abusing Adobe Reader’s JavaScript APIs by Abdul-Aziz Hariri & Brian Gorenc - ...
Revealing the Attack Operations Targeting Japan by Shusei Tomonaga & Yuu Nak...

What's hot (20)

PDF
Poc2015 os x_kernel_is_as_strong_as_its_weakest_part_liang_shuaitian
PDF
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
PDF
Csw2016 freingruber bypassing_application_whitelisting
PDF
openioc_scan - IOC scanner for memory forensics
PDF
Introduction to iOS Penetration Testing
PPTX
Not a Security Boundary: Bypassing User Account Control
PDF
Captain Hook: Pirating AVs to Bypass Exploit Mitigations
PDF
One-Byte Modification for Breaking Memory Forensic Analysis
PDF
CSW2017 Geshev+Miller logic bug hunting in chrome on android
PDF
Mitigating Java Deserialization attacks from within the JVM (improved version)
PDF
NCC Group 44Con Workshop: How to assess and secure ios apps
PDF
Malicious File for Exploiting Forensic Software
PDF
Fast and Generic Malware Triage Using openioc_scan Volatility Plugin
PDF
Web security for developers
PDF
Volatile IOCs for Fast Incident Response
PDF
CNIT 126 11. Malware Behavior
PDF
Mitigating Java Deserialization attacks from within the JVM
PDF
The Dark Side of PowerShell by George Dobrea
PPTX
COM Hijacking Techniques - Derbycon 2019
PDF
Html5 hacking
Poc2015 os x_kernel_is_as_strong_as_its_weakest_part_liang_shuaitian
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
Csw2016 freingruber bypassing_application_whitelisting
openioc_scan - IOC scanner for memory forensics
Introduction to iOS Penetration Testing
Not a Security Boundary: Bypassing User Account Control
Captain Hook: Pirating AVs to Bypass Exploit Mitigations
One-Byte Modification for Breaking Memory Forensic Analysis
CSW2017 Geshev+Miller logic bug hunting in chrome on android
Mitigating Java Deserialization attacks from within the JVM (improved version)
NCC Group 44Con Workshop: How to assess and secure ios apps
Malicious File for Exploiting Forensic Software
Fast and Generic Malware Triage Using openioc_scan Volatility Plugin
Web security for developers
Volatile IOCs for Fast Incident Response
CNIT 126 11. Malware Behavior
Mitigating Java Deserialization attacks from within the JVM
The Dark Side of PowerShell by George Dobrea
COM Hijacking Techniques - Derbycon 2019
Html5 hacking

Similar to Hack.Lu 2010 - Escaping Protected Mode Internet Explorer (20)

PPTX
Wcl310 Raiders of the Elevated Token
PDF
The Dangers of Elevated IBM i Authorities and How to Manage Them
PPTX
Windows 7 Application Compatibility
PPT
Fighting Spyware With Mandatory Access Control In Microsoft Windows Vista (Di...
PDF
NSC #2 - D3 05 - Alex Ionescu- Breaking Protected Processes
PDF
Level Up! - Practical Windows Privilege Escalation
PPTX
Week Topic Code Access vs Event Based.pptx
PDF
Least Privilege Security For Windows 7 Vista And Xp Secure Desktops For Regul...
PPT
IT109 Microsoft Windows 7 Operating Systems Unit 06 lesson 07
PDF
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
PPT
Internet Explorer 8 for Admins
PPTX
Seguridad Corporativa Con Internet Explorer 8(1)
PPT
W982 05092004
PDF
Tips to Remediate your Vulnerability Management Program
PPT
0828 Windows Server 2008 新安全功能探討
PDF
PR21-Preventing-File-Based-Botnet-Growth-and-Persistence-ARMOUR
PDF
Windows Security Internals 1 / converted Edition James Forshaw
PDF
Security 101: Limiting Powerful User Profiles
PDF
OSB120 Beat Ransomware
PPTX
Application hardening, Secure Socket Layer(SSL) & Secure Electronic Transacti...
Wcl310 Raiders of the Elevated Token
The Dangers of Elevated IBM i Authorities and How to Manage Them
Windows 7 Application Compatibility
Fighting Spyware With Mandatory Access Control In Microsoft Windows Vista (Di...
NSC #2 - D3 05 - Alex Ionescu- Breaking Protected Processes
Level Up! - Practical Windows Privilege Escalation
Week Topic Code Access vs Event Based.pptx
Least Privilege Security For Windows 7 Vista And Xp Secure Desktops For Regul...
IT109 Microsoft Windows 7 Operating Systems Unit 06 lesson 07
Windows's Kindnesses - Commoner to D-K(d)OM (Direct Kernel Object Manipulation)
Internet Explorer 8 for Admins
Seguridad Corporativa Con Internet Explorer 8(1)
W982 05092004
Tips to Remediate your Vulnerability Management Program
0828 Windows Server 2008 新安全功能探討
PR21-Preventing-File-Based-Botnet-Growth-and-Persistence-ARMOUR
Windows Security Internals 1 / converted Edition James Forshaw
Security 101: Limiting Powerful User Profiles
OSB120 Beat Ransomware
Application hardening, Secure Socket Layer(SSL) & Secure Electronic Transacti...

Recently uploaded (20)

PDF
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Cost to Outsource Software Development in 2025
PDF
Designing Intelligence for the Shop Floor.pdf
PPTX
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
PDF
Autodesk AutoCAD Crack Free Download 2025
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Website Design Services for Small Businesses.pdf
PPTX
Why Generative AI is the Future of Content, Code & Creativity?
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
CHAPTER 2 - PM Management and IT Context
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Nekopoi APK 2025 free lastest update
PPTX
Weekly report ppt - harsh dattuprasad patel.pptx
PPTX
Patient Appointment Booking in Odoo with online payment
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
PDF
Salesforce Agentforce AI Implementation.pdf
How to Make Money in the Metaverse_ Top Strategies for Beginners.pdf
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
Cost to Outsource Software Development in 2025
Designing Intelligence for the Shop Floor.pdf
Log360_SIEM_Solutions Overview PPT_Feb 2020.pptx
Autodesk AutoCAD Crack Free Download 2025
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Website Design Services for Small Businesses.pdf
Why Generative AI is the Future of Content, Code & Creativity?
Download FL Studio Crack Latest version 2025 ?
Design an Analysis of Algorithms I-SECS-1021-03
CHAPTER 2 - PM Management and IT Context
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Wondershare Filmora 15 Crack With Activation Key [2025
Nekopoi APK 2025 free lastest update
Weekly report ppt - harsh dattuprasad patel.pptx
Patient Appointment Booking in Odoo with online payment
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
Salesforce Agentforce AI Implementation.pdf

Hack.Lu 2010 - Escaping Protected Mode Internet Explorer

  • 1. © 2009 Verizon. All Rights Reserved. PTEXXXXX XX/09 Escaping from Protected Mode Internet Explorer Tom Keetch Application Security Specialist Threat & Vulnerability Management EMEA
  • 2. Introduction Outline •What is Protected Mode Internet Explorer? •The Design of Protected Mode Internet Explorer •Mandatory Integrity Control / Integrity Levels •Attack Patterns and Bypassing the feature •Impact on Adobe Reader, Google Chrome & Microsoft Office 2
  • 3. Protected Mode Internet Explorer Introduction •Feature introduced in Internet Explorer 7 •Requires Windows Vista and later OS. •Uses Mandatory Integrity Control •a.k.a “Integrity Levels” •According to Microsoft, this mechanism “significantly reduces the ability of an attack [against IE] to write, alter or destroy data on the user’s machine”. •Mitigates 0-day attacks against IE. •Based on “Practical Sandboxing” technology.
  • 4. “The idea behind Protected Mode IE is that even if an attacker somehow defeated every defense mechanism and gained control of the IE process and got it to run some arbitrary code that code would be severely limited in what it could do.” – IEBlog (2006) 4 Protected Mode Internet Explorer Introduction
  • 5. “What's interesting about this is the fact that Firefox doesn't have the benefit of Protected Mode under Vista, which can somewhat mitigate the damage that can be done if Internet Explorer 7 is exploited by [the ANI] vulnerability.” – ZDNet (2007) 5 Protected Mode Internet Explorer Introduction
  • 6. “[Protected Mode is not a security Boundary]” - Mark Russinovich (Windows Security Boundaries) 6
  • 7. What’s a “Security Boundary”? •Microsoft Terminology •A security boundary is a separation between distinct privilege levels which can enforce a security policy. Any security holes within this boundary will be patched within the monthly update cycle. •E.g. A web server cannot execute arbitrary code on the client without informed consent. 7
  • 8. •Unclear exactly how much PMIE protects users from remote code execution attacks. •This research set out to make this clear.... 8 Protected Mode Internet Explorer Introduction
  • 9. Protected Mode Internet Explorer When is it enabled? •UAC must be enabled •Protected Mode is a per-zone setting •Current default settings :- 9 IE Zone Protected Mode? Trusted Internet Zone No Local Intranet Zone* No** Internet Zone Yes Restricted Sites Yes Local Computer Zone No * Enabled by Default in domain-joined workstation ** Previously enabled by default.
  • 10. Protected Mode Internet Explorer Design 10
  • 11. Protected Mode Internet Explorer Design •IE Processes can run at different Integrity levels –Un-trusted tabs at Low Integrity –Trusted tabs at Medium/High integrity. –In IE 7, trusted and un-trusted tabs appeared in different windows. •Compatibility shim part of Low Rights IE (LRIE) –Redirects requests for privileged operations to broker. –Re-directs file and registry access. •Loosely-Coupled IE (LCIE) in IE8 – Trusted and un-trusted tabs in same window •Elevating Low-> Medium will bypass PMIE. 11
  • 12. Protected Mode Internet Explorer Broker Interface •Available to callers at all integrity levels in user session. •Implemented using Local Procedure Calls (LPC) •Privileged operations require either: – User consent, OR – To be authorised by the Elevation Policy. •Allows Low Integrity Processes to: – Launch of new processes at Low or Medium Integrity – Create new tabs/windows – Save files in User folders marked Medium Integrity 12
  • 13. Protected Mode Internet Explorer Elevation Policy •SOFTWAREMicrosoftInternet ExplorerLow RightsElevationPolicy 13 Value (DWORD) Numeric Value Example 3 Protected Mode silently launches the broker as a medium integrity process Winword.exe 2 Protected Mode prompts the user for permission to launch the process. If permission is granted, the process is launched as a medium integrity process All other processes 1 Protected mode silently launches the broker as a low integrity process iexplore.exe 0 Protected mode prevents the process from launching cmd.exe
  • 14. Protected Mode Internet Explorer Trusted Brokers •Auto-elevating processes are of particular interest – Potential elevation routes – Low -> Medium Integrity •Compare with UAC – Medium -> High Integrity •“Trusted Brokers” used by IE and IE extensions to complete trusted operations •What about Low -> High Integrity via UAC? 14
  • 15. Protected Mode Internet Explorer UAC Elevation from Low Integrity 15 •PMIE Elevations do not allow the current working directory (CWD) of the elevated process to be set. •Allowing this exposes DLL-Load hijacking attacks. – DLLs are frequently loaded from the CWD. – Possibility of tricking launched process into loading a malicious DLL. •But CWD can be set for UAC elevations. – Such elevations are possible from Low Integrity processes. – As the next slide shows.... – A UAC bypass will also bypass Protected Mode. (Low->High)
  • 16. Protected Mode Internet Explorer UAC Elevation from Low Integrity 16
  • 17. Protected Mode Internet Explorer Compatibility Shim 17 •2 different hooking mechanisms •IE Broker Shim – iebrshim.dll – Redirects process launch requests to broker • Application Compatibility shims – AcLayers.dll – AcRedir.dll – Redirect registry and file access to low integrity locations
  • 18. Protected Mode Internet Explorer Compatibility Shim 18 •User mode hooking is implemented within the same virtual address space – Therefore arbitrary code executing in a hooked process can ignore hooking policy. – User mode hooking is a compatibility feature... – Many pre-existing IE extensions can continue to work without modification. •But this shim can protect against some attacks. – E.g. Arbitrary file read/write vulnerabilities in In-Process extensions.
  • 19. Mandatory Access Control • Mandatory Access Control •Under control of the operating system (mandatory) • e.g. Mandatory Integrity Control, SE Linux. • Discretionary Access • At the discretion of the resource owner • e.g. Users and Groups • First Mandatory, then Discretionary access check.
  • 20. Mandatory Integrity Control •Introduces the concept of a less-trusted process. Integrity Level (IL) Numeric Value Example Un-trusted 0x0000h Anonymous Sessions Low 0x1000h Protected Mode IE Medium (Default) 0x2000h Normal User, Un-elevated Super-Users High 0x3000h Super-Users (including Admin) System 0x4000h All services Protected 0x5000h DRM Processes
  • 21. Mandatory Integrity Control •Every securable object has an integrity level. –And one or more “mandatory labels” •Policies are defined in terms of generic access rights. GENERIC_MAPPINGs define how policy applies to object specific access rights. Label Applied by Default to.. No Write Up Files, Processes, Synchronisation objects, ... No Read Up Processes No Execute Up Out of Process COM servers
  • 22. Mandatory Integrity Control winnt.h on GENERIC_MAPPINGs #define GENERIC_READ (0x80000000L) #define GENERIC_WRITE (0x40000000L) #define GENERIC_EXECUTE (0x20000000L) #define GENERIC_ALL (0x10000000L) // Define the generic mapping array. This is used to denote the // mapping of each generic access right to a specific access mask. typedef struct _GENERIC_MAPPING { ACCESS_MASK GenericRead; ACCESS_MASK GenericWrite; ACCESS_MASK GenericExecute; ACCESS_MASK GenericAll; } GENERIC_MAPPING; typedef GENERIC_MAPPING *PGENERIC_MAPPING;
  • 23. Mandatory Integrity Control No Write Up •This policy gives us the feature’s informal name “Integrity Levels” •Processes are unable to modify higher integrity objects –Including other processes •Low IL processes can only write to designated files and registry keys –Prevent drive-by downloads from installing malware –Maintain the integrity of the machine
  • 24. •Maintains confidentiality. •Applied only to processes by default. •ReadProcessMemory() and WriteProcessMemory() are denied on higher integrity processes. Mandatory Integrity Control No Read Up
  • 25. •COM is “Integrity-Aware” •By default out-of-process COM objects are marked as “No Execute Up”. •Otherwise Low Integrity objects could get COM objects to perform actions on their behalf. Mandatory Integrity Control No Execute Up
  • 26. •The browser process runs at Low Integrity •The user’s files are Medium Integrity •Files/Registry are marked No Write Up •Therefore a compromised IE process can read (and steal), but not write, alter or delete user files. • But else what can a low integrity process do? Mandatory Integrity Control Protected Mode Internet Explorer
  • 27. Generic Mappings Some Points of Interest • Low IL processes can: – Enumerate and Terminate higher integrity processes – Be notified when threads/processes terminate – Hold (and abandon) a higher integrity mutex • There are also a couple of anomalies: – Requesting “no-access” to a ↑IL file succeeds – GENERIC_WRITE access to a ↑IL Mutex is allowed •Registry “Symlink attacks” are possible – Registry Symlinks can point to higher integrity registry keys •These mappings will be useful later on...
  • 28. Mandatory Integrity Control Applicability to object types •All SE_KERNEL_OBJECTs are subject to MIC – But not all objects are SE_KERNEL_OBJECTs •What’s not subject to MIC? – Sockets – Services – Base Named Object (BNO) namespace – Kernel interfaces (IOCTLs) – Remote Procedure Calls – ... •Also, open handles! – Access check has already happened.
  • 29. Sockets •Processes can bind to any port, regardless of Integrity Level •The Windows XP Firewall cannot prevent Low IL servers either. •In a Windows Vista Beta release, SMB loopback was used to bypass UAC. – localhostc$... – Fixed in final release. •Use loopback-bound servers to elevate privilege? – E.g. SSDP bound to 127.0.0.1 by default. 29
  • 30. Services •The Service Control Manager is not “Integrity-Aware” like the COM subsystem •But discretionary access control still applies. – No privileged groups enabled in a Low/Medium Integrity Access Token – Privileged groups are only enabled in the High-Integrity “Linked Token” – This is functionality implemented by UAC •However, weak service ACLs may still be exploitable from Low IL. 30
  • 31. Base Named Object Namespace •This is where securable (named) objects are created •Mandatory Integrity Control doesn’t apply here either. – Namespace squatting attacks? •This was given as one of two main reasons why Protected Mode was not a “security boundary” by Mark Russinovich – The other was UI overlay attacks – Required user intervention / “social engineering” •Candidate for good PMIE bypass methods 31
  • 32. Window Stations & Desktops • Both are objects of type SE_WINDOW_OBJECT – Not SE_KERNEL_OBJECT •Also, every interactive process has handles to: – A Winsta0 – default window station for session –The “Default” desktop – shared with other interactive processes. •Sharing a desktop allows UI spoofing attacks – Known limitation of PMIE. •Sharing a Window Station allows other attacks! 32
  • 33. Window Stations & Desktops Window Station Attack Surface •Another example is the Global Atom Table – Contains strings and Integers – Primitive form of Inter-Process Communication. •Created a dumb Atom Table fuzzer running at Low Integrity – NULL dereference in Process Explorer (running at High Integrity) – Internet Explorer’s UI got mangled, but no crashes. • Dynamic Data Exchange (DDE) IPC used Global Atoms – So a smarter fuzzer might find more interesting bugs. – Global Atoms are normally trustworthy – So it’s likely that exploitable bugs exist in atom handling code. 33
  • 34. Open Handles What are the interesting ones? •Write-access handles that are shared with higher integrity processes •Handles that refer to higher integrity securable objects •One of the first Protected Mode IE bypasses was a handle leak –Handle was to a medium integrity process/thread object –Handle was closed by a low integrity process –Discovered by SkyWing –Published in the Uninformed.org journal – volume 8. •Wrote a tool “Shandle” to find these which uses GENERIC_MAPPINGs from before. (BSoD) 34
  • 35. Kernel Object Type Name (Kernel Space) Directory KnownDlls WindowStation Sessions1WindowsWindowStationsWinSta0 Desktop Default Directory Sessions1BaseNamedObjects Section Sessions1BaseNamedObjectswindows_shell_global_counters Section BaseNamedObjectswindows_shell_global_counters Section Sessions1BaseNamedObjectsUrlZonesSM_Tom Mutant Sessions1BaseNamedObjectsZonesCounterMutex Mutant Sessions1BaseNamedObjectsZoneAttributeCacheCounterMutex Mutant Sessions1BaseNamedObjectsZonesCacheCounterMutex Mutant Sessions1BaseNamedObjectsZonesLockedCacheCounterMutex Mutant Sessions1BaseNamedObjectsLRIEElevationPolicyMutex Section Sessions1BaseNamedObjectsLRIEElevationPolicy_
  • 36. Open Handles Do any provide elevation routes? • Already discussed :- – Sessions1WindowsWindowStationsWinSta0 – Default – Sessions1BaseNamedObjects •We have FILE_ADD_FILE access to KnownDlls – Is this exploitable? • Interesting Attack Surface :- – Sessions1BaseNamedObjectsLRIEElevationPolicyMutex – Sessions1BaseNamedObjectsLRIEElevationPolicy_ • IE extensions provide new options. 36
  • 37. 37
  • 38. Other Attack Vectors... • IE Zone Elevations... – Local – Remote – XSS •Via Clipboard (part of WinSta0) • File Reads – Session Cookies written to disk? – Files containing credentials etc. • Trusted Broker Attacks – Malicious Command Lines to Auto-elevate brokers. – Vulnerabilities in Low Integrity Interfaces. 38
  • 39. How To Escape From Protected Mode IE The harder way 39
  • 40. How To Escape From Protected Mode IE Step By Step 40 1) Browser visits web server (1) on a domain joined workstation. 2) IE exploited using exploit A. 3) The payload binds a web server (2) to loopback interface. 4) The payload navigates to webpage hosted by web server(2). 5) IE Exploited using exploit A. 6) Payload has full privileges of the user!
  • 41. The Exploit Re-Use Problem •Design Flaw •We can use the same exploit twice to bypass Protected Mode IE. •Exploits == $Money. •Exploit Mitigation Mechanisms should materially raise the cost of successful exploitation. •No estimated fix release date from MS. 41
  • 42. 42 How To Escape From Protected Mode IE The easier way •Embed malicious site in the IFRAME of a trusted site. •Protected Mode is determined by outermost frame. •Exploit payload will run at Medium Integrity.
  • 43. •Assuming Adobe Shockwave is installed… 43 How To Escape From Protected Mode IE The easy way •The design of PMIE has exposed new attack surface to applications between applications in the same session.
  • 44. Conclusions • Protected Mode IE currently provides relatively little in terms of additional assurance against memory corruption attacks. – Too many options for elevating Integrity Level. – New attack surface that didn’t previously exist •Security features should clearly state what guarantees they are making – In this case, the claims are unclear. •But ultimately should bypassing PMIE be considered a vulnerability? MS say no (It’s not a “security boundary”) – Is it reasonable to think that Protected Mode would make you a lot safer? 44
  • 45. Protected Mode The Saga Continues... •Protected Mode Adobe Reader is due out November 2010 •Protected Mode Microsoft Office is already available •Google Chrome uses Practical Sandboxing •If Microsoft are unwilling to consider PMIE a security boundary, what does this mean for other products based on similar techniques? 45
  • 46. More Information •A fully referenced technical whitepaper is available from: – http://.??? •Questions/Comments/Corrections/Flames to: – Email: tom.keetch @ uk.verizonbusiness.com – Twitter: @tkeetch 46