NMap Script Engine
เป็นความสามารถที่มีมาพร้อมกับ Nmap อย่างเป็นทางการตั้งแต่เวอร์ชัน 4.50 ซึ่งเผยแพร่เมื่อปี 2007
NMap Script Engine มีจุดเด่นตรงในเรื่องของความสามารถที่เรียกสคิปที่มีชื่อว่า NSE Script ผู้ใช้สามารถเขียนสคิปต์ดังกล่าวมาใช้งานเองได้ ทำให้ความสามารถของ NMap นั้นถูกขยายกว้างออกไป ขึ้นอยู่กับฟังก์ชั่นการทำงานของสคิปต์ที่ถูกเรียกใช้
สคิปต์ถูกแบ่งออกเป็นหมวดย่อยต่างๆ ดังนี้
- auth -- เกี่ยวข้องกับการยืนยันตัวบุคคลที่เข้าใช้งานระบบ เช่น การทดสอบเข้าใช้งานระบบโดยใช้ชื่อบัญชีอผู้ใช้และรหัสผ่านที่เป็นค่าเริ่มต้น
- broadcast -- ใช้ในการค้นหาอุปกรณ์ของแม่ข่ายที่ทำงานอยู่บนระบบเครือข่าย
- brute -- ใช้ในการสุ่มเดารหัสผ่านของ Server ต่างๆ
- default -- ใช้ในการสืบหาข้อมูลพื้นฐานของระบบ
- discovery -- ใช้ในการค้นหาข้อมูลเชิงลึกของระบบเป้าหมาย
- dos -- ใช้ในการทดสอบโจมตีระบบด้วยวิธี Denial-of- Service
- exploit -- ใช่ทดสอบการเจาะระบบผานทางช่องโหว่ของ Service ต่างๆ
- external -- ใช้ในการค้นหาข้อมูลเพิ่มเติมจากบริการภายนอก
- fozzer -- ใช้ในการทำ Fuzzing ซึ่งเป็นเทคนิคการตรวจสอบของซอฟต์แวร์ด้วยการป้อนข้อมูลสุ่ม แบบที่คาดว่าจะให้ทำงานผิดพลาด
- intrusive -- เกี่ยวข้องกับการโจมตีระบบเป็นหลัก ส่วนใหญ่เป็นสคริปต์ที่อยู่ในหมวด brute, exploit และ dos
- malware -- ใช้ตรวจสอบว่าระบบกำลังติดมัลแวร์ หรือมีช่องโหว่ที่อาจถูกโจมตีโดยมัลแวร์หรือไม่
- safe -- ใช้ในการค้นหาข้อมูลต่างๆ โดยการทำงานของสคิปต์ที่อยู่ในหมวดนี้ ไม่มีผลเสี่ยงที่จะกระทบการทำงานของระบบ
- version -- ใช้ในการค้นหารายละเอียดของ Service ที่ทำงานอยู่ระบบเป้าหมาย
- vuln -- ใช้ตรวจสอบหาช่องโหว่ของ Service ที่ทำงานอยู่ระบบเป้าหมาย
เรียกใช้อย่างไร?
วิธีนี้เป็นการเรียกใช้สคริปทั้งหมดที่กล่าวมาก่อนหน้า โดยมีรูปแบบดังนี้
nmap --script <category-name> <target>
ซึ่งสามารถทำได้ผ่าน Command Prompt บน Windows หรือ Termanal บน Linux
จากภาพด้านบนเป็นการใช้คำสั่ง nmap --script auth 192.168.1.62 ซึ่งจะไปเรียกใช้สคริปต์ที่อยู่ในหมวด auth เพื่อทำการตรวจสอบว่า ระบบเป้าหมายที่มี IP address เป็น 192.168.1.62 นั้นมีข้อมูลใด ๆ ก็ตามที่เกี่ยวข้องกับกระบวนการยืนยันตัวบุคคลหรือไม่ จากส่วนหนึ่งของผลลัพธ์ที่ได้จะพบว่า บริการ FTP ของระบบดังกล่าวมีการตั้งค่าอนุญาตให้บุคคลใด ๆ สามารถเข้าใช้งานระบบ FTP ก็ได้ (Anonymous FTP)
ทั้งนี้ในการใช้งาน Nmap โดยทั่วไปที่มีการระบุตัวแปร -sC, -sV หรือ -A อยู่ในคำสั่ง ก็จะมีการเรียกใช้สคริปต์จากทั้งหมวดหมู่โดยอัตโนมัติอยู่แล้ว โดยตัวแปร -sC จะกำหนดให้เรียกใช้สคริปต์ที่อยู่ในหมวด default ส่วนตัวแปร -sV จะกำหนดให้เรียกใช้สคริปต์ที่อยู่ในหมวด version และตัวแปร -A จะกำหนดให้เรียกใช้สคริปต์ที่อยู่ในหมวด default และ version รวมถึงการตรวจสอบระบบปฏิบัติการและการทำ Traceroute
ข้อมูลอ้างอิง : https://www.thaicert.or.th/papers/technical/2013/pa2013te003.html