Offensive System/Kernel Development for Windows

  • پیشرفته
  • مسیر قرمز
  • ۱۹ درس
ثبت نام سازمانی این دوره
تاریخ شروع
۲۲ دی ۱۴۰۱
طول دوره
۷۲ساعت
گواهی‌نامه و آزمون
دارد
ظرفیت
۲۰ نفر باقی مانده
نوع برگزاری
آنلاین

درباره‌ی این دوره

سال‌هاست که بهره‌برداری از سرویس‌های تحت وب آسیب‌پذیر، یکی از جذاب‌ترین روش‌های موجود بین مهاجمان سایبری برای نفوذ به زیرساخت سازمان‌ها یا ایجاد اختلال در کسب‌وکار آن‌ها است. همین نکته سبب شده است تا ارزیابی امنیت سرویس‌های تحت وب، یکی از مهم‌ترین اجزای ارزیابی امنیت و در بسیاری از موارد، پرکاربردترین نوع ارزیابی امنیت باشد که سازمان‌ها به آن اقبال ویژه‌ای داشته و به شکل‌های مختلف، مانند پروژه‌های تست نفوذ، باگ‌بانتی، خدمات تیم قرمز و غیره از آن‌ بهره می‌برند.

امروزه اغلب سازمان‌ها و شرکت‌ها از زیرساخت‌های مبتنی بر سیستم‌عامل ویندوز به صورت گسترده بهره می‌برند که همین نکته، آشنایی با ساختار سیستم‌عامل ویندوز و توانایی توسعه‌ی برنامه‌ها و ابزارهای سیستمی در آن را هم برای مهاجمین و هم برای متخصصین دفاع سایبری به امری جذاب و حیاتی تبدیل کرده است. برنامه‌نویسی سیستمی، آشنایی شما با معماری ویندوز را عمیق‌تر کرده و علاوه بر آن شما را برای شبیه‌سازی حملات سیستمی پیشرفته (در تیم قرمز) یا مقابله با تهدیدات سایبری (از جمله مقابله با بدافزارها)، آماده‌تر می‌کند (در تیم آبی).

در واقع اگر قصد دارید تا یک متخصص سطح بالای تیم قرمز یا حتی تیم آبی باشید، آشنایی با ساختار ویندوز و توانایی برنامه‌نویسی در آن، می‌تواند یک مهارت کلیدی به حساب آید. در این کارگاه مفاهیم معماری ویندوز و برنامه‌نویسی در بخش‌های مختلف این سیستم‌عامل با دیدگاه‌های تهاجمی و دفاعی به صورت عملی آموزش داده خواهد شد. این کارگاه مبتنی بر سناریو و تمرین‌های عملی متعدد طراحی شده به گونه‌ای که پس از گذراندن آن، علاوه بر یادگیری مفاهیم و تئوری‌ها، تجربه‌ی قابل توجهی در برنامه‌نویسی سیستمی نیز به دست خواهید آورد. به عبارت دیگر قسمت‌های عملی این کارگاه بسیار پررنگ‌تر و از بخش‌های آموزشی و تئوری آن خواهد بود.

شما با شرکت در این دوره به مواردی مانند ساختار سیستم‌عامل، ویندوز API، Kernel Object، فرایند‌های ویندوز، threadها در ویندوز، کار با حافظه، DLLها، رجیستری، درایور‌ها، کار با کرنل و بسیاری از مباحث دیگر مسلط می‌شوید.

مدت زمان این دوره ۷۲ ساعت است که طی ۹ جلسه‌ی ۸ ساعته از ساعت ۱۰:۰۰ الی ۱۸:۰۰ در روزهای پنج‌شنبه و جمعه به صورت حضوری برگزار می‌شود. تاریخ شروع این دوره پنج‌شنبه ۲۹ دی خواهد بود و روزهای برگزاری دوره به ترتیب زیر خواهد بود:

پنج‌شنبه ۲۹ دی، جمعه ۳۰ دی،  پنج‌شنبه ۱۳ بهمن، جمعه ۱۴ بهمن، پنج‌شنبه ۲۷ بهمن، جمعه ۲۸ بهمن، جمعه ۵ اسفند، پنج‌شنبه ۱۱ اسفند و جمعه ۱۲ اسفند برگزار خواهد شد.

این دوره به چه افرادی توصیه می‌شود؟

  • تحلیل‌گران و محققین امنیت سایبری
  • کارشناسان ارزیابی امنیت/تست نفوذ/تیم قرمز
  • افراد فعال در زمینه‌ی Bug Bounty سیستمی
  • برنامه‌نویسان سیستمی و توسعه‌دهندگان محصولات امنیتی
  • مشاورین امنیت سایبری
  • علاقه‌مندان به توسعه و تحلیل بدافزار

برای حضور در این دوره چه دانش‌هایی باید داشته باشم؟

  • آشنایی با مفاهیم Windows Internals
  • آشنایی با زبان برنامه‌نویسی C یا C++ در سطح متوسط

سرفصل‌های دوره

  • Windows System Architecture
    • Overview
    • Tools
    • Processes
    • Virtual Memory
    • Threads
    • User Mode vs. Kernel Mode Architecture Overview
    • System Calls
    • Introduction to WinDBG
  • Windows API Foundation
    • Windows APIs
    • Using Visual Studio
    • Common Types and Conventions
    • Working with Strings
    • 64-Bit vs. 32-Bit Development
    • Kernel Objects
    • What is Kernel Object?
    • A Process Kernel Object Handle Table
    • Working with Handles
    • Sharing Objects
    • Object Names
  • Process
    • Process Creation
    • The Main Function(s)
    • Creating Processes
    • Process Termination
    • Enumerating Processes
    • DLLs
  • Jobs
    • Introduction to Jobs
    • Creating Jobs
    • Nested Jobs
    • Querying Job Information
    • Setting Job Limits
    • Job Notifications
  • Thread
    • Thread basics
    • Creating threads
    • Thread Priorities
    • Thread Scheduling
    • Thread Stacks
    • Hooking
  • Windows Thread Pool
    • Scenari1: Call a Function Asynchronously
    • Scenari2: Call a Function at a Timed Interval
    • Scenari3: Call a Function When a Single Kernel Object Becomes Signaled
    • Scenari4: Call a Function When Asynchronous I/Requests Complete
    • Callback Termination Actions
    • Fibers
    • Overview
    • Working with Fibers
    • Memory
    • Process address space
    • Process memory counters
    • Reserving and Committing Memory
    • The Heap Manager
    • Memory Mapped Files
    • Summary
  • Dynamic-Link Libraries
    • DLL and Process Address Space
    • Building DLL Module
    • What exporting Really means?
    • Creating DLLs for use with Non-Visual C++ Tools
    • Building the Executable Module
  • DLL Advanced Techniques
    • The DLL’s Entry-Point Function
    • Delay-Loading a DLL
    • Function Forwarders
    • Known DLLs
    • DLL Redirection
    • Rebasing Modules
    • Binding Modules
  • Security
    • Introduction
    • SIDs
    • Tokens
    • Privileges
    • Access Masks
    • User Access Control
    • Integrity Levels
    • Specialized Security Mechanisms
  • Registry
    • The Hives
    • 32-bit Specific Hives
    • Working with Keys and Values
    • Registry Notifications
    • Transactional Registry
    • Registry and Impersonation
    • Remote Registry
    • Miscellaneous Registry Functions
  • The I/System and Device Drivers
    • Device Drivers
    • The Windows Driver Model (WDM)
    • Driver types
    • Software drivers
    • Driver and device objects
    • I/Processing and Data Flow
    • Accessing files and devices
    • Asynchronous I/O
  • Kernel programming basics
    • C++ in a kernel driver
    • Creating a driver project Building and deploying The kernel API
    • Strings
    • Linked Lists
    • Kernel Memory Pools
    • The DriverEntry function
    • The Unload routine
    • Installation
  • Building a complete driver and Client Creating a device Object
    • Exporting a device name
    • Building a driver client
    • Driver dispatch routines
    • Introduction tI/Request Packets (IRPs) Completing IRPs
    • Accessing user space buffers
    • Handling DeviceIoControl calls
    • Testing the driver
    • Debugging the driver
    • Using WinDbg with a virtual machine
    • The driver verifier
  • The I/O Request Packet
    • Introduction to IRPs
    • Device Nodes
    • IRP Flow
    • IRP and I/O Stack Location
    • Viewing IRP Information
    • Dispatch Routines
    • Completing a Request
    • Accessing User Buffers
    • Buffered I/O
    • Direct I/O
    • User Buffers for IRP_MJ_DEVICE_CONTROL
    • Putting it All Together: The Zero Driver
    • Using a Precompiled Header
    • The DriverEntry Routine
    • The Create and Close Dispatch Routines
    • The Read Dispatch Routine
    • The Write Dispatch Routine
    • Test Application
    • Read/Write Statistics
  • Process and Thread Notifications
    • Process creation/destruction callback
    • Specifying process creation status
    • Thread creation/destruction callback
    • Notifying user mode
    • Writing a user mode client
    • User/kernel communication
  • Object and Registry Notifications
    • Process/thread object notifications
    • Pre and post callbacks
    • Registry notifications
    • Performance considerations
    • Reporting results to user mode
    • Summary

گواهینامه‌ی دوره

دوره های مشابه