Vulscan เป็นโมดูลที่ปรับปรุง nmap ให้กับเครื่องสแกนช่องโหว่ ตัวเลือก nmap -sV เปิดใช้งานการตรวจหาเวอร์ชันต่อบริการซึ่งใช้ในการระบุข้อบกพร่องที่อาจเกิดขึ้นตามผลิตภัณฑ์ที่ระบุ ข้อมูลถูกค้นหาใน VulDB เวอร์ชันออฟไลน์
โปรดติดตั้งไฟล์ลงในโฟลเดอร์ต่อไปนี้ของการติดตั้ง Nmap ของคุณ:
Nmapscriptsvulscan*
โคลนที่เก็บ GitHub เช่นนี้:
git clone https://github.com/scipag/vulscan scipag_vulscan
ln -s `pwd`/scipag_vulscan /usr/share/nmap/scripts/vulscan
คุณต้องเรียกใช้คำสั่งขั้นต่ำต่อไปนี้เพื่อเริ่มการสแกนช่องโหว่แบบง่าย:
nmap -sV --script=vulscan/vulscan.nse www.example.com
มีฐานข้อมูลที่ติดตั้งไว้ล่วงหน้าดังต่อไปนี้ในขณะนี้:
คุณสามารถรัน vulscan ด้วยอาร์กิวเมนต์ต่อไปนี้เพื่อใช้ฐานข้อมูลเดียว:
--script-args vulscandb=your_own_database
นอกจากนี้ยังสามารถสร้างและอ้างอิงฐานข้อมูลของคุณเองได้อีกด้วย สิ่งนี้จำเป็นต้องสร้างไฟล์ฐานข้อมูลซึ่งมีโครงสร้างดังต่อไปนี้:
<id>;<title>
เพียงดำเนินการ vulscan ตามที่คุณต้องการโดยอ้างอิงถึงฐานข้อมูลใดฐานข้อมูลหนึ่งที่จัดส่งล่วงหน้า รู้สึกอิสระที่จะแบ่งปันฐานข้อมูลของคุณและการเชื่อมต่อช่องโหว่กับฉัน เพื่อเพิ่มลงในพื้นที่เก็บข้อมูลอย่างเป็นทางการ
ฐานข้อมูลช่องโหว่ได้รับการปรับปรุงและรวบรวมเป็นประจำ เพื่อรองรับช่องโหว่ที่เปิดเผยล่าสุด โปรดอัปเดตฐานข้อมูลช่องโหว่ในพื้นที่ของคุณให้ทันสมัยอยู่เสมอ
หากต้องการอัพเดตฐานข้อมูลโดยอัตโนมัติ เพียงตั้งค่าสิทธิ์ในการดำเนินการให้กับไฟล์ update.sh
แล้วรัน:
chmod 744 update.sh
./update.sh
หากคุณต้องการปรับปรุงฐานข้อมูลของคุณด้วยตนเอง ไปที่เว็บไซต์ต่อไปนี้และดาวน์โหลดไฟล์เหล่านี้:
คัดลอกไฟล์ลงในโฟลเดอร์ vulscan ของคุณ:
/vulscan/
หากการตรวจหาเวอร์ชันสามารถระบุเวอร์ชันของซอฟต์แวร์ได้และฐานข้อมูลช่องโหว่ให้รายละเอียดดังกล่าว ข้อมูลนี้ก็จะถูกจับคู่เช่นกัน
การปิดใช้งานคุณลักษณะนี้อาจส่งผลให้เกิดผลบวกลวง แต่อาจกำจัดผลลบลวงและเพิ่มประสิทธิภาพการทำงานเล็กน้อย หากคุณต้องการปิดใช้งานการจับคู่เวอร์ชันเพิ่มเติม ให้ใช้อาร์กิวเมนต์ต่อไปนี้:
--script-args vulscanversiondetection=0
การตรวจหาเวอร์ชันของ vulscan นั้นดีพอๆ กับการตรวจจับเวอร์ชันของ Nmap และรายการฐานข้อมูลช่องโหว่เท่านั้น ฐานข้อมูลบางแห่งไม่ได้ให้ข้อมูลเวอร์ชันที่สรุปได้ ซึ่งอาจนำไปสู่ผลบวกลวงจำนวนมาก (ดังที่เห็นในเซิร์ฟเวอร์ Apache)
สคริปต์กำลังพยายามระบุการจับคู่ที่ดีที่สุดเท่านั้น หากไม่พบการจับคู่ที่เป็นบวก ระบบจะแสดงการจับคู่ที่ดีที่สุดที่เป็นไปได้ (ซึ่งอาจเป็นผลบวกลวง)
หากคุณต้องการแสดงการจับคู่ทั้งหมด ซึ่งอาจก่อให้เกิดผลบวกลวงจำนวนมาก แต่อาจเป็นประโยชน์สำหรับการตรวจสอบเพิ่มเติม ให้ใช้อาร์กิวเมนต์ต่อไปนี้:
--script-args vulscanshowall=1
โหมดโต้ตอบช่วยให้คุณแทนที่ผลลัพธ์การตรวจจับเวอร์ชันสำหรับทุกพอร์ต ใช้อาร์กิวเมนต์ต่อไปนี้เพื่อเปิดใช้งานโหมดโต้ตอบ:
--script-args vulscaninteractive=1
ผลลัพธ์ที่ตรงกันทั้งหมดจะถูกพิมพ์ทีละบรรทัด เค้าโครงเริ่มต้นสำหรับสิ่งนี้คือ:
[{id}] {title}n
คุณสามารถใช้โครงสร้างรายงานที่กำหนดไว้ล่วงหน้าอื่นพร้อมกับอาร์กิวเมนต์ต่อไปนี้:
--script-args vulscanoutput=details
--script-args vulscanoutput=listid
--script-args vulscanoutput=listlink
--script-args vulscanoutput=listtitle
คุณสามารถบังคับใช้โครงสร้างรายงานของคุณเองได้โดยใช้อาร์กิวเมนต์ต่อไปนี้ (ตัวอย่างบางส่วน):
--script-args vulscanoutput='{link}n{title}nn'
--script-args vulscanoutput='ID: {id} - Title: {title} ({matches})n'
--script-args vulscanoutput='{id} | {product} | {version}n'
องค์ประกอบที่รองรับคือองค์ประกอบต่อไปนี้สำหรับเทมเพลตรายงานแบบไดนามิก:
ฐานข้อมูลเริ่มต้นทุกฐานข้อมูลมาพร้อมกับ URL และลิงก์ ซึ่งใช้ในระหว่างการสแกนและอาจเข้าถึงได้เป็น {link} ภายในเทมเพลตรายงานที่กำหนดเอง เมื่อต้องการใช้ลิงก์ฐานข้อมูลแบบกำหนดเอง ให้ใช้อาร์กิวเมนต์ต่อไปนี้:
--script-args "vulscandblink=http://example.org/{id}"
โปรดทราบว่าการสแกนช่องโหว่อนุพันธ์ประเภทนี้ขึ้นอยู่กับความมั่นใจในการตรวจจับเวอร์ชันของ nmap จำนวนช่องโหว่ที่บันทึกไว้ และความแม่นยำของการจับคู่รูปแบบ การมีอยู่ของข้อบกพร่องที่อาจเกิดขึ้นจะไม่ได้รับการตรวจสอบด้วยการสแกนเพิ่มเติมหรือเทคนิคการหาประโยชน์