Skip to content

This is a collection of lessons to prepare to take the Offensive Security MacOS researcher course. This is not meant to be a prep for the cert, but rather cover the perquisites for the course.

Notifications You must be signed in to change notification settings

UnsaltedHash42/osmr_prep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

macOS Security Research Preparation Guide

A comprehensive course to prepare for the Offensive Security macOS Researcher certification. This guide provides detailed lessons on macOS internals, security models, vulnerability research, and exploitation techniques.

Course Overview

This preparation guide consists of self-paced lessons covering the fundamental knowledge and practical skills needed for macOS security research. Each lesson includes detailed explanations, diagrams, code examples, and hands-on exercises.

Prerequisites

  • Basic understanding of Unix/Linux systems
  • Familiarity with at least one programming language (preferably C/C++ or Objective-C)
  • Basic knowledge of computer architecture and memory concepts
  • Access to a Mac computer or VM for practical exercises

Curriculum

1. MacOS Fundamentals

  • Architecture and system components
  • File system hierarchy and permissions
  • XNU kernel basics
  • Process management

2. Objective-C Primer

  • Syntax and language fundamentals
  • Object-oriented programming concepts
  • Memory management (ARC vs manual)
  • Runtime features and message passing
  • Interacting with Cocoa frameworks

3. MacOS Security Model

  • System Integrity Protection (SIP)
  • Gatekeeper and code signing
  • Sandbox mechanisms
  • Transparency, Consent, and Control (TCC)
  • Entitlements and capabilities

4. Development Environment Setup

  • Required tools and configurations
  • Virtual machine setup for testing
  • Debugging and monitoring tools
  • Configuring security development certificates

5. Reverse Engineering on MacOS

  • Static analysis tools and techniques
  • Dynamic analysis and debugging
  • Analyzing Mach-O files and frameworks
  • Decompiling and understanding Objective-C binaries

6. Exploit Development Fundamentals

  • Memory corruption concepts
  • Buffer overflows on MacOS
  • Format string vulnerabilities
  • Heap exploitation
  • MacOS exploit mitigations

7. MacOS Privilege Escalation

  • Local privilege escalation vectors
  • Bypass techniques for security controls
  • Post-exploitation and persistence
  • XPC services security

8. Kernel Exploitation

  • Kernel debugging setup
  • IOKit drivers and vulnerabilities
  • Exploiting kernel extensions
  • Kernel mitigations and bypass techniques

9. Advanced Topics

  • MacOS malware analysis
  • Supply chain attacks
  • Objective-C and Swift security implications
  • Fuzzing techniques for MacOS applications

Setting Up the Learning Environment

Each lesson includes detailed setup instructions for the required tools and environment. Generally, you'll need:

  1. A Mac running a recent version of macOS (or a VM)
  2. Xcode and Command Line Tools
  3. Homebrew package manager
  4. Various debugging and security tools (specific instructions provided in lessons)

How to Use This Guide

  1. Work through the lessons sequentially, as each builds upon knowledge from previous ones
  2. Complete all hands-on exercises to reinforce concepts through practical application
  3. Refer to the solution guides if you get stuck, but attempt exercises yourself first
  4. Use the additional resources provided in each lesson to deepen your understanding

Contributing

If you find any issues or would like to contribute improvements to this guide, please submit a pull request or open an issue.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

This is a collection of lessons to prepare to take the Offensive Security MacOS researcher course. This is not meant to be a prep for the cert, but rather cover the perquisites for the course.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages