Basic Linux Exploit Development
دربارهی این دوره
اخبار مربوط به Exploit سیستمعاملها و سرویسهای پرکاربرد، همواره یکی از چالش برانگیزترین مباحث موجود در زمینهی امنیت سایبری بوده است. چرا که مهاجمین ممکن است تنها با Exploit کردن موفق یک آسیبپذیری، بتوانند بخش قابل توجهی از تدابیر و لایههای امنیتی سازمانهای قربانی را دور بزنند. Exploitها انواع مختلفی دارند و میتوانند با اهداف متفاوتی مانند گرفتن دسترسی اولیه، گسترش دسترسی، خرابکاری و غیره توسعه داده شوند. اما کشف آسیبپذیری جدید در سیستمعاملها و نوشتن Exploit برای آنها نیاز به دانش و خلاقیت بالایی دارد و همین نکته سبب شده تا افراد محدودی در این زمینه به موفقیتهای چشمگیری دست یابند. اکسپلویت نویسی لینوکس نیز یکی از مهمترین تخصصها در دنیای اکسپلویتنویسی به حساب میآید.
اما با توجه به موارد ذکر شده، چرا هکرهای کلاهسفید باید این دانش را فرا بگیرند؟ از مهمترین دلایل آن میتوان به شناسایی آسیبپذیریهای موجود قبل از افراد سودجو و خرابکار و همچنین دریافت جوایز تعیین شده توسط شرکتهای ارایه دهندهی این سامانهها اشاره کرد.
شما با گذراندن دورهی آموزشی «اکسپلویت نویسی لینوکس (سطح پایه)»، مبانی کشف آسیبپذیری در سیستمعامل لینوکس و توسعهی Exploitبرای آن را فرا خواهید گرفت. از مهمترین موضوعاتی که در این دوره تدریس میشود میتوان به معماری سیستمعامل لینوکس، مبانی روشهای Fuzzing، مهندسی معکوس، توسعهی Shellcode و دور زدن راهکارهای محافظتی موجود در سیستمعامل لینوکس اشاره کرد.
مدت زمان دوره
مدت زمان دورهی «اکسپلویت نویسی لینوکس (سطح پایه)» ۲۱ ساعت است که به صورت کلاسهای ۳ ساعته و در طی ۷ جلسه تدریس خواهد شد. جلسات این دوره در روزهای زوج و از ساعت ۱۸ تا ۲۱ برگزار میشود. شروع دوره از روز شنبه ۲۹ آذر سال ۹۹ خواهد بود.
این دوره به چه افرادی توصیه میشود؟
- کارشناسان ارشد ارزیابی امنیت/تست نفوذ/تیم قرمز
- کارشناسان فعال در زمینهی Bug Bounty
- برنامهنویسان علاقهمند به توسعهی امن
- تحلیلگران و محققین امنیت سایبری
- کارشناسان مهندسی معکوس
برای شرکت در این دوره چه دانشهایی باید داشته باشم؟
- آشنایی با مفاهیم سیستمعامل Linux
- آشنایی با زبان برنامهنویسی Python در سطح متوسط
- آشنایی با زبان برنامهنویسی C یا C++ در سطح متوسط
برای ثبتنام در این دوره میتوانید از اینجا اقدام کنید.
سرفصلهای این دوره
Chapter 1: Intro
1.1 Linux Operation System Architecture
1.2 Why C/C++ Language is Important?
1.3 Who to integrate high language with C Lang?
1.4 What is System Call in Linux?
1.5 Explanation Type Vulnerability in C Lang
Chapter 2: Fuzzing
2.1 What is Fuzzing?
2.2 Static Fuzzing
2.3 Dynamic Fuzzing
Chapter 3: Security Protection
3.1 PIE
3.2 PIC
3.3 NX Bit (MS:DEP)
3.4 RELRO
3.5 Canaries
3.6 ASLR
Chapter 4: Assembly Language in Linux – x64
4.1 Assembly Language Code Structure
4.2 Data Types
4.3 Develop Hello World Program
4.4 Stack in Assembly
4.5 Data Manipulation
4.6 Data Swapping
4.7 Load Effective Address
4.8 Arithmetic Operations
4.9 Loops
4.10 Controlling the Flow
4.11 Operations
Chapter 5: Reverse Engineering – x64
5.1 Introduction to the ELF Format
5.2 Install Python Exploit Assistance (PEDA)
5.3 Customizing Disassembly with Capstone
5.4 GDB Debugger
5.5 PWNGDB (SCWUAPTX)
5.6 PWNTOOLS
5.7 GEF
5.8 GDB Commands
5.9 Reverse Hello World Program
5.10 Reverse Function Call
5.11 Crack Password with GDB
Chapter 6: Writing Shellcode – x64
6.1 What is Shellcode?
6.2 Bad Characters
6.3 The Relative Address Technique
6.4 The JMP-CALL Technique
6.5 The Stack Technique
6.6 The Execve Syscall
6.7 TCP Bind Shell
6.8 Reverse TCP Shell
6.9 Generating Shellcode Using Metasploit
Chapter 7: Buffer Overflow Attacks x64
7.1 Stack Overflow on Linux
7.2 Inject Shellcode
7.3 Buffer Overflow Exploit – x64
ویژگی های دوره
- درس 7
- آزمونها 0
- سطح مهارت متوسط
- دانشجویان 15
- گواهی نامه بله
- ارزیابی بله