OSCP Journey 2023

Kiattisak Boontago
4 min readMar 24, 2023

--

[PEN-200–2022] Offsec Certified Professional (OSCP) certification

สำหรับผู้อ่านทุกท่านที่ทำงานสาย Cyber Security คงจะเคยได้ยินชื่อของ Certificate ตัวนี้กันมาบ้าง โดยเฉพาะสาย Offensive Security น่าจะคุ้นเคยกันดี นั่นคือ OSCP หรือชื่อเต็มๆ คือ OffSec Certified Professional certification นั่นเอง ซึ่งวันนี้ทางผมเองจะมาแชร์ประสบการณ์ รวมถึงการเตรียมตัว (เตรียมใจด้วย) ก่อนการสอบ Cert. ตัวนี้ครับ

ขอเกริ่นต่ออีกหน่อยครับ
OffSec Certified Professional (OSCP) certification เป็น Cert. ของค่ายที่ชื่อว่า Offensive Security ซึ่งเป็น Cert ที่ค่อนข้างได้รับความนิยมในระดับสากล โดย Cert. ตัวนี้จะเน้นไปในด้านการทดสอบเจาะระบบโดยใช้ Kali Linux ลักษณะการสอบก็จะเป็นแนว Practical คือ ให้ทดลองปฏิบัติกันจริงๆ เจาะระบบกันจริงๆ เลยครับ เป็นอะไรที่น่าตื่นเต้นเลยใช่ไหมล่ะครับ 🔥

Preparation

สำหรับในช่วงก่อนลง Course ผมจะเน้นไปที่การฝึกทำ Lab เพื่อเรียนรู้เทคนิคที่ใช้การโจมตีต่างๆ ครับ โดยผมอ้างอิงชื่อ Lab จากคุณ TJnull

โดยจาก List ด้านบนจะเห็นได้ว่ามีหลากหลาย Platform ให้เลือกเข้าไปฝึกกันครับ ทั้ง Hack the Box, Proving Grounds (PG), Vulnhub แต่ละ Platform ก็จะมีทั้งแบบ Free และเสียเงิน สามารถเลือกได้ตามสะดวกเลยครับ พยายามเก็บ Lab ให้ได้มากที่สุดเท่าที่เป็นไปได้ครับ ช่วยได้มากจริงๆ ผม Confirm

สำหรับมือใหม่ที่เพิ่งเคยเล่น Lab เหล่านี้ อยากฝากไว้ว่าการดู Walk through หรือ เฉลยตาม Internet เพื่อเป็นแนวทางในการฝึกฝนไม่ใช่เรื่องเลวร้ายครับ แต่ต้องทำความเข้าใจให้ได้ว่าทำไมเขาถึงทำอย่างนั้น ✌️

**List ดังกล่าวเป็นแค่ guideline เท่านั้นครับ อาจจะไม่ได้เหมือนกับข้อสอบ 100% แต่เป็นจุดเริ่มต้นในการฝึกฝนที่ดีเลยครับ

ในระหว่างการทำ Lab ผมแนะนำให้จด Note ขั้นตอน วิธีการโจมตีไว้ให้ดีครับ พยายามทำความเข้าใจกับทุกๆ Command ที่ใช้ แต่ละ Command ควรใช้กับ service อะไร สถานการณ์ไหน 🤔 เนื่องจากมันจะเป็นประโยชน์กับเราเป็นอย่างมากในภายหลัง📜
สำหรับ Tool ที่ใช้สำหรับจด Note อันนี้ตามศรัทธาเลยครับ เลือกที่ถนัด และคิดว่าสามารถกลับมาอ่านภายหลังได้ง่าย ส่วนตัวผมเองผมเลือก Notion ครับ เหตุผลไม่มีอะไรมากครับ มันสวย และรองรับทั้ง Windows และ MAC OS 😅

นอกจากนี้ผมแนะนำให้ไปทำความรู้จักกับเจ้า Active Directory (AD) ไว้ด้วยครับ เพราะมันมีในข้อสอบนะ 😖
ส่วนตัวผมเอง ผมรู้จักเจ้าน้อน AD นี้มาบ้างครับ (ผิวเผินมาก) ก็เลยพยายามหาแหล่งความรู้เพิ่มเติม จนได้มาเจอ Platform นึง คือ TryHackMe
ที่แนะนำ Platform นี้ เนื่องจากมีทั้งภาคทฤษฎีให้ได้อ่านทำความเข้าใจกัน และยังมีภาคปฏิบัติให้ฝึกโจมตีกันอีกด้วย

เรื่องสุดท้ายที่ควรจะเรียนรู้ก่อนลง Course คือ วิธีการโจมตีที่เรียกว่า Buffer OverFlow (BOF) ครับ เป็นอีก 1 เรื่องที่อาจจะเจอในตอนสอบครับ
สำหรับ BOF แนะนำให้ไปฝึกฝนใน TryHackMe เช่นกันครับ ผมคิดว่าเนื้อหาค่อนข้างครบถ้วนเพียงพอเลยทีเดียว
ขอแปะลายแทงไว้ตรงนี้ครับ https://tryhackme.com/room/bufferoverflowprep

เอาล่ะ เมื่อเตรียมตัวมาพอสมควรแล้ว ก็ได้เวลาลง Course กันแล้วครับ โดย OSCP จะมีรหัส Course ว่า PEN-200 โดยใน Course จะประกอบไปด้วย

  • Training Material เป็นเนื้อหาในภาคทฤษฎี โดยแต่ละหัวข้อจะมี Exercises ให้ได้ฝึกเพื่อทบทวนความเข้าใจ
  • Labs จะเป็นแบบฝึกหัดภาคปฏิบัติ

OSCP มี Bonus point 10 คะแนนด้วยนะครับ มันคือคะแนนช่วยนอกเหนือจากคะแนนสอบ ผมจะเล่าให้ฟังว่าเราจะได้มันมาได้อย่างไร

ข้อแรก คือ เราจะต้องทำ Exercise ในแต่ละหัวข้อใน Training Material ให้ได้อย่างน้อย 80% โดยหน้า Portal ขอ Course จะมี Progress bar ให้เราเลยว่าแต่ละหัวข้อเราทำไปได้กี่ % แล้ว

ข้อสอง คือ เราจะต้องทำ Labs ให้ได้อย่างน้อย 30 เครื่อง โดยจะต้องนำ Proof.txt ของแต่ละเครื่องมาส่งในหน้า Portal

ทำครบสองอย่างนี้ถึงจะได้ 10 คะแนนมาตุนไว้ในกระเป๋าครับ ส่วนตัวผมมองว่ามันค่อนข้างกินพลังมากเลยทีเดียว เนื่องจาก เนื้อหาของแต่ละหัวข้อ รวมถึง Exercise ค่อนข้างเยอะครับ (เยอะมาก)

สำหรับในช่วงหลังจากลง Course ผมพยายามอ่าน Training Material ในทุกหัวข้อ โดยจะเน้นไปที่หัวข้อที่ผมมีพื้นฐานน้อยที่สุดก่อน หลังจากนั้นจะโยกไปทำ Labs โดยพยายามเก็บให้ได้จำนวนเครื่องมากที่สุดเท่าที่สังขารจะไหว 👻

หลังจากผ่านไป 2 เดือนกว่าๆ ในการขายวิญญาณให้ OSCP ผมก็สามารถทำ Labs ไปได้ 51 เครื่อง จากทั้งหมด 73 เครื่องครับ แต่ต้องออกตัวก่อนว่าผมไม่ได้เอา Bonus Point ครับ เลยค่อนข้างมีเวลานั่งทำ Labs เยอะหน่อย

ช่วงทำ Labs ก็เช่นเดิมครับ จด Notes ทุกอย่างที่จดได้ครับ คิดว่าได้ใช้แน่ๆ

ต่อมาก็ถึงเวลาเล็งวันสอบ โดนเราสามารถจองวันสอบได้จากในหน้า Portal เลยครับ ซึ่งผมเล็งช่วงที่เป็นวันหยุดติดกัน 3 วัน (เผื่อเวลานอนหลังจากสอบ 1 วันครับ 🤣)

เมื่อได้วันสอบเรียบร้อยก็ต้องมานั่งวางแผนต่อว่าต้องทำยังไงถึงจะผ่าน…..

Exam Structure

ข้อสอบ OSCP นั้นมีคะแนนเต็ม 100 คะแนน แบ่งเป็น Independent target 3 เครื่อง 60 คะแนน และ Active Directory Set อีก 40 คะแนน

reference : OSCP-Exam-Guide

คะแนนที่จะสอบผ่าน คือ 70 คะแนน! 😱 ซึ่งหากจะผ่านผมต้องทำให้ได้ตาม scenarios ด้านล่างข้อใดข้อหนึ่ง

  • 40 pt AD + 3 local.txt flags
  • 40 pt AD + 2 local.txt flags + 1 proof.txt flag
  • 40 pt AD + 2 local.txt flags + bonus points
  • 40 pt AD + 1 proof.txt + 1 local.txt + bonus points
  • 3 fully completed non-AD machines + bonus points

ผมตัด 3 scenarios ล่างทิ้งได้เลย เพราะผมไม่มี Bonus point แล้วฉันเลือกอะไรได้ไหม~~~

Pre-Exam

ก่อนสอบผมจะนำให้นำ Note ที่จดไว้ทั้งหมดตั้งแต่ต้นมา review และเลือก Command ที่ต้องใช้บ่อยๆ ออกมาครับ เพื่อความสะดวกในการหยิบไปใช้งานตอนสอบ

ในการสอบ OCSP จะมีบาง Tool ที่ห้ามใช้ เช่น Metasploit, SQLmap, ChatGPT และ Automate tool อื่นๆ แนะนำให้อ่าน OSCP-Exam-Guide ให้ถี่ถ้วนก่อนสอบ มิฉะนั้นอาจโดนปรับตกได้เลย T^T

Exam Day

ผมเริ่มสอบ 09.00 น. ก่อนถึงเวลาสอบผมก็จัดการทานข้าวเช้า เตรียมตัวให้เรียบร้อย (ก่อนที่จะทานอะไรไม่ลงไปอีกหลายชั่วโมง 🍽)
ประมาณ 08.45 น. ทาง Proctor หรือผู้คุมสอบจะให้ผู้สอบเปิดกล้อง webcam เพื่อตรวจรอบๆ ห้องที่เราจะใช้นั่งสอบ รวมถึงให้ยืนยันตัวตนอีกครั้งด้วยบัตรประชาชน จากนั้นก็ให้เราแชร์หน้าจอที่เราใช้งานอยู่ และเมื่อถึงเวลา 09.00 น. ก็สามารถเริ่มทำข้อสอบได้เลอ ลุยย

ผู้สอบจะมีเวลาในการสอบทั้งหมด 23 ชั่วโมง 45 นาที
ด้วยความตื่นเต้น 5 ชั่วโมงแรกผมไม่ได้สักคะแนน 😅 เลยตัดสินใจขอ Proctor ออกมาพักทำใจ สวดมนต์ขอพร 🤣 แล้วค่อยกลับไปลุยต่อ

เทคนิคในการสอบข้อผม คือ

  • Enumeration ทุกเครื่องทิ้งไว้ เพื่อเป็นการประหยัดเวลา
  • อ่านผลการ Enumeration อย่างละเอียด
  • หากทดลองโจมตีเครื่องใดเครื่องหนึ่งเป็นเวลานานแล้วยังไม่สำเร็จ ให้ลองเปลี่ยน target ไปเครื่องอื่น
  • กลับไปดู Note ต่างๆ ที่เคยจดไว้จากการทำ Labs ว่ามีอะไรที่พอจะนำมาประยุกต์ใช้ได้บ้าง
  • จดข้อมูลในสิ่งที่ทดลองไป ทั้งที่สำเร็จ และไม่สำเร็จ
  • พักทุกๆ 3–4 ชั่วโมงเพื่อเป็นการ relax
  • Manage เวลาที่มีให้ดีที่สุด แบ่งเวลาสำหรับการนอนพัก

เทคนิคของแต่ละคนอาจจะไม่เหมือนกัน เทคนิคของผมอาจจะใช้ไม่ได้กับทุกคน

ดังนั้นพยายามตั้งสติ แล้วค่อยๆ แก้ปัญหาไปทีละจุด ✌🏻

ในที่สุดผมก็ได้คะแนน 70 คะแนน ตอนช่วงประมาณ 21.00 น. จนสุดท้ายหมดเวลาตอน 08.45 น. ของอีกวัน คาดว่าน่าจะได้ประมาณ 90 คะแนน ณ ตอนนั้น

แต่ยัง มันยังไม่จบ นอกจาก 1 วันที่เราทำข้อสอบโดยการทดสอบเจาะระบบแล้ว ยังมี report ที่ต้องทำส่งภายใน 24 ชั่วโมงหลังจากจบการสอบอีก 😢
โดยผมจะนำ PEN-200 REPORT TEMPLATES มาแก้ไขเพื่อส่ง ใน report จะประกอบด้วยขั้นตอน และวิธีการโจมตีแต่ละ target รวมถึงคำแนะนำการแก้ไขช่องโหว่ต่างๆ ที่เราพบ

Result

เมื่อส่ง report เรียบร้อยก็รออีกประมาณ 2–3 วันถึงจะทราบ Official result

Conclusion

สำหรับผมแล้ว OSCP นั้นเหมาะมากๆ กับผู้ที่ทำงาน หรือสนใจด้าน Offensive security เช่น เนื่องจากเป็น Cert. ที่ได้ลงมือปฏิบัติจริง

และท้ายที่สุดนี้…
ขอบคุณทุกท่านที่อ่านจนจบนะครับ หวังว่าบทความนี้จะเป็นแรงบันดาลใจ หรือเป็นประโยชน์กับทุกท่านที่ตั้งเป้าจะสอบ Cert. ตัวนี้ครับผม ❤️

Try harder everyone!

--

--