AWAE คืออะไร?
AWAE ย่อมาจาก Advanced Web Attacks and Exploitation เป็นหนึ่งในคอร์สสอนด้าน Cyber Security แบบออนไลน์ของค่าย Offensive Security ซึ่งเป็นผู้พัฒนาและดูแลโครงการ Kali Linux โดยเนื้อหาของคอร์สนี้มุ้งเน้นไปทาง White-box Web Application Penetration Testing หรือการทดสอบเจาะระบบเว็บแอพพลิเคชั่นแบบมีโค้ดของเว็บในภาษาต่างๆ ให้วิเคราะห์หาช่องโหว่และโจมตีไปยังเว็บเป้าหมาย รวมไปถึง Source Code Review หรือการหาช่องโหว่ด้านความปลอดภัยจาก Source Code นั่นเองครับ
AWAE Online?
ก่อนหน้านี้ผู้ที่สนใจคอร์สนี้หากมีความต้องการที่จะเรียนนั้น ผู้เรียนจะต้องเข้าเรียนในงานสัมมนา Black Hat ที่ถูกจัดขึ้นที่ต่างประเทศเท่านั้น (Black Hat Asia 2018 | Advanced Web Attacks and Exploitation) จนมาถึงเดือนมีนาคม 2019 ทาง Offensive Security ได้ประกาศว่าผู้ที่สนใจคอร์ส AWAE สามารถซื้อคอร์สและเรียนรู้ศึกษากันแบบ Online ได้แล้วดังเช่นคอร์ส Penetration Testing with Kali Linux (PWK) นั่นเอง โดยมีรายละเอียดดังนี้ครับ AWAE Now Available Anywhere, Anytime
AWAE Course?
สิ่งที่คอร์สนี้ให้ผู้เรียนมาศึกษานั้นจะมี Materials ในรูปแบบ PDF ประมาณ 400+ หน้าและ Video ความยาวประมาณ 10 ชั่วโมงแก่ผู้เรียน และสิทธิ์ในการเข้าถึงเครือข่ายที่เป็นเครื่องสำหรับใช้ทดสอบฝึกฝน Lab เพื่อปฏิบัติตาม PDF และ Video อีกด้วยผ่านทาง VPN โดยระยะเวลาของการเข้าถึง Lab นั้นขึ้นกับรูปแบบที่ผู้เรียนได้ลงทะเบียนเรียนไว้เช่น 30, 60 หรือ 90 วันราคาก็จะแตกต่างกันออกไป และสามารถต่ออายุโดยการซื้อเพิ่มได้ครับ
เนื้อหาของคอร์สจะสอนการวิเคราะห์ Source Code ของเว็บแอพพลิเคชั่นในแต่ละภาษาโปรแกรมไม่ว่าจะเป็น PHP, .Net, Java, NodeJS, สอนการ Decompile, สอนการ Debug และสอนการแก้ไขค่า HTTP Request โดยในคอร์สจะสอนใช้เครื่องมือต่างๆ เช่น Burp Suite, dnSpy, JD-GUI เป็นต้น เนื้อหาของคอร์สจะมีประมาณนี้
- Web security tools and methodologies
- Source code analysis
- Persistent cross-site scripting
- Session hijacking
- .NET deserialization
- Remote code execution
- Blind SQL injections
- Data exfiltration
- Bypassing file upload restrictions and file extension filters
- PHP type juggling with loose comparisons
- PostgreSQL Extension and User Defined Functions
- Bypassing REGEX restrictions
- Magic hashes
- Bypassing character restrictions
- UDF reverse shells
- PostgreSQL large objects
เนื้อหาที่เพิ่มเข้ามาใหม่ AWAE: Updated with More Content for 2020
- DOM-based cross site scripting (black box)
- Server side template injection
- Weak random token generation
- XML external entity injection
- RCE via database functions
- OS command injection via WebSockets (black box)
Credit from @0xklaue
ผู้ที่สนใจสามารถอ่านเนื้อหาของคอร์สได้อย่างละเอียดที่นี่ครับ Advanced Web Attacks and Exploitation Syllabus และสิ่งที่ผู้เขียนชอบใน Materials PDF คือจะมีส่วนของ Extra miles exercises คือการให้ผู้เรียนคิดนอกกรอบ คิดต่อยอดจากเรื่องที่ศึกษาไปแล้วในบทนั้นๆ โดยเป็นเหมือนการบ้านให้ศึกษาเพิ่มเติมและสามารถลงมือทำได้ใน Lab แต่เป็นการบ้านที่ไม่มีเฉลย
AWAE Lab?
สำหรับ Lab จะมีประมาณ 5 เครื่องเป็น 5 Web Application ให้ผู้เรียนได้เชื่อมต่อผ่าน VPN เข้าไปศึกษาและปฏิบัติตาม PDF และ Video สำหรับตอนนี้ได้มีการอัพเดทเนื้อหาของคอร์สแล้ว คิดว่าน่าจะมีเครื่องสำหรับฝึกฝนเพิ่มขึ้นอีกครับ
OSWE คืออะไร?
OSWE ย่อมาจาก Offensive Security Web Expert เป็นการสอบใบรับรองเพื่อวัดทักษะความรู้ความเข้าใจหลังจากศึกษาคอร์ส AWAE และพิสูจน์ว่าผู้เรียนสามารถใช้ความรู้ที่เรียนมาได้อย่างถูกต้องตามวัตถุประสงค์ของ AWAE ครับ โดยการสอบนั้นเป็นการสอบปฏิบัติแบบ Online ผ่านเครือข่าย VPN และมี Proctor หรือผู้คุมสอบคอยดูเราผ่านกล้อง Webcam และดูหน้าจอของเราตลอดเวลาระหว่างการสอบ ไม่ว่าผู้เรียนจะมีกี่หน้าจอก็ตาม ต้องแชร์ให้ผู้คุมสอบดูทั้งหมด ผู้เรียนจะมีเวลาในการสอบปฏิบัติทั้งสิ้น 47 ชั่วโมง 45 นาทีหรือประมาณเกือบ 2 วันในการสอบและ 24 ชั่วโมงหรือ 1 วันต่อมาในการเขียนรีพอร์ตส่งรวมๆ แล้วใช้เวลาเกือบ 3 วันในการสอบ OSWE ครับ เมื่อใกล้ถึงเวลาสอบทาง Offensive Security จะส่ง Credential ในการเชื่อมต่อ VPN มาให้และคำแนะนำเบื้องต้นในการตั้งค่า Webcam และพิสูจน์ตัวตน สำหรับผมคือแสดงบัตรประชาชนให้ทางผู้คุมสอบดูผ่านกล้อง Webcam ครับ
ในการสอบทาง Offensive Security จะมี Main Objective หรือจุดประสงค์จำนวนหลายข้อให้เราทดสอบวัดทักษะความรู้และหนึ่งในนั้นคือ “การแฮกเว็บที่เป็นโจทย์ให้ได้” รวมไปถึงการเข้าถึงเนื้อหาในไฟล์ local.txt และไฟล์ proof.txt ที่อยู่ในเว็บ/เครื่องเป้าหมายเช่นเดียวกับการสอบ OSCP แต่ไม่ต้องทำการ Privilege Escalation เหมือน OSCP สำหรับเกณฑ์คะแนนที่ต้องได้รับสำหรับผ่านการสอบคือการ Submit เนื้อหาในไฟล์ local.txt และ proof.txt ลงใน Exam Control Panel ให้ได้ 85 คะแนนหรือมากกว่า จากคะแนนเต็ม 100 คะแนนครับ รายละเอียดระหว่างสอบขออนุญาตไม่กล่าวถึงเยอะครับ
สำหรับข้อห้ามในการสอบจะมีดังนี้
- ไม่อนุญาตให้ใช้เครื่องมือวิเคราะห์ Source Code
- ไม่อนุญาตให้ใช้เครื่องมือโจมตีช่องโหว่อัตโนมัติ (เช่น db_autopwn, browser_autopwn, SQLmap, SQLninja เป็นต้น)
- ไม่อนุญาตให้ใช้เครื่องมือสแกนหาช่องโหว่อัตโนมัติ (เช่น Nessus, NeXpose, OpenVas, Canvas เป็นต้น)
- แต่สามารถใช้เครื่องมืออย่าง Nmap รวมไปถึง NSE Script, Nikto, Burp Suite Free, DirBuster อันนี้ยกเว้นสามารถใช้ได้
Offensive Security ได้มี Template Report ให้สำหรับการสอบ OSWE โดย Report นั้นต้องประกอบไปด้วยขั้นตอนและวิธีการแต่ละ Step และควรอธิบายให้เข้าใจว่าทำแบบไหน ใช้คำสั่งอะไร ผลลัพธ์คืออะไร โดยมี Screetshot และรายละเอียดเยอะๆ จะดีมาก โดยสามารถอ่านเพิ่มเติมได้ที่ OSWE Certification Exam Guide
อยากศึกษาคอร์ส AWAE และสอบ OSWE เตรียมตัวอย่างไรดี?
- ถ้าเคยสอบผ่าน OSCP จะมีประโยชน์ แต่คอร์สนี้ไม่จำเป็นต้องมี OSCP ก็ลงเรียนและสอบได้ครับ โดยสามารถอ่านรีวิวของ PWK/OSCP ได้ที่ Penetration Testing with Kali (PWK) Review
- ถ้าเป็น Web Developer หรือพัฒนาเขียนเว็บมาก่อน จะมีประโยชน์ในด้านการอ่านและทำความเข้าใจ Source Code
- คุ้นชินกับการอ่านทำความเข้าใจโค้ดหรือเขียนโปรแกรมภาษาใดภาษาหนึ่งได้อย่างคล่องแคล่ว ไม่ว่าจะเป็น Java, .Net, JavaScript, Python
- คุ้นชินกับการใช้งาน Linux ในด้านต่างๆ
- ความสามารถในการเขียนสคริปของโปรแกรมในภาษาต่างๆ เช่น Python, Perl, PHP, Bash Script เพื่อ Automate Process สำหรับใช้โจมตี Web Application
- มีประสบการณ์ในการใช้ Web Proxy เช่น Burp Suite เป็นต้น (ในคอร์สใช้ Burp Suite เป็นหลัก)
- มีความรู้และเข้าใจวิธีการในการโจมตี Web Application ทั้งทางทฤษฏีและทางปฏิบัติเป็นอย่างดี
Exam Tips
- เนื้อหาในคอร์ส AWAE เพียงพอสำหรับการสอบผ่าน OSWE
- พยายามทำ Extra miles exercises ให้ครบ จะช่วยผู้เรียนเวลาสอบได้มาก
- เว็บเป้าหมายถูกพัฒนา/ปรับแต่งแก้ไขขึ้นเอง อย่าเสียเวลาไปหา Public Exploit หรือ CVE มาโจมตีหรือทดสอบ เพราะนี่ไม่ใช่ OSCP
- เนื่องจากเนื้อหาของคอร์สมุ่งเน้นไปยัง White-box ผู้เรียนสามารถเปลี่ยนแปลงโค้ด, แก้ไขค่าใน Database หรือ Debug ได้อย่างอิสระในเครื่อง Debugging Machine ระหว่างการสอบ
- พยายามทำความเข้าใจการทำงานและฟังก์ชั่นของเว็บแอพพลิเคชั่นให้ได้มากที่สุด แต่ไม่จำเป็นต้องอ่านโค้ดทุกบรรทัดหรือทุกไฟล์
- อย่าลืมที่จะเก็บ Screenshot, โค้ดช่องโหว่บางส่วน หรือโน๊ตระหว่างการสอบ จะทำให้ไม่ลืม Step ที่ทำผ่านมา
- อย่าลืมพักเบรคขณะสอบ อย่านั่งนานเกิน 2-3 ชั่วโมง ลุกจากคอมฯ ไปเดินเล่น กินขนม เล่นกับแมว
- หากติดจุดไหนนานเกินไปให้เปลี่ยนแนวคิด เพราะนั่นอาจเป็น Rabbit Hole
- ก่อนเริ่มสอบควรพักผ่อนให้เพียงพอ
- อย่ายอมแพ้จนกว่าเวลาจะหมดลง
- กำลังใจเป็นสิ่งที่สำคัญ 💪
Resources ที่น่าสนใจ
https://forum.hackthebox.eu/discussion/2646/oswe-exam-review-2020-notes-gifts-inside
https://github.com/timip/OSWE
https://github.com/wetw0rk/AWAE-PREP
https://github.com/deletehead/awae_oswe_prep
https://kishanchoudhary.com/OSWE/Journey/OSWE.html
https://cyber-dragon.nl/2020/06/10/oswe-cheat-sheet/
https://z-r0crypt.github.io/blog/2020/01/22/oswe/awae-preparation/
https://owasp.org/www-pdf-archive/OWASP_Code_Review_Guide_v2.pdf
หวังว่าจะเป็นประโยชน์กับคนที่สนใจครับผม 😀