Nmap เป็นเครื่องมือค้นหาโฮสต์และเครื่องมือสแกนพอร์ตที่ดีที่สุดในปัจจุบัน Nmap จะช่วยให้เราได้รับข้อมูลจำนวนมากเกี่ยวกับคอมพิวเตอร์ในเครือข่ายของเราสามารถสแกนโฮสต์ที่เปิดอยู่และตรวจสอบว่ามีพอร์ตที่เปิดอยู่หรือไม่หากมีการกรองพอร์ต (มี ไฟร์วอลล์ เปิดใช้งาน) และแม้กระทั่งรู้ว่าระบบปฏิบัติการใดใช้เป้าหมายที่แน่นอน คุณต้องการรู้ทุกอย่างเกี่ยวกับ Nmap และวิธีการใช้งานหรือไม่? ในบทความนี้เราจะอธิบายทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับเครื่องมือนี้
คุณสมบัติหลัก
nmap เป็นยูทิลิตี้โอเพ่นซอร์สที่ฟรีและสมบูรณ์ช่วยให้เราค้นพบเครือข่ายและโฮสต์รวมถึงดำเนินการตรวจสอบความปลอดภัย โปรแกรมนี้เข้ากันได้กับ ลินุกซ์, Windows และระบบปฏิบัติการ macOS แต่ในทั้งหมดนั้นใช้ผ่านบรรทัดคำสั่งแม้ว่าเราจะมีความเป็นไปได้ในการติดตั้ง เซนแมป ซึ่งเป็นยูทิลิตี้กราฟิกของ Nmap เพื่อทำการสแกนพอร์ตผ่านอินเทอร์เฟซผู้ใช้แบบกราฟิก หากคุณไม่ต้องการต่อสู้กับคำสั่งผ่านคอนโซลอินเทอร์เฟซผู้ใช้แบบกราฟิกนี้อาจเป็นประโยชน์สำหรับขั้นตอนแรกกับโปรแกรมที่ยอดเยี่ยมนี้อย่างไรก็ตามเมื่อคุณมีประสบการณ์มากขึ้นคุณจะดำเนินการคำสั่งทั้งหมดโดยตรงจากเทอร์มินัล
Nmap ช่วยให้เราตรวจจับโฮสต์บนเครือข่ายท้องถิ่นและผ่านอินเทอร์เน็ตด้วยวิธีนี้เราสามารถทราบได้ว่าโฮสต์เหล่านี้ (คอมพิวเตอร์เซิร์ฟเวอร์เราเตอร์สวิตช์ IoT อุปกรณ์) กำลังเชื่อมต่อกับอินเทอร์เน็ตหรือเครือข่ายท้องถิ่น เครื่องมือนี้ยังช่วยให้เราทำการสแกนพอร์ตไปยังโฮสต์ต่างๆดูว่าเรามีบริการใดบ้างที่เราใช้งานอยู่ในโฮสต์ดังกล่าวเนื่องจากมันจะบอกสถานะของพอร์ตให้เราทราบเราสามารถทราบได้ว่าระบบปฏิบัติการใดที่คอมพิวเตอร์บางเครื่องใช้ และเรายังสามารถทำการทดสอบต่าง ๆ โดยอัตโนมัติเพื่อตรวจสอบความปลอดภัยของอุปกรณ์
Nmap มีการสแกนพอร์ตประเภทต่างๆโดยสามารถทำได้ผ่านเซ็กเมนต์ TCP ดาตาแกรม UDP หรือแพ็กเก็ต ICMP นอกจากนี้ยังช่วยให้ทำการสแกนในลักษณะที่ซ่อนอยู่เพื่อให้ไฟร์วอลล์ตรวจจับได้ยาก แน่นอนว่าเราจะสามารถสแกนพอร์ตบนพอร์ตเฉพาะบางพอร์ตระหว่างช่วงพอร์ตช่วงที่อยู่ IP ความเป็นไปได้ในการใช้แพ็กเก็ต TCP null, FIN, Xmas และ ACK นอกเหนือจาก SYN เพื่อค้นหาพอร์ต TCP ที่เปิดอยู่
คุณสมบัติอื่น ๆ ที่เครื่องมือนี้นำเสนอคือความเป็นไปได้ในการสร้างพื้นที่โฆษณาบนเครือข่ายที่สมบูรณ์และแม้กระทั่งการตรวจสอบว่าโฮสต์หรือบริการบางอย่างยังคงทำงานอยู่ โปรแกรมนี้ออกแบบมาเพื่อสแกนโฮสต์จำนวนมากดังนั้นหากคุณต้องการสแกนหลายเป้าหมายคุณจะไม่มีปัญหา โปรแกรมนี้มีความยืดหยุ่นมากโดยมีเทคนิคขั้นสูงมากมายในการสแกนโฮสต์และพอร์ตนอกจากนี้ยังช่วยให้สามารถตรวจสอบผ่าน NSE (Nmap Search Engine) ได้อีกด้วยดังนั้นจึงมีประสิทธิภาพมาก
Nmap มีสถานะต่างๆบนพอร์ตที่จะปรากฏขึ้นเมื่อเราทำการสแกนพอร์ต จำเป็นอย่างยิ่งที่จะต้องทราบว่าแต่ละสถานะของ Nmap หมายถึงอะไรเนื่องจากเมื่อมีการสแกนพอร์ตใด ๆ จะส่งคืนสถานะที่แตกต่างกัน
สถานะพอร์ตด้วย Nmap
- จุดเปิด - แอปพลิเคชันกำลังยอมรับการเชื่อมต่อ TCP หรือ UDP พอร์ตเปิดอยู่และสามารถใช้งานได้เพนเทสเตอร์จะสามารถใช้พอร์ตที่เปิดนี้เพื่อใช้ประโยชน์จากระบบได้ เป็นสถานะเริ่มต้นหากเราไม่มีไฟร์วอลล์ปิดกั้นการเข้าถึง
- ปิด : พอร์ตที่ปิดสามารถเข้าถึงได้เนื่องจากตอบสนองต่อ Nmap อย่างไรก็ตามไม่มีแอปพลิเคชันที่ทำงานบนพอร์ตนั้น มีประโยชน์สำหรับการค้นหาว่าโฮสต์ทำงานอยู่หรือเป็นส่วนหนึ่งของการตรวจจับระบบปฏิบัติการ สำหรับผู้ดูแลระบบขอแนะนำให้กรองพอร์ตเหล่านี้ด้วยไฟร์วอลล์เพื่อไม่ให้เข้าถึงได้ สำหรับ pentester ขอแนะนำให้ทิ้งพอร์ตเหล่านี้ไว้ "ปิด" เพื่อวิเคราะห์ในภายหลังในกรณีที่มีการให้บริการใหม่
- Filtered : ในสถานะนี้ Nmap ไม่สามารถระบุได้ว่าพอร์ตเปิดอยู่หรือไม่เนื่องจากมีไฟร์วอลล์กรองแพ็กเก็ต Nmap บนพอร์ตนั้น พอร์ตที่ถูกกรองเหล่านี้เป็นพอร์ตที่จะปรากฏขึ้นเมื่อเราเปิดใช้งานไฟร์วอลล์ Nmap จะพยายามเชื่อมต่อซ้ำ ๆ ซึ่งทำให้การสแกนพอร์ตค่อนข้างช้า
- เปิด | Filtered : Nmap ไม่ทราบว่าพอร์ตเปิดอยู่หรือถูกกรอง สิ่งนี้เกิดขึ้นเนื่องจากพอร์ตที่เปิดอยู่ไม่ส่งการตอบสนองใด ๆ และการขาดการตอบสนองนี้อาจมาจากไฟร์วอลล์ สถานะนี้จะปรากฏขึ้นเมื่อเราใช้ UDP และ IP และเราใช้การสแกน FIN, NULL และ Xmas
- ปิด | Filtered : ในสถานะนี้จะไม่ทราบว่าพอร์ตถูกปิดหรือถูกกรอง สถานะนี้ใช้ใน IP Idle Scan เท่านั้น
เมื่อเราได้เห็นคุณสมบัติหลักของ Nmap และสถานะของพอร์ตที่เรามีเราจะติดตั้งและใช้งาน
ดาวน์โหลดและติดตั้ง Nmap บนระบบใดก็ได้
สิ่งแรกที่เราต้องทำเพื่อใช้โปรแกรมที่มีประสิทธิภาพนี้คือการดาวน์โหลดจากนั้นติดตั้ง ใน ส่วนดาวน์โหลด Nmap คุณสามารถค้นหาลิงค์ไบนารีและซอร์สโค้ดทั้งหมดสำหรับการติดตั้งในระบบปฏิบัติการ Windows, Linux และ MacOS ขณะนี้เรามีโปรแกรมนี้อยู่ในที่เก็บทั้งหมดของระบบปฏิบัติการที่ใช้ Linux ดังนั้นการติดตั้งจึงง่ายมาก เราได้ติดตั้งโปรแกรมนี้ใน อูบุนตูแต่เพียงดำเนินการคำสั่งการติดตั้งระบบปฏิบัติการของคุณตามด้วย“ nmap” คุณจะติดตั้งโปรแกรมได้โดยไม่มีปัญหา
sudo apt install nmap
เมื่อติดตั้งแล้วเราสามารถใช้งานได้จากเทอร์มินัลทั้งใน Windows, Linux หรือ macOS ในตัวอย่างทั้งหมดที่เราจะให้คุณด้านล่างนี้เราได้ใช้ระบบปฏิบัติการ Ubuntu แต่เรามีคำสั่งเดียวกันสำหรับ Windows และ macOS โดยไม่มีการเปลี่ยนแปลงใด ๆ
ตัวอย่างการใช้งาน Nmap
สแกนพอร์ตด่วน
หากคุณต้องการสแกนพอร์ตด่วนไปยังโฮสต์เฉพาะเราต้องพิมพ์คำสั่งต่อไปนี้
nmap [ip]
ตัวอย่างเช่นหากเราต้องการสแกนพอร์ตหลักอย่างรวดเร็วไปยังโฮสต์ที่มีที่อยู่ IP 192.168.1.2 ลำดับจะเป็นดังนี้:
nmap 192.168.1.2
โปรแกรมจะส่งคืนพอร์ตที่เปิดอยู่บนคอมพิวเตอร์เป้าหมาย
สแกนพอร์ตต่างๆ
แทนที่จะสแกนพอร์ตทั้งหมดเราสามารถกำหนดช่วงของพอร์ตที่จะตรวจสอบได้ สำหรับสิ่งนี้เราจะดำเนินการ:
nmap -p [rango] [ip]
หากเราต้องการทำการสแกนพอร์ตจาก TCP 20 ถึง TCP 200 ที่ที่อยู่ IP 192.168.1.2 เพียงดำเนินการคำสั่งต่อไปนี้:
nmap -p 20-200 192.168.1.2
โปรแกรมจะระบุภายในช่วงนั้นว่าพอร์ตใดเปิดอยู่
ตรวจจับระบบปฏิบัติการและข้อมูลโฮสต์เพิ่มเติม
เราสามารถบอกให้ Nmap ตรวจพบระบบปฏิบัติการ ทำได้โดยการส่งแพ็กเก็ตและวิเคราะห์วิธีที่ส่งคืนแพ็กเก็ตซึ่งแตกต่างกันโดยสิ้นเชิงในแต่ละระบบ นอกจากนี้จะดำเนินการสแกนพอร์ตและบริการเพื่อหาช่องโหว่ นอกจากนี้การสแกนจะแสดงข้อมูลที่เป็นประโยชน์ สำหรับสิ่งนี้เราต้องดำเนินการ:
nmap -A -v [ip]
หากเราต้องการทำการสแกนนี้ไปยังที่อยู่ IP 192.168.1.2 เราสามารถดำเนินการคำสั่งต่อไปนี้:
nmap -A -v 192.168.1.2
รายการคำสั่งทั้งหมด s
โปรแกรมนี้สมบูรณ์จริงๆจนถึงตอนนี้เราได้ใช้คำสั่งพื้นฐานเพื่อค้นหาโฮสต์และดูว่ามีพอร์ตที่เปิดอยู่หรือไม่อย่างไรก็ตามสิ่งนี้ไม่ได้เป็นเช่นนั้นและเรามีรายการคำสั่งจำนวนมากเพื่อใช้ประโยชน์สูงสุดจากสิ่งนี้ เครื่องมือ.
เลือกวัตถุประสงค์
ที่อยู่หรือช่วง IP ชื่อของระบบเครือข่าย ฯลฯ
- ตัวอย่าง: scanme.nmap.org, microsoft.com/24, 192.168.0.1, 10.0.0-255.1-254
- -iL รายการไฟล์ในไฟล์ -iR n เลือกเป้าหมายแบบสุ่ม 0 ไม่สิ้นสุด
- - ไม่รวมไฟล์ –excludefile ไม่รวมระบบออกจากไฟล์
ค้นพบระบบ
- -PS n tcp ซิงก์ ping
- -PA และปิง TCP ACK
- -PU และปิง UDP
- -PM Netmask ความต้องการ
- -PP ข้อกำหนดการประทับเวลา
- -PE สะท้อนความต้องการ
- การวิเคราะห์รายการ -sL
- -PO ping ต่อโปรโตคอล
- -PN อย่าปิง
- -n อย่าทำ DNS
- -R แก้ไข DNS ในระบบเป้าหมายทั้งหมด
- –Traceroute: ติดตามเส้นทางไปยังระบบ (สำหรับโทโพโลยีเครือข่าย)
- -sP ping เช่นเดียวกับ –PP –PM –PS443 –PA80
เทคนิคการวิเคราะห์พอร์ต
- -sS แยกวิเคราะห์โดยใช้ TCP SYN
- -sT การแยกวิเคราะห์โดยใช้ TCP CONNECT
- การวิเคราะห์ -sU โดยใช้ UDP
- -s และการวิเคราะห์โดยใช้ SCTP INIT
- -sZ โดยใช้ COOKIE ECHO จาก SCTP
- -sO โปรโตคอล IP
- -sW หน้าต่าง TCP -sN
- –SF -sX NULL, FIN, คริสต์มาส
- –SA TCP ระดาษ
พอร์ตสำหรับวิเคราะห์และลำดับการวิเคราะห์
- -p n-mrango
- -p– พอร์ตทั้งหมด
- -pn, m, z ระบุ
- -p U: nm, z T: n, m U สำหรับ UDP, T สำหรับ TCP
- -F เร็ว 100 ทั่วไป
- - พอร์ตบนสุด n วิเคราะห์พอร์ตที่ใช้มากที่สุด
- -r ไม่สุ่ม
ระยะเวลาและการดำเนินการ:
- -T0 หวาดระแวง
- -T1 ชิงทรัพย์
- -T2 ซับซ้อน
- -T3 ปกติ
- -T4 ก้าวร้าว
- -T5 บ้า
- –Min-กลุ่มโฮสต์
- –Max-กลุ่มโฮสต์
- - อัตราขั้นต่ำ
- - อัตราสูงสุด
- - ขั้นต่ำขนานกัน
- - คู่ขนานสูงสุด
- –Min-rtt-หมดเวลา
- - Max-rtt-timeout
- - เริ่มต้น -Rtt-timeout
- - สูงสุด - ลองใหม่
- - โฮสต์หมดเวลา - สแกนล่าช้า
บริการและการตรวจหาเวอร์ชัน
- -sV: การตรวจหาเวอร์ชันบริการ
- - พอร์ตทั้งหมดไม่รวมพอร์ต
- - เวอร์ชันทั้งหมดทดสอบการสแกนแต่ละครั้ง
- –Version-trace กิจกรรมการวิเคราะห์เวอร์ชันการติดตาม
- - หรือเปิดใช้งานการตรวจจับระบบปฏิบัติการ
- –Fuzzy เดาการตรวจจับระบบปฏิบัติการ
- - Max-os-พยายามตั้งค่าจำนวนครั้งสูงสุดของความพยายามกับระบบเป้าหมาย
การหลีกเลี่ยงไฟร์วอลล์ / IDS
- -f แพ็คเก็ตส่วนย่อย
- -D d1, d2 การวิเคราะห์เสื้อคลุมด้วยตัวล่อ
- -S ip ที่อยู่แหล่งปลอมแปลง
- –G พอร์ตซอร์สหลอกซอร์ส
- - สั่งซื้อแบบสุ่ม - โฮสต์
- –Spoof-mac mac เปลี่ยนแหล่งที่มา MAC
ระดับรายละเอียดและพารามิเตอร์การดีบัก
- -v เพิ่มระดับของรายละเอียด
- - เหตุผลตามระบบและพอร์ต
- -d (1-9) ตั้งค่าระดับการดีบัก
- - เส้นทางแพ็คเก็ตติดตามแพ็คเก็ต
ตัวเลือกอื่น ๆ
- - ไฟล์ดำเนินการต่อการวิเคราะห์ต่อถูกยกเลิก (ใช้รูปแบบเอาต์พุตด้วย -oN หรือ -oG)
- -6 เปิดใช้งานการสแกน IPV6
- - ก้าวร้าวเช่นเดียวกับ -O -sV -sC –traceroute
ตัวเลือกแบบโต้ตอบ
- v / V เพิ่ม / ลดระดับรายละเอียดการวิเคราะห์
- d / D เพิ่ม / ลดระดับการดีบัก
- p / P เปิด / ปิดการติดตามแพ็คเก็ต
สคริปต์
- -sC ทำการวิเคราะห์ด้วยสคริปต์เริ่มต้น
- - สคริปต์เรียกใช้ไฟล์สคริปต์ (หรือทั้งหมด)
- –Script-args n = v ให้อาร์กิวเมนต์
- –Script-trace แสดงการสื่อสารขาเข้าและขาออก
รูปแบบเอาต์พุต
- -oN บันทึกในรูปแบบปกติ
- -oX บันทึกในรูปแบบ XML
- -oG บันทึกในรูปแบบเพื่อใช้ Grep ในภายหลัง
- -oA บันทึกในรูปแบบก่อนหน้าทั้งหมด
คำสั่งเหล่านี้ส่วนใหญ่เป็นคำสั่งที่มีให้สำหรับ Nmap ก่อนจบเราต้องบอกว่า Nmap มีตัวเลือกมากมายสำหรับการวิเคราะห์เครือข่ายที่สมบูรณ์ เราสามารถปรึกษาตัวเลือกทั้งหมดที่มีได้โดยพิมพ์:
nmap --help
Nmap เป็นเครื่องมือที่เรียบง่ายและสมบูรณ์ในการตรวจสอบเครือข่ายอย่างไม่ต้องสงสัย แต่สิ่งนี้ไม่ได้จบเพียงแค่นั้นเรายังมี Nmap NSE เพื่อทำการ pentesting ขั้นสูง
Nmap NSE: มันคืออะไรและมีไว้เพื่ออะไร
Nmap Search Engine หรือเรียกอีกอย่างว่า Nmap NSE เป็นฐานข้อมูลขนาดใหญ่ที่มีสคริปต์หลายพันตัวที่จะช่วยให้เราทำการทดสอบระบบและเครือข่ายได้โดยอัตโนมัติ สคริปต์ชุดนี้จะช่วยให้เราดำเนินการหลายอย่างโดยอัตโนมัติเช่นการโจมตีด้วยกำลังดุร้ายบนเซิร์ฟเวอร์ Samba เซิร์ฟเวอร์ FTP เซิร์ฟเวอร์ SSH ตรวจสอบว่าเว็บเซิร์ฟเวอร์มีช่องโหว่ที่ทราบหรือไม่และอื่น ๆ อีกมากมาย
ตัวอย่างเช่นหากเราต้องการดำเนินการโจมตีแบบเดรัจฉานโดยพิจารณาจากรายชื่อผู้ใช้ (ที่มีไฟล์ชื่อ users.txt) และรายการรหัสผ่านที่จะทดสอบ (ด้วยไฟล์ที่เรียกว่า keys.txt) ไปยังเซิร์ฟเวอร์ SSH ของ คอมพิวเตอร์บางเครื่องที่มี IP 99.99.99.99 เราสามารถใส่คำสั่งต่อไปนี้:
nmap -p 22 --script ssh-brute --script-args userdb=usarios.txt,passdb=claves.txt --script-args ssh-brute.timeout=4s 99.99.99.99
เราขอแนะนำให้คุณไปที่ไฟล์ เว็บไซต์อย่างเป็นทางการของ NSE ซึ่งคุณจะพบสคริปต์ทั้งหมดที่อยู่ในฐานข้อมูลขนาดใหญ่นี้นอกจากนี้คุณจะมีตัวอย่างวิธีการใช้งาน