TLDR; เป็น Cert ที่เน้นไปทางด้าน External Pentest และ Red Team Operation
Introduction
OSEP (OffSec Experienced Pentester) คือ Certificate ของค่าย OffSec (เปลี่ยนชื่อจาก Offensive Security) เป็น 1 ใน 3 ตัวที่อยู่ในเงื่อนไขของการได้ OSCE3 โดยที่ตัว OSEP นี้ ถ้าเข้าไปดูในเว็บไซต์ของ OffSec จะมีชื่อว่า PEN-300 หรือ Evasion Techniques and Breaching Defenses ซึ่งคอร์สจะมุ่งเน้นไปที่การโจมตีจาก External Network โดยมีการ Customize Payload เพื่อที่จะหลบเลี่ยงการป้องกันต่าง ๆ รวมไปถึงการโจมตีฝั่ง Client-Side จนไปถึงการทำ Lateral Movement และยึดครอง Domain เป้าหมายได้
โดยคอร์สจะมีราคาอยู่ที่ $1499 ซึ่งจะได้ Material และ Lab เพื่อฝึกซ้อมก่อนสอบเป็นระยะเวลา 3 เดือน
Course Syllabus
โดยคอร์สนั้นมี PDF และวิดีโอมาให้ ซึ่งมีเนื้อหาที่เยอะพอสมควร ตัวผู้เขียนจะอธิบายคร่าว ๆ ดังนี้
- Client Side Code Execution with Office — การสร้าง Payload ใน Format ของ Microsoft Office
- Client Side Code Execute with Windows Script Host — การสร้าง Payload จาก Windows Script Host เช่น .js, .hta
- Process Injection and Migration — การเขียน Shellcode ให้หลบหลีก Anti-virus และทำงานบน Process ที่เราต้องการ
- Introduction to Antivirus Evasion — การปรับแต่ง Shellcode ให้หลบหลีก anti-virus ในรูปแบบของ PowerShell, C# และ VBA Script
- Advanced Antivirus Evasion — การ Debug anti-virus เพื่อที่จะ Bypass
- Application Whitelisting — การ Bypass AppLocker บน Windows
- Bypass Network Filters — การ Bypass Network Proxy
- Linux Post-Exploitation — การทำ Linux Post-Exploit และการเขียน Shellcode ให้หลบหลีกการตรวจจับ Anti-virus บน Linux
- Kiosk Breakouts — การ Breakout เครื่อง Kiosk ที่ถูก Hardening
- Windows Credentials — การทำ Credential Dumping บน Windows และการปลอมเป็น Account อื่น
- Windows Lateral Movement — การ Pivot Network เพื่อให้สามารถเข้าถึง Zone ต่าง ๆ
- Linux Lateral Movement — การโจมตีองค์กรที่มีการใช้งาน DevOps tools และการใช้งาน Kerberos บน Linux
- Microsoft SQL Attack — การ Enum และการโจมตี MSSQL และการทำ Lateral Movement ด้วย SQL Server
- Active Directory Exploitation — การ Enum และ การโจมตี Active Directory
- Combining The Pieces — เป็น Lab สำหรับการนำความรู้ในคอร์สมาประยุกต์เพื่อโจมตีระบบจนยึด Domain
Preparation
สำหรับการเตรียมตัวการสอบนั้น ผู้เขียนคิดว่าถ้าผ่าน OSCP มาก่อนจะดีมาก เพราะด้วยเรื่องของ Methodology และท่าพื้นฐานหลาย ๆ อย่าง ส่วนตัวผู้เขียนได้ผ่าน CRTP มาแล้ว ในความคิดเห็นส่วนตัวคิดว่าช่วยได้เยอะในเรื่องของ Active Directory ดังนั้นผู้เขียนจึงเน้นไปที่การเรียนตัว Meterial และทำ Extra Mile ในเนื้อหา และ Take note แบ่งเป็น Methodology เพื่อง่ายต่อการทบทวนและค้นหาเวลาสอบ ตัวผู้สอบได้ใช้เวลาเตรียมตัวประมาณ 1–2 เดือน เนื่องจากงานค่อนข้างเยอะ และปาร์ตี้ Invite รัว ๆ (น่าจะอย่างหลัง 🤣) เลยไม่ค่อยได้ลงลึกตัว AD ในคอร์สสักเท่าไหร่ เลยเน้นไปที่ Malware Development ซะมากกว่า ซึ่ง Resource ที่คิดว่ามีประโยชน์กับผู้อ่านน่าจะมีประมาณนี้
- https://github.com/chr0n1k/AH2021Workshop
- https://github.com/un4ckn0wl3z/defcon27_csharp_workshop
- https://github.com/S3cur3Th1sSh1t/OffensiveVBA
- https://github.com/chvancooten/OSEP-Code-Snippets
- https://github.com/Octoberfest7/OSEP-Tools
- https://github.com/outflanknl/EvilClippy
- https://github.com/In3x0rabl3/OSEP
Lab
สำหรับ Lab ของคอร์สนี้ มีทั้งหมด 6 ข้อ เป็นการจำลองเซ็ต Network ขององค์กรให้เราเข้าไปยึดเครื่องทั้งหมด โดยแต่ละข้อจะต้องใช้ความรู้ที่ได้จากบทเรียนหลาย ๆ บทมาประยุกต์รวมกัน เพราะฉะนั้นจึงแนะนำให้เรียนและทำ Extra mile ให้จบทั้งหมดก่อนค่อยมาทำ โดย Lab แอบจะมีความคล้ายคลึงกับข้อสอบอยู่บ้าง โดยจะแต่ละเครื่องจะมี 1–2 flag แตกต่างกันไป เรียกได้ว่าถ้าทำ Lab ได้หมดก็มีโอกาสจะทำข้อสอบได้
Exam Time
การสอบจะใช้เวลา 72 ชั่วโมง โดยแบ่งเป็นเวลาทำสอบ 48 ชั่วโมง กับเวลาทำรีพอร์ต 24 ชั่วโมง ผู้เขียนเริ่มต้นสอบตอน 11 โมงเช้า แต่จำเป็นต้องเข้าไปที่ Panel ของ Proctor ก่อนเวลาเริ่ม 15 นาที โดย Proctor จะมีการขอเปิดกล้อง และขอดูบริเวณรอบห้องที่เราสอบ รวมถึงมีการตรวจเช็กบัตรประชาชนเพื่อยืนยันตัวตนของเราด้วย จากนั้นก็จะมีอีเมลส่งมา โดยจะมีไฟล์ VPN พร้อมกับ Link เข้า Exam panel โดยหลังจากที่เราต่อ VPN และ เข้าหน้า Exam panel โดยในหน้านั้นจะบอกถึง Objective ซึ่งจะแบ่งเป็น 2 ข้อ คือ
- ทำได้ 100 คะแนน (10 flag)
- ได้ secret.txt
ข้อสอบจะเป็นการจำลอง Network ภายในองค์กร ซึ่งเราจะได้ IP ของเป้าหมายที่อยู่ใน Public Network เพียงบางเครื่อง ให้เราทำอย่างไรก็ได้ให้เข้าไปยึดเครื่องภายในองค์กร โดยบางเครื่องจะมีทั้ง local.txt และ proof.txt หรือมีแค่ proof.txt ดังนั้นการทำ Post-Exploit สำคัญมาก
โดยส่วนตัวผู้เขียนนั้นใช้เวลาไป 40 ชั่วโมง ซึ่งต้องบอกตามตรงว่าตื่นเต้น วันแรกเลยกดไป 20 ชั่วโมง แล้วค่อยไปนอน ซึ่งรู้ตัวว่าถ้าไม่ได้นอนคงจะเบลออย่างแน่นอน และเนื่องจากตื่นเต้นเลยใส่ IP ใน Payload ผิดจึงต้องกลับมาไล่ compile ใหม่ ทำให้เสียเวลาอยู่พักนึงเลย หลังจากแก้ปัญหาได้ก็ไปได้ต่อยาว ๆ พอได้ครบ 10 flag แล้วยังรู้สึกสนุกอยู่เลยไปต่อโดยไม่ได้คิดถึงตอนทำรีพอร์ต 🤣
Report
ในขั้นการทำรีพอร์ตนั้นไม่ได้มีอะไรมาก แต่เยอะมากกกกกก ผู้เขียนใช้ Template ของ OffSec เลย [https://www.offsec.com/osep-online/OSEP-Exam-Report.docx] และเราก็นำรูปผลที่ Capture มาแปะในรีพอร์ต และเขียนบรรยายวิธีขั้นตอนการทำ จากนั้นก็ Save เป็นไฟล์ PDF และทำการอัปโหลดรีพอร์ตส่งไป จากนั้นก็รอผลซึ่ง OffSec แจ้งว่าจะทราบผลภายใน 5–10 วันทำการ แต่ผู้เขียนได้รับผลภายในสองวัน ซึ่งไวมาก
Conclusion & Recommendation
โดยสำหรับการสอบ OSEP นั้น ซึ่งแน่นอนว่าการสอบ 48 ชั่วโมง โดยส่วนตัวผู้เขียนแนะนำว่าควรจัดสรรเวลาให้ดีและพักผ่อนให้เพียงพอ ในเวลาสอบให้เราไปพักบ้าง อาจจะออกไปเดินเล่น เล่นกับแมว หรือเล่นเกม เนื่องจากบางทีเราทำไปแล้วติดก็จะติดอยู่อย่างนั้นคิดไม่ออกสักที จนสุดท้ายกลายเป็นเสียเวลาเปล่าและเป็นการเพิ่มความกดดันให้กับตัวเอง การที่เราออกมาพักเพื่อเป็นการผ่อนคลายอาจจะทำให้เราคิดอะไรออกก็ได้
สำหรับการเตรียมตัวสอบแนะนำว่า compile tools ต่าง ๆ มาก่อน จะช่วยประหยัดเวลาและทำโน๊ตเป็น Methodology มาจะดีมาก เพราะจะช่วยเป็นแนวทางในเวลาที่เราคิดไม่ออก หรืออาจจะลืม เช่น เจอ MSSQL ต้องทำอะไร, Gain Access เครื่อง Windows ได้แล้วต้อง Enum ตรงไหนบ้าง เป็นต้น
สำหรับมีข้อดี ข้อเสีย โดยความคิดเห็นส่วนตัวน่าจะน่าจะประมาณนี้ครับ
Pros:
- Course content และ Material ค่อนข้างละเอียด เข้าใจง่ายสำหรับผู้เริ่มต้น
- เนื้อหาทุกอย่างใน Material เพียงพอต่อการสอบ :)
Cons:
- Lab ค่อนข้างน้อย
- ราคาของคอร์สค่อนข้างสูง (1499 USD)
สุดท้ายนี้ผู้เขียนหวังว่าบทความนี้คงจะมีประโยชน์กับใครที่อ่านมาถึงตรงนี้ ขอให้โชคดีในการเตรียมตัวและการสอบนะครับ สวัสดีครับ
Try Again, Try Harder