OSCP Journey 2020- รีวิวฉบับ Beginner

Blog นี้จะเป็นการแชร์ประสบการณ์การสอบ OSCP ซึ่งเป็น certificate ด้าน security ตัวแรกของผม และมีเทคนิคที่ใช้ระหว่างฝึกวิชาเล็กๆน้อยๆมาฝากกันครับ

เป็นการเขียน Blogครั้งแรกในชีวิต ถ้าผิดพลาดประการใด ขออภัยไว้ก่อนเลยครับ อิอิ

บทความโดย
Pongsathon Sirithanyakul
Cybersecurity Consultant

Background

จบ Computer Engineering ที่พระจอมเกล้าลาดกระบัง หลังจากนั้นมาทาง ทำงานเป็น Network Engineer ได้ CCNA มา1ใบ และได้ตัดสินใจย้ายสายงานมาทาง Security ทำ Pentest ใน Big Firm แห่งหนึ่ง

What is OSCP ?

OSCP (Offensive Security Certified Professional) คือ Certificate ที่ให้ทดสอบเจาะระบบโดยใช้ Kali Linux เหมาะสำหรับคนทีทำงาน Pentester และ Security

เปรียบเทียบการสอบ OSCP เหมือนหลังจากที่เราจ่ายตังค์ค่าสอบเรียบร้อย สบายตัว แต่ไม่สบายใจ 555 ทาง Offsec ก็จะจูงมือเราพาเราเข้าป่าลึกลับ โดยทดสอบเราให้เวลาเรา1วัน ทำยังไงก็ได้ ให้เราหาทางออกจากป่านี้มาให้ได้ ซึ่งแต่ละคนก็จะมีวิธีที่ต่างกันแล้วแต่ประสบการณ์ของแต่ละคน โดยที่ทางOffsec จะให้ PDF/Video Material กับเราที่เปรียบเสมือนเป็นแผนที่ พร้อมกับ Kali Linux ที่เหมือนเป็นกระเป๋าเป๋ที่มีToolและอุปกรณ์ต่างๆมากมาย ที่ใช้ในการออกจากป่านี้มาให้ได้ ซึ่งหลังจากออกจากป่ามาได้แล้ว ก็ให้ทำReportว่า เราใช้วิธีไหนในการเอาตัวรอดออกมาจากป่าได้

วันหนึ่งฉันเดินเข้าป่าาาาาาาา

เพราะฉะนั้นการสอบแบบนี้ คนที่มีประสบการณ์ในการทำงานมาหรือเคยแข่งขันแฮ็ครายการต่างๆ มาก่อน อาจจะไม่ต้องเตรียมตัวอะไรมาก เพราะมีความชำนาญอยู่แล้ว ส่วนคนที่ยังไม่เคยมีประสบการณ์ก็ต้องลองฝึกฝนตัวเองก่อนที่จะลงสอบจริงๆ โดยวิธีที่ให้มาใน Material เป็นแค่วิธีพื้นฐานเท่านั้น ต้องเอาประยุกต์ใช้ในการเอาตัวรอดเองถึงจะผ่านนน (มันยากก็ตรงนี้แหละ) 😀

Why OSCP ?

แต่ละคนน่าจะมีเหตุผลในการสอบ OSCP ที่แตกต่างกัน ผมจะขอสรุปเป็น 3 ข้อ ในมุมมองของผมละกันนะครับ

  1. ได้รับความนิยมสูง : เป็น Certificate ที่ได้รับความเชื่อถือสำหรับ Pentester ที่ทำการทดสอบเจาะระบบ เพราะการสอบไม่ใช่เป็นเพียงการอ่านหนังสือจำเข้าไปแล้วตอบ แต่เป็นการให้ VPN เข้าไปลองแฮ็คจริงๆ เพราะฉะนั้นหากใครสอบผ่านจึงรับประกันได้ว่าอย่างน้อยต้องมีความรู้พื้นฐานที่เป็น Pentester ในระดับนึง
  2. ตลอดชีพ : Certificate หลายๆตัวกว่าจะเตรียมสอบ กว่าจะสอบผ่าน แต่ Certificate มีอายุเพียง 2–3 ปี หลังจากนั้นก็จะต้องสอบใหม่หรือสอบตัวที่ต่อยอดขึ้นไปเพื่อต่ออายุ แต่ OSCP หากสอบผ่านแล้วจะไม่มีวันหมดอายุ ถือว่าเป็นข้อดี ที่คุ้มค่าแก่การจะมีไว้ เจ็บแต่จบ …
  3. ความรู้ : “ระหว่างการเดินทาง” เป็นสิ่งสำคัญ ที่เราต้องอ่าน ต้องทำอะไรมากว่าจะสอบผ่านได้ เป็นสิ่งที่สำคัญมากๆ บางคนอาจจะไม่ได้สอบผ่านในรอบแรก ต้องใช้ 2–3 รอบในการสอบกว่าจะผ่าน ซึ่งการสอบไม่ผ่าน ไม่ได้หมายความว่าเราล้มเหลว แค่มันยังมีสิ่งอื่นๆที่ให้เราต้องไปเรียนรู้เพิ่มเติมก่อนเพื่อจะที่ได้กลับมาแข็งแกร่งกว่าเดิม ถือเป็นโอกาสที่ให้เราไม่หยุดในการเรียนรู้ โดยเฉพาะคนเพิ่งเริ่มต้นอย่างเช่นผมเริ่มต้นย้ายสายงานมา อาจจะไม่รู้ว่า เราต้องเริ่มต้นเรียนรู้จากตรงไหนก่อน การที่เราลงสอบ OSCP ก็เป็นการช่วยนำทางเราให้เราสามารถรู้ว่าเราต้องอ่านอะไรและทำอะไรบ้าง แล้วการสอบก็เป็นการคอนเฟิร์มในสิ่งที่เราเรียนรู้สั่งสมมา ว่ามันเพียงพอที่เราจะเข้าสู่สายงานนี้จริงๆ รึยัง

Registration

การสมัครจะมีให้เลือกว่าเราจะเอาLabกี่เดือน มี 1 2 และ3เดือน หลังจากสมัครและจ่ายเงินเสร็จ ตัวเบาไปเรียบร้อย แน่นอนสิ่งที่เราจะได้ก็คือ Labs ที่ใช้สำหรับฝึกฝนสกิลในการแฮ็ค ตรงนี้ผมลงไป3เดือน จริงๆหากคนที่ทำงานในสายนี้และมีสกิลที่พร้อมอยู่แล้ว อาจจะลงแค่1เดือนประหยัดเงินและเวลาก็ได้ครับ นอกจากLabก็จะได้ Material สำหรับการเรียนรู้ด้วยตัวเองเป็น PDF/Video ถ้าใครทำExcercise ก็จะได้คะแนนเพิ่มประมาณ5คะแนน แนะนำให้ทำไว้เผื่อช่วยตอนสอบคะแนนสอบขาดนิดเดียวจะได้ผ่าน

ข้อดี คือ นอกจากการทำ Exercise เราจะช่วยให้เราได้ความรู้พื้นฐานที่แน่นขึ้น ข้อดีหลักๆ อีกข้อคือ เวลาสอบเรามีโอกาสที่จะขาดอีก5คะแนนก็สอบผ่าน เช่น 25+20+20=65 หรือ 25+20 +10 +10=65 ถ้าหากเราทำExercise ก็จะได้ Bonus 5คะแนน ทำให้สอบผ่านแบบฉิวเฉียดได้ ไม่ต้องเสียเงินและเวลาไป Re-test สอบใหม่

ข้อเสีย คือ .. มั น เ ย อ ะ ม า ก ก ก ก ก ก ก ก ก

ซึ่งแน่นอนว่าผม….. ไม่ได้ทำ 55555 (มั่นใจว่าจะได้เต็มร้อยหรอ.. ป่าว ไม่มีเวลา55)

Practice Platforms

  • PWK Lab (Lab ของ OSCP นั้นแหละ) : Labจะมีการแบ่งเป็น Zone เอาไว้ โดยเริ่มต้นเราจะ VPN ไปอยู่ในวง Student Network และพยายาม Compromise หรือยึดเครื่องในวงนั้นและยกสิทธิ์เครื่องให้เป็น Admin/Root เพื่อเก็บ Proof.txt ที่อยู่ในเครื่องเป็นการยืนยันว่าเรายึดเครื่องนั้นได้แล้ว ซึ่งจะมีบางเครื่องในวงที่มี network-secret.txt ที่สามารถเอา Submitใน Control panel เพื่อไปเข้าวงอื่นๆต่อได้ เช่น IT Department, Development Department หรือ Administrative Department ระหว่างที่ทำก็พยายามเก็บรูปแต่ละขั้นตอน เพื่อมาทำ Report ด้วย
    Tip : เนื่องจาก Lab เป็นการเล่นแชร์กันระหว่างคนอื่นๆด้วย เพื่อความชัวร์ ก่อนที่จะเล่นข้อไหนอาจจะลองกด Revert สัก1ครั้งก่อน หรือเวลา Exploit ไปหลายครั้งแล้วแต่ยังไม่สำเร็จอาจจะลอง Revert ดูสักรอบก็ได้ครับ (สามารถ Revert เครื่องได้ 12 ครั้ง/24 ชั่วโมง)
PWK Lab

แล้วถ้า PWK Lab ที่สมัครไว้หมดแล้ว แต่ยังรู้สึกไม่มั่นใจ !! ทำยังไงดีล่ะ

ไม่เป็นไรๆ .. เรายังมีอีกหลายเว็บที่ให้เราสามารถฝึกฝน ฟามความรู้ได้

  • Hackthebox : เป็นเว็บยอดฮิตเลยสำหรับคนอยากฝึกโจทย์แนว CTF ซึ่งก็จะมีทั้งแบบฟรี หรือถ้าเสียเงินเราก็จะสามารถเข้าไปเล่นเครื่องเก่าๆที่Retireไปแล้วได้ ก็จะมีเว็บที่Listรายชื่อเครื่องที่ใกล้เคียงกับกับOSCPมาให้ลองเล่นตามกันดู
Credit : rkhal101

https://github.com/rkhal101/Hack-the-Box-OSCP-Preparation

ข้อดี : เป็นที่นิยม และราคาต่อเดือนไม่แรง มี Write-up ของคนที่ทำไว้แล้วให้ดูเป็นตัวอย่าง เผื่อข้อไหนที่เราทำแล้วติดไม่ต่อไม่ได้จริงๆ

ข้อเสีย : ถ้าเทียบกับข้อสอบ OSCP จริงๆแล้ว Hackthebox บางข้อ จะออกแนว CTF มากกว่าแนวข้อสอบ แต่ก็ใช้สำหรับการฝึกฝนแล้วเรียนรู้เทคนิคในการทำได้

  • Vulnhub : สามารถให้เรา Download VM ที่เป็นLab ไปเล่นบนเครื่องเราได้เลย ซึ่งถ้าเป็นแนว OSCP ก็จะมีเว็บที่Listเครื่องให้ตามLinkด้านล่างเลย

https://www.abatchy.com/2017/02/oscp-like-vulnhub-vms

ข้อดี : ฟรี สามารถดาวโหลดและลองเล่นได้เลย ส่วนใหญ่มี Write-up เขียนไว้แล้ว

ข้อเสีย : เนื่องจากต้องดาวโหลดมาติดตั้งบนเครื่องตัวเอง บางเครื่องอาจจะ Setup ยุ่งยากทำให้เสียเวลา

  • Tryhackme : คล้ายๆ hackthebox แต่เหมาะสำหรับ Beginner หรือคนที่พึ่งเริ่มต้นมากกว่า เพราะจะมีการไล่ระดับจากเครื่องง่าย ไปเครื่องยาก และมีการHintเล็กน้อยๆให้ ทำให้คนที่พึ่งเริ่มต้นสามารถเรียนรู้ได้เข้าใจเป็น Step by Step ง่ายกว่า Hackthebox ก็จะมีทั้งแบบฟรีและเสียเงิน ถ้าเสียเงิน ก็จะสามารถดูที่เขาจัดเป็น Learning Paths ไว้ให้ ว่าเราควรทำเครื่องไหนก่อนจากง่ายไปยาก ซึ่งมีหลายPathsมากมาย แต่ถ้าสำหรับคนเตรียมสอบ OSCP ก็แนะนำเป็น Offensive Pentesting ก่อน แล้วถ้ามีเวลาค่อยไป Web Fundamentals ก็ได้ครับ
Tryhackme

ข้อดี : เหมาะสำหรับคนเริ่มต้น เรียงข้อง่ายไปยาก ทำให้เข้าใจง่าย จัดเรียงความรู้ได้เป็นระเบียบ และราคาไม่แรงมาก

ข้อเสีย : อาจจะยังมีจำนวนข้อที่น้อย ไม่เพียงพอที่จะไปลุยสอบได้ทันที ต้องให้ที่อื่นในการทำเพิ่มอีก บางข้อก็อาจจะใกล้เคียง Hackthebox

  • Virtual Hacking Labs : มาถึงตรงนี้หลายๆคนอาจจะเคยสงสัยเหมือนผมว่า แล้วต้องทำมากเท่าไรถึงจะมากพอที่คิดว่าจะสอบผ่านได้ จริงๆข้อสอบ OSCP มันไม่ได้ยากมาก ถ้าทำLabมาพอสมควรจนคล่องมือและพอเอาตัวรอดได้ ผมว่าก็ลงสอบดูเลยก็ดีครับ ไม่ต้องกดดันตัวเองมากไม่ได้ยากขนาดนั้น แต่ถ้าอยากได้ความมั่นใจเพิ่ม อยากได้สกิลเพิ่มอีก เพื่อวัดไปเลยว่าเรามีโอกาสสอบผ่านได้จริงๆมั้ย …. ขอแนะนำ

ทาด้าาาาาา … Virtual Hacking Labs (ปูมายิ่งใหญ่มากก)

เป็นเว็บที่ผมชอบมากก เพราะตอนทำHackthebox อย่างที่บอกว่าส่วนใหญ่จะเป็นแนวCTF แต่ Virtual Hacking Labs จะเป็นแนวหาEnum หาโปรแกรม/Version ที่มีช่องโหว่แล้วยิงExploit แล้วยกสิทธิ์ คล้ายกับข้อสอบ OSCP กว่าเว็บอื่นๆ และมี Material จัดเป็นหมวดหมู่ให้เรียนรู้ได้ง่าย

VHL — PENETRATION TESTING COURSEWARE

ส่วนจำนวนเครื่องมีให้เล่นมากกว่า30เครื่อง ไล่ระดับตั้งแต่ Beginner จนถึง Advance+ ที่สำคัญส่วนใหญ่จะเป็นเครื่องใหม่ๆ ทำให้สำหรับคนที่อยากหา Lab เล่นแบบใกล้เคียงข้อสอบจริง ก็แนะนำตัวนี้เลย นอกจากนี้ถ้าทำได้เกิน 20 เครื่อง สามารถส่ง Report แล้วขอ Cert ของ VHL ได้อีกด้วย ตู้หู้ววววววววว พูดข้อดีมาขนาดนี้แล้ว ข้อเสียมันก็มีคือ ราคามันแอบแรง ตอนผมลงไป 1เดือน ประมาณ 99$ สำหรับคนที่ลงอย่างน้อยก็ถ้าเก็บข้อที่เป็น Beginner กับ Advanced ให้ครบ ผมว่าโอกาสสอบผ่าน OSCP ก็ค่อนข้างสูงแล้วครับ (คิดซะว่าเสียค่า Lab ดีกว่าเสียค่า Re-test)

Credit : Manh-Dung Nguyen

Methodology

สำหรับมือใหม่บางคนอาจจะเคยเป็นเหมือนผม คือ พอจะเริ่มทำแล้วมือแข็ง ไม่รู้ว่าจะต้องเริ่มทำอะไรยังไงก่อน โดยเฉพาะเวลามีเพื่อนหรือมีคนคอยดูเราทำอยู่ข้างๆ .. อะหื้อออ แข็งเลย (มือหน่ะมือ) เพราะฉะนั้นผมเลยทำรูปด้านล่างเป็นขั้นตอนคร่าวๆว่าปกติใน 1เครื่องเวลาเราทำแลปหรือสอบ เราทำอะไรกันบ้าง

Enumeration

เป็นPhaseที่สำคัญมากๆเพราะถ้าเราหา Enum ได้ไม่ครบ อาจจะทำให้เราหาช่องทางในการโจมตีไม่เจอ (Enumeration is the key)

เริ่มต้นด้วยการที่เราเอา Tool ใช้ในการสแกน Port ว่าเครื่องเป้าหมายของเรามี Portอะไรเปิดอยู่บ้าง เพื่อที่จะได้ดูVersionแล้วหาช่องโหว่ในการ Exploit เข้าไปทาง Service ที่เปิดอยู่บน Port โดยปกติ Tool ที่นิยมใช้กันก็จะหนีไม่พ้น Nmap อย่าลืมสแกนให้ครบทั้ง 65535 port และ สแกนทั้ง TCP และ UDP ด้วย(UDPอาจจะสแกนเป็นTop portแทนเพราะมันนาน) ซึ่งก็จะมี Tool ที่ช่วยเราในการสแกนที่ผมใช้ตอนสอบOSCPคือ AutoreconTool ตัวนี้มันก็คล้ายๆNmapแหละ แต่จะช่วยสแกนให้ทั้งแบบ Full scan และ Top port แต่หลังจากที่สแกนportแล้ว มันก็จะเอา port ที่เจอไปรัน Tool สแกนเฉพาะ Service นั้นต่อให้ เช่น มันสแกนไปเจอPortเว็บ มันก็จะรัน Nikto ที่เป็น Web scanner ให้ ถ้าเจอ 445 ก็จะรัน Enum4linux ให้ ซึ่งทำให้สะดวกและประหยัดเวลาในการมาEnumเองแต่ละ Service

Tip: เนื่องจาก Autorecon เป็นToolที่ช่วยสแกนให้ทุกอย่างที่เจอ เลยใช้เวลาค่อนข้างนานนนน กว่าจะเสร็จ ตอนสอบมันจะมี5เครื่อง เราอาจจะ รัน Autorecon เอาไว้4เครื่อง แล้วระหว่างรอสแกนเสร็จเราก็ไปทำอีกเครื่องที่เป็นเครื่อง Buffer Overflows หลังจากที่ทำเสร็จค่อยมา Verify ผลที่ได้จากสแกนอีกที หรือถ้ายังไม่อยากทำ Buffer Overflows อาจจะเอาที่สแกน Top port มาลองเล่นดูก่อนก็ได้ เช่นเจอ Port เว็บก็ลองเล่น Port เว็บดูก่อนเลย

การใช้ Tool สแกนเป็นแค่การช่วย Re-check อีกทีหนึ่งว่าเราลืม Enum อะไรไปรึป่าว หากเราสแกนแล้วไม่เจออะไร อาจจะต้องลองหาวิธีอื่นๆในการ Enum เพิ่มเรื่อยๆ
เช่น ถ้าเจอ Port ที่เป็นWeb ปกติเราก็จะใช้พวก Dirbuster/Gobuster อาจจะต้องลองเปลี่ยนใช้หลายๆ wordlist หรือเพิ่ม File Extention พวก php,asp,aspx,txt,html,jsp เพราะบางทีอาจจะมีหน้าเว็บ/Version ที่มีช่องโหว่ซ่อนอยู่ Try harder naja naja

Automated enumeration ไม่ได้มีแค่ Autorecon แค่ตัวเดียวนะ สามารถเลือกใช้ตามถนัดได้เลย (ใดๆก็ตามการที่ Download Toolไว้เยอะๆ ไม่ได้หมายความว่าเราจะสอบผ่าน เปรียบเสมือนกับการออกรบ ต่อให้มีอาวุธจำนวนมากมาย ไม่ได้หมายความว่าเราจะรบชนะ เพราะฉะนั้นมันไม่ได้ขึ้นอยู่กับจำนวน แต่ขึ้นอยู่กับการฝึกฝนใช้อาวุธให้มีความชำนาญ สำหรับมือใหม่จึงควรลองใช้เพื่อเลือก Tool ที่ถนัดและฝึกฝนจนชำนาญเป็นอย่างๆ เพราะ Tool หลายๆตัวสามารถทดแทนกันได้)

https://github.com/Tib3rius/AutoRecon

https://github.com/codingo/Reconnoitre

https://github.com/21y4d/nmapAutomator

Exploitation

หลังจากที่เราสแกนแล้ว EnumตามPort/Service ต่างๆจนรู้ว่า แต่ละ port ใช้โปรแกรมอะไร Version อะไรแล้ว เราก็จะเอา โปรแกรม/Version ไป Search หา Public Exploit ซึ่งในการสอบ OSCP ช่องโหว่ในข้อสอบจะสามารถใช้ Public Exploit ได้อยู่แล้ว ยังไม่ยากขนาดเป็น Zero day exploit ที่ต้องเขียนขึ้นมาเอง แค่เอา โปรแกรม/Version ไปSearch ใน Searchsploit ในKali หรือหาจากGoogle ตาม Exploit-DB / Github ซึ่งหลังจากเราเลือกมาแล้วอาจจะยังไม่สามารถโหลดมาแล้วยิง ปุ้งง! ได้ทันที อาจจะต้องมีการอ่านให้เข้าใจว่าExploitตัวนี้มันเข้าไปทำอะไรบ้างและแก้ไขScriptให้สามารถใช้งานได้ อย่างน้อยก็พวกใส่IP หรืออาจจะแก้ไข shell code เป็นต้น ถ้ายิงแล้วยังไม่ได้อีก!!! ก็อย่าพึ่งหัวร้อน อย่าลืม Try harder ท่องไว้ๆๆ

อาจจะต้องลองเปลี่ยนคำสั่ง reverse shell เป็นตัวอื่น ภาษาอื่น เช่น python,php เพราะในเครื่องเหยื่ออาจจะห้ามใช้คำสั่งนั้น หรืออาจจะต้องเปลี่ยน Port ที่ Reverse shellกลับมา เช่นถ้าใช้Port 4444 อาจจะไม่ได้ เพราะเครื่องเหยื่ออาจจะมีการบล็อค Port สูงๆไว้

Tip: ถ้าลอง Exploit แล้วเปลี่ยนคำสั่งจนหน้าสั่นแล้วก็ยังไม่ได้ อาจจะต้องมูฟออนไปทำข้ออื่นให้หายหัวร้อนก่อน เพราะช่องโหว่ที่เราคิดว่าโจมตีได้ อาจจะเป็น Rabbit hole ที่ยิงแต่ไม่ถึง ยิง ยิง แต่ไม่ถึง

Privilege Escalation

หลังจากที่เรา Exploit เสร็จเรียบร้อย ถ้าเป็นข้อ 10 คะแนน กับ Buffer Overflow น่าจะได้สิทธิ์ Root อยู่แล้วไม่ต้องทำใน Phase นี้ แต่ถ้าเป็นข้ออื่นๆ เราจะได้แค่สิทธิ์ User ที่ยังเข้าไปเก็บ Proof.txt ใน pathของadminไม่ได้ ต้องยกสิทธิ์ตัวเองให้ได้ก่อน

Phase นี้ถือว่าเป็น Phase ที่วัดกันเลยว่า จะผ่านหรือไม่ผ่าน หลักๆเครื่องที่เราจะยกสิทธิ์ก็จะมีทั้ง Window และ Linux เทคนิคในการยกสิทธิ์มาเยอะแยะมากๆ มีทั้งดู Chestsheet ทำ Manual ตาม หรือจะใช้ Script ในการช่วย Enum ให้ก่อนก็ได้ ซึ่งถ้าเรารันแค่ Script หรือแค่ก็อบวางคำสั่งใน Chestsheet ไป มันก็คงยังไม่ได้สามารถยกสิทธิ์ได้ทันที เราต้องฟามความรู้ให้เข้าใจก่อนว่า คำสั่งนี้ใส่ไปเพื่อต้องการเช็คอะไร ถ้าเครื่องตอบกลับมาแบบนี้เราต้องหาอะไรต่อ

อาจจะค่อยๆลองทำแลปแล้วค่อยๆ Search หาความรู้ไปเรื่อยๆในสิ่งที่เจอ หรือ ถ้าตอนผมค่อนข้างรีบที่จะสอบเลยลงเรียนคอร์ส ซึ่งก็จะมีหลายคอร์สมากมาย แต่ที่ผมเคยไปอ่านแล้วเขาแนะนำกัน ก็จะมีของ Linux Privilege Escalation for OSCP & Beyond! / Windows Privilege Escalation for OSCP & Beyond! ประมาณคอร์สละ 600 ฿ อาจจะไม่ได้หมายความเรียนแล้วจะทำได้เลย แต่ช่วยให้เราจัดระเบียบความรู้ได้ดีว่าเบสิคๆเริ่มต้นเขาทำอะไรกัน ส่วนเวลาสอบจริงๆเราอาจจะต้องเอาความรู้เหล่านั้นไปประยุกต์ในการใช้อีกที

Script ที่ชอบใช้ หลักจะมี Linpeas Winpeasแต่ก็จะมีตัวอื่นๆอีก แล้วแต่ความถนัดแต่ละอันก็มีดีที่ต่างกัน เช่น ถ้าWindow ก็มี PowerUp , Windows-Exploit-SuggesterSherlock ถ้าเป็น Linux ก็จะมี LinEnumlinux-smart-enumerationlinux-exploit-suggester

ส่วนChestsheetที่ชอบใช้เดี๋ยวจะแปะไว้ใน Helpful Resources ด้านล่างนะครับ

Buffer Overflows

ในการสอบ OSCP จะมี1เครื่องแน่ๆที่เป็นข้อสอบ Buffer Overflows 25คะแนน เพราะฉะนั้นนนนน ข้อนี้เราควรจะเก็บให้ได้ เก็บให้ดี เก็บให้ไว เพื่อกำลังใจว่าอย่างน้อยๆเราก็ได้มาแล้วนะเว้ย 25 คะแนนอีกแค่ไม่กี่คะแนนเท่านั้นก็จะผ่านล้าวววววววว

ถ้าคนที่พึ่งเริ่มต้นจะรู้จักคำว่า Buffer Overflows จริงๆมันมีทฤษฏีที่อ่านแรกๆจะงง งง หน่อย ไม่ว่าจะพวก Register ต่างๆพวก ESP, EIP ,…. เราอาจจะต้องไม่จำได้ทั้งหมด แค่รู้ตัวสำคัญๆและเข้าใจStepการทำแต่ละStepมันเป็นอย่างไร ส่วนใหญ่ถ้าในOSCPมันจะไม่ค่อยพลิกแพลง มีแค่แบบที่เรียกว่า Vanilla EIP Overwrite ทำตาม Material ที่เป็น PDF ที่เขาให้มา ทำตามStepนั้นเลย อย่าข้ามขั้นเพราะจะโดนหักคะแนนนะจ้ะ นะจ้ะ

สำหรับ Buffer Overflowในข้อสอบก็จะเครื่อง Window แน่ๆครับ หากจะเอาแค่สอบก็อาจจะยังไม่ต้องอ่านLinuxก็ได้นะครับ เว็บที่ผมชอบอ่านจะเป็นของคุณแมวๆเขียนไว้ละเอียดดีมากครับ แฮก Windows Binary ด้วย buffer overflow แบบง่าย ๆ ตอนที่ 1

Pre-Exam

หลังจากฟาร์มความรู้มาหลายเดือน จนถึงวันที่ใกล้สอบแล้ว แน่นอนว่าต้องมีความตื่นเต้นอยู่บ้างว่าจะสอบผ่านไหม เพราะคงไม่มีใครที่อยากจะไป re-test สอบใหม่อีกครั้ง (น่าจะประมาณ5000บาท) เพื่อเพิ่มความมั่นใจ ช่วงก่อนวันใกล้สอบเราอาจจะลอง จำลองการสอบขึ้นมาทำดู โดยให้ทำ 5ข้อเหมือนตอนสอบจริง ใช้เวลา24ชั่วโมง ดูว่าพอถึงเวลาจริงๆเราจะแบ่งเวลาในการทำยังไง และความพร้อมของเรากี่เปอร์เซ็นแล้ว เพื่อที่หากมีตรงไหนที่ยังไม่มั่นใจ ยังทำไม่ได้ จะได้รีบไปเติมเต็มก่อนเลย

เราอาจจะเลือกLabตามที่ต่างๆมาสัก 4–5ข้อในการทำ เป็นข้อที่เรายังไม่เคยทำ และคิดว่าใกล้เคียงกับข้อสอบก็ได้ครับ

หรือถ้าหาไม่เจอก็จะมีเว็บที่แนะนำอยู่ตามนี้ ก็จะมี Mock up ให้เราเลือกในการลองทำได้หลายครั้งเลย

https://github.com/six2dez/OSCP-Human-Guide

Exam

การสอบ เขาก็จะให้เราเลือกวัน เวลา ในการสอบ ว่าเราจะสอบวันไหน ซึ่งสามารถเปลี่ยนได้ 2–3 ครั้ง การสอบจะให้เวลาประมาณ1วัน (23ชั่วโมง45นาที) และให้เวลาในการทำ Report ส่งอีก 1วัน การเลือกเวลาสอบก็เป็นสิ่งสำคัญ วางแผนดีๆว่าเราจะทำตอนไหน นอนตอนไหน แต่ละคนมี Prime time ที่ต่างกัน เลือกเวลาสอบที่เหมาะกับเรา อาจจะลองดูว่าตอนทำ Lab แล้วปกติเราฟิตตอนช่วงเวลาไหน

อย่าลืมอ่าน OSCP EXAM GUIDE ก่อนสอบนะ เพราะจะมีกฏต่างๆที่เราควรรู้ เช่น จำกัดการใช้ Metasploit ได้แค่1เครื่อง หรือ มี tool ที่ห้ามใช้ เช่น sqlmap ,nessus, burp pro, etc …

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

หลังจากตรวจเสร็จไรเสร็จ ถึงขั้นตอนการสอบ เขาจะส่งอีเมลล์มา เป็น Target เครื่องสอบ 5 เครื่อง ที่ให้เราทำได้เลย ก็ลุยเลย ทำตามStepที่เราแพลนไว้ ซึ่งแต่ละคนอาจจะมี Strategy ที่ต่างกัน ว่าจะทำข้อไหนก่อน แบ่งเวลาการทำ แบ่งเวลานอน ยังไง สิ่งที่สำคัญที่สุด ก็คือ ความมั่นใจของเรา ต้องเชื่อว่าเราทำได้ และพยายาม Try harder ไปเรื่อยๆ อิอิ

Report

หลังสอบเสร็จ 1 วัน ก็เป็นการทำReport อีก1วัน เมื่อก่อนเวลาสอบเขาอาจจะให้อัดหน้าจอได้ แต่เดี๋ยวนี้คิดว่าน่าจะไม่สามารถอัดหน้าจอเวลาทำได้แล้ว (สามารถถาม proctor ดูอีกทีตอนสอบก็ได้) เพราะฉะนั้นเวลาทำเราก็พยายามเก็บรูปแต่ละขั้นตอน แต่ละ Stepให้ครบ ถ้ามีเวลาเหลือก็พยายามไปทวนดูว่ามีเราเก็บรูปครบรึยัง วันที่ทำ Report เขาไม่ได้บังคับเจาะจงว่าจะต้องทำรูปแบบไหน แต่ก็จะมี Template ที่เขาแชร์กันใน Github ทำให้เราสะดวกและง่ายขึ้น มีหลายอันมากมายหาได้ใน Google เอาตามที่เราถนัดเลย

https://github.com/whoisflynn/OSCP-Exam-Report-Template

หลังจากส่งReportก็รอลุ้นผลตอบกลับทางอีเมลล์ หากเห็นคำว่า We are happy to … ก็ดีใจได้เลย ว่าสอบผ่านแล้ว เย้ !

Conclusion

OSCP เป็น Certificate ตัวหนึ่งที่ช่วยให้เราฝึกฝนและพัฒนาสกิลด้านทดสอบเจาะระบบ สำหรับผู้เริ่มต้นอาจจะต้องใช้ความพยายามนิดหนึ่งแต่ก็ไม่ได้ยากเกินไปที่จะทำไม่ได้

นอกจากการเราจะรู้จักข้อสอบแล้ว เราต้องรู้จักตัวเองด้วย ว่าต้องวางแผนในการจัดการตัวเองยังไง ทำ Lab ไหววันละกี่ชั่วโมง และหากำลังใจให้ตัวเองให้ไม่หมดไฟง่ายๆได้อย่างไร ถ้าเราสามารถวางแผนและทำตามแผนได้สำเร็จ เราจะพัฒนาตัวเองและได้รับความรู้แบบก้าวกระโดดแน่นอน ซึ่งสิ่งเหล่านั้นแหละคือสิ่งที่มีค่าจริงๆสำหรับการสอบ

ถ้าใครที่สนใจสอบ OSCP แต่ยังลังเลอยู่กลัวว่าจะไม่มีพื้นฐานหรือเก่งไม่พอ .. จริงๆแล้ว การสอบไม่ได้วัดแค่Skill แต่ยังทดสอบใจของเรา.. ขอแค่ถามตัวเองว่า “ใจ” พร้อมรึป่าว ? .. กับการเดินทางในการเรียนรู้สิ่งใหม่ๆและสนุกไปกับมัน 🙂

ผมเองก็ไม่ใช่คนที่เก่ง บางคนอาจจะเริ่มได้ช้าหรือเริ่มได้เร็วไม่เหมือนกัน แต่ถ้าเริ่มแล้วขอให้อย่าหยุด .. Try harder เข้าไว้ !! ถ้าวันไหนที่ทำไม่ได้ รู้สึกท้อแท้ หมดไฟ หรือคิดว่าตัวเองไม่เก่ง ไม่อยากทำแล้ว จงจำไว้ว่า ..

คนโง่ไม่มี มีแต่คนขี้เกียจ

ก็หวังว่า Blog นี้ก็จะมีประโยชน์ไม่มากก็น้อยสำหรับทุกคนที่เข้ามาอ่านนะครับ ถ้าผิดพลาดประการใดก็ขออภัยด้วยนะครับ ถ้ารู้อะไรเพิ่มที่คิดว่ามีประโยชน์ก็จะมา Update ให้นะครับ

ขอขอบคุณ .. หัวหน้าที่ทำงาน (พี่ A พี่ O พี่ W พี่ W พี่ B ) ที่ให้ความไว้ใจ และสนับสนุนมาตลอด และพี่ๆเพื่อนๆในทีม(K G M K พี่ B พี่ P พี่ P พี่ I พี่ D )ที่แชร์และแบ่งปันความรู้ ฝึกฝนกันอย่างสนุกสนาน

และที่ขาดไม่ได้ ขอขอบคุณ ครอบครัวและแฟน คนรอบตัวที่คอยให้กำลังใจมาตลอดนะครับ

Some Helpful Resources

  • Enumeration
    • https://guif.re/webtesting
    • https://anhtai.me/pentesting-cheatsheet/
    • https://blog.thehackingnomad.com/cheat-sheet-series/netwerkenum
  • Windows Privilege Escalation
    • https://guif.re/windowseop
    • https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md
    • https://awansec.com/windows-priv-esc.html
    • https://lolbas-project.github.io/
  • Linux Privilege Escalation
    • https://guif.re/linuxeop
    • https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
    • https://blog.thehackingnomad.com/cheat-sheet-series/privesc-linux#nfs-root-squashing
    • https://gtfobins.github.io/
  • Buffer Overflows
    • https://backdoorshell.gitbooks.io/oscp-useful-links/content/buffer-overflows.html
    • http://justpentest.blogspot.com/2015/07/minishare1.4.1-bufferoverflow.html
    • https://samsclass.info/127/proj/vuln-server.htm
  • Labs pentest
    • https://github.com/michelbernardods/labs-pentest

บทความจาก

https://earthzkung.medium.com/oscp-journey-2020-%E0%B8%A3%E0%B8%B5%E0%B8%A7%E0%B8%B4%E0%B8%A7%E0%B8%89%E0%B8%9A%E0%B8%B1%E0%B8%9A%E0%B8%84%E0%B8%99%E0%B9%80%E0%B8%A3%E0%B8%B4%E0%B9%88%E0%B8%A1%E0%B8%95%E0%B9%89%E0%B8%99%E0%B8%88%E0%B8%B2%E0%B8%81-0-%E0%B8%A5%E0%B8%87%E0%B8%AA%E0%B8%AD%E0%B8%9A%E0%B9%84%E0%B8%9B%E0%B8%81%E0%B9%88%E0%B8%AD%E0%B8%99%E0%B9%80%E0%B8%94%E0%B8%B5%E0%B9%8B%E0%B8%A2%E0%B8%A7%E0%B9%80%E0%B8%9B%E0%B9%87%E0%B8%99%E0%B9%80%E0%B8%AD%E0%B8%87-f7de2544ee18