Offensive Security Exploitation Expert (OSEE)
My Notes
Syllabus
- Introduction
- Microsoft Edge Type Confusion
- Exploitation Introduction
- 64bit Architecture
- Vulnerability Classes
- Basic Security Mitigations
- Edge Internals
- JavaScript Engine
- Chakra Internals
- JIT and Type Confusion
- Type Confusion Case Study
- Triggering the Vulnerability
- Root Cause Analysis
- Exploiting Type Confusion
- Controlling the auxSlots Pointer
- Abuse AuxSlots Pointer
- Create Read and Write Primitive
- Going for RIP
- Vanilla Attack
- CFG Internals
- CFG Bypass
- Return Address Overwrite
- Intel CET
- Out of Context Calls
- Data Only Attack
- Parallel DLL Loading
- Injecting Fake Work
- Faking the Work
- Hot Patching DLLs
- Arbitrary Code Guard (ACG)
- ACG Theory
- ACG Bypasses
- Advanced Out of Context Calls
- Faking it to Make it
- Fixing the Crash
- Remote Procedure Calls
- RPC Theory
- Is That My Structure
- Analyzing the Buffers
- Calling an API
- Return of Mitigations
- Perfecting Out of Context Calls
- Come Back to JavaScript
- Return Value Alignment
- Call Me Again
- Combining the Work
- NOP’ing CFG
- Call Arbitrary API
- Browser Sandbox
- Sandbox Theory Introduction
- Sandbox Escape Theory
- The Glue That Binds
- Sandbox Escape Practice
- Insecure Access
- The Problem of Languages
- The Great Escape
- Activation Factory
- GetTemplateContent
- What Is As?
- Loading the XML
- Allowing Scripts
- Pop That Notepad
- Getting a Shell
- Upping The Game: Making the Exploit Version Independent
- Locating the Base
- Locating Internal Functions and Imports
- Locating Exported Functions
- Wrapping Up
- Exploitation Introduction
- Kernel Exploitation and Payloads
- The Windows Kernel
- Privilege Levels
- Interrupt Request Level (IRL)
- Windows Kernel Driver Signing
- Kernel Mode Debugging on Windows
- Remote Kernel Debugging Over TCP/IP
- Communicating with the Kernel
- Native System Calls
- Device Drivers
- Kernel Vulnerability Classes
- Kernel Mode Payloads
- Token Stealing
- ALC Editing
- Kernel Mode Rootkits
- Vulnerability Overview and Exploitation
- Triggering the Vulnerability
- Redirecting Execution to Usermode
- ROP Based Attack
- Stack Pivoting
- Kernel Read/Write Primitive
- Restoring the IO Ring Object
- Elevate Privileges
- Data Only Attack
- Developing a Rootkit
- Bypassing DSE
- Elevating Permissions
- Evading Detection
- Version Independence
- Dynamic Gadget Location
- Extra Mile Exercise
- Wrapping Up
- The Windows Kernel
- Untrusted Pointer Dereference
- Vulnerability Overview and Exploit Types
- Identifying the Vulnerability through Patch Diffing
- Introduction to Memory Paging and Structures
- Memory Descriptor Lists (MDLs)
- The PML Self Reference Entry
- PML Self Reference Entry Randomization
- Virtualization Based Security
- Hyper-V: The Windows Hypervisor
- Windows Hypervisor Debugging
- Interacting With the Device Driver
- Extra Mile Exercise
- Reaching the Vulnerable Code Block
- Joy: From Happiness to Insight
- A Wild Blue Screen Appears
- Contentment: Unveiling Inner Peace
- Uncertainty: Navigating the Unknown
- Doubt: Understanding Self-Doubt
- Fear: Facing Our Deepest Anxieties
- Despair: The Path to Hope
- Mapping Physical Memory to User Mode
- Exploiting the Vulnerability
- Wrapping Up
- Vulnerability Overview and Exploit Types
- Unsanitized Usermode Callback
- Windows Desktop Applications
- Windows Kernel Pool Memory
- Creating Windows Desktop Applications
- Reversing the TagWND Object
- Kernel Usermode Callbacks
- Leaking pWND User Mode Objects
- Triggering the Vulnerability
- Spraying the Desktop Heap
- Hooking the Callback
- Arbitrary WndExtra Overwrite
- TagWND Write Primitive
- Overwrite pWND[0].cbWndExtra
- Overwrite pWND[0].WndExtra
- TagWND Leak and Read Primitive
- Changing pWND[0].dwStyle
- Setting The TagWND[0].spmenu
- Creating a fake TagWND[0].spmenu
- GetMenuBarInfo Read Primitive
- Privilege Escalation
- Low integrity
- Data Only Attack
- Restoring The Execution Flow
- Executing Code in Kernel Mode
- Leaking Nt and Wink Base
- NOPing kCFG
- Hijacking a Kernel Mode Routine
- Wrapping Up
- Windows Desktop Applications
Exam Guide
- 71 hours and 45 minutes
- 24 hours report
- 2 assignments - 1 user-mode and 1 kernel-mode exploit
Report
Table of Contents
1.0 Offensive-Security OSEE Exam Documentation 3
2.0 192.168.XX.11 (25 Points or 50 Points) 4
2.1 Proof.txt 4
2.2 Initial Exploitation 4
2.3 Read and Write Primitive 4
2.4 Code Execution 4
2.5 Sandbox Escape 4
2.6 Proof of Concept 4
2.7 Screenshots 5
3.0 192.168.XX.63 (25 or 50 Points) 6
3.1 Proof.txt 6
3.2 Race Condition 6
3.3 Kernel Memory Leak 6
3.4 Read and Write Primitive 6
3.5 Privilege Escalation 6
3.6 PoC Code 6
3.7 Screenshots 6
