สวัสดีครับวันนี้ผมก็จะมาแนะนำ Lab ง่ายๆ สำหรับผู้ที่เริ่มต้นสนใจในการทำงานสาย Pentester เนื่องจากบทความก่อนๆเราได้มีการแนะนำเกี่ยวกับ Pentester คืออะไร ทำงานเกี่ยวกับอะไร ถ้าเราอยากเป็น Pentester เนี่ยต้องเตรียมตัวแบบไหน ผมก็เลยมี Lab จากทาง Hack The Box ง่ายๆ สำหรับผู้ที่เริ่มต้นสนใจงานทางด้านนี้มาแนะนำโดย Lab ของทาง Hack The Box จะเป็นการให้ Machine เรามา 1 เครื่องจากนั้นจะให้เราทำการ Hack ด้วยวิธีต่างๆ เพื่อหา User Flag และ Root Flag โดยที่ Root Flag นั้นจะมีความซับซ้อนในการหามากกว่า User Flag เพราะเราอาจจะต้องใช้เทคนิคต่างๆ ในการหาเพิ่มขึ้น
โดยความยากของ Lab นั้นจะมีทั้งหมด 4 ระดับคือ Easy Medium Hard และ Insane โดย Lab ที่ผมนำมาแนะนำนั้นเป็น Lab ที่ Retired ไปแล้วอยู่ในระดับ Easy ค่อนข้างไปทาง Very Easy และมีความง่ายสำหรับผู้ที่เริ่มต้นที่จะลองเล่น Hack The Box เพราะว่า Lab ของทาง Hack The Box ระดับ Easy ทั่วไปนั้นจะมีความยากสำหรับผู้ที่ไม่เคยเล่น Lab อย่างมาก โดย Lab ที่ผมจะแนะนำในวันนี้มีชื่อว่า La La La Lame!
โดย Lame นั้นจะมี OS เป็น Linux ผู้ที่ลองเล่นจะต้องมีทักษะในการใช้ Linux Command มาเบื้องต้นกันก่อนนะจ๊ะ ถ้าเตรียมตัวพร้อมแล้วเราก็จะไปลุยกันเลย!
โดย Step แรกเราต้องเริ่มจากการ Reconnaissance กันก่อน โดย Reconnaissance คือการสำรวจระบบว่าระบบนั้นมีการใช้งาน Port อะไรบ้างมี Service อะไรบ้างที่เปิดใช้งาน เพื่อที่จะเป็นข้อมูลเบื้องต้นให้แก่เรา
Reconnaissance
เราใช้ Tools ที่มีชื่อว่า Nmap ในการ Port Scanning กันก่อน โดยคำสั่งที่ผมใช้คือ
nmap -sS -sC -sV -p- 10.10.10.3
-sS คือ การใช้เทคนิคการสแกนแบบ TCP SYN Scan
-sC คือ User Default Script
-sV คือ การ Enumerate Version และ Service
-p- คือ การสแกนพอร์ตทุกพอร์ต (1–65535) เพื่อหาพอร์ตที่เปิดใช้งาน เนื่องจากถ้าเราสแกนแบบปกติจะสแกนแค่ 1000 พอร์ตเท่านั้น อาจจะมี Service บางตัวที่ใช้งานพอร์ตมากกว่า 1000 ขึ้นไป
เมื่อเรา Port Scanning เสร็จก็จะพบว่ามีการเปิดพอร์ตทั้งหมด 5 พอร์ต คือ 21(FTP), 22(SSH), 139(SMB), 445(SMB) และ 3632(Unknown) อันดับแรกเราจะมาดูพอร์ตที่ 21 (FTP) กันก่อนว่าเขาให้ข้อมูลอะไรที่สำคัญกับเรามาบ้างรึเปล่า
จะสังเกตเห็นว่าจะมีคำว่า Anonymous Login Allowed เราก็จะมาลองล็อคอินด้วย anonymous ดูกันโดยจะใส่ username = anonymous ส่วน password กด Enter ได้เลย
จะเห็นได้ว่าเราสามารถล็อคอินด้วย anonymous ได้ จากนั้นมาลองสำรวจว่าใน FTP นั้นมีข้อมูลอะไรบ้าง โดยใช้คำสั่ง ls เหมือนกับ Linux command โดยคำสั่ง ls นั้นจะเป็นการ list file ที่มีอยู่ใน Directory นั้นมาแสดง
เมื่อได้ลองคำสั่ง ls ไปแล้วปรากฏว่าไม่มีข้อมูลที่น่าสนใจอยู่เลย เราจึงมาลองดูพอร์ตอื่นๆ เผื่อมีอะไรที่สำคัญ งั้นเราไปลองดูที่พอร์ต 139,445 กัน เนื่องจากพอร์ตที่ 22 (SSH) นั้นจำเป็นต้องมี username กับ password ในการ ssh เข้าไป เราสามารถใช้วิธี Bruteforce ได้แต่ผมมองว่าเราอาจจะมีวิธีอื่นที่ได้ผลลัพธ์ดีกว่า เรามาดูที่พอร์ต 139 และ 445 กัน เมื่อไปหาข้อมูลจะพบว่าพอร์ต 139 และ 445 นั้นเป็น SMB Port ใช้งานเป็น Samba เวอร์ชัน 3.0.20
Exploit
ต่อมาผมได้ทำการหาช่องโหว่เกี่ยวกับ Samba เวอร์ชัน 3.0.20 จะพบว่าจะมีช่องโหว่ที่น่าสนใจคือ “Username map script Command Execution (CVE-2007–2447)” โดยช่องโหว่นี้สามารถใช้ Metasploit Framework รันได้ แหล่งข้อมูลจากเว็บ exploitdb นั้นเองง
โดยทำการเปิด Metasploit Framework ขึ้นมาจากนั้นใช้คำสั่ง search ในการค้นหาตัว exploit
เมื่อเราทำการ search หาตัว exploit ของ Samba แล้วถ้าเราอยากจะใช้ช่องโหว่นั้น เราใช้คำสั่ง use ตามด้วยพาธของตัว exploit นั้นหรือจะใช้ use ตามด้วย id ของตัว exploit นั้นก็ได้
เมื่อทำการเรียกตัว exploit นั้นมาใช้งานจากนั้นเรามาดูเงื่อนไขของตัว exploit นั้นว่าเขาต้องการอะไรบ้างในการโจมตีโดยใช้คำสั่ง show options โดยตัว exploit นี้เขาต้องการให้เราระบุ RHOSTS คือ IP ของเครื่องที่เราต้องการโจมตีนั่นเอง กับ LHOST คือ IP ของเครื่องเรานั่นเองโดย IP เครื่องเรานั้น จะใช้เป็น IP ของ VPN ที่เราต่อกับ HTB จะมีชื่อว่า tun0
เมื่อเราทำการใส่ข้อมูลเรียบร้อยแล้วจากนั้นเราใช้คำสั่งในการ exploit โดยจะใช้ได้ 2 คำสั่งคือ run กับ exploit
เมื่อเราทำการรัน exploit แล้วก็ทำการรอ… รอนานๆ ก็อาจจะบั่นทอนหัวใจ แต่!! จะเห็นได้ว่ามีการสร้าง session เกิดขึ้นแสดงว่าเราได้ทำการยิง exploit ได้สำเร็จ เย้
เมื่อเรายิงสำเร็จแล้วก็มาลองดูว่าผลจะเป็นอย่างไร โดยใช้คำสั่ง ls ดูก่อน จะพบว่ามีการ List File และ Directory ออกมา รู้สึกเยี่ยม
จากนั้นเรามาดูว่าเมื่อเรายิง exploit ไปแล้วเราได้สิทธิ์อะไรกลับมา โดยใช้คำสั่ง whoami หรือ id
เนื่องจากว่า Box นี้เป็น Box ที่ค่อนข้างง่ายทางเครื่องเลยให้สิทธิ์ที่สูงสุดแก่เราก็คือสิทธิ์ root นั่นเอง! แต่ถ้าหากเป็น Box อื่นอาจจะได้แค่ user หรือ www-data ทั่วไป เมื่อเราได้สิทธิ์ root แล้วเราก็จะไปหา User Flag กับ Root Flag กัน โดยเราจะหา Root Flag ได้จาก พาธ /root เมื่อเข้าไปพาธ /root จะพบกับ root.txt นั่นคือ flag ของ root นั่นเอง!!! ขอดู flag หน่อยโดยการใช้คำสั่ง cat บน Linux command ในการอ่านข้อมูลออกมาในรูปแบบ text
เมื่อเราได้ Root Flag แล้วยังขาด User Flag อยู่ ลองไปหน้าใน Directory home สิเผื่อเจอของดี ปรากฏว่าเจอ Directory ที่มีชื่อว่า makis เราลองไปส่องดูกัน
เมื่อทำการใช้คำสั่ง ls จะพบว่ามีไฟล์ที่ชื่อว่า user.txt นั่นเอง ทำให้เราหา Flag ได้ครบตามเงื่อนไขเรียบร้อยแล้ว
**เพิ่มเติมถ้าใครรู้สึกว่าอยากจะ spawn shell ขึ้นมา เราสามารถ spawn shell ได้โดยใช้คำสั่ง python ในการ spawn shell ได้
จากนั้นนำ flag ที่ได้ไปใส่ในเว็บ Hack The Box เพื่อให้ปลดล็อก USER OWNS กับ SYSTEM OWNS แต่จะไม่ได้ point เพิ่มนะครับเนื่องจากเป็น Box ที่ Retired ไปแล้ว ถ้าหากอยากได้แต้มเพื่อเลื่อน Rank ต้องไปเล่น Box ที่ยังไม่ Retired ครับ
Conclusion
Box นี้เป็น Box ที่ค่อนข้างง่ายสำหรับผู้ที่เคยเล่น Hack The Box มาก่อน ผมมองว่า Box นี้เป็นจุดเริ่มต้นที่ดีสำหรับผู้ที่อยากเล่น Lab Hack The Box เพราะว่าเราไม่ต้องใช้การ Enumerate มากเกินไปซึ่งเป็นเรื่องยากสำหรับมือใหม่ในการใช้ Tools ต่างๆ ซึ่ง Box นี้จะใช้อยู่ 2 Tools คือ Nmap กับ Metasploit Framework และ Box นี้จะเน้นไปทาง CVE ซึ่งจะ exploit ได้ง่ายกว่าหมวดอื่นๆ
เป็นอย่างไรกันบ้างครับกับ Box ที่ผ่านมาถ้าเนื้อหาผิดพลาดประการใดก็ขออภัยด้วยครับ เนื่องจากแอดเพิ่งเข้ามาใหม่อันนี้เป็นบทความแรกที่ได้เขียนรู้สึกตื่นเต้นมากครับ ถ้าหากถูกใจแอดก็ฝากกดติดตามเพจ Datafarm ผ่านทาง Facebook ด้วยนะครับเพื่อติดตามข่าวสาร หรือ บทความดีๆต่างๆ ที่นำมาเล่าสู่กันฟัง ในการเพิ่มประสบการณ์หรือความรู้ต่างๆ โดยบทความหน้าจะเป็นอะไรหรือ Lab อะไร ฝากติดตามกันด้วยนะคร้าบ สำหรับวันนี้สวัสดีครับบ บ๊ายบายย!!!