วิธีการใช้ Nmap สำหรับการสแกนช่องโหว่?

เผยแพร่แล้ว: 2022-04-07

Nmap หรือ Network mapper เป็นชุดเครื่องมือสำหรับการทดสอบการทำงานและการเจาะระบบทั่วทั้งเครือข่าย รวมถึงการสแกนพอร์ตและการตรวจจับช่องโหว่

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

ช่องโหว่และการเปิดเผยทั่วไป (CVE) เป็นฐานข้อมูลของปัญหาด้านความปลอดภัยข้อมูลที่เปิดเผยต่อสาธารณะ ทำหน้าที่เป็นแบบจำลองอ้างอิงสำหรับการตรวจจับช่องโหว่และภัยคุกคามที่เกี่ยวข้องกับความปลอดภัยของระบบข้อมูล

ในบทความนี้ เราจะมาดูวิธีการใช้ Nmap สำหรับ Vulnerability Scan

มาเริ่มกันเลย!

การติดตั้ง Nmap

Nmap ได้รับการติดตั้งล่วงหน้าในเกือบทุกการกระจาย Linux ในกรณีที่หายไป คุณต้องติดตั้งด้วยตนเอง สามารถติดตั้งได้ง่ายๆ ด้วยคำสั่งต่อไปนี้

 apt-get install nmap

และคุณยังสามารถติดตั้งได้โดยการโคลนที่เก็บ git อย่างเป็นทางการ

 git clone https://github.com/nmap/nmap.git

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

 ./configure make make install

เวอร์ชันล่าสุดของซอฟต์แวร์นี้ รวมถึงโปรแกรมติดตั้งไบนารีสำหรับ Windows, macOS และ Linux (RPM) มีให้ที่นี่

สแกนช่องโหว่ด้วย Nmap

Nmap-vulners , vulscan และ vuln เป็นสคริปต์การตรวจจับ CVE ทั่วไปและเป็นที่นิยมมากที่สุดในเครื่องมือค้นหา Nmap สคริปต์เหล่านี้ช่วยให้คุณค้นพบข้อมูลสำคัญเกี่ยวกับข้อบกพร่องด้านความปลอดภัยของระบบ

Nmap-vulners

หนึ่งในเครื่องสแกนช่องโหว่ที่เป็นที่รู้จักมากที่สุดคือ Nmap-vulners มาดูวิธีตั้งค่าเครื่องมือนี้และวิธีเรียกใช้การสแกน CVE พื้นฐานกัน เอ็นจิ้นสคริปต์ Nmap ค้นหาการตอบสนอง HTTP เพื่อระบุ CPE สำหรับสคริปต์ที่กำหนด

การติดตั้ง

ในการติดตั้งสคริปต์ Nmap-vulners ให้ไปที่ไดเร็กทอรีสคริปต์ Nmap โดยใช้คำสั่งต่อไปนี้

 cd /usr/share/nmap/scripts/

ขั้นตอนต่อไปคือการโคลนที่เก็บ git

 git clone https://github.com/vulnersCom/nmap-vulners.git

หลังจากโคลนที่เก็บ git แล้ว คุณไม่จำเป็นต้องดำเนินการใดๆ สำหรับการกำหนดค่า เครื่องมือจะถูกติดตั้งโดยอัตโนมัติ

และถ้าคุณต้องการดูสคริปต์ NSE ที่มีอยู่ในฐานข้อมูล Nmap-vulners ให้ใช้คำสั่ง ls มันจะแสดงสคริปต์ส่วนขยาย .nse ทั้งหมดบนเทอร์มินัล

การใช้งาน

สคริปต์ NSE ใช้งานง่าย เพียงส่งอาร์กิวเมนต์ -script ไปยังคำสั่ง Nmap ของเราเพื่อสั่งสคริปต์ NSE ที่จะใช้

 nmap -sV --script vulners [--script-args mincvss=<arg_val>] <target>

อย่าลืมส่งอาร์กิวเมนต์ "-sV" ขณะใช้สคริปต์ NSE Nmap-vulners จะไม่สามารถเข้าถึงฐานข้อมูล Vulners Exploit ได้หากไม่ได้รับข้อมูลเวอร์ชันใด ๆ จาก Nmap ดังนั้น พารามิเตอร์ -sV จึงจำเป็นตลอดเวลา

ตัวอย่างคำสั่ง

ไวยากรณ์ค่อนข้างตรงไปตรงมา เพียงเรียกสคริปต์ด้วยตัวเลือก “–script” และระบุเอ็นจิ้นช่องโหว่และเป้าหมายเพื่อเริ่มการสแกน

 nmap -sV --script nmap-vulners/ <target>

หากคุณต้องการสแกนพอร์ตใดพอร์ตหนึ่ง ให้เพิ่มตัวเลือก “-p” ที่ส่วนท้ายของคำสั่ง แล้วส่งหมายเลขพอร์ตที่คุณต้องการสแกน

 nmap -sV --script nmap-vulners/ <target> -p80,223

Nmap – vuln

สคริปต์ NSE ถูกจัดประเภทตามชุดของหมวดหมู่ที่กำหนดไว้ล่วงหน้าซึ่งแต่ละสคริปต์เป็นของ การรับรองความถูกต้อง การออกอากาศ การดุร้าย การล่วงล้ำ มัลแวร์ ปลอดภัย เวอร์ชัน และช่องโหว่เป็นหมวดหมู่บางส่วน คุณสามารถค้นหาประเภทหมวดหมู่ทั้งหมดของสคริปต์ NSE และเฟสได้ที่นี่

สคริปต์ที่อยู่ในหมวดหมู่ "ช่องโหว่" จะค้นหาช่องโหว่ที่ทราบเฉพาะและรายงานกลับเฉพาะเมื่อมีการระบุช่องโหว่ในระบบเป้าหมาย

 nmap -sV --script vuln <target>

Nmap-vulscan

Vulscan เป็นสคริปต์ NSE ที่ช่วย Nmap ในการตรวจหาช่องโหว่บนเป้าหมายตามบริการและการตรวจจับเวอร์ชัน vulscan เป็นเหมือนโมดูลสำหรับ Nmap ที่แปลงเป็นเครื่องสแกนช่องโหว่ ตัวเลือก Nmap -sV อนุญาตให้ตรวจหาเวอร์ชันต่อบริการ ซึ่งใช้เพื่อระบุช่องโหว่ที่อาจเกิดขึ้นสำหรับช่องโหว่ที่ตรวจพบในระบบ

ปัจจุบัน มีฐานข้อมูลที่ติดตั้งไว้ล่วงหน้าดังต่อไปนี้:

  • Exploitdb.csv
  • osvdb.csv
  • securitytracker.csv
  • openvas.csv
  • scipvuldb.csv
  • xforce.csv
  • securityfocus.csv
  • cve.csv

การติดตั้ง

ในการติดตั้ง Vulscan ก่อนอื่น ให้ไปที่ไดเร็กทอรีสคริปต์ Nmap โดยใช้คำสั่งต่อไปนี้

 cd /usr/share/nmap/scripts/

ขั้นตอนต่อไปคือการโคลนที่เก็บ git และติดตั้งข้อกำหนดทั้งหมด

 git clone https://github.com/scipag/vulscan.git ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan

Vulscan ใช้ประโยชน์จากฐานข้อมูลที่กำหนดค่าไว้ล่วงหน้าซึ่งบันทึกไว้ในเครื่องของเรา ในการอัพเดตฐานข้อมูล ไปที่ไดเร็กทอรี updater พิมพ์คำสั่งต่อไปนี้ในเทอร์มินัลเพื่อไปยังไดเร็กทอรี updater

 cd vulscan/utilities/updater/

ถัดไป เปลี่ยนการอนุญาตของไฟล์ที่จะรันในระบบ

 chmod +x updateFiles.sh

และสุดท้าย อัปเดตฐานข้อมูลการหาช่องโหว่ด้วยคำสั่งด้านล่าง

 ./updateFiles.sh

การใช้งาน

ลองใช้ vulscan เพื่อทำการสแกนช่องโหว่ของ Nmap สคริปต์ vulscan NSE สามารถใช้ในลักษณะเดียวกับ nmap-vulners

 nmap -sV --script vulscan <target>

โดยค่าเริ่มต้น Vulscan จะค้นหาฐานข้อมูลทั้งหมดพร้อมกัน ใช้เวลานานในการสืบค้นข้อมูลโดยใช้ฐานข้อมูลทั้งหมด การใช้พารามิเตอร์ vulscandb คุณสามารถส่งผ่านฐานข้อมูล CVE ได้ครั้งละหนึ่งฐานข้อมูลเท่านั้น

 --script-args vulscandb=database_name

ตัวอย่างคำสั่ง

 nmap -sV --script vulscan --script-args vulscandb=exploit.csv <target> -p 80,233

การสแกนช่องโหว่ส่วนบุคคล

การสแกนช่องโหว่แต่ละรายการสามารถทำได้โดยใช้สคริปต์เฉพาะในแต่ละหมวดหมู่ นี่คือรายการของสคริปต์ NSE มากกว่า 600+ รายการและไลบรารี NSE 139 รายการ

ตัวอย่าง

  • http-csrf : สคริปต์นี้ตรวจพบช่องโหว่ Cross-Site Request Forgery (CSRF)
 nmap -sV --script http-csrf <target>
  • http-sherlock : ตั้งใจที่จะใช้ประโยชน์จากช่องโหว่ "shellshock" ในเว็บแอปพลิเคชัน
 nmap -sV --script http-sherlock <target>
  • http-slowloris-attack: สคริปต์นี้จะตรวจสอบเว็บเซิร์ฟเวอร์หรือระบบเป้าหมายโดยไม่เปิดการโจมตี DoS เพื่อหาช่องโหว่ในการโจมตี Slowloris DoS
 nmap -sV --script http-slowloris-check <target>
  • http-vmware-path-vuln : VMWare ESX, ESXi และ Server ทั้งหมดได้รับการทดสอบหาช่องโหว่ในการข้ามเส้นทาง
 nmap -sV --script http-vmware-path-vuln <target>
  • http-passwd : พยายามดึงข้อมูล /etc/passwd หรือ boot.ini เพื่อดูว่าเว็บเซิร์ฟเวอร์มีความเสี่ยงต่อการข้ามผ่านไดเรกทอรีหรือไม่
 nmap -sV --script http-passwd <target>
  • http-internal-ip-disclosure : เมื่อส่งคำขอ HTTP/1.0 โดยไม่มีส่วนหัวของโฮสต์ การตรวจสอบนี้จะกำหนดว่าเว็บเซิร์ฟเวอร์รั่วที่อยู่ IP ภายในหรือไม่
 nmap -sV --script http-internal-ip-disclosure <target>
  • http-vuln-cve2013-0156 : ตรวจจับเซิร์ฟเวอร์ Ruby บน Rails ที่เสี่ยงต่อการโจมตี DOS และการฉีดคำสั่ง
 nmap -sV --script http-vuln-cve2013-0156 <target-address>

และสุดท้าย นี่คือรายการสคริปต์ NSE ทั้งหมดที่อยู่ในหมวดหมู่ "vuln"

ระบบของคุณสามารถตรวจจับการสแกน Nmap ได้หรือไม่?

การลาดตระเวนเป็นขั้นตอนแรกในการทดสอบการแฮ็กและการเจาะข้อมูลอย่างมีจริยธรรม แฮกเกอร์ใช้ขั้นตอนการลาดตระเวนเพื่อค้นหาข้อบกพร่องและช่องโหว่ในระบบเพื่อโจมตี ดังนั้นระบบป้องกันควรจะสามารถตรวจจับพวกมันได้

คุณจะได้รับการแจ้งเตือนหากคุณใช้เครื่องมือ SIEM (ข้อมูลความปลอดภัยและการจัดการเหตุการณ์) ไฟร์วอลล์ และมาตรการป้องกันอื่นๆ และนี่คือรายการเครื่องมือ SIEM ที่ดีที่สุดในการรักษาความปลอดภัยให้กับธุรกิจและองค์กรของคุณจากการโจมตีทางไซเบอร์ เครื่องมือเหล่านี้ยังช่วยในการบันทึกการสแกน Nmap การสแกนช่องโหว่นั้นคุ้มค่า เนื่องจากการระบุตัวตนตั้งแต่เนิ่นๆ สามารถป้องกันความเสียหายต่อระบบในอนาคตได้

บทสรุป

ฉันหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์มากในการเรียนรู้วิธีใช้ Nmap สำหรับการสแกนช่องโหว่

คุณอาจสนใจที่จะเรียนรู้รายการ Open Source Web Security Scanners เพื่อค้นหาช่องโหว่