Amazon Best VPN GoSearch

ไอคอน Fav ของ OnWorks

nmap

เรียกใช้ nmap ในผู้ให้บริการโฮสต์ฟรีของ OnWorks ผ่าน Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

นี่คือคำสั่ง nmap ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS

โครงการ:

ชื่อ


nmap - เครื่องมือสำรวจเครือข่ายและความปลอดภัย / เครื่องสแกนพอร์ต

เรื่องย่อ


nmap [สแกน ประเภท... ] [ Options-เป้า สเปค}

DESCRIPTION


Nmap (“Network Mapper”) เป็นเครื่องมือโอเพ่นซอร์สสำหรับการสำรวจเครือข่ายและความปลอดภัย
การตรวจสอบ ออกแบบมาเพื่อสแกนเครือข่ายขนาดใหญ่อย่างรวดเร็ว แม้ว่าจะทำงานได้ดีกับ
โฮสต์เดียว Nmap ใช้แพ็กเก็ต IP ดิบในรูปแบบใหม่เพื่อกำหนดว่าโฮสต์ใดบ้างที่พร้อมใช้งาน
บนเครือข่าย บริการใดบ้าง (ชื่อแอปพลิเคชันและเวอร์ชัน) ที่โฮสต์เหล่านั้นเสนอ
ระบบปฏิบัติการใด (และเวอร์ชันระบบปฏิบัติการ) ที่ใช้อยู่ แพ็กเก็ตประเภทใด
มีการใช้ตัวกรอง/ไฟร์วอลล์ และคุณลักษณะอื่นๆ อีกนับสิบรายการ ในขณะที่ Nmap เป็นเรื่องปกติ
ใช้สำหรับการตรวจสอบความปลอดภัย ผู้ดูแลระบบและเครือข่ายจำนวนมากพบว่ามีประโยชน์สำหรับ
งานประจำ เช่น สินค้าคงคลังในเครือข่าย การจัดการกำหนดการอัปเกรดบริการ และ
ตรวจสอบโฮสต์หรือเวลาให้บริการ

ผลลัพธ์จาก Nmap คือรายการของเป้าหมายที่สแกน พร้อมข้อมูลเพิ่มเติมในแต่ละ
ขึ้นอยู่กับตัวเลือกที่ใช้ กุญแจสำคัญในข้อมูลนั้นคือ “พอร์ตที่น่าสนใจ
ตาราง”.. ตารางนั้นแสดงรายการหมายเลขพอร์ตและโปรโตคอล ชื่อบริการ และสถานะ NS
สถานะเป็นเปิด กรอง ปิด หรือไม่กรอง เปิด. หมายความว่า การสมัคร
บนเครื่องเป้าหมายกำลังฟังการเชื่อมต่อ/แพ็คเก็ตบนพอร์ตนั้น กรองแล้ว วิธี
ว่าไฟร์วอลล์ ตัวกรอง หรือสิ่งกีดขวางเครือข่ายอื่น ๆ กำลังปิดกั้นพอร์ตเพื่อให้ Nmap
ไม่สามารถบอกได้ว่าเปิดหรือปิด ปิด. พอร์ตไม่มีแอปพลิเคชันฟังบน
แม้ว่าพวกเขาจะสามารถเปิดได้ตลอดเวลา พอร์ตจัดอยู่ในประเภทที่ไม่มีการกรอง เมื่อไร
พวกมันตอบสนองต่อโพรบของ Nmap แต่ Nmap ไม่สามารถระบุได้ว่าเปิดอยู่หรือ
ปิด. Nmap รายงานการรวมสถานะเปิด|กรองแล้ว และปิด|กรองแล้ว เมื่อไหร่
ไม่สามารถระบุได้ว่ารัฐใดในสองสถานะนี้อธิบายถึงพอร์ต ตารางพอร์ตอาจรวมถึง
รายละเอียดเวอร์ชันซอฟต์แวร์เมื่อมีการร้องขอการตรวจหาเวอร์ชัน เมื่อโปรโตคอล IP
ขอสแกน (-ดังนั้น) Nmap ให้ข้อมูลเกี่ยวกับโปรโตคอล IP ที่รองรับมากกว่า
พอร์ตการฟัง

นอกจากตารางพอร์ตที่น่าสนใจแล้ว Nmap ยังสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับ
เป้าหมาย รวมถึงชื่อ DNS ย้อนกลับ การคาดเดาระบบปฏิบัติการ ประเภทอุปกรณ์ และ MAC
ที่อยู่

การสแกน Nmap ทั่วไปจะแสดงในตัวอย่างที่ 1 อาร์กิวเมนต์ Nmap เดียวที่ใช้ในตัวอย่างนี้
เป็น -Aเพื่อเปิดใช้งานการตรวจหาระบบปฏิบัติการและเวอร์ชัน การสแกนสคริปต์ และการติดตาม -T4 สำหรับ
ดำเนินการเร็วขึ้น แล้วก็ชื่อโฮสต์

ตัวอย่าง 1. A ตัวแทน nmap การสแกน

# nmap -A -T4 scanme.nmap.org

รายงานการสแกน Nmap สำหรับ scanme.nmap.org (74.207.244.221)
โฮสต์หมดแล้ว (เวลาแฝง 0.029 วินาที)
บันทึก rDNS สำหรับ 74.207.244.221: li86-221.members.linode.com
ไม่แสดง: 995 พอร์ตที่ปิด
เวอร์ชันบริการของรัฐพอร์ต
22/tcp open ssh OpenSSH 5.3p1 Debian 3ubuntu7 (โปรโตคอล 2.0)
| ssh-hostkey: 1024 8d:60:f1:7c:ca:b7:3d:0a:d6:67:54:9d:69:d9:b9:dd (DSA)
|_2048 79:f8:09:ac:d4:e2:32:42:10:49:d3:bd:20:82:85:ec (RSA)
80/tcp เปิด http Apache httpd 2.2.14 ((Ubuntu))
|_http-title: ไปข้างหน้าและ ScanMe!
646/tcp กรอง ldp
1720/tcp กรองแล้ว H.323/Q.931
9929/tcp เปิด nping-echo Nping echo
ประเภทอุปกรณ์: วัตถุประสงค์ทั่วไป
วิ่ง: Linux 2.6.X
ระบบปฏิบัติการ CPE: cpe:/o:linux:linux_kernel:2.6.39
รายละเอียดระบบปฏิบัติการ: Linux 2.6.39
ระยะทางเครือข่าย: 11 กระโดด
ข้อมูลบริการ: OS: Linux; CPE: cpe:/o:linux:kernel

TRACEROUTE (ใช้พอร์ต 53/tcp)
HOP RTT ที่อยู่
[ตัด 10 ฮ็อปแรกเพื่อความกระชับ]
11 17.65 มิลลิวินาที li86-221.members.linode.com (74.207.244.221)

Nmap เสร็จสิ้น: 1 ที่อยู่ IP (1 โฮสต์ขึ้นไป) สแกนใน 14.40 วินาที

สามารถหา Nmap เวอร์ชันล่าสุดได้จาก https://nmap.org. เวอร์ชั่นใหม่ล่าสุดของ
หน้าคนนี้มีอยู่ที่ https://nmap.org/book/man.html. นอกจากนี้ยังรวมเป็น
บทของการสแกนเครือข่าย Nmap: คู่มือโครงการ Nmap อย่างเป็นทางการสำหรับการค้นพบเครือข่ายและ
การสแกนความปลอดภัย (ดู https://nmap.org/book/).

OPTIONS สรุป


สรุปตัวเลือกนี้จะถูกพิมพ์เมื่อเรียกใช้ Nmap โดยไม่มีอาร์กิวเมนต์ และเวอร์ชันล่าสุด
พร้อมให้บริการเสมอที่ https://svn.nmap.org/nmap/docs/nmap.usage.txt. มันช่วยคน
จำตัวเลือกทั่วไปได้มากที่สุด แต่ไม่สามารถแทนที่เอกสารเชิงลึกใน
ส่วนที่เหลือของคู่มือนี้ ตัวเลือกที่คลุมเครือบางอย่างไม่ได้รวมอยู่ที่นี่ด้วย

เอ็นแมป 7.01 ( https://nmap.org )
การใช้งาน: nmap [ประเภทการสแกน] [ตัวเลือก] {ข้อกำหนดเป้าหมาย}
ข้อมูลจำเพาะของเป้าหมาย:
สามารถส่งผ่านชื่อโฮสต์ ที่อยู่ IP เครือข่าย ฯลฯ
เช่น scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
-iL : อินพุตจากรายการโฮสต์/เครือข่าย
-iR : เลือกเป้าหมายแบบสุ่ม
--ไม่รวม : ไม่รวมโฮสต์/เครือข่าย
--excludefile : แยกรายการออกจากไฟล์
การค้นพบโฮสต์:
-sL: สแกนรายการ - เพียงระบุเป้าหมายที่จะสแกน
-sn: Ping Scan - ปิดใช้งานการสแกนพอร์ต
-Pn: ปฏิบัติต่อโฮสต์ทั้งหมดเสมือนออนไลน์ -- ข้ามการค้นพบโฮสต์
-PS/PA/PU/PY[รายการพอร์ต]: การค้นพบ TCP SYN/ACK, UDP หรือ SCTP ไปยังพอร์ตที่กำหนด
-PE/PP/PM: ICMP echo, timestamp และ netmask ร้องขอการค้นพบโพรบ
-PO [รายการโปรโตคอล]: IP Protocol Ping
-n/-R: ไม่เคยแก้ไข DNS/แก้ไขเสมอ [ค่าเริ่มต้น: บางครั้ง]
--dns-เซิร์ฟเวอร์ : ระบุเซิร์ฟเวอร์ DNS ที่กำหนดเอง
--system-dns: ใช้ตัวแก้ไข DNS ของระบบปฏิบัติการ
--traceroute: ติดตามเส้นทางกระโดดไปยังแต่ละโฮสต์
เทคนิคการสแกน:
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon สแกน
-sU: การสแกน UDP
-sN/sF/sX: การสแกน TCP Null, FIN และ Xmas
--scanflags : กำหนดแฟล็กการสแกน TCP เอง
-sI : ไม่ได้ใช้งานสแกน
-sY/sZ: SCTP INIT/COOKIE-ECHO สแกน
-sO: การสแกนโปรโตคอล IP
-NS : FTP สแกนตีกลับ
PORT SPECIFICATION และคำสั่งสแกน:
-NS : สแกนเฉพาะพอร์ตที่ระบุ
ตัวอย่าง: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-พอร์ต : แยกพอร์ตที่ระบุออกจากการสแกน
-F: โหมดเร็ว - สแกนพอร์ตน้อยกว่าการสแกนเริ่มต้น
-r: สแกนพอร์ตอย่างต่อเนื่อง - อย่าสุ่ม
--top-ports : Scan พอร์ตทั่วไป
--พอร์ตอัตราส่วน : สแกนพอร์ตที่พบบ่อยกว่า
บริการ/การตรวจจับเวอร์ชัน:
-sV: โพรบเปิดพอร์ตเพื่อตรวจสอบข้อมูลบริการ/เวอร์ชัน
--เวอร์ชั่น-ความเข้ม : ตั้งค่าจาก 0 (เบา) ถึง 9 (ลองโพรบทั้งหมด)
--version-light: จำกัดเฉพาะโพรบที่เป็นไปได้มากที่สุด (ความเข้ม 2)
--version-all: ลองทุกโพรบเดียว (ความเข้ม 9)
--version-trace: แสดงกิจกรรมการสแกนเวอร์ชันโดยละเอียด (สำหรับการดีบัก)
การสแกนสคริปต์:
-sC: เทียบเท่ากับ --script=default
--script= : เป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคของ
ไดเร็กทอรี ไฟล์สคริปต์ หรือหมวดหมู่สคริปต์
--script-args= : จัดเตรียมอาร์กิวเมนต์ให้กับสคริปต์
--script-args-file=filename: จัดเตรียม args สคริปต์ NSE ใน file
--script-trace: แสดงข้อมูลทั้งหมดที่ส่งและรับ
--script-updatedb: อัปเดตฐานข้อมูลสคริปต์
--script-help= : แสดงความช่วยเหลือเกี่ยวกับสคริปต์
เป็นรายการไฟล์สคริปต์ที่คั่นด้วยเครื่องหมายจุลภาคหรือ
หมวดหมู่สคริปต์
การตรวจจับระบบปฏิบัติการ:
-O: เปิดใช้งานการตรวจจับระบบปฏิบัติการ
--osscan-limit: จำกัดการตรวจจับ OS เฉพาะเป้าหมายที่มีแนวโน้ม
--osscan-guess: เดา OS อย่างจริงจังมากขึ้น
เวลาและประสิทธิภาพ:
ตัวเลือกที่ใช้ อยู่ในหน่วยวินาที หรือต่อท้าย 'ms' (มิลลิวินาที)
's' (วินาที), 'm' (นาที) หรือ 'h' (ชั่วโมง) เป็นค่า (เช่น 30m)
-T<0-5>: ตั้งค่าเทมเพลตเวลา (สูงกว่าเร็วกว่า)
--min-hostgroup/max-hostgroup : ขนาดกลุ่มสแกนโฮสต์คู่ขนาน
--นาที-ขนาน/สูงสุด-ขนาน : โพรบขนานกัน
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout : ระบุ
สอบสวนเวลาไปกลับ
--max-ลองใหม่ : จำนวนแคปของการส่งสัญญาณซ้ำของโพรบสแกนพอร์ต
--host-หมดเวลา : ยอมแพ้ต่อเป้าหมายหลังจากนี้มานาน
--scan-delay/--max-scan-delay : ปรับการหน่วงเวลาระหว่างโพรบ
--นาทีอัตรา : ส่งแพ็กเก็ตไม่ช้ากว่า ต่อวินาที
--อัตราสูงสุด : ส่งแพ็กเก็ตไม่เร็วกว่า ต่อวินาที
การหลีกเลี่ยงไฟร์วอลล์/IDS และการปลอมแปลง:
-NS; --mtu : แฟรกเมนต์แพ็กเก็ต (ทางเลือกที่มี MTU)
-NS : ปิดบังการสแกนด้วยตัวล่อ
-NS : ที่อยู่ต้นทางปลอม
-e : ใช้อินเทอร์เฟซที่ระบุ
-g/--source-port : ใช้หมายเลขพอร์ตที่กำหนด
--ผู้รับมอบฉันทะ : ถ่ายทอดการเชื่อมต่อผ่านพร็อกซี HTTP/SOCKS1
--ข้อมูล : ผนวกเพย์โหลดที่กำหนดเองเพื่อส่งแพ็กเก็ต
--data-string : ต่อท้ายสตริง ASCII ที่กำหนดเองเพื่อส่งแพ็กเก็ต
--data-length : ผนวกข้อมูลสุ่มเพื่อส่งแพ็กเก็ต
--ip-ตัวเลือก : ส่งแพ็กเก็ตด้วยตัวเลือก IP ที่ระบุ
--ttl : ตั้งค่า IP time-to-live field
--spoof-mac : ปลอมที่อยู่ MAC ของคุณ
--badsum: ส่งแพ็กเก็ตที่มีการตรวจสอบ TCP/UDP/SCTP ปลอม
เอาท์พุท:
-oN/-oX/-oS/-oG : การสแกนเอาต์พุตในรูปแบบปกติ, XML, s|
และรูปแบบ Grepable ตามลำดับไปยังชื่อไฟล์ที่กำหนด
-oA : เอาต์พุตในสามรูปแบบหลักพร้อมกัน
-v: เพิ่มระดับการใช้คำฟุ่มเฟือย (ใช้ -vv หรือมากกว่าเพื่อให้ได้ผลลัพธ์ที่ดียิ่งขึ้น)
-d: เพิ่มระดับการดีบัก (ใช้ -dd หรือมากกว่าเพื่อให้ได้ผลลัพธ์ที่ดียิ่งขึ้น)
--reason: แสดงเหตุผลที่พอร์ตอยู่ในสถานะเฉพาะ
--open: แสดงเฉพาะพอร์ตที่เปิดอยู่ (หรืออาจเปิด)
--packet-trace: แสดงแพ็กเก็ตทั้งหมดที่ส่งและรับ
--iflist: พิมพ์อินเทอร์เฟซโฮสต์และเส้นทาง (สำหรับการดีบัก)
--append-output: ต่อท้ายไฟล์เอาต์พุตที่ระบุมากกว่า clobber
--ประวัติย่อ : ดำเนินการสแกนที่ยกเลิกต่อ
--stylesheet : สไตล์ชีต XSL เพื่อแปลงเอาต์พุต XML เป็น HTML
--webxml: สไตล์ชีตอ้างอิงจาก Nmap.Org สำหรับ XML . แบบพกพามากขึ้น
--no-stylesheet: ป้องกันการเชื่อมโยงสไตล์ชีต XSL กับเอาต์พุต XML
อื่น ๆ:
-6: เปิดใช้งานการสแกน IPv6
-A: เปิดใช้งานการตรวจจับ OS, การตรวจจับเวอร์ชัน, การสแกนสคริปต์ และ Traceroute
--datadir : ระบุตำแหน่งไฟล์ข้อมูล Nmap ที่กำหนดเอง
--send-eth/--send-ip: ส่งโดยใช้เฟรมอีเธอร์เน็ตดิบหรือแพ็กเก็ต IP
--privileged: สมมติว่าผู้ใช้ได้รับสิทธิพิเศษอย่างเต็มที่
--unprivileged: สมมติว่าผู้ใช้ไม่มีสิทธิ์ของซ็อกเก็ตดิบ
-V: พิมพ์หมายเลขเวอร์ชัน
-h: พิมพ์หน้าสรุปความช่วยเหลือนี้
ตัวอย่าง:
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80
ดูหน้า MAN (https://nmap.org/book/man.html) สำหรับตัวเลือกและตัวอย่างเพิ่มเติม

เป้าหมาย คุณสมบัติ


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

บางครั้งคุณต้องการสแกนเครือข่ายทั้งหมดของโฮสต์ที่อยู่ติดกัน สำหรับสิ่งนี้ Nmap รองรับ
สไตล์ CIDR ที่อยู่ คุณสามารถต่อท้าย /มึนงง ไปยังที่อยู่ IPv4 หรือชื่อโฮสต์และ Nmap
จะสแกนทุกที่อยู่ IP ที่แรก มึนงง จะเหมือนกับการอ้างอิง
IP หรือชื่อโฮสต์ที่กำหนด ตัวอย่างเช่น 192.168.10.0/24 จะสแกน 256 โฮสต์ระหว่าง
192.168.10.0 (ไบนารี: 11000000 10101000 00001010 00000000) และ 192.168.10.255 (ไบนารี:
11000000 10101000 00001010 11111111) รวม 192.168.10.40/24 จะสแกน exactly
เป้าหมายเดียวกัน ระบุว่าโฮสต์ scanme.nmap.org อยู่ที่ IP address 64.13.134.52, the
ข้อมูลจำเพาะ scanme.nmap.org/16 จะสแกนที่อยู่ IP 65,536 ระหว่าง 64.13.0.0 ถึง
64.13.255.255. ค่าที่อนุญาตน้อยที่สุดคือ /0 ซึ่งกำหนดเป้าหมายไปยังอินเทอร์เน็ตทั้งหมด NS
ค่าที่ใหญ่ที่สุดคือ /32 ซึ่งสแกนเฉพาะชื่อโฮสต์หรือที่อยู่ IP เนื่องจากที่อยู่ทั้งหมด
บิตได้รับการแก้ไข

สัญกรณ์ CIDR สั้นแต่ไม่ยืดหยุ่นเพียงพอเสมอไป ตัวอย่างเช่น คุณอาจต้องการสแกน
192.168.0.0/16 แต่ข้าม IP ใด ๆ ที่ลงท้ายด้วย .0 หรือ .255 เพราะอาจถูกใช้เป็นซับเน็ต
ที่อยู่เครือข่ายและออกอากาศ Nmap รองรับสิ่งนี้ผ่านการกำหนดแอดเดรสช่วงออกเตต ค่อนข้าง
กว่าการระบุที่อยู่ IP ปกติ คุณสามารถระบุรายการตัวเลขที่คั่นด้วยเครื่องหมายจุลภาคหรือ
ช่วงสำหรับแต่ละออคเต็ต ตัวอย่างเช่น 192.168.0-255.1-254 จะข้ามที่อยู่ใน
ช่วงที่ลงท้ายด้วย .0 หรือ .255 และ 192.168.3-5,7.1 จะสแกนที่อยู่ทั้งสี่
192.168.3.1, 192.168.4.1, 192.168.5.1 และ 192.168.7.1 ด้านใดด้านหนึ่งของช่วงอาจเป็น
ละเว้น; ค่าเริ่มต้นคือ 0 ทางด้านซ้ายและ 255 ทางด้านขวา ใช้ - ด้วยตัวเองคือ
เหมือนกับ 0-255 แต่อย่าลืมใช้ 0- ในออคเต็ตแรก ดังนั้นสเปคเป้าหมาย
ดูไม่เหมือนตัวเลือกบรรทัดคำสั่ง เรนจ์ไม่จำเป็นต้องจำกัดแค่ออคเต็ตสุดท้าย:
ตัวระบุ 0-255.0-255.13.37 จะทำการสแกนทั่วทั้งอินเทอร์เน็ตสำหรับที่อยู่ IP ทั้งหมด
สิ้นสุดใน 13.37 การสุ่มตัวอย่างแบบกว้างๆ แบบนี้มีประโยชน์สำหรับการสำรวจทางอินเทอร์เน็ตและ
การวิจัย.

ที่อยู่ IPv6 สามารถระบุได้ด้วยที่อยู่ IPv6 หรือชื่อโฮสต์ที่มีคุณสมบัติครบถ้วนเท่านั้น
CIDR และช่วงออกเตตยังไม่รองรับ IPv6

ที่อยู่ IPv6 ที่มีขอบเขตที่ไม่ใช่ส่วนกลางต้องมีส่วนต่อท้าย ID โซน บนระบบ Unix นี่
เป็นเครื่องหมายเปอร์เซ็นต์ตามด้วยชื่ออินเทอร์เฟซ ที่อยู่ที่สมบูรณ์อาจเป็น
fe80::a8bb:ccff:fedd:eeff%eth0. บน Windows ให้ใช้หมายเลขดัชนีอินเทอร์เฟซแทน an
ชื่ออินเทอร์เฟซ: fe80::a8bb:ccff:fedd:eeff%1 คุณสามารถดูรายการดัชนีอินเทอร์เฟซโดย
เรียกใช้คำสั่ง netsh.exe อินเตอร์เฟซ ipv6 โชว์ อินเตอร์เฟซ.

Nmap ยอมรับข้อกำหนดโฮสต์หลายรายการในบรรทัดคำสั่ง และไม่จำเป็นต้องเป็น
ประเภทเดียวกัน คำสั่ง nmap scanme.nmap.org 192.168.0.0/8 10.0.0,1,3-7.- ทำในสิ่งที่คุณ
จะคาดหวัง

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

-iL ใส่ชื่อไฟล์ (ป้อนข้อมูลจากรายการ) .
อ่านข้อกำหนดเป้าหมายจาก ใส่ชื่อไฟล์. มักจะผ่านรายชื่อโฮสต์จำนวนมาก
อึดอัดใจในบรรทัดคำสั่ง แต่ก็เป็นความปรารถนาร่วมกัน ตัวอย่างเช่น เซิร์ฟเวอร์ DHCP ของคุณ
อาจส่งออกรายการสัญญาเช่าปัจจุบัน 10,000 รายการที่คุณต้องการสแกน หรือบางทีคุณอาจต้องการ
เพื่อสแกนที่อยู่ IP ทั้งหมด ยกเว้น สำหรับผู้ที่ค้นหาโฮสต์โดยใช้ IP แบบคงที่ที่ไม่ได้รับอนุญาต
ที่อยู่ เพียงสร้างรายการโฮสต์เพื่อสแกนและส่งชื่อไฟล์นั้นไปยัง Nmap as
อาร์กิวเมนต์เพื่อ -iL ตัวเลือก. รายการสามารถอยู่ในรูปแบบใดก็ได้ที่Nmap .ยอมรับ
บนบรรทัดคำสั่ง (ที่อยู่ IP, ชื่อโฮสต์, CIDR, IPv6 หรือช่วงออกเตต) แต่ละรายการ
ต้องคั่นด้วยช่องว่าง แท็บ หรือขึ้นบรรทัดใหม่ตั้งแต่หนึ่งรายการขึ้นไป คุณสามารถระบุยัติภังค์
(-) เป็นชื่อไฟล์หากคุณต้องการให้ Nmap อ่านโฮสต์จากอินพุตมาตรฐานแทนที่จะเป็นan
ไฟล์จริง.

ไฟล์อินพุตอาจมีความคิดเห็นที่ขึ้นต้นด้วย # และขยายไปจนถึงจุดสิ้นสุดของ
เส้น

-ไออาร์ NUM เจ้าภาพ (เลือกเป้าหมายแบบสุ่ม) .
สำหรับการสำรวจทางอินเทอร์เน็ตและการวิจัยอื่น ๆ คุณอาจต้องการเลือกเป้าหมายที่
สุ่ม NS NUM เจ้าภาพ อาร์กิวเมนต์บอก Nmap ว่าจะสร้าง IP จำนวนเท่าใด IP ที่ไม่พึงประสงค์
เช่นช่วงที่อยู่ส่วนตัว มัลติคาสต์ หรือที่ไม่ได้จัดสรรบางช่วง
ข้ามโดยอัตโนมัติ สามารถระบุอาร์กิวเมนต์ 0 สำหรับการสแกนที่ไม่มีวันสิ้นสุด เก็บไว้
โปรดทราบว่าผู้ดูแลระบบเครือข่ายบางคนพยายามสแกน .โดยไม่ได้รับอนุญาต
เครือข่ายและอาจร้องเรียน ใช้ตัวเลือกนี้โดยยอมรับความเสี่ยงเอง! หากคุณพบว่าตัวเอง
เบื่อจริง ๆ บ่ายวันหนึ่งฝนตก ลองสั่ง nmap - ป ณ -NS -p 80 -ไออาร์ 0 --เปิด. ไปยัง
ค้นหาเว็บเซิร์ฟเวอร์แบบสุ่มสำหรับการท่องเว็บ

--ไม่รวม host1[,host2[,...]] (ยกเว้นโฮสต์/เครือข่าย)
ระบุรายการเป้าหมายที่คั่นด้วยเครื่องหมายจุลภาคที่จะแยกออกจากการสแกนแม้ว่าพวกเขาจะ
เป็นส่วนหนึ่งของช่วงเครือข่ายโดยรวมที่คุณระบุ รายการที่คุณส่งผ่านใช้ปกติ
ไวยากรณ์ Nmap จึงสามารถรวมชื่อโฮสต์ CIDR netblocks ช่วงออกเตต ฯลฯ ได้
จะมีประโยชน์เมื่อเครือข่ายที่คุณต้องการสแกนรวมถึงภารกิจที่สำคัญที่แตะต้องไม่ได้
เซิร์ฟเวอร์ ระบบที่ทราบว่าตอบสนองต่อการสแกนพอร์ต หรือซับเน็ต
บริหารงานโดยบุคคลอื่น

--ไม่รวมไฟล์ แยกไฟล์ (ไม่รวมรายการจากไฟล์) .
มีฟังก์ชันเช่นเดียวกับ --ไม่รวม ยกเว้นกรณียกเว้น
เป้าหมายมีให้ในบรรทัดใหม่, ช่องว่าง- หรือตัวคั่นด้วยแท็บ แยกไฟล์ มากกว่า
บนบรรทัดคำสั่ง

ไฟล์แยกอาจมีความคิดเห็นที่ขึ้นต้นด้วย # และขยายไปจนถึงจุดสิ้นสุดของ
เส้น

HOST DISCOVERY


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

เนื่องจากความต้องการการค้นพบโฮสต์มีความหลากหลายมาก Nmap จึงเสนอตัวเลือกที่หลากหลายสำหรับ
ปรับแต่งเทคนิคที่ใช้ การค้นพบโฮสต์บางครั้งเรียกว่า ping scan แต่จะไป
นอกเหนือจากแพ็กเก็ตคำขอ ICMP echo ธรรมดาที่เกี่ยวข้องกับเครื่องมือ ping ที่แพร่หลาย
ผู้ใช้สามารถข้ามขั้นตอน ping ทั้งหมดได้ด้วยการสแกนรายการ (-สล) หรือโดยการปิดการใช้งาน ping (- ป ณ),
หรือเชื่อมต่อเครือข่ายด้วยการรวมหลายพอร์ต TCP SYN/ACK, UDP, SCTP
โพรบ INIT และ ICMP เป้าหมายของการซักถามเหล่านี้คือการเรียกร้องการตอบสนองที่แสดงให้เห็น
ว่าที่อยู่ IP นั้นใช้งานได้จริง (กำลังถูกใช้โดยโฮสต์หรืออุปกรณ์เครือข่าย) ในหลาย ๆ
เครือข่าย ที่อยู่ IP เพียงไม่กี่เปอร์เซ็นต์เท่านั้นที่ใช้งานได้ตลอดเวลา นี่คือ
โดยเฉพาะอย่างยิ่งกับพื้นที่ที่อยู่ส่วนตัวเช่น 10.0.0.0/8 เครือข่ายนั้นมี16
ล้าน IPs แต่ฉันเคยเห็นมันถูกใช้โดยบริษัทที่มีเครื่องน้อยกว่าพันเครื่อง เจ้าภาพ
การค้นพบสามารถค้นหาเครื่องเหล่านั้นในทะเลที่อยู่ IP ที่จัดสรรไว้อย่างกระจัดกระจาย

หากไม่มีตัวเลือกการค้นพบโฮสต์ Nmap จะส่งคำขอ ICMP echo, แพ็กเก็ต TCP SYN
ไปยังพอร์ต 443, แพ็กเก็ต TCP ACK ไปยังพอร์ต 80 และคำขอประทับเวลา ICMP (สำหรับ IPv6 ค่า
คำขอประทับเวลาของ ICMP ถูกละเว้นเนื่องจากไม่ได้เป็นส่วนหนึ่งของ ICMPv6) ค่าเริ่มต้นเหล่านี้คือ
เทียบเท่ากับ -วิชาพลศึกษา -PS443 -PA80 -พี.พี ตัวเลือก. ข้อยกเว้นคือ ARP (for
IPv4) และการค้นพบเพื่อนบ้าน (สำหรับ IPv6) สแกนที่ใช้สำหรับเป้าหมายใด ๆ บนท้องถิ่น
เครือข่ายอีเธอร์เน็ต สำหรับผู้ใช้เชลล์ Unix ที่ไม่มีสิทธิพิเศษ โพรบดีฟอลต์คือแพ็กเก็ต SYN
ไปยังพอร์ต 80 และ 443 โดยใช้ ต่อ ระบบเรียก.. การค้นพบโฮสต์นี้มักจะ
เพียงพอเมื่อสแกนเครือข่ายท้องถิ่น แต่มีชุดของโพรบการค้นพบที่ครอบคลุมมากขึ้น
ขอแนะนำสำหรับการตรวจสอบความปลอดภัย

เค้ก -NS* ตัวเลือก (ซึ่งเลือกประเภท ping) สามารถรวมกันได้ คุณสามารถเพิ่มอัตราต่อรองของ
เจาะไฟร์วอลล์ที่เข้มงวดโดยส่งโพรบหลายประเภทโดยใช้พอร์ต/แฟล็ก TCP ที่แตกต่างกัน
และรหัส ICMP โปรดทราบด้วยว่า ARP/Neighbor Discovery (-ประชาสัมพันธ์). จะทำโดยปริยายกับ
เป้าหมายบนเครือข่ายอีเทอร์เน็ตในพื้นที่แม้ว่าคุณจะระบุ other -NS* ทางเลือก เพราะมันคือ
เร็วกว่าและมีประสิทธิภาพมากกว่าเกือบทุกครั้ง

โดยค่าเริ่มต้น Nmap จะทำการค้นหาโฮสต์ จากนั้นทำการสแกนพอร์ตกับแต่ละโฮสต์
กำหนดออนไลน์ สิ่งนี้เป็นจริงแม้ว่าคุณจะระบุประเภทการค้นพบโฮสต์ที่ไม่ใช่ค่าเริ่มต้น
เช่นโพรบ UDP (-พียู). อ่านเกี่ยวกับ -ส ตัวเลือกในการเรียนรู้วิธีการดำเนินการเฉพาะโฮสต์
การค้นพบหรือใช้ - ป ณ เพื่อข้ามการค้นพบโฮสต์และพอร์ตสแกนโฮสต์เป้าหมายทั้งหมด ต่อไปนี้
ตัวเลือกควบคุมการค้นพบโฮสต์:

-สล (รายการสแกน) .
การสแกนรายการเป็นรูปแบบการค้นหาโฮสต์ที่เสื่อมลง ซึ่งจะแสดงรายการแต่ละโฮสต์ของ
เครือข่ายที่ระบุโดยไม่ส่งแพ็กเก็ตใด ๆ ไปยังโฮสต์เป้าหมาย โดยค่าเริ่มต้น,
Nmap ยังคงทำการแก้ไข DNS แบบย้อนกลับบนโฮสต์เพื่อเรียนรู้ชื่อของพวกเขา มันมักจะ
น่าแปลกใจที่ชื่อโฮสต์ง่าย ๆ ให้ข้อมูลที่เป็นประโยชน์มากเพียงใด ตัวอย่างเช่น fw.chi
เป็นชื่อไฟร์วอลล์ชิคาโกของบริษัทแห่งหนึ่ง Nmap ยังรายงานจำนวนรวมของ
ที่อยู่ IP ในตอนท้าย การสแกนรายชื่อเป็นการตรวจสุขภาพจิตที่ดีเพื่อให้แน่ใจว่าคุณมี
ที่อยู่ IP ที่เหมาะสมสำหรับเป้าหมายของคุณ ถ้าเจ้าภาพกีฬาชื่อโดเมนคุณไม่ได้
รับทราบครับ ควรตรวจสอบเพิ่มเติมเพื่อป้องกันการสแกนผิดบริษัท
เครือข่าย

เนื่องจากแนวคิดคือเพียงแค่พิมพ์รายการโฮสต์เป้าหมาย ตัวเลือกสำหรับระดับที่สูงขึ้น
ฟังก์ชันต่างๆ เช่น การสแกนพอร์ต การตรวจจับ OS หรือการสแกน ping ไม่สามารถรวมกันได้
ด้วยสิ่งนี้. หากคุณต้องการปิดใช้งานการสแกน ping ในขณะที่ยังคงทำงานที่สูงกว่านั้นอยู่
ฟังก์ชั่นระดับอ่านบน - ป ณ (ข้ามปิง) ตัวเลือก

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

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

การค้นพบโฮสต์เริ่มต้นเสร็จสิ้นด้วย -ส ประกอบด้วยคำขอ ICMP echo, TCP SYN to
พอร์ต 443, TCP ACK ไปยังพอร์ต 80 และคำขอประทับเวลา ICMP โดยค่าเริ่มต้น เมื่อถูกประหารชีวิต
โดยผู้ใช้ที่ไม่มีสิทธิพิเศษ เฉพาะแพ็กเก็ต SYN เท่านั้นที่จะถูกส่ง (โดยใช้a ต่อ โทร) ไปยังพอร์ต 80
และ 443 บนเป้าหมาย เมื่อผู้ใช้ที่มีสิทธิพิเศษพยายามสแกนเป้าหมายในพื้นที่
เครือข่ายอีเทอร์เน็ต คำขอ ARP จะใช้เว้นแต่ --ส่ง-ip ถูกระบุ NS -ส ตัวเลือก
สามารถใช้ร่วมกับโพรบการค้นพบชนิดใดก็ได้ ( -NS* ตัวเลือก ยกเว้น - ป ณ)
เพื่อความคล่องตัวที่มากขึ้น หากใช้ตัวเลือกประเภทโพรบและหมายเลขพอร์ตเหล่านั้น
โพรบเริ่มต้นจะถูกแทนที่ เมื่อมีไฟร์วอลล์ที่เข้มงวดอยู่ระหว่าง
โฮสต์ต้นทางที่รัน Nmap และเครือข่ายเป้าหมายโดยใช้เทคนิคขั้นสูงเหล่านั้นคือ
ที่แนะนำ. มิฉะนั้น อาจพลาดโฮสต์เมื่อไฟร์วอลล์ปล่อยโพรบหรือ
การตอบสนอง

ในรุ่นก่อนหน้าของ Nmap -ส เป็นที่รู้จักกันในนาม -เอสพี..

- ป ณ (ไม่มีปิง) .
ตัวเลือกนี้จะข้ามขั้นตอนการค้นพบ Nmap ไปโดยสิ้นเชิง โดยปกติ Nmap จะใช้สเตจนี้
เพื่อกำหนดเครื่องที่ใช้งานสำหรับการสแกนที่หนักกว่า โดยค่าเริ่มต้น Nmap ดำเนินการเท่านั้น
การตรวจสอบอย่างหนัก เช่น การสแกนพอร์ต การตรวจจับเวอร์ชัน หรือการตรวจจับ OS กับโฮสต์
ที่พบว่ามีขึ้น ปิดการใช้งานการค้นพบโฮสต์ด้วย - ป ณ ทำให้ Nmap พยายาม
ร้องขอฟังก์ชั่นการสแกนกับ ทุกๆ ระบุที่อยู่ IP เป้าหมาย ดังนั้นถ้าเป็นคลาส
ระบุพื้นที่ที่อยู่เป้าหมาย B (/16) ในบรรทัดคำสั่ง ที่อยู่ IP ทั้งหมด 65,536 รายการ
จะถูกสแกน การค้นหาโฮสต์ที่เหมาะสมถูกข้ามไปเหมือนกับการสแกนรายการ แต่แทนที่จะเป็น
หยุดและพิมพ์รายการเป้าหมาย Nmap ยังคงทำหน้าที่ที่ร้องขอต่อไป
ราวกับว่าแต่ละ IP เป้าหมายทำงานอยู่ ในการข้าม ping scan และ สแกนพอร์ตในขณะที่ยังอนุญาต
NSE เพื่อเรียกใช้ใช้สองตัวเลือก - ป ณ -ส ร่วมกัน

สำหรับเครื่องบนเครือข่ายอีเทอร์เน็ตในพื้นที่ การสแกน ARP จะยังคงดำเนินการอยู่ (เว้นแต่
--disable-arp-ping or --ส่ง-ip ถูกระบุ) เนื่องจาก Nmap ต้องการที่อยู่ MAC เพื่อ
สแกนโฮสต์เป้าหมายเพิ่มเติม ใน Nmap เวอร์ชันก่อนหน้า - ป ณ คือ - หน้า 0. และ -pn..

-ปล พอร์ต รายการ (TCP ซินปิง) .
อ็อพชันนี้ส่งแพ็กเก็ต TCP เปล่าพร้อมแฟล็ก SYN ปลายทางเริ่มต้น
พอร์ตคือ 80 (กำหนดค่าได้ในเวลารวบรวมโดยเปลี่ยน DEFAULT_TCP_PROBE_PORT_SPEC. ใน
nmap.h).. พอร์ตสำรองสามารถระบุเป็นพารามิเตอร์ได้ ไวยากรณ์เหมือนกับ
สำหรับ -p ยกเว้นว่าไม่อนุญาตให้ใช้ตัวระบุประเภทพอร์ตเช่น T: ตัวอย่างคือ
-PS22 และ -PS22-25,80,113,1050,35000. โปรดทราบว่าไม่มีช่องว่างระหว่าง -ปล และ
รายการพอร์ต หากมีการระบุโพรบหลายตัว โพรบจะถูกส่งแบบขนานกัน

แฟล็ก SYN แนะนำระบบรีโมตที่คุณกำลังพยายามสร้าง a
การเชื่อมต่อ. โดยปกติพอร์ตปลายทางจะถูกปิดและแพ็กเก็ต RST (รีเซ็ต)
ส่งกลับ. หากพอร์ตเปิดขึ้น เป้าหมายจะดำเนินการขั้นตอนที่ XNUMX ของ a
TCP สามทางจับมือกัน โดยตอบกลับด้วยแพ็กเก็ต SYN/ACK TCP เครื่องวิ่ง
จากนั้น Nmap จะทำลายการเชื่อมต่อที่เกิดขึ้นใหม่โดยตอบสนองด้วย RST มากกว่า
ส่งแพ็กเก็ต ACK ซึ่งจะทำให้การจับมือสามทางเสร็จสมบูรณ์และสร้าง a
การเชื่อมต่อเต็มรูปแบบ แพ็กเก็ต RST ถูกส่งโดยเคอร์เนลของเครื่องที่รัน Nmap ใน
ตอบสนองต่อ SYN/ACK ที่ไม่คาดคิด ไม่ใช่โดย Nmap เอง

Nmap ไม่สนใจว่าพอร์ตเปิดหรือปิด RST หรือ SYN/ACK
การตอบสนองที่กล่าวถึงก่อนหน้านี้บอก Nmap ว่าโฮสต์พร้อมใช้งานและตอบสนอง

บนกล่อง Unix เฉพาะรูทผู้ใช้ที่มีสิทธิ์เท่านั้น สามารถส่งและรับได้โดยทั่วไป
แพ็กเก็ต TCP ดิบ.. สำหรับผู้ใช้ที่ไม่มีสิทธิพิเศษ จะมีการใช้วิธีแก้ปัญหาชั่วคราวโดยอัตโนมัติ
โดยที่ ต่อ การเรียกระบบเริ่มต้นกับแต่ละพอร์ตเป้าหมาย นี้มี
ผลกระทบของการส่งแพ็กเก็ต SYN ไปยังโฮสต์เป้าหมาย ในความพยายามที่จะสร้าง a
การเชื่อมต่อ ถ้า ต่อ กลับมาพร้อมกับความสำเร็จอย่างรวดเร็วหรือความล้มเหลว ECONNREFUSED, the
สแต็ค TCP พื้นฐานต้องได้รับ SYN/ACK หรือ RST และโฮสต์ถูกทำเครื่องหมาย
มีอยู่. หากพยายามเชื่อมต่อค้างไว้จนกว่าจะหมดเวลา
โฮสต์ถูกทำเครื่องหมายเป็นลง

-พลั่ว พอร์ต รายการ (TCP ACK ปิง) .
TCP ACK ping ค่อนข้างคล้ายกับ SYN ping ที่เพิ่งกล่าวถึง ความแตกต่างเช่น
คุณอาจเดาได้ว่าตั้งค่าสถานะ TCP ACK แทนการตั้งค่าสถานะ SYN เช่น
แพ็คเก็ต ACK อ้างว่าจะยอมรับข้อมูลผ่านการเชื่อมต่อ TCP ที่สร้างขึ้น
แต่ไม่มีการเชื่อมต่อดังกล่าว ดังนั้นโฮสต์ระยะไกลควรตอบสนองด้วย RST . เสมอ
แพ็กเก็ตที่เปิดเผยการมีอยู่ในกระบวนการ

เค้ก -พลั่ว ตัวเลือกใช้พอร์ตเริ่มต้นเดียวกันกับโพรบ SYN (80) และสามารถใช้a
รายการพอร์ตปลายทางในรูปแบบเดียวกัน หากผู้ใช้ที่ไม่มีสิทธิพิเศษลองทำสิ่งนี้
ต่อ ใช้วิธีแก้ปัญหาที่กล่าวถึงก่อนหน้านี้ วิธีแก้ปัญหานี้ไม่สมบูรณ์เพราะ
ต่อ กำลังส่งแพ็กเก็ต SYN แทนที่จะเป็น ACK

เหตุผลในการเสนอโพรบปิงทั้ง SYN และ ACK คือการเพิ่มโอกาสของ
ข้ามไฟร์วอลล์ ผู้ดูแลระบบหลายคนกำหนดค่าเราเตอร์และไฟร์วอลล์แบบธรรมดาอื่นๆ
เพื่อบล็อกแพ็กเก็ต SYN ขาเข้า ยกเว้นที่ถูกกำหนดไว้สำหรับบริการสาธารณะเช่น
เว็บไซต์ของบริษัทหรือเมลเซิร์ฟเวอร์ สิ่งนี้จะป้องกันการเชื่อมต่อขาเข้าอื่น ๆ ไปยัง
องค์กรในขณะที่อนุญาตให้ผู้ใช้เชื่อมต่อกับ
อินเทอร์เน็ต. วิธีการแบบไม่เก็บสถานะนี้ใช้ทรัพยากรเพียงเล็กน้อยบนไฟร์วอลล์/เราเตอร์และ
ได้รับการสนับสนุนอย่างกว้างขวางจากตัวกรองฮาร์ดแวร์และซอฟต์แวร์ ลินุกซ์ Netfilter/iptables
ซอฟต์แวร์ไฟร์วอลล์นำเสนอ --ซิน ตัวเลือกความสะดวกในการดำเนินการคนไร้สัญชาตินี้
เข้าใกล้. เมื่อมีกฎไฟร์วอลล์ไร้สัญชาติเช่นนี้ SYN ping probes
(-ปล) มีแนวโน้มที่จะถูกบล็อกเมื่อส่งไปยังพอร์ตเป้าหมายที่ปิด ในกรณีเช่นนี้
โพรบ ACK ส่องประกายเมื่อตัดผ่านกฎเหล่านี้

ไฟร์วอลล์ประเภทอื่นทั่วไปใช้กฎการเก็บสถานะที่ปล่อยแพ็กเก็ตที่ไม่คาดคิด นี้
ฟีเจอร์นี้พบได้ในไฟร์วอลล์ระดับไฮเอนด์เป็นส่วนใหญ่ แม้ว่าจะมีจำนวนมากขึ้นก็ตาม
บ่อยขึ้นในช่วงหลายปีที่ผ่านมา ระบบ Linux Netfilter/iptables รองรับผ่าน
--สถานะ ตัวเลือก ซึ่งจัดประเภทแพ็กเก็ตตามสถานะการเชื่อมต่อ โพรบ SYN
มีแนวโน้มที่จะทำงานกับระบบดังกล่าวมากกว่า เนื่องจากแพ็กเก็ต ACK ที่ไม่คาดคิดมักเกิดขึ้น
ยอมรับว่าปลอมและหลุด วิธีแก้ปัญหานี้คือการส่งทั้ง SYN และ
ACK โพรบโดยระบุ -ปล และ -พลั่ว.

-พียู พอร์ต รายการ (ยูดีพี ปิง).
ตัวเลือกการค้นพบโฮสต์อื่นคือ UDP ping ซึ่งส่งแพ็กเก็ต UDP ไปยังที่กำหนด
พอร์ต สำหรับพอร์ตส่วนใหญ่ แพ็กเก็ตจะว่างเปล่า แม้ว่าบางพอร์ตจะใช้โปรโตคอลเฉพาะ
เพย์โหลดที่มีแนวโน้มที่จะกระตุ้นการตอบสนอง มีการอธิบายฐานข้อมูลเพย์โหลด
at https://nmap.org/book/nmap-payloads.html.. --ข้อมูล, --data-สตริงและ
--data-ความยาว ตัวเลือก

รายการพอร์ตใช้รูปแบบเดียวกับที่กล่าวถึงก่อนหน้านี้ -ปล และ -พลั่ว
ตัวเลือก. หากไม่มีการระบุพอร์ต ค่าดีฟอลต์คือ 40125.. ค่าดีฟอลต์นี้สามารถ
กำหนดค่าในเวลารวบรวมโดยเปลี่ยน DEFAULT_UDP_PROBE_PORT_SPEC. ใน nmap.h.. A
พอร์ตที่ผิดปกติอย่างมากจะถูกใช้โดยค่าเริ่มต้น เนื่องจากการส่งไปยังพอร์ตที่เปิดอยู่มักจะ
ไม่พึงปรารถนาสำหรับการสแกนประเภทนี้โดยเฉพาะ

เมื่อกดปุ่มปิดพอร์ตบนเครื่องเป้าหมาย โพรบ UDP ควรกระตุ้น ICMP
ส่งคืนแพ็กเก็ตที่ไม่สามารถเข้าถึงได้ นี่หมายถึง Nmap ที่เครื่องขึ้นและ
มีอยู่. ข้อผิดพลาด ICMP ประเภทอื่นๆ มากมาย เช่น โฮสต์/เครือข่ายที่ไม่สามารถเข้าถึงได้ หรือ TTL
เกินจะบ่งบอกถึงโฮสต์ลงหรือไม่สามารถเข้าถึงได้ ขาดการตอบสนองเช่นกัน
ตีความอย่างนี้ หากถึงพอร์ตที่เปิดอยู่ บริการส่วนใหญ่จะไม่สนใจ
แพ็กเก็ตว่างเปล่าและไม่สามารถส่งคืนการตอบกลับใดๆ นี่คือสาเหตุที่พอร์ตโพรบเริ่มต้นคือ
40125 ซึ่งไม่น่าจะใช้งานมากนัก บริการบางอย่างเช่น Character
โปรโตคอลตัวสร้าง (ชาร์จ) จะตอบสนองต่อแพ็กเก็ต UDP ที่ว่างเปล่าและเปิดเผย
ไปยัง Nmap ที่เครื่องพร้อมใช้งาน

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

-พ พอร์ต รายการ (SCTP อินิตปิง) .
ตัวเลือกนี้ส่งแพ็กเก็ต SCTP ที่มีกลุ่ม INIT ขั้นต่ำ ค่าเริ่มต้น
พอร์ตปลายทางคือ 80 (กำหนดค่าได้ในเวลารวบรวมโดยเปลี่ยน
DEFAULT_SCTP_PROBE_PORT_SPEC. ใน nmap.h) พอร์ตสำรองสามารถระบุเป็น a
พารามิเตอร์. ไวยากรณ์เหมือนกับสำหรับ -p ยกเว้นตัวระบุประเภทพอร์ตเช่น
ส: ไม่อนุญาต ตัวอย่างคือ -PY22 และ -PY22,80,179,5060. โปรดทราบว่าสามารถมี
ไม่มีช่องว่างระหว่าง -พ และรายการพอร์ต หากระบุโพรบหลายตัว จะเป็น
ส่งคู่กัน.

กลุ่ม INIT แนะนำระบบรีโมตที่คุณกำลังพยายามสร้าง an
สมาคม. โดยปกติพอร์ตปลายทางจะปิด และกลุ่ม ABORT จะเป็น
ส่งกลับ. หากพอร์ตเปิดขึ้น เป้าหมายจะดำเนินการขั้นที่ XNUMX ของ an
SCTP สี่ทางจับมือกัน โดยตอบกลับด้วยคำสั่ง INIT-ACK ถ้าเครื่องทำงาน
Nmap มีสแต็ก SCTP ที่ใช้งานได้จากนั้นจะทำลายการเชื่อมโยงที่ตั้งขึ้นใหม่โดย
ตอบกลับด้วยก้อน ABORT แทนที่จะส่งก้อน COOKIE-ECHO ซึ่งจะเป็น
ขั้นตอนต่อไปในการจับมือกันสี่ทาง แพ็กเก็ต ABORT ถูกส่งโดยเคอร์เนลของ
เครื่องที่รัน Nmap เพื่อตอบสนองต่อ INIT-ACK ที่ไม่คาดคิด ไม่ใช่โดย Nmap เอง

Nmap ไม่สนใจว่าพอร์ตเปิดหรือปิด ไม่ว่าจะเป็น ABORT หรือ INIT-ACK
การตอบสนองที่กล่าวถึงก่อนหน้านี้บอก Nmap ว่าโฮสต์พร้อมใช้งานและตอบสนอง

บนกล่อง Unix เฉพาะรูทผู้ใช้ที่มีสิทธิ์เท่านั้น สามารถส่งและรับได้โดยทั่วไป
แพ็กเก็ต SCTP ดิบ.. การใช้ SCTP INIT Ping ยังไม่สามารถทำได้สำหรับผู้ไม่มีสิทธิพิเศษ
ผู้ใช้..

-วิชาพลศึกษา; -พี.พี; -น (ประเภท ICMP ปิง) .
นอกเหนือจากประเภทการค้นพบโฮสต์ TCP, UDP และ SCTP ที่ผิดปกติที่กล่าวถึง
ก่อนหน้านี้ Nmap สามารถส่งแพ็กเก็ตมาตรฐานที่ส่งโดยโปรแกรม ping ที่แพร่หลาย
Nmap ส่งแพ็กเก็ต ICMP ประเภท 8 (ขอเสียงสะท้อน) ไปยังที่อยู่ IP เป้าหมายโดยคาดหวัง
ประเภท 0 (ตอบกลับ) เป็นการตอบแทนจากโฮสต์ที่มีอยู่ .. น่าเสียดายสำหรับเครือข่าย
นักสำรวจ โฮสต์และไฟร์วอลล์จำนวนมากในขณะนี้บล็อกแพ็กเก็ตเหล่านี้ แทนที่จะตอบกลับเป็น
ต้องการโดย RFC 1122[2].. ด้วยเหตุนี้ การสแกนเฉพาะ ICMP จึงไม่ค่อยน่าเชื่อถือเพียงพอ
กับเป้าหมายที่ไม่รู้จักทางอินเทอร์เน็ต แต่สำหรับผู้ดูแลระบบตรวจสอบและ
เครือข่ายภายในสามารถเป็นแนวทางปฏิบัติที่มีประสิทธิภาพ ใช้ -วิชาพลศึกษา ตัวเลือก
เพื่อเปิดใช้งานพฤติกรรมการร้องขอเสียงสะท้อนนี้

ในขณะที่คำขอ echo เป็นคำสั่ง ping ICMP มาตรฐาน Nmap ไม่ได้หยุดเพียงแค่นั้น ICMP
มาตรฐาน (RFC 792[3]. และ RFC 950[4]. ) ยังระบุคำขอประทับเวลา ข้อมูล
คำขอและแพ็กเก็ตคำขอมาสก์ที่อยู่เป็นรหัส 13, 15 และ 17 ตามลำดับ ในขณะที่
จุดประสงค์ที่ชัดเจนสำหรับคำถามเหล่านี้คือการเรียนรู้ข้อมูลเช่นมาสก์ที่อยู่
และเวลาปัจจุบันสามารถใช้สำหรับการค้นพบโฮสต์ได้อย่างง่ายดาย ระบบที่ตอบกลับ
ขึ้นและพร้อมใช้งาน ขณะนี้ Nmap ไม่ได้ใช้แพ็กเก็ตคำขอข้อมูลเช่น
พวกเขาไม่ได้รับการสนับสนุนอย่างกว้างขวาง RFC 1122 ยืนยันว่า "โฮสต์ไม่ควรนำไปใช้
ข้อความเหล่านี้” สามารถส่งแบบสอบถามการประทับเวลาและที่อยู่ด้วย -พี.พี และ -น
ตัวเลือกตามลำดับ การตอบกลับการประทับเวลา (รหัส ICMP 14) หรือการตอบกลับรูปแบบที่อยู่ (code
18) เปิดเผยว่าโฮสต์ที่มีอยู่ สองคำถามนี้มีค่าเมื่อ
ผู้ดูแลระบบบล็อกเฉพาะแพ็คเก็ตคำขอ echo ในขณะที่ลืมที่อื่น ๆ
สามารถใช้แบบสอบถาม ICMP เพื่อวัตถุประสงค์เดียวกัน

-ปณ โปรโตคอล รายการ (ปิงโปรโตคอล IP)
หนึ่งในตัวเลือกการค้นพบโฮสต์ที่ใหม่กว่าคือ IP protocol ping ซึ่งส่ง IP
แพ็กเก็ตที่มีหมายเลขโปรโตคอลที่ระบุตั้งไว้ในส่วนหัว IP รายการโปรโตคอล
ใช้รูปแบบเดียวกับ do รายการพอร์ตใน TCP, UDP และ SCTP . ที่กล่าวถึงก่อนหน้านี้
ตัวเลือกการค้นพบโฮสต์ หากไม่มีการระบุโปรโตคอล ค่าเริ่มต้นคือส่งหลายรายการ
แพ็กเก็ต IP สำหรับ ICMP (โปรโตคอล 1), IGMP (โปรโตคอล 2) และ IP-in-IP (โปรโตคอล 4) NS
โปรโตคอลเริ่มต้นสามารถกำหนดค่าได้ในเวลาคอมไพล์โดยเปลี่ยน
DEFAULT_PROTO_PROBE_PORT_SPEC. ใน nmap.h โปรดทราบว่าสำหรับ ICMP, IGMP, TCP (โปรโตคอล
6) UDP (โปรโตคอล 17) และ SCTP (โปรโตคอล 132) แพ็กเก็ตจะถูกส่งไปพร้อมกับ
ส่วนหัวของโปรโตคอล ในขณะที่โปรโตคอลอื่น ๆ ถูกส่งโดยไม่มีข้อมูลเพิ่มเติมนอกเหนือจาก
ส่วนหัว IP (ยกเว้นกรณีใด ๆ ของ --ข้อมูล, --data-สตริง,หรือ --data-ความยาว ตัวเลือกคือ
ระบุไว้)

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

-ประชาสัมพันธ์ (เออาร์พี ปิง).
สถานการณ์การใช้งาน Nmap ที่พบบ่อยที่สุดอย่างหนึ่งคือการสแกน LAN อีเธอร์เน็ต บน LAN ส่วนใหญ่
โดยเฉพาะผู้ที่ใช้ช่วงที่อยู่ส่วนตัวที่ระบุโดย RFC 1918[5] กว้างใหญ่
ที่อยู่ IP ส่วนใหญ่จะไม่ได้ใช้ในเวลาใดก็ตาม เมื่อ Nmap พยายามส่ง raw
แพ็กเก็ต IP เช่นการร้องขอ ICMP echo ระบบปฏิบัติการจะต้องกำหนด
ที่อยู่ฮาร์ดแวร์ปลายทาง (ARP) ที่สอดคล้องกับ IP เป้าหมายเพื่อให้สามารถ
ระบุที่อยู่เฟรมอีเทอร์เน็ตอย่างถูกต้อง ซึ่งมักจะช้าและเป็นปัญหาเนื่องจาก
ระบบปฏิบัติการไม่ได้ถูกเขียนขึ้นด้วยความคาดหวังว่าพวกเขาจะต้องทำ
คำขอ ARP นับล้านรายการเทียบกับโฮสต์ที่ไม่พร้อมใช้งานในระยะเวลาอันสั้น

การสแกน ARP ทำให้ Nmap และอัลกอริธึมที่ปรับให้เหมาะสมดูแลคำขอ ARP และถ้ามัน
ได้รับการตอบกลับ Nmap ไม่จำเป็นต้องกังวลเกี่ยวกับแพ็กเก็ต ping ที่ใช้ IP
เพราะมันรู้แล้วว่าเจ้าภาพอัพแล้ว ทำให้การสแกน ARP เร็วขึ้นและมากขึ้น
เชื่อถือได้มากกว่าการสแกนแบบ IP-based ดังนั้นจึงทำโดยค่าเริ่มต้นเมื่อสแกนโฮสต์อีเธอร์เน็ต
ที่ Nmap ตรวจพบนั้นอยู่ในเครือข่ายอีเธอร์เน็ตในพื้นที่ แม้ว่าประเภท ping ที่แตกต่างกัน (เช่น
as -วิชาพลศึกษา or -ปล) ระบุไว้ Nmap ใช้ ARP แทนเป้าหมายใด ๆ ที่เป็น
บน LAN เดียวกัน หากคุณไม่ต้องการสแกน ARP โดยเด็ดขาด ให้ระบุ
--disable-arp-ping.

สำหรับ IPv6 (-6 ตัวเลือก) -ประชาสัมพันธ์ ใช้ ICMPv6 Neighbor Discovery แทน ARP เพื่อนบ้าน
การค้นพบซึ่งกำหนดไว้ใน RFC 4861 สามารถมองได้ว่าเป็น IPv6 ที่เทียบเท่ากับ ARP

--disable-arp-ping (ไม่มี ARP หรือ ND Ping)
โดยปกติ Nmap จะทำการค้นพบ ARP หรือ IPv6 Neighbor Discovery (ND) ของการเชื่อมต่อในเครื่อง
อีเธอร์เน็ตโฮสต์ แม้ว่าตัวเลือกการค้นหาโฮสต์อื่น ๆ เช่น - ป ณ or -วิชาพลศึกษา ถูกนำมาใช้ ถึง
ปิดการใช้งานพฤติกรรมโดยนัยนี้ ใช้ the --disable-arp-ping ตัวเลือก

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

--traceroute (ติดตามเส้นทางไปยังโฮสต์) .
Traceroutes ดำเนินการหลังการสแกนโดยใช้ข้อมูลจากผลการสแกนถึง
กำหนดพอร์ตและโปรโตคอลที่น่าจะไปถึงเป้าหมายมากที่สุด ใช้ได้กับทุกคน
ประเภทการสแกนยกเว้นการเชื่อมต่อการสแกน (-เซนต์) และการสแกนที่ไม่ได้ใช้งาน (-sI). ร่องรอยทั้งหมดใช้ Nmap's
แบบจำลองเวลาแบบไดนามิกและดำเนินการแบบคู่ขนาน

Traceroute ทำงานโดยส่งแพ็กเก็ตที่มี TTL ต่ำ (time-to-live) เพื่อพยายาม
กระตุ้นข้อความ ICMP Time Exceeded จากฮ็อประดับกลางระหว่างสแกนเนอร์และ
โฮสต์เป้าหมาย การใช้งาน traceroute มาตรฐานเริ่มต้นด้วย TTL ที่ 1 และเพิ่มขึ้น
TTL จนกระทั่งถึงโฮสต์ปลายทาง traceroute ของ Nmap เริ่มต้นด้วยระดับสูง
TTL แล้วลดค่า TTL ลงจนเป็นศูนย์ การย้อนกลับทำให้ Nmap
ใช้อัลกอริธึมการแคชที่ชาญฉลาดเพื่อเพิ่มความเร็วในการติดตามบนโฮสต์หลายตัว โดยเฉลี่ย
Nmap ส่งแพ็กเก็ตน้อยลง 5-10 ต่อโฮสต์ ขึ้นอยู่กับเงื่อนไขของเครือข่าย ถ้าโสด
กำลังสแกนซับเน็ต (เช่น 192.168.0.0/24) Nmap อาจต้องส่งสองแพ็กเก็ตเท่านั้น
ให้กับโฮสต์ส่วนใหญ่

-n (ไม่มีความละเอียด DNS)
บอก Nmap ไปที่ ไม่เคย ทำการแก้ไข DNS แบบย้อนกลับบนที่อยู่ IP ที่ใช้งานอยู่ซึ่งพบ
เนื่องจาก DNS สามารถทำงานช้าได้แม้จะมีตัวแก้ไขต้นขั้วคู่ขนานในตัวของ Nmap ตัวเลือกนี้
สามารถสแลชครั้งการสแกน

-R (ความละเอียด DNS สำหรับทุกเป้าหมาย)
บอก Nmap ไปที่ เสมอ ทำการแก้ไข DNS แบบย้อนกลับบนที่อยู่ IP เป้าหมาย โดยทั่วไป
DNS แบบย้อนกลับจะดำเนินการกับโฮสต์ที่ตอบสนอง (ออนไลน์) เท่านั้น

--ระบบ-dns (ใช้ตัวแก้ไข DNS ของระบบ)
โดยค่าเริ่มต้น Nmap จะแก้ไขที่อยู่ IP โดยการส่งข้อความค้นหาโดยตรงไปยังเนมเซิร์ฟเวอร์
กำหนดค่าบนโฮสต์ของคุณแล้วฟังคำตอบ คำขอมากมาย (บ่อยครั้งหลายสิบครั้ง)
ดำเนินการควบคู่กันไปเพื่อปรับปรุงประสิทธิภาพ ระบุตัวเลือกนี้เพื่อใช้ your
ตัวแก้ไขระบบแทน (หนึ่ง IP ต่อครั้งผ่านทาง รับชื่อข้อมูล เรียก). นี้ช้ากว่า
และไม่ค่อยมีประโยชน์เว้นแต่คุณจะพบข้อผิดพลาดในตัวแก้ไข Nmap ขนาน (โปรดให้เรา
รู้ว่าถ้าคุณทำ) ตัวแก้ไขระบบใช้สำหรับการสแกน IPv6 เสมอ

--dns-เซิร์ฟเวอร์ เซิร์ฟเวอร์ 1[,เซิร์ฟเวอร์ 2[,...]] (เซิร์ฟเวอร์ที่ใช้สำหรับการสืบค้น DNS แบบย้อนกลับ)
โดยค่าเริ่มต้น Nmap จะกำหนดเซิร์ฟเวอร์ DNS ของคุณ (สำหรับความละเอียด rDNS) จาก your
ไฟล์ resolv.conf (Unix) หรือ Registry (Win32) หรือคุณอาจใช้สิ่งนี้
ตัวเลือกเพื่อระบุเซิร์ฟเวอร์สำรอง ตัวเลือกนี้ไม่ได้รับเกียรติหากคุณใช้
--ระบบ-dns หรือการสแกน IPv6 การใช้เซิร์ฟเวอร์ DNS หลายตัวมักจะเร็วกว่า โดยเฉพาะอย่างยิ่ง
หากคุณเลือกเซิร์ฟเวอร์ที่เชื่อถือได้สำหรับพื้นที่ IP เป้าหมายของคุณ ตัวเลือกนี้ยังสามารถ
ปรับปรุงการซ่อนตัว เนื่องจากคำขอของคุณสามารถถูกตีกลับได้เพียงแค่ DNS แบบเรียกซ้ำใดๆ ก็ตาม
เซิร์ฟเวอร์บนอินเทอร์เน็ต

ตัวเลือกนี้ยังมีประโยชน์เมื่อสแกนเครือข่ายส่วนตัว บางครั้งก็เพียงไม่กี่
เนมเซิร์ฟเวอร์ให้ข้อมูล rDNS ที่เหมาะสม และคุณอาจไม่รู้ว่ามันอยู่ที่ไหน
เป็น. คุณสามารถสแกนเครือข่ายเพื่อหาพอร์ต 53 (อาจด้วยการตรวจจับเวอร์ชัน) จากนั้นลอง
การสแกนรายการ Nmap (-สล) ระบุเนมเซิร์ฟเวอร์ทีละรายการด้วย --dns-เซิร์ฟเวอร์
จนกว่าคุณจะพบสิ่งที่ใช้งานได้

PORT การสแกน พื้นฐาน


ในขณะที่ Nmap เติบโตขึ้นในด้านการทำงานในช่วงหลายปีที่ผ่านมา มันเริ่มเป็นพอร์ตที่มีประสิทธิภาพ
สแกนเนอร์ และนั่นยังคงเป็นหน้าที่หลัก คำสั่งง่ายๆ nmap เป้า สแกน 1,000
พอร์ต TCP บนโฮสต์ เป้า. ในขณะที่เครื่องสแกนพอร์ตจำนวนมากมักจะรวมพอร์ตทั้งหมดเข้าด้วยกัน
ในสถานะเปิดหรือปิด Nmap นั้นละเอียดกว่ามาก มันแบ่งพอร์ตออกเป็นหก
สถานะ: เปิด ปิด กรอง ไม่กรอง เปิด|กรอง หรือปิด|กรอง

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

เค้ก หก พอร์ต รัฐ ได้รับการยอมรับ by nmap

แอปพลิเคชันกำลังรับการเชื่อมต่อ TCP, ดาตาแกรม UDP หรือ SCTP
สมาคมในพอร์ตนี้ การค้นหาสิ่งเหล่านี้มักเป็นเป้าหมายหลักของการสแกนพอร์ต
ผู้ที่มีใจรักในการรักษาความปลอดภัยรู้ว่าแต่ละพอร์ตที่เปิดเป็นช่องทางสำหรับการโจมตี ผู้โจมตีและ
ผู้ทดสอบปากกาต้องการใช้ประโยชน์จากพอร์ตที่เปิดอยู่ ในขณะที่ผู้ดูแลระบบพยายามปิดหรือ
ปกป้องพวกเขาด้วยไฟร์วอลล์โดยไม่ขัดขวางผู้ใช้ที่ถูกกฎหมาย พอร์ตที่เปิดอยู่เช่นกัน
น่าสนใจสำหรับการสแกนที่ไม่ปลอดภัยเพราะแสดงบริการที่มีให้ใช้งานบน
เครือข่าย

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

Nmap ไม่สามารถระบุได้ว่าพอร์ตเปิดอยู่หรือไม่เนื่องจากการกรองแพ็กเก็ตป้องกันไม่ให้
สอบสวนไปถึงท่าเรือ การกรองอาจมาจากไฟร์วอลล์เฉพาะ
อุปกรณ์ กฎของเราเตอร์ หรือซอฟต์แวร์ไฟร์วอลล์บนโฮสต์ พอร์ตเหล่านี้ทำให้ผู้โจมตีผิดหวัง
เพราะพวกเขาให้ข้อมูลน้อยมาก บางครั้งพวกเขาตอบสนองด้วยข้อผิดพลาด ICMP
ข้อความเช่นประเภท 3 รหัส 13 (ปลายทางไม่สามารถเข้าถึงได้: การสื่อสาร
ห้ามทางปกครอง) แต่ตัวกรองที่เพียงแค่ปล่อยโพรบโดยไม่ตอบสนอง
เป็นเรื่องธรรมดามากขึ้น สิ่งนี้บังคับให้ Nmap ลองใหม่หลายครั้งในกรณีที่โพรบ
ลดลงเนื่องจากความแออัดของเครือข่ายมากกว่าการกรอง ทำให้การสแกนช้าลง
เป็นคุ้งเป็นแคว

สถานะที่ไม่มีการกรองหมายความว่าพอร์ตสามารถเข้าถึงได้ แต่ Nmap ไม่สามารถระบุได้
ไม่ว่าจะเปิดหรือปิด เฉพาะการสแกน ACK ซึ่งใช้สำหรับแมปไฟร์วอลล์
rulesets แบ่งพอร์ตออกเป็นสถานะนี้ การสแกนพอร์ตที่ไม่มีการกรองด้วยการสแกนอื่น
ประเภทต่างๆ เช่น การสแกนหน้าต่าง การสแกน SYN หรือการสแกน FIN อาจช่วยแก้ไขว่าพอร์ตนั้นเป็น
เปิด.

Nmap วางพอร์ตในสถานะนี้เมื่อไม่สามารถระบุได้ว่าพอร์ตเปิดอยู่หรือไม่
หรือกรอง กรณีนี้เกิดขึ้นกับประเภทการสแกนที่พอร์ตเปิดไม่ตอบสนอง ขาด
ของการตอบสนองยังอาจหมายความว่าตัวกรองแพ็กเก็ตทิ้งโพรบหรือการตอบสนองใดๆ ของมัน
ออกมา ดังนั้น Nmap จึงไม่ทราบแน่ชัดว่าพอร์ตนั้นเปิดอยู่หรือกำลังถูกกรองอยู่
การสแกน UDP, IP protocol, FIN, NULL และ Xmas จะจำแนกพอร์ตด้วยวิธีนี้

สถานะนี้ถูกใช้เมื่อ Nmap ไม่สามารถระบุได้ว่าพอร์ตถูกปิดหรือ
กรอง ใช้สำหรับการสแกน IP ID ที่ไม่ได้ใช้งานเท่านั้น

PORT การสแกน เทคนิค


ในฐานะที่เป็นสามเณรที่ทำการซ่อมแซมยานยนต์ ฉันสามารถดิ้นรนเป็นเวลาหลายชั่วโมงในการพยายามปรับให้เข้ากับตัวของฉัน
เครื่องมือพื้นฐาน (ค้อน เทปพันสายไฟ ประแจ ฯลฯ) สำหรับงานในมือ เมื่อฉันล้มเหลว
อย่างน่าสังเวชและลาก jalopy ของฉันไปยังช่างจริง ๆ เขาตกปลาด้วยเครื่องมือขนาดใหญ่อย่างสม่ำเสมอ
ทรวงอกจนดึงกิซโมที่สมบูรณ์แบบออกมาทำให้งานดูง่ายดาย ศิลปะของ
การสแกนพอร์ตจะคล้ายกัน ผู้เชี่ยวชาญเข้าใจเทคนิคการสแกนมากมายและเลือก
หนึ่งที่เหมาะสม (หรือรวมกัน) สำหรับงานที่กำหนด ผู้ใช้และสคริปต์ที่ไม่มีประสบการณ์
น้องๆ,. ในทางกลับกัน ให้พยายามแก้ปัญหาทุกอย่างด้วยการสแกน SYN เริ่มต้น ตั้งแต่
Nmap นั้นฟรี อุปสรรคเพียงอย่างเดียวของความเชี่ยวชาญในการสแกนพอร์ตคือความรู้ โดนใจแน่นอน
โลกยานยนต์ที่อาจต้องใช้ทักษะที่ดีในการพิจารณาว่าคุณต้องการสตรัท
สปริงคอมเพรสเซอร์ แล้วคุณยังต้องจ่ายหลายพันดอลลาร์สำหรับมัน

ประเภทการสแกนส่วนใหญ่มีให้สำหรับผู้ใช้ที่มีสิทธิ์เท่านั้น. เนื่องจากพวกเขาส่ง
และรับแพ็คเก็ตดิบ. ซึ่งต้องการการเข้าถึงรูทบนระบบ Unix การใช้ an
แนะนำให้ใช้บัญชีผู้ดูแลระบบบน Windows แม้ว่าบางครั้ง Nmap จะใช้ได้สำหรับ
ผู้ใช้ที่ไม่มีสิทธิพิเศษบนแพลตฟอร์มนั้นเมื่อโหลด WinPcap ลงในระบบปฏิบัติการแล้ว
การขอสิทธิ์ของรูทนั้นเป็นข้อจำกัดที่ร้ายแรงเมื่อ Nmap เปิดตัวในปี 1997 อย่างมากมาย
ผู้ใช้มีสิทธิ์เข้าถึงบัญชีเชลล์ที่แชร์เท่านั้น ตอนนี้โลกแตกต่างออกไป คอมพิวเตอร์คือ
ถูกกว่า ผู้คนจำนวนมากขึ้นมากมีการเข้าถึงอินเทอร์เน็ตโดยตรงตลอดเวลา และระบบ Unix บนเดสก์ท็อป
(รวมถึง Linux และ Mac OS X) เป็นที่แพร่หลาย Nmap เวอร์ชัน Windows พร้อมใช้งานแล้ว
ช่วยให้ทำงานบนเดสก์ท็อปได้มากขึ้น ด้วยเหตุผลทั้งหมดนี้ ผู้ใช้จึงไม่จำเป็นต้อง
เรียกใช้ Nmap จากบัญชีเชลล์ที่ใช้ร่วมกันแบบจำกัด นับว่าโชคดีที่มีตัวเลือกพิเศษ
ทำให้ Nmap มีประสิทธิภาพและยืดหยุ่นมากขึ้น

แม้ว่า Nmap จะพยายามให้ผลลัพธ์ที่แม่นยำ โปรดจำไว้ว่าข้อมูลเชิงลึกทั้งหมดนั้น
ตามแพ็กเก็ตที่ส่งคืนโดยเครื่องเป้าหมาย (หรือไฟร์วอลล์ที่อยู่ข้างหน้า) เช่น
โฮสต์อาจไม่น่าเชื่อถือและส่งคำตอบที่มีจุดประสงค์เพื่อสร้างความสับสนหรือทำให้ Nmap เข้าใจผิด มาก
โดยทั่วไปแล้วโฮสต์ที่ไม่สอดคล้องกับ RFC ที่ไม่ตอบสนองตามที่ควรจะเป็นต่อโพรบ Nmap
การสแกน FIN, NULL และ Xmas มีความอ่อนไหวต่อปัญหานี้เป็นพิเศษ ประเด็นดังกล่าวคือ
เฉพาะสำหรับการสแกนบางประเภท และจะกล่าวถึงในรายการประเภทการสแกนแต่ละรายการ

ส่วนนี้จัดทำเอกสารเกี่ยวกับเทคนิคการสแกนพอร์ตเป็นโหลหรือมากกว่านั้นที่สนับสนุนโดย Nmap หนึ่งเดียว
อาจใช้วิธีการในแต่ละครั้ง ยกเว้นว่า UDP scan (-SU) และการสแกน SCTP ตัวใดตัวหนึ่ง
ประเภท (-sY, -sZ) สามารถใช้ร่วมกับการสแกน TCP ประเภทใดก็ได้ เป็นเครื่องช่วยจำ port
ตัวเลือกประเภทการสแกนอยู่ในรูปแบบ -sCที่นี่มี C เป็นตัวละครเด่นในชื่อสแกน
มักจะเป็นคนแรก ข้อยกเว้นประการหนึ่งคือการสแกนตีกลับ FTP ที่เลิกใช้แล้ว (-b). โดย
ค่าเริ่มต้น Nmap จะทำการสแกน SYN แม้ว่าจะแทนที่การสแกนการเชื่อมต่อหากผู้ใช้ทำ
ไม่มีสิทธิ์ที่เหมาะสมในการส่งแพ็คเก็ตดิบ (ต้องมีการเข้าถึงรูทบน Unix) ของ
การสแกนที่ระบุไว้ในส่วนนี้ ผู้ใช้ที่ไม่มีสิทธิพิเศษสามารถดำเนินการเชื่อมต่อและ FTP ตีกลับเท่านั้น
สแกน

-NS (สแกน TCP SYN)
การสแกน SYN คือตัวเลือกการสแกนเริ่มต้นและเป็นที่นิยมมากที่สุดด้วยเหตุผลที่ดี สามารถ
ดำเนินการอย่างรวดเร็วโดยสแกนพอร์ตหลายพันพอร์ตต่อวินาทีบนเครือข่ายที่รวดเร็วไม่
ถูกขัดขวางโดยไฟร์วอลล์ที่จำกัด นอกจากนี้ยังค่อนข้างไม่สร้างความรำคาญและลอบเร้น
เนื่องจากมันไม่เคยทำการเชื่อมต่อ TCP ให้เสร็จสมบูรณ์ การสแกน SYN ทำงานกับ TCP . ที่เป็นไปตามข้อกำหนด
stack แทนที่จะขึ้นอยู่กับลักษณะเฉพาะของแพลตฟอร์มเฉพาะเช่น Nmap's
FIN/NULL/Xmas, Maimon และ idle scans ทำได้ ยังช่วยให้ชัดเจน เชื่อถือได้
ความแตกต่างระหว่างสถานะเปิด ปิด และกรอง

เทคนิคนี้มักเรียกว่าการสแกนแบบ half-open เนื่องจากคุณไม่ได้เปิด a
การเชื่อมต่อ TCP เต็มรูปแบบ คุณส่งแพ็กเก็ต SYN ราวกับว่าคุณกำลังจะเปิดของจริง
เชื่อมต่อแล้วรอการตอบกลับ SYN/ACK แสดงว่าพอร์ตกำลังฟังอยู่
(เปิด) ในขณะที่ RST (รีเซ็ต) บ่งบอกถึงผู้ไม่ฟัง หากไม่มีการตอบสนองคือ
ได้รับหลังจากการส่งสัญญาณซ้ำหลายครั้ง พอร์ตจะถูกทำเครื่องหมายว่ากรองแล้ว ท่าเรือคือ
ทำเครื่องหมายว่าถูกกรองด้วยหากข้อผิดพลาดที่ไม่สามารถเข้าถึงได้ของ ICMP (ประเภท 3, รหัส 0, 1, 2, 3, 9, 10 หรือ
13) ได้รับ พอร์ตยังถือว่าเปิดอยู่หากแพ็กเก็ต SYN (ไม่มีACK
ธง) ได้รับการตอบกลับ อาจเป็นเพราะรู้จักคุณสมบัติ TCP ที่หายากมาก
เป็นการเชื่อมต่อแฮนด์เชคแบบเปิดหรือแยกพร้อมกัน (ดู
https://nmap.org/misc/split-handshake.pdf).

-เซนต์ (สแกนเชื่อมต่อ TCP) .
การสแกนการเชื่อมต่อ TCP เป็นประเภทการสแกน TCP เริ่มต้นเมื่อการสแกน SYN ไม่ใช่ตัวเลือก นี่คือ
กรณีที่ผู้ใช้ไม่มีสิทธิ์แพ็คเก็ตดิบ แทนที่จะเขียนแบบ raw
แพ็กเก็ตเหมือนกับการสแกนประเภทอื่น ๆ ส่วนใหญ่ Nmap จะถามระบบปฏิบัติการพื้นฐานเพื่อ
สร้างการเชื่อมต่อกับเครื่องเป้าหมายและพอร์ตโดยการออก ต่อ ระบบ
เรียก. นี่คือการเรียกระบบระดับสูงแบบเดียวกับเว็บเบราว์เซอร์ ไคลเอนต์ P2P และส่วนใหญ่
แอปพลิเคชันที่เปิดใช้งานเครือข่ายอื่นๆ ใช้เพื่อสร้างการเชื่อมต่อ เป็นส่วนหนึ่งของ
อินเทอร์เฟซการเขียนโปรแกรมที่เรียกว่า Berkeley Sockets API แทนที่จะอ่านแพ็คเก็ตดิบ
ตอบสนองต่อสาย Nmap ใช้ API นี้เพื่อรับข้อมูลสถานะในแต่ละ
ความพยายามในการเชื่อมต่อ

เมื่อสแกน SYN ได้ มักจะเป็นตัวเลือกที่ดีกว่า Nmap มีการควบคุมน้อยกว่า
ระดับสูง ต่อ โทรมากกว่าแพ็คเก็ตดิบทำให้มีประสิทธิภาพน้อยลง NS
การเรียกของระบบเสร็จสิ้นการเชื่อมต่อเพื่อเปิดพอร์ตเป้าหมายแทนที่จะดำเนินการ
รีเซ็ตครึ่งเปิดที่การสแกน SYN ทำ ไม่เพียงแต่ใช้เวลานานและต้องการมากกว่านี้
แพ็กเก็ตเพื่อรับข้อมูลเดียวกัน แต่เครื่องเป้าหมายมีแนวโน้มที่จะเข้าสู่ระบบ
การเชื่อมต่อ. IDS ที่ดีจะจับได้เหมือนกัน แต่เครื่องส่วนใหญ่ไม่มีสัญญาณเตือนดังกล่าว
ระบบ. บริการมากมายบนระบบ Unix โดยเฉลี่ยของคุณจะเพิ่มบันทึกย่อใน syslog และ
บางครั้งข้อความแสดงข้อผิดพลาดที่เป็นความลับ เมื่อ Nmap เชื่อมต่อแล้วปิดการเชื่อมต่อ
โดยไม่ต้องส่งข้อมูล บริการที่น่าสมเพชอย่างแท้จริงพังเมื่อสิ่งนี้เกิดขึ้นแม้ว่าจะเป็น
ผิดปกติ ผู้ดูแลระบบที่เห็นความพยายามเชื่อมต่อจำนวนมากในบันทึกของเธอจาก a
ระบบเดียวน่าจะรู้ว่าเธอได้รับการเชื่อมต่อสแกน

-SU (การสแกน UDP)
ในขณะที่บริการที่ได้รับความนิยมส่วนใหญ่บนอินเทอร์เน็ตทำงานผ่านโปรโตคอล TCP UDP[6] บริการ
ถูกนำไปใช้อย่างกว้างขวาง DNS, SNMP และ DHCP (พอร์ตที่ลงทะเบียน 53, 161/162 และ 67/68) คือ
สามที่พบมากที่สุด เนื่องจากการสแกน UDP โดยทั่วไปจะช้ากว่าและยากกว่า
ผู้ตรวจสอบความปลอดภัยบางคนไม่สนใจพอร์ตเหล่านี้มากกว่า TCP นี่เป็นความผิดพลาด เป็นการเอารัดเอาเปรียบ
บริการ UDP เป็นเรื่องปกติธรรมดาและผู้โจมตีจะไม่ละเลยโปรโตคอลทั้งหมดอย่างแน่นอน
โชคดีที่ Nmap สามารถช่วยพอร์ต UDP ของสินค้าคงคลังได้

การสแกน UDP เปิดใช้งานด้วยปุ่ม -SU ตัวเลือก. สามารถใช้ร่วมกับประเภทการสแกน TCP ได้
เช่น SYN scan (-NS) เพื่อตรวจสอบโปรโตคอลทั้งสองในระหว่างการเรียกใช้เดียวกัน

การสแกน UDP ทำงานโดยส่งแพ็กเก็ต UDP ไปยังทุกพอร์ตเป้าหมาย สำหรับพอร์ตทั่วไปบางส่วน
เช่น 53 และ 161 เพย์โหลดเฉพาะโปรโตคอลจะถูกส่งไปเพื่อเพิ่มอัตราการตอบกลับ แต่
สำหรับพอร์ตส่วนใหญ่ แพ็กเก็ตจะว่างเปล่าเว้นแต่ --ข้อมูล, --data-สตริง,หรือ --data-ความยาว
มีการระบุตัวเลือก หากพอร์ต ICMP เกิดข้อผิดพลาดที่ไม่สามารถเข้าถึงได้ (ประเภท 3, รหัส 3) ถูกส่งกลับ
ท่าเรือปิด ข้อผิดพลาดที่ไม่สามารถเข้าถึงได้อื่น ๆ ของ ICMP (ประเภท 3, รหัส 0, 1, 2, 9, 10, หรือ
13) ทำเครื่องหมายพอร์ตว่ากรองแล้ว ในบางครั้ง บริการจะตอบสนองด้วยแพ็กเก็ต UDP
เป็นการพิสูจน์ว่าเปิดอยู่ หากไม่ได้รับการตอบกลับหลังจากการส่งสัญญาณซ้ำ พอร์ตจะเป็น
จัดเป็นเปิด|กรองแล้ว ซึ่งหมายความว่าพอร์ตสามารถเปิดได้หรือบางทีแพ็กเก็ต
ตัวกรองกำลังปิดกั้นการสื่อสาร การตรวจจับเวอร์ชัน (-sV) ใช้ช่วยได้
แยกแยะพอร์ตที่เปิดอยู่อย่างแท้จริงจากพอร์ตที่กรอง

ความท้าทายครั้งใหญ่ของการสแกน UDP คือการดำเนินการอย่างรวดเร็ว เปิดและกรองพอร์ตไม่ค่อย
ส่งการตอบสนองใด ๆ โดยปล่อยให้ Nmap หมดเวลาแล้วทำการส่งสัญญาณซ้ำใน
กรณีที่โพรบหรือการตอบสนองหายไป พอร์ตที่ปิดมักจะเป็นปัญหาที่ใหญ่กว่า
พวกเขามักจะส่งกลับพอร์ต ICMP ข้อผิดพลาดที่ไม่สามารถเข้าถึงได้ แต่ไม่เหมือนแพ็กเก็ต RST ที่ส่ง
โดยปิดพอร์ต TCP เพื่อตอบสนองต่อ SYN หรือเชื่อมต่อการสแกน ขีดจำกัดอัตราโฮสต์จำนวนมาก ICMP
พอร์ตข้อความที่ไม่สามารถเข้าถึงได้โดยค่าเริ่มต้น Linux และ Solaris เข้มงวดเป็นพิเศษเกี่ยวกับ
นี้. ตัวอย่างเช่น เคอร์เนล Linux 2.4.20 จำกัดข้อความปลายทางที่ไม่สามารถเข้าถึงได้ถึง
หนึ่งต่อวินาที (ใน net/ipv4/icmp.c)

Nmap ตรวจจับการจำกัดอัตราและช้าลงตามนั้นเพื่อหลีกเลี่ยงไม่ให้เครือข่ายท่วม
ด้วยแพ็กเก็ตไร้ประโยชน์ที่เครื่องเป้าหมายจะดรอป น่าเสียดายที่ลีนุกซ์สไตล์
การจำกัดหนึ่งแพ็กเก็ตต่อวินาทีทำให้การสแกนพอร์ต 65,536 พอร์ตใช้เวลานานกว่า 18 ชั่วโมง ไอเดีย
สำหรับการเร่งการสแกน UDP ของคุณนั้นรวมถึงการสแกนโฮสต์เพิ่มเติมแบบขนานกัน การทำอย่างรวดเร็ว
สแกนเฉพาะพอร์ตยอดนิยมก่อน สแกนจากด้านหลังไฟร์วอลล์ และใช้
--host-หมดเวลา เพื่อข้ามโฮสต์ที่ช้า

-sY (การสแกน SCTP INIT)
วทท[7] เป็นทางเลือกที่ค่อนข้างใหม่สำหรับโปรโตคอล TCP และ UDP ซึ่งรวมส่วนใหญ่
คุณสมบัติของ TCP และ UDP และยังเพิ่มคุณสมบัติใหม่เช่น multi-homing และ
มัลติสตรีม ส่วนใหญ่จะใช้สำหรับบริการที่เกี่ยวข้องกับ SS7/SIGTRAN แต่มี
ศักยภาพในการใช้งานอื่นๆ ได้เช่นกัน การสแกน SCTP INIT คือ SCTP
เทียบเท่ากับการสแกน TCP SYN สามารถทำได้อย่างรวดเร็ว สแกนพอร์ตนับพัน
ต่อวินาทีบนเครือข่ายที่รวดเร็ว ไม่ถูกขัดขวางโดยไฟร์วอลล์ที่จำกัด เช่นเดียวกับการสแกน SYN
การสแกน INIT นั้นค่อนข้างไม่สร้างความรำคาญและซ่อนเร้น เนื่องจากมันไม่เคยทำให้SCTP
สมาคม นอกจากนี้ยังช่วยให้เห็นความแตกต่างที่ชัดเจนและเชื่อถือได้ระหว่างการเปิด, ปิด,
และสถานะการกรอง

เทคนิคนี้มักเรียกว่าการสแกนแบบ half-open เนื่องจากคุณไม่ได้เปิด a
สมาคม SCTP เต็มรูปแบบ คุณส่งชิ้นส่วน INIT ราวกับว่าคุณกำลังจะเปิดจริง
สมาคมแล้วรอการตอบกลับ อัน INIT-ACK บ่งชี้พอร์ต is
กำลังฟัง (เปิด) ในขณะที่กลุ่ม ABORT บ่งบอกถึงผู้ไม่ฟัง หากไม่มีการตอบสนอง
ได้รับหลังจากการส่งสัญญาณซ้ำหลายครั้ง พอร์ตจะถูกทำเครื่องหมายว่ากรองแล้ว ท่าเรือคือ
ทำเครื่องหมายว่าถูกกรองด้วยหากข้อผิดพลาดที่ไม่สามารถเข้าถึงได้ของ ICMP (ประเภท 3, รหัส 0, 1, 2, 3, 9, 10 หรือ
13) ได้รับ

-เอสเอ็น; -เอสเอฟ; -sX (การสแกน TCP NULL, FIN และ Xmas)
การสแกนทั้งสามประเภทนี้ (เป็นไปได้มากขึ้นด้วย --scanflags ตัวเลือกที่อธิบายไว้
ในตอนต่อไป) หาช่องโหว่เล็กๆ น้อยๆ ใน TCP RFC[8] เพื่อสร้างความแตกต่าง
ระหว่างพอร์ตเปิดและปิด หน้า 65 ของ RFC 793 กล่าวว่า “ถ้า [ปลายทาง] พอร์ต
state ถูกปิด .... ส่วนที่เข้ามาที่ไม่มี RST ทำให้ RST ถูกส่ง
ในการตอบสนอง” จากนั้นหน้าถัดไปจะกล่าวถึงแพ็กเก็ตที่ส่งไปยังพอร์ตที่เปิดโดยไม่ต้อง
ชุดบิต SYN, RST หรือ ACK โดยระบุว่า: “คุณไม่น่าจะมาที่นี่ แต่ถ้าคุณทำ
ปล่อยส่วนและกลับมา”

เมื่อสแกนระบบที่สอดคล้องกับข้อความ RFC นี้ แพ็กเก็ตใดๆ ที่ไม่มี SYN
บิต RST หรือ ACK จะส่งผลให้ RST ส่งคืนหากปิดพอร์ตและไม่มีการตอบสนอง
เลยถ้าพอร์ตเปิดอยู่ ตราบใดที่ไม่มีสามบิตเหล่านั้นรวมอยู่ด้วย any
การรวมกันของอีกสามคน (FIN, PSH และ URG) ก็ใช้ได้ Nmap ใช้ประโยชน์จากสิ่งนี้ด้วย
การสแกนสามประเภท:

การสแกนเป็นโมฆะ (-เอสเอ็น)
ไม่ได้ตั้งค่าบิตใด ๆ (ส่วนหัวแฟล็ก TCP คือ 0)

FIN สแกน (-เอสเอฟ)
ตั้งค่าเฉพาะบิต TCP FIN

สแกนคริสต์มาส (-sX)
ตั้งค่าสถานะ FIN, PSH และ URG โดยให้แสงที่แพ็คเก็ตเหมือนต้นคริสต์มาส

ประเภทการสแกนทั้งสามนี้มีลักษณะการทำงานเหมือนกันทุกประการ ยกเว้นชุดแฟล็ก TCP
ในแพ็คเก็ตโพรบ หากได้รับแพ็กเก็ต RST จะถือว่าพอร์ตปิด ในขณะที่ไม่มี
การตอบสนองหมายความว่าเปิด|กรองแล้ว พอร์ตถูกทำเครื่องหมายว่าถูกกรองหาก ICMP ไม่สามารถเข้าถึงได้
ได้รับข้อผิดพลาด (ประเภท 3, รหัส 0, 1, 2, 3, 9, 10 หรือ 13)

ข้อได้เปรียบหลักของประเภทการสแกนเหล่านี้คือสามารถแอบผ่านบางอย่างได้
ไฟร์วอลล์ที่ไม่ใช่ stateful และเราเตอร์การกรองแพ็กเก็ต ข้อดีอีกอย่างคือสิ่งเหล่านี้
ประเภทการสแกนมีความลอบเร้นมากกว่าการสแกน SYN เล็กน้อย อย่าพึ่งคิดไปเอง
แม้ว่าผลิตภัณฑ์ IDS ที่ทันสมัยส่วนใหญ่สามารถกำหนดค่าให้ตรวจจับได้ ข้อเสียใหญ่คือ
ไม่ใช่ทุกระบบที่ปฏิบัติตาม RFC 793 ในจดหมาย ระบบจำนวนหนึ่งส่ง RST
ตอบสนองต่อโพรบไม่ว่าพอร์ตจะเปิดหรือไม่ก็ตาม สิ่งนี้ทำให้เกิดทั้งหมด
ของพอร์ตที่จะติดป้ายว่าปิด ระบบปฏิบัติการหลักที่ทำสิ่งนี้คือ Microsoft
Windows, อุปกรณ์ Cisco จำนวนมาก, BSDI และ IBM OS/400 การสแกนนี้ใช้ได้ผลกับคนส่วนใหญ่
ระบบที่ใช้ยูนิกซ์แม้ว่า ข้อเสียอีกประการของการสแกนเหล่านี้คือไม่สามารถทำได้
แยกแยะพอร์ตที่เปิดอยู่ออกจากพอร์ตที่กรองแล้ว ทำให้คุณมีการตอบสนอง
เปิด|กรองแล้ว

-สอ (สแกน TCP ACK)
การสแกนนี้แตกต่างจากที่กล่าวถึงก่อนหน้านี้โดยที่ไม่เคยกำหนด
เปิด (หรือแม้แต่เปิด | กรอง) พอร์ต ใช้เพื่อแมปกฎชุดไฟร์วอลล์
การพิจารณาว่าเป็น stateful หรือไม่ และพอร์ตใดถูกกรอง

แพ็คเก็ตโพรบสแกน ACK มีเพียงชุดแฟล็ก ACK (เว้นแต่คุณจะใช้ --scanflags). เมื่อไหร่
การสแกนระบบที่ไม่มีการกรอง พอร์ตเปิดและปิดจะส่งคืนแพ็กเก็ต RST ทั้งคู่ นแมป
จากนั้นติดป้ายกำกับว่าไม่กรอง หมายความว่าแพ็กเก็ต ACK เข้าถึงได้ แต่
ไม่ว่าจะเปิดหรือปิดไม่แน่นอน พอร์ตที่ไม่ตอบสนองหรือส่ง
ข้อความแสดงข้อผิดพลาด ICMP บางข้อความกลับ (ประเภท 3, รหัส 0, 1, 2, 3, 9, 10 หรือ 13) มีป้ายกำกับ
กรอง

-สว (สแกนหน้าต่าง TCP)
การสแกนหน้าต่างนั้นเหมือนกับการสแกน ACK ทุกประการ ยกเว้นว่ามันใช้ประโยชน์จากการนำไปใช้
รายละเอียดของระบบบางอย่างเพื่อแยกความแตกต่างของพอร์ตที่เปิดจากพอร์ตที่ปิด มากกว่า
พิมพ์ไม่กรองเสมอเมื่อมีการส่งคืน RST มันทำสิ่งนี้โดยตรวจสอบ TCP
ฟิลด์หน้าต่างของแพ็กเก็ต RST ที่ส่งคืน ในบางระบบ พอร์ตที่เปิดอยู่จะใช้ค่าบวก
ขนาดหน้าต่าง (แม้กระทั่งสำหรับแพ็กเก็ต RST) ในขณะที่ขนาดที่ปิดจะมีหน้าต่างเป็นศูนย์ ดังนั้นแทนที่จะ
แสดงรายการพอร์ตว่าไม่มีการกรองเสมอเมื่อได้รับ RST กลับ การสแกนหน้าต่างจะแสดงรายการ
พอร์ตเปิดหรือปิดหากค่า TCP Window ในการรีเซ็ตนั้นเป็นค่าบวกหรือศูนย์
ตามลำดับ

การสแกนนี้อาศัยรายละเอียดการใช้งานของระบบส่วนน้อยบน
อินเทอร์เน็ต คุณจึงไม่อาจเชื่อถือได้ตลอดเวลา ระบบที่ไม่รองรับมักจะ
ส่งคืนพอร์ตทั้งหมดที่ถูกปิด แน่นอน เป็นไปได้ว่าเครื่องเปิดไม่ได้จริงๆ
พอร์ต หากพอร์ตที่สแกนส่วนใหญ่ปิดอยู่ แต่มีหมายเลขพอร์ตทั่วไปบางหมายเลข (เช่น 22, 25,
53) ถูกกรอง ระบบน่าจะไวที่สุด บางครั้งระบบจะ
กระทั่งแสดงพฤติกรรมตรงกันข้าม หากการสแกนของคุณแสดง 1,000 พอร์ตที่เปิดอยู่และสาม
พอร์ตปิดหรือกรองแล้วทั้งสามอาจเป็นพอร์ตเปิดอย่างแท้จริง

-เอสเอ็ม (สแกน TCP ไมมอน) .
การสแกน Maimon ได้รับการตั้งชื่อตามผู้ค้นพบ Uriel Maimon.. เขาอธิบาย
เทคนิคในนิตยสารแพรก ฉบับ #49 (พฤศจิกายน 1996).. Nmap ซึ่งรวมถึง
เทคนิคถูกปล่อยออกมาสองประเด็นต่อมา เทคนิคนี้เหมือนกับ NULL ทุกประการ
FIN และ Xmas จะสแกน ยกเว้นว่าโพรบเป็น FIN/ACK ตาม RFC 793[8] (ทีซีพี),
ควรสร้างแพ็กเก็ต RST เพื่อตอบสนองต่อโพรบดังกล่าวว่าพอร์ตนั้นเปิดอยู่หรือไม่
หรือปิด อย่างไรก็ตาม Uriel สังเกตว่าระบบที่ได้มาจาก BSD จำนวนมากเพียงแค่ปล่อยแพ็กเก็ต
ถ้าพอร์ตเปิดอยู่

--scanflags (สแกน TCP แบบกำหนดเอง)
ผู้ใช้ Nmap ขั้นสูงอย่างแท้จริงไม่จำเป็นต้องจำกัดตัวเองให้อยู่ในประเภทการสแกนกระป๋องที่มีให้
เค้ก --scanflags ตัวเลือกช่วยให้คุณออกแบบการสแกนของคุณเองโดยระบุ TCP . โดยพลการ
ธง.. ปล่อยให้ความคิดสร้างสรรค์ของคุณไหลเวียนไปพร้อมกับหลบเลี่ยงระบบตรวจจับการบุกรุก
ซึ่งผู้ขายเพียงเพจผ่านหน้าคน Nmap เพิ่มกฎเฉพาะ!

เค้ก --scanflags อาร์กิวเมนต์สามารถเป็นค่าแฟล็กตัวเลข เช่น 9 (PSH และ FIN) แต่
การใช้ชื่อสัญลักษณ์ง่ายกว่า เพียงแค่ผสม URG, ACK, PSH,
RST, SYN และ FIN ตัวอย่างเช่น, --scanflags เออร์แก็กพีชอาร์สซินฟิน กำหนดทุกอย่างแม้ว่า
มันไม่มีประโยชน์มากสำหรับการสแกน ลำดับที่ระบุไว้ไม่เกี่ยวข้อง

นอกจากการระบุแฟล็กที่ต้องการแล้ว คุณยังสามารถระบุประเภทการสแกน TCP (เช่น
-สอ or -เอสเอฟ). ประเภทฐานนั้นบอก Nmap วิธีตีความคำตอบ ตัวอย่างเช่น SYN
การสแกนจะถือว่าไม่มีการตอบสนองเพื่อระบุพอร์ตที่ถูกกรอง ในขณะที่การสแกน FIN จะถือว่า
เหมือนกับ open|filtered Nmap จะทำงานเหมือนกับที่ทำกับประเภทการสแกนพื้นฐาน
ยกเว้นว่าจะใช้แฟล็ก TCP ที่คุณระบุแทน ถ้าไม่ระบุฐาน
ชนิด ใช้การสแกน SYN

-sZ (สแกน SCTP คุกกี้ ECHO)
การสแกน SCTP COOKIE ECHO เป็นการสแกน SCTP ขั้นสูง มันใช้ประโยชน์จากความจริง
การใช้งาน SCTP นั้นควรดรอปแพ็กเก็ตที่มี COOKIE ECHO chunks อย่างเงียบๆ
บนพอร์ตที่เปิดอยู่ แต่ส่ง ABORT หากพอร์ตปิดอยู่ ข้อดีของการสแกนนี้
ประเภทคือการสแกนพอร์ตไม่ชัดเจนเท่าการสแกน INIT นอกจากนี้ยังอาจมี
ชุดกฎไฟร์วอลล์ที่ไม่ใช่ stateful บล็อกกลุ่ม INIT แต่ไม่ใช่กลุ่ม COOKIE ECHO อย่า
ถูกหลอกให้คิดว่าสิ่งนี้จะทำให้การสแกนพอร์ตมองไม่เห็น IDS ที่ดีจะเป็น
สามารถตรวจจับการสแกน SCTP COOKIE ECHO ได้เช่นกัน ข้อเสียคือ SCTP COOKIE ECHO สแกน
ไม่สามารถแยกความแตกต่างระหว่างพอร์ตที่เปิดและพอร์ตที่กรองแล้ว ปล่อยให้คุณอยู่ในสถานะ
open|ถูกกรองในทั้งสองกรณี

-sI ซอมบี้ เจ้าภาพ[:โพรพอร์ต] (สแกนเมื่อไม่ได้ใช้งาน)
วิธีการสแกนขั้นสูงนี้ช่วยให้สามารถสแกนพอร์ต TCP ที่มองไม่เห็นของเป้าหมายได้อย่างแท้จริง
(หมายความว่าไม่มีการส่งแพ็กเก็ตไปยังเป้าหมายจากที่อยู่ IP จริงของคุณ) แทน
การโจมตีช่องสัญญาณด้านข้างที่ไม่ซ้ำกันใช้ประโยชน์จากลำดับรหัสการกระจายตัวของ IP ที่คาดการณ์ได้
การสร้างบนโฮสต์ซอมบี้เพื่อรวบรวมข้อมูลเกี่ยวกับพอร์ตที่เปิดอยู่บนเป้าหมาย
ระบบ IDS จะแสดงการสแกนว่ามาจากเครื่องซอมบี้ที่คุณระบุ (ซึ่ง
จะต้องเป็นไปตามเกณฑ์ที่กำหนด) ประเภทการสแกนที่น่าสนใจนี้ซับซ้อนเกินไปที่จะ
อธิบายให้ครบถ้วนในคู่มืออ้างอิงนี้ ดังนั้นฉันจึงเขียนและโพสต์บทความที่ไม่เป็นทางการกับ
ดูรายละเอียดได้ที่ https://nmap.org/book/idlescan.html.

นอกจากจะเป็นการลอบเร้นเป็นพิเศษ (เนื่องจากลักษณะตาบอด) การสแกนประเภทนี้
อนุญาตการทำแผนที่ความสัมพันธ์ที่เชื่อถือได้ตาม IP ระหว่างเครื่อง รายชื่อพอร์ต
แสดงพอร์ตที่เปิดอยู่ จาก มุมมอง of ซอมบี้ เจ้าภาพ ให้คุณลองสแกน a
กำหนดเป้าหมายโดยใช้ซอมบี้ต่างๆ ที่คุณคิดว่าน่าจะเชื่อถือได้ (ผ่านเราเตอร์/packet
กฎการกรอง)

คุณสามารถเพิ่มโคลอนตามด้วยหมายเลขพอร์ตไปยังโฮสต์ซอมบี้ได้หากต้องการตรวจสอบ
พอร์ตเฉพาะบนซอมบี้สำหรับการเปลี่ยนแปลง IP ID มิฉะนั้น Nmap จะใช้พอร์ตมัน
ใช้โดยค่าเริ่มต้นสำหรับ TCP pings (80)

-ดังนั้น (การสแกนโปรโตคอล IP)
การสแกนโปรโตคอล IP ช่วยให้คุณกำหนดได้ว่าโปรโตคอล IP ใด (TCP, ICMP, IGMP เป็นต้น)
ได้รับการสนับสนุนโดยเครื่องเป้าหมาย นี่ไม่ใช่การสแกนพอร์ตในทางเทคนิค เนื่องจากเป็นวงจร
ผ่านหมายเลขโปรโตคอล IP แทนที่จะเป็นหมายเลขพอร์ต TCP หรือ UDP แต่ก็ยังใช้
-p ตัวเลือกเพื่อเลือกหมายเลขโปรโตคอลที่สแกน รายงานผลลัพธ์ภายในค่าปกติ
รูปแบบตารางพอร์ตและแม้กระทั่งใช้เครื่องมือสแกนพื้นฐานเดียวกันกับพอร์ตจริง
วิธีการสแกน ดังนั้นมันจึงใกล้พอที่จะสแกนพอร์ตที่เป็นของที่นี่

นอกจากจะมีประโยชน์ในตัวของมันเองแล้ว การสแกนโปรโตคอลยังแสดงให้เห็นถึงพลังของ
ซอฟต์แวร์โอเพ่นซอร์ส แม้ว่าแนวคิดพื้นฐานจะค่อนข้างเรียบง่าย แต่ฉันไม่ได้คิด
เพื่อเพิ่มหรือรับคำขอใด ๆ สำหรับการทำงานดังกล่าว แล้วในฤดูร้อนของ
2000, เกอร์ฮาร์ด รีเกอร์. คิดไอเดีย เขียนแพตช์ที่ยอดเยี่ยมเพื่อนำไปปฏิบัติ
และส่งไปยังรายชื่อผู้รับจดหมายประกาศ (แล้วเรียก nmap-hackers).. ผม
รวมโปรแกรมแก้ไขนั้นไว้ในแผนผัง Nmap และออกเวอร์ชันใหม่ในวันถัดไป
ซอฟต์แวร์เชิงพาณิชย์ไม่กี่ชิ้นมีผู้ใช้กระตือรือร้นมากพอที่จะออกแบบและ
มีส่วนร่วมในการปรับปรุงของตัวเอง!

การสแกนโปรโตคอลทำงานในลักษณะเดียวกันกับการสแกน UDP แทนที่จะวนซ้ำผ่าน
ฟิลด์หมายเลขพอร์ตของแพ็กเก็ต UDP จะส่งส่วนหัวแพ็กเก็ต IP และวนซ้ำผ่าน
ฟิลด์โปรโตคอล IP แปดบิต ส่วนหัวมักจะว่างเปล่า ไม่มีข้อมูล และไม่
แม้แต่ส่วนหัวที่เหมาะสมสำหรับโปรโตคอลที่อ้างสิทธิ์ ข้อยกเว้นคือ TCP, UDP, ICMP,
SCTP และ IGMP ส่วนหัวโปรโตคอลที่เหมาะสมสำหรับสิ่งเหล่านั้นรวมอยู่ด้วยเนื่องจากบางระบบ
จะไม่ส่งเป็นอย่างอื่นและเนื่องจาก Nmap มีฟังก์ชันในการสร้างอยู่แล้ว
แทนที่จะดูข้อความที่ไม่สามารถเข้าถึงได้พอร์ต ICMP การสแกนโปรโตคอลจะอยู่ที่
มองหา ICMP โปรโตคอล ข้อความที่ไม่สามารถเข้าถึงได้ หาก Nmap ได้รับการตอบสนองใด ๆ
โปรโตคอลจากโฮสต์เป้าหมาย Nmap จะทำเครื่องหมายโปรโตคอลนั้นว่าเปิดอยู่ โปรโตคอล ICMP
ข้อผิดพลาดที่ไม่สามารถเข้าถึงได้ (ประเภท 3, รหัส 2) ทำให้โปรโตคอลถูกทำเครื่องหมายเป็นปิดในขณะที่
พอร์ตที่ไม่สามารถเข้าถึงได้ (ประเภท 3, รหัส 3) ทำเครื่องหมายโปรโตคอลที่เปิดอยู่ ICMP อื่นๆ ไม่สามารถเข้าถึงได้
ข้อผิดพลาด (ประเภท 3, รหัส 0, 1, 9, 10 หรือ 13) ทำให้โปรโตคอลถูกทำเครื่องหมายว่ากรอง
(แม้ว่าพวกเขาจะพิสูจน์ว่า ICMP เปิดอยู่พร้อม ๆ กัน) หากไม่ได้รับการตอบกลับ
หลังจากส่งสัญญาณซ้ำ โปรโตคอลจะถูกทำเครื่องหมายว่าเปิด|กรองแล้ว

-b FTP ถ่ายทอด เจ้าภาพ (FTP สแกนตีกลับ) .
คุณลักษณะที่น่าสนใจของโปรโตคอล FTP (RFC 959[9]) รองรับสิ่งที่เรียกว่า proxy
การเชื่อมต่อ FTP สิ่งนี้ทำให้ผู้ใช้สามารถเชื่อมต่อกับเซิร์ฟเวอร์ FTP หนึ่งตัว จากนั้นขอให้ไฟล์นั้น
ถูกส่งไปยังเซิร์ฟเวอร์บุคคลที่สาม คุณลักษณะดังกล่าวสุกงอมสำหรับการละเมิดในหลายระดับ ดังนั้น
เซิร์ฟเวอร์ส่วนใหญ่หยุดสนับสนุน หนึ่งในการละเมิดที่คุณสมบัตินี้อนุญาตคือ
ทำให้เซิร์ฟเวอร์ FTP สแกนพอร์ตโฮสต์อื่น เพียงแค่ขอให้เซิร์ฟเวอร์ FTP ส่ง a
ไฟล์ไปยังแต่ละพอร์ตที่น่าสนใจของโฮสต์เป้าหมายในทางกลับกัน ข้อความแสดงข้อผิดพลาดจะ
อธิบายว่าพอร์ตเปิดอยู่หรือไม่ นี่เป็นวิธีที่ดีในการเลี่ยงผ่านไฟร์วอลล์
เนื่องจากเซิร์ฟเวอร์ FTP ขององค์กรมักถูกวางไว้ในที่ที่สามารถเข้าถึง
โฮสต์ภายในอื่น ๆ มากกว่าโฮสต์อินเทอร์เน็ตแบบเก่า Nmap รองรับการสแกนตีกลับ FTP
กับ -b ตัวเลือก. มันใช้อาร์กิวเมนต์ของรูปแบบ ชื่อผู้ใช้:รหัสผ่าน@เซิร์ฟเวอร์:พอร์ต.
เซิร์ฟเวอร์ เป็นชื่อหรือที่อยู่ IP ของเซิร์ฟเวอร์ FTP ที่มีช่องโหว่ เช่นเดียวกับ URL ปกติ คุณ
อาจละเว้น ชื่อผู้ใช้:รหัสผ่านซึ่งในกรณีนี้ข้อมูลรับรองการเข้าสู่ระบบแบบไม่ระบุชื่อ (ผู้ใช้: ไม่ระบุชื่อ
ใช้รหัสผ่าน: -wwwuser@) หมายเลขพอร์ต (และโคลอนนำหน้า) อาจถูกละเว้นเป็น
ซึ่งในกรณีนี้ พอร์ต FTP เริ่มต้น (21) บน เซิร์ฟเวอร์ ถูกนำมาใช้.

ช่องโหว่นี้แพร่หลายในปี 1997 เมื่อ Nmap ถูกปล่อยออกมา แต่ส่วนใหญ่แล้ว
แก้ไขแล้ว. เซิร์ฟเวอร์ที่มีช่องโหว่ยังคงอยู่ ดังนั้นจึงคุ้มค่าที่จะลองเมื่ออย่างอื่นล้มเหลว
หากเป้าหมายของคุณข้ามไฟร์วอลล์ ให้สแกนเครือข่ายเป้าหมายเพื่อหาพอร์ต 21 (หรือแม้แต่สำหรับ
บริการ FTP ใด ๆ หากคุณสแกนพอร์ตทั้งหมดด้วยการตรวจจับเวอร์ชัน) และใช้ ftp-bounce
สคริปต์ NSE Nmap จะบอกคุณว่าโฮสต์นั้นมีความเสี่ยงหรือไม่ ถ้าคุณเป็นแค่
พยายามปกปิดรอยทางของคุณ คุณไม่จำเป็นต้องจำกัด (และที่จริงแล้วไม่ควร)
ตัวเองไปยังโฮสต์บนเครือข่ายเป้าหมาย ก่อนที่คุณจะไปสแกนสุ่มอินเทอร์เน็ต
ที่อยู่สำหรับเซิร์ฟเวอร์ FTP ที่มีช่องโหว่ พิจารณาว่าผู้ดูแลระบบอาจไม่เห็นคุณค่าของคุณ
ใช้เซิร์ฟเวอร์ในทางที่ผิดในลักษณะนี้

PORT คุณสมบัติ AND SCAN สั่งซื้อ


นอกจากวิธีการสแกนทั้งหมดที่กล่าวถึงก่อนหน้านี้แล้ว Nmap ยังเสนอตัวเลือกสำหรับ
ระบุพอร์ตที่จะสแกนและลำดับการสแกนเป็นแบบสุ่มหรือตามลำดับ
ตามค่าเริ่มต้น Nmap จะสแกนพอร์ตทั่วไป 1,000 พอร์ตสำหรับแต่ละโปรโตคอล

-p พอร์ต ช่วง (สแกนเฉพาะพอร์ตที่กำหนด) .
ตัวเลือกนี้ระบุพอร์ตที่คุณต้องการสแกนและแทนที่ค่าเริ่มต้น
หมายเลขพอร์ตแต่ละรายการใช้ได้ เช่นเดียวกับช่วงที่คั่นด้วยยัติภังค์ (เช่น 1-1023)
ค่าเริ่มต้นและ/หรือสิ้นสุดของช่วงอาจถูกละเว้น ทำให้ Nmap ใช้ 1 และ
65535 ตามลำดับ จึงระบุได้ -NS- เพื่อสแกนพอร์ตตั้งแต่ 1 ถึง 65535
กำลังสแกนพอร์ตศูนย์ ได้รับอนุญาตหากคุณระบุอย่างชัดเจน สำหรับการสแกนโปรโตคอล IP
(-ดังนั้น) ตัวเลือกนี้ระบุหมายเลขโปรโตคอลที่คุณต้องการสแกนหา (0–255)

เมื่อสแกนโปรโตคอลร่วมกัน (เช่น TCP และ UDP) คุณสามารถระบุ a
โปรโตคอลเฉพาะ โดยนำหน้าหมายเลขพอร์ตโดย T: สำหรับ TCP, U: สำหรับ UDP, S: for
SCTP หรือ P: สำหรับ IP Protocol ตัวระบุจะคงอยู่จนกว่าคุณจะระบุตัวระบุอื่น
ตัวอย่างเช่น อาร์กิวเมนต์ -p ยู:53,111,137,ที:21-25,80,139,8080 จะสแกนพอร์ต UDP 53
111 และ 137 รวมถึงพอร์ต TCP ที่ระบุไว้ โปรดทราบว่าในการสแกนทั้ง UDP และ TCP คุณจะต้อง
ต้องระบุ -SU และประเภทการสแกน TCP อย่างน้อยหนึ่งประเภท (เช่น -NS, -เอสเอฟ,หรือ -เซนต์). ถ้าไม่
ระบุตัวระบุโปรโตคอล หมายเลขพอร์ตจะถูกเพิ่มในรายการโปรโตคอลทั้งหมด พอร์ต
นอกจากนี้ยังสามารถระบุชื่อตามพอร์ตที่อ้างถึงใน
nmap-บริการ คุณสามารถใช้สัญลักษณ์แทน * และ ? ด้วยชื่อ ตัวอย่างเช่น ถึง
สแกน FTP และพอร์ตทั้งหมดที่ชื่อขึ้นต้นด้วย "http" ใช้ -p ftp,http*. ระวัง
เกี่ยวกับการขยายเชลล์และอ้างอาร์กิวเมนต์ไปที่ -p ถ้าไม่แน่ใจ

ช่วงของพอร์ตสามารถล้อมรอบด้วยวงเล็บเหลี่ยมเพื่อระบุพอร์ตภายในนั้น
ช่วงที่ปรากฏใน nmap-services ตัวอย่างเช่น ต่อไปนี้จะสแกนพอร์ตทั้งหมดใน
nmap-services เท่ากับหรือต่ำกว่า 1024: -p [-1024]. ระวังด้วยการขยายเชลล์และ
อ้างอาร์กิวเมนต์ไปที่ -p ถ้าไม่แน่ใจ

--exclude-พอร์ต พอร์ต ช่วง (ไม่รวมพอร์ตที่ระบุจากการสแกน) .
ตัวเลือกนี้ระบุพอร์ตที่คุณต้องการให้ Nmap แยกออกจากการสแกน NS พอร์ต
ช่วง มีการระบุคล้ายกับ -p. สำหรับการสแกนโปรโตคอล IP (-ดังนั้น) ตัวเลือกนี้
ระบุหมายเลขโปรโตคอลที่คุณต้องการยกเว้น (0–255)

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

-F (สแกนแบบเร็ว (จำกัดพอร์ต)) .
ระบุว่าคุณต้องการสแกนพอร์ตน้อยกว่าค่าเริ่มต้น โดยปกติ Nmap จะสแกน
ทั่วไป 1,000 พอร์ตสำหรับโปรโตคอลที่สแกนแต่ละโปรโตคอล กับ -F, ลดเหลือ 100.

Nmap ต้องการไฟล์ nmap-services พร้อมข้อมูลความถี่เพื่อที่จะทราบว่า
พอร์ตเป็นเรื่องธรรมดาที่สุด หากไม่มีข้อมูลความถี่พอร์ต บางที
เนื่องจากการใช้ไฟล์ nmap-services ที่กำหนดเอง Nmap จะสแกนพอร์ตที่มีชื่อทั้งหมด plus
พอร์ต 1-1024 ในกรณีนั้น, -F หมายถึงการสแกนเฉพาะพอร์ตที่มีชื่ออยู่ในบริการ
ไฟล์

-r (ห้ามสุ่มพอร์ต) .
โดยค่าเริ่มต้น Nmap จะสุ่มลำดับพอร์ตที่สแกน (ยกเว้นบางรายการทั่วไป
พอร์ตที่เข้าถึงได้จะถูกย้ายใกล้กับจุดเริ่มต้นด้วยเหตุผลด้านประสิทธิภาพ) นี้
โดยปกติการสุ่มจะเป็นที่ต้องการ แต่คุณสามารถระบุได้ -r สำหรับลำดับ (sorted
จากต่ำสุดไปสูงสุด) การสแกนพอร์ตแทน

--พอร์ตอัตราส่วน อัตราส่วน<ทศนิยม จำนวน ระหว่าง 0 และ 1>
สแกนพอร์ตทั้งหมดในไฟล์ nmap-services ด้วยอัตราส่วนที่มากกว่าที่กำหนด อัตราส่วน
ต้องอยู่ระหว่าง 0.0 ถึง 1.1

--top-พอร์ต n
สแกน n พอร์ตอัตราส่วนสูงสุดที่พบในไฟล์ nmap-services หลังจากไม่รวมพอร์ตทั้งหมด
ระบุโดย --exclude-พอร์ต. n ต้องเป็น 1 หรือมากกว่า

บริการ AND VERSION ตรวจ


ชี้ Nmap ไปที่เครื่องระยะไกลและมันอาจบอกคุณว่าพอร์ต 25/tcp, 80/tcp และ 53/udp
เปิดอยู่ การใช้ nmap-services ฐานข้อมูลประมาณ 2,200 บริการที่รู้จักกันดี นแมป
จะรายงานว่าพอร์ตเหล่านั้นอาจสอดคล้องกับเมลเซิร์ฟเวอร์ (SMTP), เว็บเซิร์ฟเวอร์
(HTTP) และเนมเซิร์ฟเวอร์ (DNS) ตามลำดับ การค้นหานี้มักจะแม่นยำ—กว้างใหญ่
daemons ส่วนใหญ่ที่รอฟังบนพอร์ต TCP 25 แท้จริงแล้วเป็นเมลเซิร์ฟเวอร์ อย่างไรก็ตาม คุณ
ไม่ควรเดิมพันความปลอดภัยของคุณกับสิ่งนี้! ผู้คนสามารถเรียกใช้บริการบนพอร์ตแปลก ๆ..

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

หลังจากพบพอร์ต TCP และ/หรือ UDP โดยใช้วิธีการสแกนอื่น เวอร์ชัน
การตรวจจับสอบปากคำพอร์ตเหล่านั้นเพื่อตรวจสอบเพิ่มเติมเกี่ยวกับสิ่งที่กำลังทำงานอยู่จริง ดิ
nmap-บริการ-โพรบ ฐานข้อมูลมีโพรบสำหรับสอบถามบริการต่างๆและการจับคู่
สำนวนเพื่อรับรู้และแยกวิเคราะห์คำตอบ Nmap พยายามกำหนดโปรโตคอลบริการ
(เช่น FTP, SSH, Telnet, HTTP) ชื่อแอปพลิเคชัน (เช่น ISC BIND, Apache httpd, Solaris
telnetd) หมายเลขเวอร์ชัน ชื่อโฮสต์ ประเภทอุปกรณ์ (เช่น เครื่องพิมพ์ เราเตอร์) ตระกูล OS
(เช่น Windows, Linux) เมื่อเป็นไปได้ Nmap ยังได้รับ Common Platform Enumeration
(ปชป). การแสดงข้อมูลนี้ บางครั้งรายละเอียดเบ็ดเตล็ดเช่นว่า
เซิร์ฟเวอร์ X เปิดให้เชื่อมต่อ เวอร์ชันโปรโตคอล SSH หรือชื่อผู้ใช้ KaZaA เป็น
มีอยู่. แน่นอน บริการส่วนใหญ่ไม่ได้ให้ข้อมูลทั้งหมดนี้ ถ้า Nmap เป็น
คอมไพล์ด้วยการสนับสนุน OpenSSL มันจะเชื่อมต่อกับเซิร์ฟเวอร์ SSL เพื่อสรุปบริการ
ฟังหลังเลเยอร์การเข้ารหัสนั้น.. พอร์ต UDP บางพอร์ตเหลืออยู่ใน open|filtered
สถานะหลังจากการสแกนพอร์ต UDP ไม่สามารถระบุได้ว่าพอร์ตนั้นเปิดอยู่หรือถูกกรอง
การตรวจหาเวอร์ชันจะพยายามกระตุ้นการตอบสนองจากพอร์ตเหล่านี้ (เช่นเดียวกับที่ทำกับ
เปิดพอร์ต) และเปลี่ยนสถานะเพื่อเปิดหากทำได้สำเร็จ เปิด|พอร์ต TCP ที่กรองแล้ว
ได้รับการปฏิบัติเช่นเดียวกัน สังเกตว่า Nmap -A ตัวเลือกช่วยให้สามารถตรวจจับเวอร์ชันอื่น ๆ ได้
สิ่งของ. กระดาษบันทึกการทำงาน การใช้งาน และการปรับแต่งของการตรวจจับเวอร์ชัน
สามารถใช้ได้ที่ https://nmap.org/book/vscan.html.

เมื่อพบบริการ RPC เครื่องเจียร Nmap RPC ถูกใช้โดยอัตโนมัติเพื่อ
กำหนดโปรแกรม RPC และหมายเลขเวอร์ชัน ใช้พอร์ต TCP/UDP ทั้งหมดที่ตรวจพบเป็น
RPC และท่วมพวกเขาด้วยคำสั่ง NULL ของโปรแกรม SunRPC เพื่อพยายามตรวจสอบว่า
เป็นพอร์ต RPC และถ้าใช่ จะให้บริการโปรแกรมและหมายเลขเวอร์ชันใด ดังนั้นคุณสามารถ
รับข้อมูลอย่างมีประสิทธิภาพเช่นเดียวกับ rpcinfo -p แม้ว่า portmapper ของเป้าหมายจะอยู่เบื้องหลังa
ไฟร์วอลล์ (หรือป้องกันโดยห่อ TCP) ปัจจุบัน Decoys ใช้งานไม่ได้กับการสแกน RPC

เมื่อ Nmap ได้รับการตอบสนองจากบริการแต่ไม่สามารถจับคู่กับฐานข้อมูลได้ มัน
พิมพ์ลายนิ้วมือพิเศษและ URL ให้คุณส่งหากทราบแน่นอน
สิ่งที่กำลังทำงานอยู่บนพอร์ต โปรดใช้เวลาสองสามนาทีในการส่งเพื่อให้
การค้นพบของคุณจะเป็นประโยชน์ต่อทุกคน ขอบคุณการส่งเหล่านี้ Nmap มีประมาณ 6,500 รูปแบบ
ตรงกับโปรโตคอลมากกว่า 650 รายการ เช่น SMTP, FTP, HTTP ฯลฯ

การตรวจหาเวอร์ชันเปิดใช้งานและควบคุมด้วยตัวเลือกต่อไปนี้:

-sV (การตรวจจับเวอร์ชัน) .
เปิดใช้งานการตรวจหาเวอร์ชันตามที่กล่าวไว้ข้างต้น หรือคุณสามารถใช้ -Aซึ่ง
เปิดใช้งานการตรวจจับเวอร์ชันเหนือสิ่งอื่นใด

-สอาร์. เป็นนามแฝงสำหรับ -sV. ก่อนมีนาคม 2011 มันถูกใช้เพื่อเปิดใช้งานเครื่องบด RPC
แยกจากการตรวจจับเวอร์ชัน แต่ตอนนี้ตัวเลือกเหล่านี้จะถูกรวมเข้าด้วยกันเสมอ

--ออลพอร์ต (อย่าแยกพอร์ตใด ๆ ออกจากการตรวจจับเวอร์ชัน)
โดยค่าเริ่มต้น การตรวจหาเวอร์ชัน Nmap จะข้ามพอร์ต TCP 9100 เนื่องจากเครื่องพิมพ์บางเครื่องเพียง
พิมพ์อะไรก็ได้ที่ส่งไปยังพอร์ตนั้น ซึ่งนำไปสู่คำขอ HTTP GET หลายสิบหน้า
คำขอเซสชันไบนารี SSL เป็นต้น ลักษณะการทำงานนี้สามารถเปลี่ยนแปลงได้โดยการแก้ไขหรือ
ลบคำสั่ง Exclude ใน nmap-service-probes หรือคุณสามารถระบุ --ออลพอร์ต
เพื่อสแกนพอร์ตทั้งหมดโดยไม่คำนึงถึงคำสั่งยกเว้นใดๆ

--เวอร์ชั่น-ความเข้ม ความรุนแรง (ตั้งค่าความเข้มของการสแกนเวอร์ชัน) .
เมื่อทำการสแกนเวอร์ชัน (-sV) Nmap ส่งชุดของโพรบ ซึ่งแต่ละตัวคือ
กำหนดค่าความหายากระหว่างหนึ่งถึงเก้า โพรบหมายเลขต่ำกว่ามีประสิทธิภาพ
เทียบกับบริการทั่วไปที่หลากหลาย ในขณะที่บริการที่มีหมายเลขสูงกว่านั้นหายาก
มีประโยชน์. ระดับความเข้มระบุว่าควรใช้โพรบใด ยิ่งสูง
จำนวนยิ่งมีโอกาสมากที่จะระบุบริการได้อย่างถูกต้อง อย่างไรก็ตาม สูง
การสแกนความเข้มใช้เวลานานขึ้น ความเข้มต้องอยู่ระหว่าง 0 ถึง 9. ค่าเริ่มต้นคือ
7.. เมื่อโพรบลงทะเบียนไปยังพอร์ตเป้าหมายผ่าน nmap-service-probesports
คำสั่ง โพรบนั้นจะถูกทดลองโดยไม่คำนึงถึงระดับความรุนแรง สิ่งนี้ทำให้มั่นใจได้ว่า
โพรบ DNS จะถูกพยายามกับพอร์ต 53 ที่เปิดอยู่เสมอ โพรบ SSL จะเป็น
ทำกับ 443 เป็นต้น

--รุ่น-ไฟ (เปิดใช้งานโหมดแสง) .
นี่คือนามแฝงที่สะดวกสำหรับ --เวอร์ชั่น-ความเข้ม 2. โหมดแสงนี้ทำให้เวอร์ชัน
สแกนได้เร็วกว่ามาก แต่มีโอกาสน้อยที่จะระบุบริการ

--รุ่น-ทั้งหมด (ลองทุก ๆ โพรบ) .
นามแฝงสำหรับ --เวอร์ชั่น-ความเข้ม 9เพื่อให้แน่ใจว่ามีการพยายามสอบสวนทุก ๆ ครั้ง
กับแต่ละพอร์ต

--รุ่นติดตาม (กิจกรรมสแกนติดตามเวอร์ชั่น) .
สิ่งนี้ทำให้ Nmap พิมพ์ข้อมูลการดีบักอย่างกว้างขวางเกี่ยวกับการสแกนเวอร์ชันที่
ทำ. เป็นส่วนย่อยของสิ่งที่คุณได้รับด้วย --packet-ติดตาม.

OS ตรวจ


หนึ่งในคุณสมบัติที่รู้จักกันดีที่สุดของ Nmap คือการตรวจจับระบบปฏิบัติการระยะไกลโดยใช้ TCP/IP stack
ลายนิ้วมือ Nmap ส่งชุดของแพ็กเก็ต TCP และ UDP ไปยังรีโมตโฮสต์และตรวจสอบ
แทบทุกคำตอบในคำตอบ หลังจากทำการทดสอบหลายสิบครั้ง เช่น TCP ISN
การสุ่มตัวอย่าง การสนับสนุนตัวเลือก TCP และการสั่งซื้อ การสุ่มตัวอย่าง IP ID และขนาดหน้าต่างเริ่มต้น
ตรวจสอบ Nmap เปรียบเทียบผลลัพธ์กับ nmap-os-db ฐานข้อมูลมากกว่า 2,600 OS . ที่รู้จัก
ลายนิ้วมือและพิมพ์รายละเอียดระบบปฏิบัติการหากมีการจับคู่ ลายนิ้วมือแต่ละอันประกอบด้วย
คำอธิบายข้อความแบบอิสระของ OS และการจัดประเภทที่ให้ผู้ขาย
ชื่อ (เช่น Sun) ระบบปฏิบัติการพื้นฐาน (เช่น Solaris) การสร้างระบบปฏิบัติการ (เช่น 10) และประเภทอุปกรณ์
(วัตถุประสงค์ทั่วไป เราเตอร์ สวิตช์ เกมคอนโซล ฯลฯ) ลายนิ้วมือส่วนใหญ่ยังมี Common
การแจงนับแพลตฟอร์ม (CPE) การแสดง เช่น cpe:/o:linux:linux_kernel:2.6.

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

การตรวจจับ OS ช่วยให้สามารถทำการทดสอบอื่นๆ ซึ่งใช้ประโยชน์จากข้อมูลที่รวบรวมได้
ในระหว่างกระบวนการอยู่แล้ว หนึ่งในนั้นคือการจำแนกประเภทการทำนายลำดับ TCP
วิธีนี้จะวัดความยากโดยประมาณในการสร้างการเชื่อมต่อ TCP ปลอมแปลงกับ
โฮสต์ระยะไกล มีประโยชน์สำหรับการใช้ประโยชน์จากความสัมพันธ์ที่เชื่อถือได้ตามแหล่งที่มา-IP (rlogin,
ตัวกรองไฟร์วอลล์ ฯลฯ) หรือเพื่อซ่อนแหล่งที่มาของการโจมตี การปลอมแปลงแบบนี้คือ
ไม่ค่อยได้ดำเนินการอีกต่อไป แต่หลายเครื่องยังคงเสี่ยงต่อมัน ที่เกิดขึ้นจริง
จำนวนความยากขึ้นอยู่กับการสุ่มตัวอย่างทางสถิติและอาจผันผวน โดยทั่วไปแล้ว
ดีกว่าที่จะใช้การจำแนกภาษาอังกฤษเช่น "ความท้าทายที่คู่ควร" หรือ "เรื่องตลกเล็กน้อย"
สิ่งนี้ถูกรายงานในเอาต์พุตปกติแบบละเอียดเท่านั้น (-v) โหมด. เมื่อเปิดใช้งานโหมด verbose
พร้อมด้วย -Oมีการรายงานการสร้างลำดับ IP ID ด้วย เครื่องส่วนใหญ่อยู่ใน
คลาส "ที่เพิ่มขึ้น" ซึ่งหมายความว่าพวกเขาเพิ่มฟิลด์ ID ในส่วนหัว IP สำหรับ
แต่ละแพ็คเก็ตที่พวกเขาส่ง สิ่งนี้ทำให้พวกเขาเสี่ยงต่อข้อมูลขั้นสูงหลายอย่าง
รวบรวมและปลอมแปลงการโจมตี

ข้อมูลเพิ่มเติมอีกเล็กน้อยที่เปิดใช้งานโดยการตรวจจับระบบปฏิบัติการคือการคาดเดาเวลาทำงานของเป้าหมาย
สิ่งนี้ใช้ตัวเลือกการประทับเวลา TCP (RFC 1323[10]) เพื่อเดาเมื่อเครื่องสุดท้าย
รีบูต การเดาอาจไม่ถูกต้องเนื่องจากตัวนับการประทับเวลาไม่ได้เริ่มต้น
เป็นศูนย์หรือเคาน์เตอร์ล้นและพันรอบจึงพิมพ์เฉพาะใน verbose
โหมด.

ดูเอกสารการทำงาน การใช้งาน และการปรับแต่งการตรวจจับ OS ได้ที่
https://nmap.org/book/osdetect.html.

การตรวจหา OS เปิดใช้งานและควบคุมด้วยตัวเลือกต่อไปนี้:

-O (เปิดใช้งานการตรวจจับ OS)
เปิดใช้งานการตรวจจับ OS ตามที่กล่าวไว้ข้างต้น หรือคุณสามารถใช้ -A เพื่อเปิดใช้งานOS
การตรวจจับพร้อมกับสิ่งอื่น ๆ

--osscan-จำกัด (จำกัดการตรวจจับ OS เฉพาะเป้าหมายที่มีแนวโน้ม)
การตรวจจับระบบปฏิบัติการจะมีประสิทธิภาพมากกว่ามากหากมีพอร์ต TCP ที่เปิดอยู่และปิดอย่างน้อยหนึ่งพอร์ต
พบ. ตั้งค่าตัวเลือกนี้และ Nmap จะไม่พยายามตรวจจับระบบปฏิบัติการกับโฮสต์ที่ทำ
ไม่ตรงตามเกณฑ์นี้ ซึ่งจะช่วยประหยัดเวลาได้มากโดยเฉพาะกับ - ป ณ สแกน
ต่อเจ้าภาพมากมาย สำคัญเฉพาะเมื่อมีการร้องขอการตรวจจับระบบปฏิบัติการด้วย -O or -A.

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

--max-os-พยายาม (กำหนดจำนวนสูงสุดของการพยายามตรวจหา OS กับเป้าหมาย)
เมื่อ Nmap ทำการตรวจจับ OS กับเป้าหมายและไม่พบการจับคู่ที่สมบูรณ์แบบ มัน
มักจะพยายามทำซ้ำ โดยค่าเริ่มต้น Nmap จะพยายามห้าครั้งหากเงื่อนไขเป็น
เหมาะสำหรับการส่งลายนิ้วมือของ OS และสองครั้งเมื่อเงื่อนไขไม่ค่อยดี
ระบุค่าที่ต่ำกว่า --max-os-พยายาม ค่า (เช่น 1) เพิ่มความเร็ว Nmap แม้ว่าคุณจะพลาด
ลองใหม่อีกครั้งซึ่งอาจระบุระบบปฏิบัติการได้ หรือมูลค่าสูง
อาจตั้งค่าให้ลองใหม่ได้อีกเมื่อเงื่อนไขเอื้ออำนวย นี้หายาก
เสร็จสิ้น ยกเว้นการสร้างลายนิ้วมือที่ดีกว่าสำหรับการส่งและรวมเข้ากับ
ฐานข้อมูลระบบปฏิบัติการ Nmap

แผนที่ สคริปต์ เครื่องยนต์ (NSE)


Nmap Scripting Engine (NSE) เป็นหนึ่งในคุณสมบัติที่ทรงพลังและยืดหยุ่นที่สุดของ Nmap มัน
อนุญาตให้ผู้ใช้เขียน (และแชร์) สคริปต์อย่างง่าย (โดยใช้เครื่องหมาย Lua การเขียนโปรแกรม language[11]
) เพื่อทำให้งานเครือข่ายที่หลากหลายเป็นแบบอัตโนมัติ สคริปต์เหล่านั้นทำงานแบบขนาน
ด้วยความเร็วและประสิทธิภาพที่คุณคาดหวังจาก Nmap ผู้ใช้สามารถพึ่งพาการเติบโตและ
ชุดสคริปต์ที่หลากหลายที่แจกจ่ายด้วย Nmap หรือเขียนสคริปต์เองเพื่อตอบสนองความต้องการที่กำหนดเอง

งานที่เรามีในใจในการสร้างระบบ ได้แก่ การค้นพบเครือข่าย และอื่นๆ
การตรวจจับเวอร์ชันที่ซับซ้อน การตรวจจับช่องโหว่ NSE ใช้ได้แม้กระทั่งสำหรับ
การแสวงประโยชน์จากช่องโหว่

เพื่อสะท้อนถึงการใช้งานที่แตกต่างกันเหล่านั้นและเพื่อลดความซับซ้อนในการเลือกสคริปต์ที่จะเรียกใช้แต่ละอัน
สคริปต์มีฟิลด์ที่เชื่อมโยงกับหมวดหมู่ตั้งแต่หนึ่งประเภทขึ้นไป ปัจจุบันกำหนด
หมวดหมู่คือ auth, broadcast, default การค้นพบ, dos, การหาประโยชน์, ภายนอก, fuzzer,
ล่วงล้ำ มัลแวร์ ปลอดภัย เวอร์ชัน และช่องโหว่ ทั้งหมดนี้อธิบายไว้ที่
https://nmap.org/book/nse-usage.html#nse-categories.

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

Nmap Scripting Engine มีรายละเอียดที่ https://nmap.org/book/nse.html และเป็น
ควบคุมโดยตัวเลือกต่อไปนี้:

-สค .
ดำเนินการสแกนสคริปต์โดยใช้ชุดสคริปต์เริ่มต้น เทียบเท่ากับ
--script=ค่าเริ่มต้น. สคริปต์บางบทในหมวดหมู่นี้ถือว่าล่วงล้ำและ
ไม่ควรรันกับเครือข่ายเป้าหมายโดยไม่ได้รับอนุญาต

--สคริปต์ ชื่อไฟล์|หมวดหมู่|ไดเรกทอรี|การแสดงออก- .
เรียกใช้การสแกนสคริปต์โดยใช้รายการชื่อไฟล์ หมวดหมู่สคริปต์ และ . ที่คั่นด้วยเครื่องหมายจุลภาค
ไดเรกทอรี แต่ละองค์ประกอบในรายการอาจเป็นนิพจน์บูลีนที่อธิบาย a
ชุดสคริปต์ที่ซับซ้อนมากขึ้น แต่ละองค์ประกอบจะถูกตีความก่อนว่าเป็นนิพจน์ จากนั้น
เป็นหมวดหมู่ และสุดท้ายเป็นชื่อไฟล์หรือไดเร็กทอรี

มีคุณลักษณะพิเศษสองประการสำหรับผู้ใช้ขั้นสูงเท่านั้น หนึ่งคือการนำหน้าชื่อสคริปต์
และนิพจน์ที่มี + เพื่อบังคับให้รันแม้ว่าปกติจะไม่ (เช่น
ไม่พบบริการที่เกี่ยวข้องในพอร์ตเป้าหมาย) อีกอย่างคือข้อโต้แย้ง
all อาจใช้เพื่อระบุทุกสคริปต์ในฐานข้อมูลของ Nmap ระวังตัวด้วย
เพราะ NSE มีสคริปต์อันตราย เช่น การเอารัดเอาเปรียบ การพิสูจน์ตัวตนด้วยกำลังเดรัจฉาน
แครกเกอร์และการปฏิเสธการโจมตีบริการ

ชื่อไฟล์และไดเร็กทอรีอาจเป็นแบบสัมพัทธ์หรือแบบสัมบูรณ์ ใช้ชื่อที่แน่นอน
โดยตรง. เส้นทางสัมพัทธ์ถูกค้นหาในสคริปต์ของแต่ละสถานที่ต่อไปนี้
จนกระทั่งพบ: --ดาต้าดีร์
$NMPDIR.
~/.nmap (ไม่ได้ค้นหาบน Windows)
หน้าหลัก\AppData\Roaming\nmap (บน Windows เท่านั้น)
ไดเร็กทอรีที่มีไฟล์เรียกทำงาน nmap
ไดเร็กทอรีที่มีไฟล์เรียกทำงาน nmap ตามด้วย ../share/nmap
นมปทท.
ไดเร็กทอรีปัจจุบัน

เมื่อตั้งชื่อไดเร็กทอรีแล้ว Nmap จะโหลดทุกไฟล์ในไดเร็กทอรีที่ชื่อลงท้ายด้วย
ด้วย .nse ไฟล์อื่น ๆ ทั้งหมดจะถูกละเว้น และไดเร็กทอรีจะไม่ถูกค้นหาซ้ำ ๆ เมื่อไหร่
ให้ชื่อไฟล์ ไม่จำเป็นต้องมีนามสกุล .nse มันจะถูกเพิ่ม
โดยอัตโนมัติหากจำเป็น สคริปต์ Nmap ถูกเก็บไว้ในไดเร็กทอรีย่อยสคริปต์ของNmap
ไดเร็กทอรีข้อมูลโดยค่าเริ่มต้น (ดู https://nmap.org/book/data-files.html). เพื่อประสิทธิภาพ
สคริปต์ถูกสร้างดัชนีในฐานข้อมูลที่เก็บไว้ใน scripts/script.db, ซึ่งแสดงรายการหมวดหมู่
หรือหมวดหมู่ที่แต่ละสคริปต์เป็นของ เมื่ออ้างถึงสคริปต์จาก script.db โดย
ชื่อ คุณสามารถใช้ไวด์การ์ด '*' แบบเชลล์ได้

nmap --สคริปต์ "http-*"
โหลดสคริปต์ทั้งหมดที่ชื่อขึ้นต้นด้วย http- เช่น http-auth และ http-open-proxy
อาร์กิวเมนต์เพื่อ --สคริปต์ ต้องอยู่ในเครื่องหมายคำพูดเพื่อป้องกันไวด์การ์ดจากเชลล์

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

nmap --สคริปต์ "ไม่ ล่วงล้ำ"
โหลดทุกสคริปต์ยกเว้นในหมวดหมู่ที่ล่วงล้ำ

nmap --สคริปต์ "ค่าเริ่มต้น or ปลอดภัย"
ซึ่งเทียบเท่ากับ nmap --สคริปต์ "ค่าเริ่มต้น ปลอดภัย". มันโหลดสคริปต์ทั้งหมด
ที่อยู่ในประเภทเริ่มต้นหรือประเภทปลอดภัยหรือทั้งสองอย่าง

nmap --สคริปต์ "ค่าเริ่มต้น และ ปลอดภัย"
โหลดสคริปต์เหล่านั้นที่อยู่ใน ทั้งสอง หมวดหมู่เริ่มต้นและปลอดภัย

nmap --สคริปต์ "(ค่าเริ่มต้น or ปลอดภัย or ล่วงล้ำ) และ ไม่ http-*"
โหลดสคริปต์ในหมวดหมู่เริ่มต้น ปลอดภัย หรือล่วงล้ำ ยกเว้นผู้ที่มี
ชื่อขึ้นต้นด้วย http-

--script-args n1=v1,n2={n3=v3},n4={v4,v5} .
ให้คุณระบุอาร์กิวเมนต์ให้กับสคริปต์ NSE อาร์กิวเมนต์เป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคของ
ชื่อ=คู่ค่า ชื่อและค่าอาจเป็นสตริงที่ไม่มีช่องว่างหรือ
อักขระ '{', '}', '=' หรือ ',' เมื่อต้องการรวมหนึ่งในอักขระเหล่านี้ในสตริง
ใส่สตริงในเครื่องหมายคำพูดเดี่ยวหรือคู่ ภายในสตริงที่ยกมา '\' หนี a
อ้าง. แบ็กสแลชใช้เพื่อยกเว้นเครื่องหมายคำพูดในกรณีพิเศษนี้เท่านั้น ทั้งหมด
กรณีอื่น ๆ แบ็กสแลชตีความตามตัวอักษร ค่าอาจเป็นตารางที่แนบมาด้วย
ใน {} เช่นเดียวกับใน Lua ตารางอาจมีค่าสตริงอย่างง่ายหรือค่าชื่อมากกว่า
คู่รวมทั้งตารางที่ซ้อนกัน สคริปต์จำนวนมากมีคุณสมบัติตามข้อโต้แย้งของพวกเขาด้วยสคริปต์
ชื่อ เช่นเดียวกับใน xmpp-info.server_name คุณสามารถใช้เวอร์ชันเต็มที่มีคุณสมบัติครบถ้วนเพื่อส่งผลกระทบ
เฉพาะสคริปต์ที่ระบุ หรือคุณอาจส่งผ่านเวอร์ชันที่ไม่ผ่านเกณฑ์ (server_name in
กรณีนี้) เพื่อส่งผลต่อสคริปต์ทั้งหมดโดยใช้ชื่ออาร์กิวเมนต์นั้น สคริปต์จะตรวจสอบก่อน
สำหรับชื่ออาร์กิวเมนต์แบบเต็ม (ชื่อที่ระบุในเอกสารประกอบ) ก่อน
ยอมรับชื่ออาร์กิวเมนต์ที่ไม่มีเงื่อนไข ตัวอย่างที่ซับซ้อนของอาร์กิวเมนต์สคริปต์คือ
--script-args
'user=foo,pass=",{}=bar",whois={whodb=nofollow+ripe},xmpp-info.server_name=localhost'.
พอร์ทัลเอกสาร NSE ออนไลน์ที่ https://nmap.org/nsedoc/ แสดงรายการข้อโต้แย้ง
ที่แต่ละสคริปต์ยอมรับ

--script-args-ไฟล์ ชื่อไฟล์ .
ให้คุณโหลดอาร์กิวเมนต์ไปยังสคริปต์ NSE จากไฟล์ อาร์กิวเมนต์ใด ๆ บนบรรทัดคำสั่ง
แทนที่รายการในไฟล์ ไฟล์อาจเป็นพาธสัมบูรณ์ หรือพาธที่สัมพันธ์กับ
เส้นทางการค้นหาปกติของ Nmap (NMAPDIR เป็นต้น) อาร์กิวเมนต์สามารถคั่นด้วยเครื่องหมายจุลภาคหรือ
แยกบรรทัดใหม่ แต่มิฉะนั้นให้ปฏิบัติตามกฎเดียวกันกับสำหรับ --script-argsโดยไม่ต้อง
ต้องการการอ้างอิงพิเศษและการหลบหนี เนื่องจากไม่ได้แยกวิเคราะห์โดยเชลล์

--script-ความช่วยเหลือ ชื่อไฟล์|หมวดหมู่|ไดเรกทอรี|การแสดงออก|ทั้งหมด[,...] .
แสดงความช่วยเหลือเกี่ยวกับสคริปต์ สำหรับแต่ละสคริปต์ที่ตรงกับข้อกำหนดที่กำหนด Nmap
พิมพ์ชื่อสคริปต์ หมวดหมู่ และคำอธิบาย ข้อมูลจำเพาะคือ
เหมือนกับที่ . ยอมรับ --สคริปต์; ตัวอย่างเช่น หากคุณต้องการความช่วยเหลือเกี่ยวกับ
สคริปต์ ftp-anon คุณจะเรียกใช้ nmap --script-ความช่วยเหลือ ftp-อานนท์. นอกจากจะได้รับ
ช่วยเหลือสำหรับแต่ละสคริปต์ คุณสามารถใช้สิ่งนี้เพื่อดูตัวอย่างว่าสคริปต์ใดที่จะเรียกใช้
สำหรับข้อกำหนด เช่น กับ nmap --script-ความช่วยเหลือ ผิดนัด.

--script-ติดตาม .
ตัวเลือกนี้ทำอะไรก็ได้ --packet-ติดตาม ทำ ISO ที่สูงกว่าเพียงหนึ่งชั้น ถ้าตัวเลือกนี้
มีการระบุการสื่อสารขาเข้าและขาออกทั้งหมดที่ดำเนินการโดยสคริปต์จะถูกพิมพ์
ข้อมูลที่แสดงรวมถึงโปรโตคอลการสื่อสาร แหล่งที่มา เป้าหมาย
และข้อมูลที่ส่ง ถ้ามากกว่า 5% ของข้อมูลที่ส่งทั้งหมดไม่สามารถพิมพ์ได้
จากนั้นเอาต์พุตการติดตามจะอยู่ในรูปแบบดัมพ์ฐานสิบหก ระบุ --packet-ติดตาม ช่วยให้
การติดตามสคริปต์ด้วย

--script-updatedb .
ตัวเลือกนี้จะอัปเดตฐานข้อมูลสคริปต์ที่พบใน scripts/script.db ซึ่งใช้โดย
Nmap เพื่อกำหนดสคริปต์และหมวดหมู่เริ่มต้นที่มีอยู่ จำเป็นเท่านั้น
เพื่ออัปเดตฐานข้อมูลหากคุณได้เพิ่มหรือลบสคริปต์ NSE จากค่าเริ่มต้น
ไดเร็กทอรี scripts หรือหากคุณเปลี่ยนหมวดหมู่ของสคริปต์ใด ๆ ตัวเลือกนี้คือ
โดยทั่วไปใช้ด้วยตัวเอง: nmap --script-updatedb.

TIMING AND ประสิทธิภาพ


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

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

บางตัวเลือกยอมรับพารามิเตอร์เวลา โดยค่าเริ่มต้นจะระบุเป็นวินาที แม้ว่าคุณ
สามารถผนวก 'ms', 's', 'm' หรือ 'h' ต่อท้ายค่าเพื่อระบุมิลลิวินาที, วินาที, นาที,
หรือชั่วโมง ดังนั้น --host-หมดเวลา ข้อโต้แย้ง 900000ms, 900, 900s และ 15m ทั้งหมดทำเช่นเดียวกัน
สิ่ง.

--min-hostgroup จำนวนโฮสต์; --max-hostgroup จำนวนโฮสต์ (ปรับขนาดกลุ่มการสแกนแบบขนาน) .
Nmap มีความสามารถในการสแกนพอร์ตหรือสแกนเวอร์ชันหลายโฮสต์พร้อมกัน นแมป
ทำได้โดยแบ่งพื้นที่ IP เป้าหมายออกเป็นกลุ่ม แล้วสแกนกลุ่มหนึ่งที่a
เวลา. โดยทั่วไป กลุ่มใหญ่จะมีประสิทธิภาพมากกว่า ข้อเสียคือโฮสต์ผลลัพธ์
ไม่สามารถให้บริการได้จนกว่าทั้งกลุ่มจะเสร็จสิ้น ดังนั้นถ้า Nmap เริ่มต้นด้วย a
ขนาดกลุ่ม 50 ผู้ใช้จะไม่ได้รับรายงานใด ๆ (ยกเว้นการปรับปรุง
เสนอในโหมด verbose) จนกว่า 50 โฮสต์แรกจะเสร็จสมบูรณ์

โดยค่าเริ่มต้น Nmap ใช้แนวทางประนีประนอมกับข้อขัดแย้งนี้ มันเริ่มต้นด้วย a
ขนาดกลุ่มต่ำถึงห้าดังนั้นผลลัพธ์แรกมาอย่างรวดเร็วแล้วเพิ่ม
จัดกลุ่มได้สูงถึง 1024 ตัวเลขเริ่มต้นที่แน่นอนขึ้นอยู่กับตัวเลือกที่ให้ไว้
ด้วยเหตุผลด้านประสิทธิภาพ Nmap ใช้ขนาดกลุ่มที่ใหญ่ขึ้นสำหรับการสแกน UDP หรือ TCP ไม่กี่พอร์ต

เมื่อกำหนดขนาดกลุ่มสูงสุดด้วย --max-hostgroup, Nmap จะไม่มีวันเกิน
ขนาดนั้น ระบุขนาดขั้นต่ำด้วย --min-hostgroup และ Nmap จะพยายามรักษากลุ่ม
ขนาดที่สูงกว่าระดับนั้น Nmap อาจต้องใช้กลุ่มที่เล็กกว่าที่คุณระบุหากมี
มีโฮสต์เป้าหมายไม่เพียงพอบนอินเทอร์เฟซที่กำหนดเพื่อให้เป็นไปตามที่ระบุ
ขั้นต่ำ ทั้งสองอาจตั้งค่าให้ขนาดกลุ่มอยู่ในช่วงที่กำหนด แม้ว่าสิ่งนี้
ไม่ค่อยเป็นที่ต้องการ

ตัวเลือกเหล่านี้ไม่มีผลระหว่างขั้นตอนการค้นหาโฮสต์ของการสแกน นี้
รวมถึงการสแกน ping ธรรมดา (-ส). การค้นพบโฮสต์ใช้งานได้กับโฮสต์กลุ่มใหญ่เสมอ
เพื่อปรับปรุงความเร็วและความแม่นยำ

การใช้งานหลักของตัวเลือกเหล่านี้คือการระบุขนาดกลุ่มขั้นต่ำที่ใหญ่เพื่อให้
การสแกนแบบเต็มทำงานเร็วขึ้น ตัวเลือกทั่วไปคือ 256 เพื่อสแกนเครือข่ายในขนาด Class C
ชิ้น สำหรับการสแกนที่มีพอร์ตจำนวนมาก การเกินจำนวนนั้นไม่น่าจะช่วยอะไรได้มาก
สำหรับการสแกนหมายเลขพอร์ตเพียงไม่กี่รายการ ขนาดกลุ่มโฮสต์ที่ 2048 ขึ้นไปอาจมีประโยชน์

--นาที-ขนาน ตัวเลข; --max-ขนาน ตัวเลข (ปรับโพรบขนาน).
ตัวเลือกเหล่านี้ควบคุมจำนวนโพรบทั้งหมดที่อาจคงค้างสำหรับโฮสต์
กลุ่ม. ใช้สำหรับการสแกนพอร์ตและการค้นหาโฮสต์ โดยค่าเริ่มต้น Nmap จะคำนวณ
ความขนานในอุดมคติที่เปลี่ยนแปลงตลอดเวลาโดยพิจารณาจากประสิทธิภาพของเครือข่าย หากแพ็กเก็ตถูก
ลดลง Nmap ช้าลงและอนุญาตให้มีการสอบสวนที่โดดเด่นน้อยลง หมายเลขโพรบในอุดมคติ
ค่อยๆ เพิ่มขึ้นเมื่อเครือข่ายพิสูจน์ตัวเองว่าคู่ควร ตัวเลือกเหล่านี้วางขั้นต่ำหรือ
ขอบเขตสูงสุดของตัวแปรนั้น โดยค่าเริ่มต้น ความขนานในอุดมคติสามารถลดลงเหลือหนึ่ง if
เครือข่ายพิสูจน์แล้วว่าไม่น่าเชื่อถือและเพิ่มขึ้นเป็นหลายร้อยในสภาพที่สมบูรณ์

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

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

--min-rtt-หมดเวลา เวลา, --max-rtt-หมดเวลา เวลา, --initial-rtt-หมดเวลา เวลา (ปรับโพรบ
หมดเวลา) .
Nmap รักษาค่าการหมดเวลาทำงานเพื่อกำหนดระยะเวลาที่จะรอ a
การตอบสนองของโพรบก่อนที่จะยกเลิกหรือส่งสัญญาณโพรบซ้ำ คำนวณตามนี้
เกี่ยวกับเวลาตอบสนองของการสอบสวนครั้งก่อน

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

ระบุค่าที่ต่ำกว่า --max-rtt-หมดเวลา และ --initial-rtt-หมดเวลา กว่าค่าเริ่มต้นสามารถ
ลดเวลาในการสแกนลงอย่างมาก นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งสำหรับ pingless (- ป ณ) สแกนและ
ที่ต่อต้านเครือข่ายที่มีการกรองอย่างหนัก อย่าก้าวร้าวเกินไป การสแกนสามารถ
อาจใช้เวลานานขึ้นหากคุณระบุค่าที่ต่ำจนทำให้โพรบจำนวนมากหมดเวลา
และส่งสัญญาณซ้ำในขณะที่การตอบสนองอยู่ในระหว่างการขนส่ง

หากโฮสต์ทั้งหมดอยู่ในเครือข่ายท้องถิ่น 100 มิลลิวินาที (--max-rtt-หมดเวลา 100ms) คือ
มูลค่าเชิงรุกที่เหมาะสม หากเกี่ยวข้องกับการกำหนดเส้นทาง ให้ ping โฮสต์บนเครือข่าย
อันดับแรกด้วยยูทิลิตี้ ping ของ ICMP หรือกับตัวสร้างแพ็กเก็ตแบบกำหนดเอง เช่น Nping นั่น
มีแนวโน้มที่จะผ่านไฟร์วอลล์มากขึ้น ดูเวลาเดินทางไปกลับสูงสุดจาก
สิบแพ็คเก็ตหรือมากกว่านั้น คุณอาจต้องการเพิ่มเป็นสองเท่าสำหรับ --initial-rtt-หมดเวลา และ
สามหรือสี่เท่าสำหรับ --max-rtt-หมดเวลา. โดยทั่วไปฉันไม่ได้ตั้งค่าสูงสุด
RTT ต่ำกว่า 100 ms ไม่ว่าเวลา ping จะเป็นอย่างไร และฉันก็ไม่เกิน 1000 มิลลิวินาที

--min-rtt-หมดเวลา เป็นตัวเลือกที่ไม่ค่อยได้ใช้ซึ่งอาจเป็นประโยชน์เมื่อเครือข่ายเป็นเช่นนั้น
ไม่น่าเชื่อถือแม้แต่ค่าเริ่มต้นของ Nmap ก็ก้าวร้าวเกินไป เนื่องจาก Nmap ลดขนาด .เท่านั้น
หมดเวลาลงให้น้อยที่สุดเมื่อเครือข่ายดูเหมือนจะเชื่อถือได้ ความต้องการนี้คือ
ผิดปกติและควรรายงานเป็นข้อบกพร่องของรายการส่งเมล nmap-dev..

--max-ลองใหม่ ตัวเลข (ระบุจำนวนสูงสุดของการส่งสัญญาณซ้ำของโพรบสแกนพอร์ต)
เมื่อ Nmap ไม่ได้รับการตอบสนองต่อโพรบสแกนพอร์ต อาจหมายความว่าพอร์ตนั้น
กรอง หรือบางทีโพรบหรือการตอบสนองอาจหายไปในเครือข่าย ยังเป็น
เป็นไปได้ว่าโฮสต์เป้าหมายเปิดใช้งานการจำกัดอัตราที่บล็อก .ชั่วคราว
การตอบสนอง. ดังนั้น Nmap จึงลองอีกครั้งโดยส่งโพรบเริ่มต้นอีกครั้ง ถ้า Nmap ตรวจพบ
เครือข่ายมีความน่าเชื่อถือต่ำ อาจลองหลายครั้งก่อนที่จะเลิกใช้พอร์ต ในขณะที่
นี้มีประโยชน์ต่อความแม่นยำ และยังยืดเวลาการสแกนอีกด้วย เมื่อประสิทธิภาพเป็นสิ่งสำคัญ
การสแกนอาจเร็วขึ้นโดยการจำกัดจำนวนการส่งสัญญาณซ้ำที่อนุญาต คุณยังสามารถ
ระบุ --max-ลองใหม่ 0 เพื่อป้องกันการส่งสัญญาณซ้ำ แม้ว่าจะเป็นเพียง
แนะนำสำหรับสถานการณ์เช่นการสำรวจอย่างไม่เป็นทางการที่พอร์ตพลาดเป็นครั้งคราวและ
โฮสต์เป็นที่ยอมรับ

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

--host-หมดเวลา เวลา (ยอมแพ้โฮสต์เป้าหมายที่ช้า) .
เจ้าของที่พักบางคนใช้ a ยาว เวลาในการสแกน อาจเป็นเพราะประสิทธิภาพไม่ดีหรือ
ฮาร์ดแวร์หรือซอฟต์แวร์เครือข่ายที่ไม่น่าเชื่อถือ การจำกัดอัตราแพ็กเก็ต หรือข้อจำกัด
ไฟร์วอลล์ โฮสต์ที่สแกนไม่กี่เปอร์เซ็นต์ที่ช้าที่สุดสามารถกินส่วนใหญ่ของ
เวลาสแกน บางครั้งก็เป็นการดีที่สุดที่จะลดความสูญเสียของคุณและข้ามโฮสต์เหล่านั้นในตอนแรก
ระบุ --host-หมดเวลา ด้วยระยะเวลาสูงสุดที่คุณยินดีจะรอ สำหรับ
ตัวอย่าง ระบุ 30m เพื่อให้แน่ใจว่า Nmap จะไม่เสียเวลามากกว่าครึ่งชั่วโมงในa
โฮสต์เดียว โปรดทราบว่า Nmap อาจสแกนโฮสต์อื่นในเวลาเดียวกันในระหว่างนั้น
ครึ่งชั่วโมงจึงไม่ใช่การสูญเสียที่สมบูรณ์ โฮสต์ที่หมดเวลาจะถูกข้าม ไม่มีพอร์ต
ตาราง การตรวจหา OS หรือผลการตรวจหาเวอร์ชันจะถูกพิมพ์สำหรับโฮสต์นั้น

--สแกน-ล่าช้า เวลา; --max-สแกน-ล่าช้า เวลา (ปรับดีเลย์ระหว่างโพรบ) .
ตัวเลือกนี้ทำให้ Nmap รออย่างน้อยตามระยะเวลาที่กำหนดระหว่างแต่ละโพรบ
มันส่งไปยังโฮสต์ที่กำหนด ซึ่งจะเป็นประโยชน์อย่างยิ่งในกรณีที่มีการจำกัดอัตรา..
เครื่อง Solaris (และอื่น ๆ อีกมากมาย) มักจะตอบสนองต่อแพ็คเก็ตโพรบสแกน UDP
ด้วยข้อความ ICMP หนึ่งข้อความต่อวินาที มากกว่าที่ Nmap ส่งมาจะเป็น
สิ้นเปลือง อา --สแกน-ล่าช้า ของ 1s จะทำให้ Nmap อยู่ในอัตราที่ช้านั้น Nmap พยายามตรวจจับ
อัตราการจำกัดและปรับการหน่วงเวลาการสแกนให้เหมาะสม แต่ก็ไม่เสียหายที่จะระบุ
อย่างชัดแจ้งหากคุณทราบแล้วว่าอัตราใดดีที่สุด

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

การใช้งานอื่นของ --สแกน-ล่าช้า คือการหลบเลี่ยงการตรวจจับการบุกรุกตามเกณฑ์และ
ระบบป้องกัน (IDS/IPS)..

--นาทีอัตรา จำนวน; --อัตราสูงสุด จำนวน (ควบคุมอัตราการสแกนโดยตรง) .
การจับเวลาแบบไดนามิกของ Nmap ทำงานได้ดีในการค้นหาความเร็วที่เหมาะสมที่จะ
สแกน อย่างไรก็ตาม บางครั้งคุณอาจทราบอัตราการสแกนที่เหมาะสมสำหรับa
หรือคุณอาจต้องรับประกันว่าการสแกนจะเสร็จสิ้นภายในระยะเวลาหนึ่ง
หรือบางทีคุณต้องป้องกันไม่ให้ Nmap สแกนเร็วเกินไป ดิ --นาทีอัตรา และ --อัตราสูงสุด
ตัวเลือกได้รับการออกแบบสำหรับสถานการณ์เหล่านี้

เมื่อราคาของ --นาทีอัตรา มีตัวเลือกให้ Nmap จะพยายามส่งแพ็กเก็ตให้เร็วที่สุด
หรือเร็วกว่าอัตราที่กำหนด อาร์กิวเมนต์เป็นจำนวนจริงบวกแทน a
อัตราแพ็กเก็ตเป็นแพ็กเก็ตต่อวินาที ตัวอย่างเช่น การระบุ --นาทีอัตรา 300 หมายความว่า
Nmap จะพยายามรักษาอัตราการส่งที่หรือสูงกว่า 300 แพ็กเก็ตต่อวินาที ระบุ
อัตราขั้นต่ำไม่ได้ทำให้ Nmap ทำงานเร็วขึ้นหากเงื่อนไขรับประกัน

ในทำนองเดียวกัน --อัตราสูงสุด จำกัดอัตราการส่งของการสแกนให้สูงสุดที่กำหนด ใช้ --อัตราสูงสุด
100ตัวอย่างเช่น เพื่อจำกัดการส่ง 100 แพ็กเก็ตต่อวินาทีบนเครือข่ายที่รวดเร็ว ใช้
--อัตราสูงสุด 0.1 สำหรับการสแกนช้าหนึ่งแพ็กเก็ตทุกๆ สิบวินาที ใช้ --นาทีอัตรา และ
--อัตราสูงสุด ร่วมกันเพื่อรักษาอัตราให้อยู่ในช่วงที่กำหนด

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

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

การกำหนดอัตราขั้นต่ำควรทำด้วยความระมัดระวัง สแกนได้เร็วกว่าที่เครือข่ายทำได้
การสนับสนุนอาจทำให้สูญเสียความแม่นยำ ในบางกรณี การใช้อัตราที่เร็วกว่าจะทำให้
สแกนเทค อีกต่อไป กว่าที่มันจะมีอัตราที่ช้ากว่า นี่เป็นเพราะการปรับตัวของ Nmap
อัลกอริธึมการส่งสัญญาณซ้ำจะตรวจจับความแออัดของเครือข่ายที่เกิดจากมากเกินไป
อัตราการสแกนและเพิ่มจำนวนการส่งสัญญาณซ้ำเพื่อปรับปรุงความแม่นยำ
ดังนั้นแม้ว่าแพ็กเก็ตจะถูกส่งในอัตราที่สูงกว่า แต่แพ็กเก็ตทั้งหมดจะถูกส่งโดยรวมมากขึ้น หมวก
จำนวนการส่งสัญญาณซ้ำด้วย --max-ลองใหม่ ตัวเลือกหากคุณต้องการตั้งค่า an
ขีดจำกัดสูงสุดของเวลาสแกนทั้งหมด

--defeat-rst-อัตราจำกัด .
โฮสต์จำนวนมากมีการจำกัดอัตราการใช้งานเป็นเวลานาน เพื่อลดจำนวนข้อความแสดงข้อผิดพลาด ICMP
(เช่นข้อผิดพลาดพอร์ตที่ไม่สามารถเข้าถึงได้) ที่พวกเขาส่ง ขณะนี้บางระบบใช้อัตราที่คล้ายกัน
จำกัดแพ็กเก็ต RST (รีเซ็ต) ที่สร้างขึ้น ซึ่งจะทำให้ Nmap ช้าลงอย่างมาก
เนื่องจากมีการปรับระยะเวลาเพื่อให้สะท้อนถึงขีดจำกัดอัตราดังกล่าว คุณสามารถบอกให้ Nmap เพิกเฉยได้
ขีด จำกัด อัตราเหล่านั้น (สำหรับการสแกนพอร์ตเช่น SYN scan ซึ่ง ทำไม่ได้ รักษาไม่ตอบสนอง
พอร์ตที่เปิดอยู่) โดยระบุ --defeat-rst-อัตราจำกัด.

การใช้ตัวเลือกนี้อาจทำให้ความแม่นยำลดลง เนื่องจากพอร์ตบางพอร์ตอาจไม่ตอบสนอง
เนื่องจาก Nmap ไม่ได้รอนานพอสำหรับการตอบสนอง RST ที่จำกัดอัตรา ด้วยการสแกน SYN
การไม่ตอบสนองส่งผลให้พอร์ตถูกติดฉลากกรองมากกว่าปิด
สถานะที่เราเห็นเมื่อได้รับแพ็กเก็ต RST ตัวเลือกนี้มีประโยชน์เมื่อคุณใส่ใจเท่านั้น
เกี่ยวกับพอร์ตที่เปิดอยู่ และการแยกความแตกต่างระหว่างพอร์ตที่ปิดและพอร์ตที่กรองแล้วไม่คุ้มกับ
เวลาพิเศษ.

--nsock-เครื่องยนต์ epoll|kqueue|โพล|select .
บังคับใช้เอ็นจิ้นมัลติเพล็กซ์ nsock IO ที่กำหนด เพียง เลือก(2) ใช้ทางเลือกสำรอง
เครื่องยนต์รับประกันว่าจะพร้อมใช้งานในระบบของคุณ เครื่องยนต์ได้รับการตั้งชื่อตามชื่อ
ของสิ่งอำนวยความสะดวกการจัดการ IO ที่พวกเขาใช้ประโยชน์ เครื่องยนต์ที่ใช้งานในปัจจุบันคือ epoll
kqueue โพล และเลือก แต่จะไม่มีทั้งหมดบนแพลตฟอร์มใดๆ ใช้ nmap -V ไปยัง
ดูว่าเครื่องยนต์ใดที่รองรับ

-T หวาดระแวง | ส่อเสียด | สุภาพ | ธรรมดา | ก้าวร้าว | บ้า (ตั้งค่าเทมเพลตเวลา) .
ในขณะที่การควบคุมเวลาอย่างละเอียดที่กล่าวถึงในส่วนก่อนหน้านั้นมีประสิทธิภาพ
และมีประสิทธิภาพ บางคนพบว่าพวกเขาสับสน นอกจากนี้การเลือกที่เหมาะสม
บางครั้งค่าอาจใช้เวลานานกว่าการสแกนที่คุณพยายามปรับให้เหมาะสม โซ นม
เสนอแนวทางที่ง่ายกว่าด้วยเทมเพลตเวลาหกแบบ คุณสามารถระบุได้ด้วย -T
ตัวเลือกและหมายเลข (0–5) หรือชื่อของพวกเขา ชื่อเทมเพลตคือ หวาดระแวง (0),
ส่อเสียด (1), สุภาพ (2), ปกติ (3), ก้าวร้าว (4), และ บ้า (5). สองอันแรกคือ
สำหรับการหลีกเลี่ยง IDS โหมดสุภาพทำให้การสแกนช้าลงเพื่อใช้แบนด์วิดท์และเป้าหมายน้อยลง
ทรัพยากรเครื่อง โหมดปกติเป็นค่าเริ่มต้น ดังนั้น -T3 ไม่ทำอะไรเลย โหมดก้าวร้าว
สแกนความเร็วโดยตั้งสมมติฐานว่าคุณอยู่ในความเร็วที่เหมาะสมและ
เครือข่ายที่เชื่อถือได้ ในที่สุดโหมดบ้า ถือว่าคุณอยู่บนความพิเศษ
เครือข่ายที่รวดเร็วหรือเต็มใจที่จะเสียสละความแม่นยำเพื่อความเร็ว

เทมเพลตเหล่านี้อนุญาตให้ผู้ใช้ระบุว่าต้องการก้าวร้าวแค่ไหน ในขณะที่
ออกจาก Nmap เพื่อเลือกค่าเวลาที่แน่นอน เทมเพลตยังทำให้ความเร็วเล็กน้อย
การปรับเปลี่ยนที่ไม่มีตัวเลือกการควบคุมแบบละเอียดอยู่ในขณะนี้ สำหรับ
ตัวอย่าง, -T4. ห้ามการหน่วงเวลาการสแกนแบบไดนามิกเกิน 10 ms สำหรับพอร์ต TCP และ
-T5 แคปที่มีค่าที่ 5 ms เทมเพลตสามารถใช้ร่วมกับเนื้อละเอียดได้
การควบคุม และการควบคุมแบบละเอียดที่คุณจะระบุจะมีความสำคัญเหนือกว่า
แม่แบบเวลาเริ่มต้นสำหรับพารามิเตอร์นั้น ฉันแนะนำให้ใช้ -T4 เมื่อสแกน
เครือข่ายที่ทันสมัยและเชื่อถือได้พอสมควร เก็บตัวเลือกนั้นไว้แม้ในขณะที่คุณเพิ่ม
การควบคุมที่ละเอียดเพื่อให้คุณได้รับประโยชน์จากการเพิ่มประสิทธิภาพเล็กน้อยที่มัน
เปิดใช้งาน

หากคุณใช้การเชื่อมต่อบรอดแบนด์หรืออีเธอร์เน็ตที่ดี ฉันขอแนะนำเสมอ
การใช้ -T4. บางคนรัก -T5 แม้ว่ามันจะรุนแรงเกินไปสำหรับรสนิยมของฉัน ประชากร
บางครั้งระบุ -T2 เพราะพวกเขาคิดว่ามันมีโอกาสน้อยที่จะเกิดความผิดพลาดกับโฮสต์หรือเพราะ
พวกเขาถือว่าตนเองสุภาพโดยทั่วไป มักไม่รู้ตัวว่าเป็นอย่างไร
ช้า -T สุภาพ. เป็นจริงๆ การสแกนอาจใช้เวลานานกว่าการสแกนเริ่มต้นสิบเท่า
เครื่องขัดข้องและปัญหาแบนด์วิดท์เกิดขึ้นได้ยากด้วยตัวเลือกเวลาเริ่มต้น (-T3)
ดังนั้นโดยปกติฉันแนะนำว่าสำหรับเครื่องสแกนที่ระมัดระวัง การละเว้นการตรวจหาเวอร์ชันคือ
มีประสิทธิภาพมากกว่าการเล่นด้วยค่าเวลาในการลดปัญหาเหล่านี้

ในขณะที่ -T0. และ -T1. อาจมีประโยชน์ในการหลีกเลี่ยงการแจ้งเตือน IDS พวกเขาจะดำเนินการ
ใช้เวลานานเป็นพิเศษในการสแกนเครื่องหรือพอร์ตหลายพันเครื่อง นานขนาดนี้
สแกนคุณอาจต้องการตั้งค่าเวลาที่แน่นอนที่คุณต้องการแทนที่จะพึ่งพา
กระป๋อง -T0 และ -T1 ค่า

ผลกระทบหลักของ T0 กำลังทำให้การสแกนเป็นอนุกรม ดังนั้นให้สแกนพอร์ตเดียวในแต่ละครั้ง
และรอห้านาทีระหว่างการส่งการสอบสวนแต่ละครั้ง T1 และ T2 คล้ายกันแต่พวกมัน
รอเพียง 15 วินาทีและ 0.4 วินาทีตามลำดับระหว่างโพรบ T3. คือ Nmap's
ลักษณะการทำงานเริ่มต้น ซึ่งรวมถึงการทำให้ขนานกัน -T4 เทียบเท่ากับ
--max-rtt-หมดเวลา 1250ms --min-rtt-หมดเวลา 100ms --initial-rtt-หมดเวลา 500ms
--max-ลองใหม่ 6 และตั้งค่าการหน่วงเวลาการสแกน TCP สูงสุดเป็น 10 มิลลิวินาที T5 ไม่
เทียบเท่ากับ --max-rtt-หมดเวลา 300ms --min-rtt-หมดเวลา 50ms --initial-rtt-หมดเวลา
250ms --max-ลองใหม่ 2 --host-หมดเวลา 15m เช่นเดียวกับการตั้งค่าความล่าช้าในการสแกน TCP สูงสุด
ถึง 5 มิลลิวินาที

ไฟร์วอลล์/IDS การหลีกเลี่ยง AND การปลอมแปลง


ผู้บุกเบิกอินเทอร์เน็ตหลายคนจินตนาการถึงเครือข่ายแบบเปิดทั่วโลกที่มีพื้นที่ที่อยู่ IP สากล
อนุญาตการเชื่อมต่อเสมือนระหว่างสองโหนด สิ่งนี้ทำให้โฮสต์สามารถทำหน้าที่เป็น true
เพื่อนบริการและดึงข้อมูลจากกันและกัน ผู้คนสามารถเข้าถึงได้ทั้งหมด
ระบบบ้านของพวกเขาจากที่ทำงาน การเปลี่ยนการตั้งค่าระบบควบคุมอุณหภูมิ หรือการปลดล็อกประตู
สำหรับแขกที่มาพักก่อน วิสัยทัศน์ของการเชื่อมต่อสากลนี้ถูกขัดขวางโดยพื้นที่ที่อยู่
ปัญหาการขาดแคลนและความกังวลด้านความปลอดภัย ในช่วงต้นทศวรรษ 1990 องค์กรต่างๆ เริ่มปรับใช้
ไฟร์วอลล์เพื่อจุดประสงค์ที่ชัดเจนในการลดการเชื่อมต่อ เครือข่ายขนาดใหญ่ถูกปิดล้อม
ปิดจากอินเทอร์เน็ตที่ไม่มีการกรองตามพร็อกซีแอปพลิเคชัน การแปลที่อยู่เครือข่าย และ
ตัวกรองแพ็คเก็ต การไหลของข้อมูลที่ไม่ จำกัด ทำให้เกิดกฎระเบียบที่เข้มงวดของ
ช่องทางการสื่อสารที่ได้รับอนุมัติและเนื้อหาที่ส่งต่อ

สิ่งกีดขวางเครือข่าย เช่น ไฟร์วอลล์ อาจทำให้การทำแผนที่เครือข่ายทำได้ยากอย่างยิ่ง
มันจะไม่ง่ายไปกว่านี้แล้ว เนื่องจากการปราบปรามการลาดตระเวนแบบสบาย ๆ มักจะเป็นเป้าหมายหลักของ
การนำอุปกรณ์ไปใช้ อย่างไรก็ตาม Nmap มีคุณสมบัติมากมายเพื่อช่วยให้เข้าใจสิ่งเหล่านี้
เครือข่ายที่ซับซ้อน และเพื่อตรวจสอบว่าตัวกรองทำงานตามที่ตั้งใจไว้ มันยังรองรับ
กลไกในการเลี่ยงการป้องกันที่ดำเนินการไม่ดี หนึ่งในวิธีที่ดีที่สุดของ
การทำความเข้าใจท่าทางความปลอดภัยเครือข่ายของคุณคือพยายามเอาชนะมัน วางตัวเองใน
ความคิดของผู้โจมตีและปรับใช้เทคนิคจากส่วนนี้กับเครือข่ายของคุณ
เรียกใช้ FTP สแกนตีกลับ การสแกนเมื่อไม่ได้ใช้งาน การโจมตีแบบกระจายแฟรกเมนต์ หรือพยายามเจาะผ่านช่องสัญญาณเดียว
ของผู้รับมอบฉันทะของคุณเอง

นอกจากการจำกัดกิจกรรมเครือข่ายแล้ว บริษัทต่างๆ ยังเฝ้าติดตามการรับส่งข้อมูลมากขึ้นอีกด้วย
ด้วยระบบตรวจจับการบุกรุก (IDS) IDS รายใหญ่ทั้งหมดมาพร้อมกับกฎที่ออกแบบมาเพื่อ
ตรวจจับการสแกน Nmap เนื่องจากบางครั้งการสแกนมักเป็นสาเหตุของการโจมตี มากมายเหล่านี้
ผลิตภัณฑ์เพิ่งแปรเปลี่ยนเป็นการบุกรุก การป้องกัน ระบบ (IPS) ที่กระตือรือร้น
บล็อกการรับส่งข้อมูลถือว่าเป็นอันตราย น่าเสียดายสำหรับผู้ดูแลระบบเครือข่ายและผู้จำหน่าย IDS
การตรวจจับเจตนาร้ายอย่างน่าเชื่อถือโดยการวิเคราะห์ข้อมูลแพ็กเก็ตเป็นปัญหาที่ยาก ตัวรุก
ด้วยความอดทน ทักษะ และความช่วยเหลือของตัวเลือก Nmap บางอย่างสามารถผ่าน IDSs . ได้
ตรวจไม่พบ ในขณะเดียวกัน ผู้บริหารต้องรับมือกับผลบวกลวงจำนวนมาก
ผลลัพธ์ที่กิจกรรมที่ไร้เดียงสาได้รับการวินิจฉัยผิดพลาดและแจ้งเตือนหรือปิดกั้น

บางครั้งผู้คนแนะนำว่า Nmap ไม่ควรเสนอคุณสมบัติในการหลีกเลี่ยงกฎไฟร์วอลล์
หรือแอบย่องผ่าน IDS พวกเขาโต้แย้งว่าคุณสมบัติเหล่านี้มีแนวโน้มที่จะถูกใช้ในทางที่ผิดโดย
ผู้โจมตีที่ผู้ดูแลระบบใช้เพื่อยกระดับความปลอดภัย ปัญหาของตรรกะนี้คือ
ว่าวิธีการเหล่านี้จะยังคงถูกใช้โดยผู้โจมตี ที่จะหาเครื่องมืออื่นหรือ
แก้ไขฟังก์ชันการทำงานลงใน Nmap ในขณะเดียวกันผู้บริหารก็จะพบว่า
ยากที่จะทำงานของพวกเขา การปรับใช้เฉพาะเซิร์ฟเวอร์ FTP ที่ทันสมัยและแพตช์นั้นมีประสิทธิภาพมากกว่ามาก
ป้องกันมากกว่าพยายามป้องกันการแจกจ่ายเครื่องมือที่ใช้ FTP ตีกลับ
โจมตี.

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

-f (แพ็กเก็ตแฟรกเมนต์); --มธ (โดยใช้ MTU ที่ระบุ)
เค้ก -f ตัวเลือกทำให้การสแกนที่ร้องขอ (รวมถึงการสแกน ping) ใช้การแยกส่วนเล็ก ๆ
แพ็กเก็ต IP แนวคิดคือการแบ่งส่วนหัว TCP ออกเป็นหลาย ๆ แพ็กเก็ตเพื่อสร้าง
ยากกว่าสำหรับตัวกรองแพ็คเก็ต ระบบตรวจจับการบุกรุก และสิ่งรบกวนอื่นๆ ในการตรวจจับ
คุณกำลังทำอะไรอยู่. ระวังด้วยสิ่งนี้! บางโปรแกรมมีปัญหาในการจัดการสิ่งเหล่านี้
แพ็คเก็ตเล็ก ๆ นักดมกลิ่นโรงเรียนเก่าที่ชื่อว่า Sniffit การแบ่งส่วนผิดพลาดทันที
เมื่อได้รับชิ้นแรก ระบุตัวเลือกนี้หนึ่งครั้งและ Nmap แยก
แพ็กเก็ตที่มีขนาดไม่เกินแปดไบต์หลังส่วนหัวของ IP ดังนั้นส่วนหัว TCP 20 ไบต์จะเป็น
แบ่งเป็นสามห่อ สองตัวที่มีส่วนหัว TCP แปดไบต์และอีกหนึ่งตัวที่มี
สี่คนสุดท้าย แน่นอนว่าแต่ละส่วนก็มีส่วนหัวของ IP ด้วย ระบุ -f อีกครั้งเพื่อใช้16
ไบต์ต่อแฟรกเมนต์ (ลดจำนวนแฟรกเมนต์).. หรือจะระบุเองก็ได้
ขนาดออฟเซ็ตด้วย --มธ ตัวเลือก. ไม่ต้องระบุด้วย -f ถ้าคุณใช้ --มธ. ออฟเซ็ต
จะต้องเป็นผลคูณของแปด แม้ว่าแพ็กเก็ตที่แยกส่วนจะไม่ได้รับจากตัวกรองแพ็กเก็ตและ
ไฟร์วอลล์ที่จัดคิวชิ้นส่วน IP ทั้งหมด เช่น the CONFIG_IP_ALWAYS_DEFRAG ตัวเลือกใน
เคอร์เนลลินุกซ์บางเครือข่ายไม่สามารถจ่ายประสิทธิภาพได้ทำให้เกิดสาเหตุนี้
ปล่อยให้มันปิดการใช้งาน คนอื่นไม่สามารถเปิดใช้งานสิ่งนี้ได้เนื่องจากชิ้นส่วนอาจแตกต่างกัน
เส้นทางเข้าสู่เครือข่ายของพวกเขา ระบบต้นทางบางระบบจัดเรียงข้อมูลแพ็กเก็ตขาออกใน
เคอร์เนล ลินุกซ์กับ iptables โมดูลการติดตามการเชื่อมต่อเป็นตัวอย่างหนึ่ง ทำ
สแกนในขณะที่ดมกลิ่นเช่น Wireshark กำลังทำงานเพื่อให้แน่ใจว่าแพ็กเก็ตที่ส่งเป็น
กระจัดกระจาย หากระบบปฏิบัติการโฮสต์ของคุณก่อให้เกิดปัญหา ให้ลองใช้ --ส่ง-eth. ทางเลือกในการเลี่ยงผ่าน
เลเยอร์ IP และส่งเฟรมอีเธอร์เน็ตดิบ

การแยกส่วนรองรับเฉพาะคุณสมบัติแพ็คเก็ตดิบของ Nmap ซึ่งรวมถึง TCP และ
การสแกนพอร์ต UDP (ยกเว้นการเชื่อมต่อการสแกนและการสแกนตีกลับ FTP) และการตรวจจับระบบปฏิบัติการ คุณสมบัติ
เช่น การตรวจหาเวอร์ชันและ Nmap Scripting Engine โดยทั่วไปไม่รองรับ
การแตกแฟรกเมนต์เพราะอาศัยสแต็ค TCP ของโฮสต์ของคุณเพื่อสื่อสารกับtarget
บริการ

-D ล่อ1[,ล่อ2][,ฉัน][,...] (ปิดบังการสแกนด้วยตัวล่อ) .
ทำให้เกิดการสแกนล่อที่จะทำ ซึ่งทำให้ดูเหมือนกับโฮสต์ระยะไกลที่
โฮสต์ที่คุณระบุว่าเป็นตัวล่อกำลังสแกนเครือข่ายเป้าหมายด้วย ดังนั้น IDS . ของพวกเขา
อาจรายงานการสแกนพอร์ต 5-10 พอร์ตจากที่อยู่ IP ที่ไม่ซ้ำกัน แต่จะไม่ทราบว่า IP ใด
กำลังสแกนพวกมันและตัวล่อที่ไร้เดียงสา ขณะนี้สามารถเอาชนะได้ผ่าน
การติดตามเส้นทางของเราเตอร์ การลดการตอบสนอง และกลไกอื่นๆ ที่ทำงานอยู่ โดยทั่วไป
เทคนิคที่มีประสิทธิภาพในการซ่อนที่อยู่ IP ของคุณ

คั่นแต่ละโฮสต์ล่อด้วยเครื่องหมายจุลภาค และคุณสามารถใช้ ME หรือไม่ก็ได้ เป็นหนึ่งใน
ล่อเพื่อแสดงตำแหน่งสำหรับที่อยู่ IP จริงของคุณ ถ้าคุณใส่ฉันในที่หก
ตำแหน่งหรือใหม่กว่า เครื่องตรวจจับการสแกนพอร์ตทั่วไปบางตัว (เช่น Solar Designer's
Scanlogd ที่ยอดเยี่ยม) ไม่น่าจะแสดงที่อยู่ IP ของคุณเลย ถ้าไม่ใช้
ME, Nmap จะทำให้คุณอยู่ในตำแหน่งสุ่ม คุณยังสามารถใช้ RND เพื่อสร้าง
สุ่มที่อยู่ IP ที่ไม่ได้สงวนไว้หรือ RND:จำนวน เพื่อสร้าง จำนวน ที่อยู่

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

ใช้ตัวล่อทั้งในการสแกน ping เริ่มต้น (โดยใช้ ICMP, SYN, ACK หรืออะไรก็ตาม) และ
ระหว่างขั้นตอนการสแกนพอร์ตจริง นอกจากนี้ยังใช้ตัวล่อระหว่างการตรวจจับระบบปฏิบัติการระยะไกล
(-O). ตัวล่อใช้ไม่ได้กับการตรวจจับเวอร์ชันหรือการสแกนการเชื่อมต่อ TCP เมื่อการสแกนล่าช้า
มีผลใช้บังคับ ความล่าช้าจะถูกบังคับใช้ระหว่างแต่ละกลุ่มของการสอบสวนที่หลอกลวง ไม่ใช่ระหว่าง
แต่ละโพรบ เนื่องจากตัวล่อจะถูกส่งเป็นชุดพร้อมกันจึงอาจ
ละเมิดขีดจำกัดการควบคุมความแออัดชั่วคราว

เป็นที่น่าสังเกตว่าการใช้ตัวล่อมากเกินไปอาจทำให้การสแกนของคุณช้าลงและอาจถึงขั้นได้
ทำให้แม่นยำน้อยลง นอกจากนี้ ISP บางรายจะกรองแพ็กเก็ตที่ปลอมแปลงของคุณออก แต่หลายๆ อย่าง
ไม่จำกัดแพ็กเก็ต IP ปลอมแปลงเลย

-S ที่อยู่ IP (ที่อยู่ต้นทางปลอม) .
ในบางกรณี Nmap อาจไม่สามารถระบุที่อยู่ต้นทางของคุณได้ (Nmap
จะบอกคุณว่าถ้าเป็นกรณีนี้) ในสถานการณ์นี้ ใช้ -S ด้วยที่อยู่ IP ของ
อินเทอร์เฟซที่คุณต้องการส่งแพ็กเก็ตผ่าน

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

-e อินเตอร์เฟซ (ใช้อินเทอร์เฟซที่ระบุ) .
บอก Nmap ว่าอินเทอร์เฟซใดที่จะส่งและรับแพ็กเก็ต Nmap ควรจะสามารถ
ตรวจจับสิ่งนี้โดยอัตโนมัติ แต่จะบอกคุณว่าไม่สามารถทำได้

--แหล่งที่มา-พอร์ต หมายเลขพอร์ต; -g หมายเลขพอร์ต (ปลอมหมายเลขพอร์ตต้นทาง) .
การกำหนดค่าผิดพลาดที่พบบ่อยอย่างน่าประหลาดใจอย่างหนึ่งคือการเชื่อถือการรับส่งข้อมูลโดยอิงตามแหล่งที่มาเท่านั้น
หมายเลขพอร์ต. มันง่ายที่จะเข้าใจว่าสิ่งนี้เกิดขึ้นได้อย่างไร ผู้ดูแลระบบจะตั้งค่า
ขึ้นไฟร์วอลล์ใหม่เพียงเพื่อจะท่วมด้วยการร้องเรียนจากผู้ใช้เนรคุณ
ที่แอปพลิเคชันหยุดทำงาน โดยเฉพาะอย่างยิ่ง DNS อาจใช้งานไม่ได้เนื่องจาก UDP
การตอบกลับ DNS จากเซิร์ฟเวอร์ภายนอกไม่สามารถเข้าสู่เครือข่ายได้อีกต่อไป FTP เป็นอีกหนึ่ง
ตัวอย่างทั่วไป ในการถ่ายโอน FTP ที่ใช้งานอยู่ เซิร์ฟเวอร์ระยะไกลจะพยายามสร้าง a
การเชื่อมต่อกลับไปยังไคลเอนต์เพื่อโอนไฟล์ที่ร้องขอ

โซลูชันที่ปลอดภัยสำหรับปัญหาเหล่านี้มักอยู่ในรูปแบบของแอปพลิเคชันระดับ
พร็อกซี่หรือโมดูลไฟร์วอลล์การแยกวิเคราะห์โปรโตคอล น่าเสียดายที่ยังมีง่ายกว่า
โซลูชั่นที่ไม่ปลอดภัย สังเกตว่าการตอบกลับ DNS มาจากพอร์ต 53 และ FTP ที่ใช้งานจากพอร์ต
20 ผู้บริหารหลายคนตกหลุมพรางของการรับส่งข้อมูลขาเข้าเพียงอย่างเดียว
จากท่าเรือเหล่านั้น พวกเขามักจะคิดว่าไม่มีผู้โจมตีจะสังเกตเห็นและใช้ประโยชน์จากสิ่งนั้น
หลุมไฟร์วอลล์ ในกรณีอื่นๆ ผู้ดูแลระบบพิจารณาว่านี่เป็นการหยุดช่องว่างระยะสั้น
วัดจนกว่าพวกเขาจะสามารถใช้โซลูชันที่ปลอดภัยยิ่งขึ้นได้ แล้วพวกเขาก็ลืมความปลอดภัย
อัพเกรด

ผู้ดูแลระบบเครือข่ายที่ทำงานหนักเกินไปไม่ใช่คนเดียวที่ตกหลุมพรางนี้
ผลิตภัณฑ์จำนวนมากได้จัดส่งพร้อมกับกฎที่ไม่ปลอดภัยเหล่านี้ แม้แต่ Microsoft ก็เคยเป็น
รู้สึกผิด. ตัวกรอง IPsec ที่มาพร้อมกับ Windows 2000 และ Windows XP ประกอบด้วย an
กฎโดยปริยายที่อนุญาตการรับส่งข้อมูล TCP หรือ UDP ทั้งหมดจากพอร์ต 88 (Kerberos) ในอีกที่หนึ่ง
กรณีที่รู้จักกันดี เวอร์ชันของไฟร์วอลล์ส่วนบุคคล Zone Alarm สูงสุด 2.1.25 อนุญาตใดๆ
แพ็กเก็ต UDP ขาเข้าที่มีพอร์ตต้นทาง 53 (DNS) หรือ 67 (DHCP)

Nmap เสนอ -g และ --แหล่งที่มา-พอร์ต ตัวเลือก (เทียบเท่า) เพื่อใช้ประโยชน์จากสิ่งเหล่านี้
จุดอ่อน เพียงระบุหมายเลขพอร์ตและ Nmap จะส่งแพ็กเก็ตจากพอร์ตนั้น
ที่เป็นไปได้. การดำเนินการสแกนส่วนใหญ่ที่ใช้ซ็อกเก็ตดิบ รวมทั้ง SYN และ UDP
สแกนสนับสนุนตัวเลือกอย่างสมบูรณ์ ตัวเลือกที่โดดเด่นไม่มีผลสำหรับ
การดำเนินการใด ๆ ที่ใช้ซ็อกเก็ตระบบปฏิบัติการปกติ รวมถึงคำขอ DNS, TCP
ต่อ สแกน,. การตรวจจับเวอร์ชันและการสแกนสคริปต์ การตั้งค่าพอร์ตต้นทางด้วย
ใช้งานไม่ได้สำหรับการตรวจจับ OS เนื่องจาก Nmap ต้องใช้หมายเลขพอร์ตที่แตกต่างกันสำหรับ
การทดสอบการตรวจจับระบบปฏิบัติการบางอย่างทำงานอย่างถูกต้อง

--ข้อมูล ฐานสิบหก เชือก (ผนวกข้อมูลไบนารีที่กำหนดเองเข้ากับแพ็กเก็ตที่ส่ง)
ตัวเลือกนี้ช่วยให้คุณรวมข้อมูลไบนารีเป็นเพย์โหลดในแพ็กเก็ตที่ส่ง ฐานสิบหก เชือก อาจ
ระบุในรูปแบบใดรูปแบบหนึ่งต่อไปนี้: 0xAABBCCDDEEFF...,AABBCCDDEEFF... or
\xAA\xBB\xCC\xDD\xEE\xFF.... ตัวอย่างการใช้งานคือ --ข้อมูล 0xเนื้อตาย และ --ข้อมูล
\xCA\xFE\x09. โปรดทราบว่าหากคุณระบุตัวเลขเช่น 0x00ff no byte-order conversion
จะดำเนินการ ตรวจสอบให้แน่ใจว่าคุณระบุข้อมูลในลำดับไบต์ที่คาดไว้โดย
รับสัญญาณ

--data-สตริง เชือก (ต่อท้ายสตริงที่กำหนดเองกับแพ็กเก็ตที่ส่ง)
ตัวเลือกนี้ช่วยให้คุณรวมสตริงปกติเป็นเพย์โหลดในแพ็กเก็ตที่ส่ง เชือก สามารถ
มีสตริงใด ๆ อย่างไรก็ตาม โปรดทราบว่าอักขระบางตัวอาจขึ้นอยู่กับ . ของระบบของคุณ
สถานที่และผู้รับอาจไม่เห็นข้อมูลเดียวกัน อย่าลืมแนบ
สตริงในเครื่องหมายคำพูดคู่และหลีกเลี่ยงอักขระพิเศษใดๆ จากเชลล์
ตัวอย่าง: --data-สตริง "สแกน ดำเนินการ by ความปลอดภัย ปฏิบัติการ นามสกุล 7192 " or
--data-สตริง "Ph34r my l33t ทักษะ". จำไว้ว่าไม่มีใครมีแนวโน้มที่จะเป็นจริง
ดูความคิดเห็นที่เหลือจากตัวเลือกนี้ เว้นแต่พวกเขาจะตรวจสอบเครือข่ายอย่างระมัดระวัง
ด้วยการดมกลิ่นหรือกฎ IDS ที่กำหนดเอง

--data-ความยาว จำนวน (ผนวกข้อมูลสุ่มกับแพ็กเก็ตที่ส่ง)
โดยปกติ Nmap จะส่งแพ็กเก็ตแบบเรียบง่ายที่มีส่วนหัวเท่านั้น ดังนั้นแพ็กเก็ต TCP ของมัน
โดยทั่วไปคือ 40 ไบต์และคำขอ ICMP echo มีเพียง 28 พอร์ต UDP บางพอร์ต และ IP
โปรโตคอล รับเพย์โหลดที่กำหนดเองโดยค่าเริ่มต้น ตัวเลือกนี้บอกให้ Nmap ต่อท้าย
กำหนดจำนวนไบต์สุ่มให้กับแพ็กเก็ตส่วนใหญ่ที่ส่ง และไม่ใช้ใดๆ
เพย์โหลดเฉพาะโปรโตคอล (ใช้ --data-ความยาว 0 สำหรับไม่มีการสุ่มหรือเฉพาะโปรโตคอล
เพย์โหลด.. การตรวจจับระบบปฏิบัติการ (-O) แพ็กเก็ตจะไม่ได้รับผลกระทบ เพราะความถูกต้องนั่นเอง
ต้องการความสม่ำเสมอของโพรบ แต่แพ็กเก็ต ping และ portcan ส่วนใหญ่รองรับสิ่งนี้ มัน
ทำให้การทำงานช้าลงเล็กน้อย แต่สามารถสแกนให้มองเห็นได้ชัดเจนน้อยลงเล็กน้อย

--ip-ตัวเลือก S|ร [เส้นทาง]|หลี่ [เส้นทาง]|T|U ... ; --ip-ตัวเลือก ฐานสิบหก เชือก (ส่งซองด้วย
ตัวเลือก IP ที่ระบุ)
เค้ก IP โปรโตคอล[13] มีหลายตัวเลือกที่อาจวางไว้ในส่วนหัวของแพ็กเก็ต
ต่างจากตัวเลือก TCP ที่แพร่หลาย ตัวเลือก IP นั้นไม่ค่อยเห็นเนื่องจากการใช้งานได้จริงและ
ความกังวลด้านความปลอดภัย อันที่จริง เราเตอร์อินเทอร์เน็ตจำนวนมากปิดกั้นตัวเลือกที่อันตรายที่สุด
เช่น การกำหนดเส้นทางต้นทาง ทว่าตัวเลือกยังคงมีประโยชน์ในบางกรณีสำหรับการพิจารณา
และจัดการเส้นทางเครือข่ายไปยังเครื่องเป้าหมาย ตัวอย่างเช่น คุณอาจสามารถ
ใช้ตัวเลือกเส้นทางบันทึกเพื่อกำหนดเส้นทางไปยังเป้าหมายแม้จะเป็นแบบดั้งเดิมมากขึ้น
วิธีการแบบ traceroute ล้มเหลว หรือถ้าแพ็คเก็ตของคุณถูกทิ้งโดยบางอย่าง
ไฟร์วอลล์ คุณอาจระบุเส้นทางอื่นด้วยแหล่งที่มาที่เข้มงวดหรือหลวมได้
ตัวเลือกเส้นทาง

วิธีที่มีประสิทธิภาพที่สุดในการระบุตัวเลือก IP คือเพียงแค่ส่งผ่านค่าเป็น
อาร์กิวเมนต์ถึง --ip-ตัวเลือก. นำหน้าเลขฐานสิบหกแต่ละตัวด้วย \x ตามด้วยตัวเลขสองหลัก คุณอาจ
ทำซ้ำอักขระบางตัวโดยตามด้วยเครื่องหมายดอกจันแล้วตามด้วยตัวเลข
ครั้งที่คุณต้องการให้พวกเขาทำซ้ำ ตัวอย่างเช่น \x01\x07\x04\x00*36\x01 เป็นสตริงฐานสิบหก
มี 36 NUL ไบต์

Nmap ยังมีกลไกทางลัดสำหรับการระบุตัวเลือก เพียงส่งจดหมาย
R, T หรือ U เพื่อขอบันทึกเส้นทาง,. บันทึก-ประทับเวลา,. หรือทั้งสองตัวเลือกร่วมกัน
ตามลำดับ การกำหนดเส้นทางต้นทางที่หลวมหรือเข้มงวด อาจระบุด้วย L หรือ S
ตามด้วยช่องว่างและรายการที่อยู่ IP ที่คั่นด้วยช่องว่าง

หากคุณต้องการดูตัวเลือกในแพ็กเก็ตที่ส่งและรับ ให้ระบุ --packet-ติดตาม.
สำหรับข้อมูลเพิ่มเติมและตัวอย่างการใช้ตัวเลือก IP กับ Nmap โปรดดูที่
http://seclists.org/nmap-dev/2006/q3/52.

--ttl ความคุ้มค่า (ตั้งค่าฟิลด์ time-to-live IP)
ตั้งค่าฟิลด์ time-to-live ของ IPv4 ในแพ็กเก็ตที่ส่งเป็นค่าที่กำหนด

--สุ่มโฮสต์ (สุ่มลำดับโฮสต์เป้าหมาย) .
บอกให้ Nmap สับเปลี่ยนแต่ละกลุ่มที่มีโฮสต์มากถึง 16384 โฮสต์ก่อนที่จะสแกน นี้สามารถ
ทำให้การสแกนระบบตรวจสอบเครือข่ายต่างๆ ไม่ชัดเจน โดยเฉพาะเมื่อคุณ
รวมกับตัวเลือกการจับเวลาช้า หากคุณต้องการสุ่มตามขนาดกลุ่มที่ใหญ่ขึ้น
เพิ่ม PING_GROUP_SZ. ใน nmap.h และคอมไพล์ใหม่ ทางเลือกอื่นคือ
สร้างรายการ IP เป้าหมายด้วยการสแกนรายการ (-สล -n -บน ชื่อไฟล์) สุ่มด้วย
สคริปต์ Perl จากนั้นจัดเตรียมรายการทั้งหมดให้กับ Nmap ด้วย -iL..

--spoof-mac MAC ที่อยู่ คำนำหน้า, or ผู้ขาย ชื่อ (ปลอมที่อยู่ MAC) .
ขอให้ Nmap ใช้ที่อยู่ MAC ที่กำหนดสำหรับเฟรมอีเธอร์เน็ตดิบทั้งหมดที่ส่ง
ตัวเลือกนี้หมายถึง --ส่ง-eth. เพื่อให้แน่ใจว่า Nmap ส่ง ethernet-level
แพ็คเก็ต MAC ที่ระบุมีได้หลายรูปแบบ หากเป็นเพียงตัวเลข 0, Nmap
เลือกที่อยู่ MAC แบบสุ่มอย่างสมบูรณ์สำหรับเซสชัน ถ้าสตริงที่กำหนดคือ an
จำนวนเลขฐานสิบหกเป็นคู่ (โดยเลือกคู่คั่นด้วยเครื่องหมายทวิภาค) Nmap will
ใช้สิ่งเหล่านั้นเป็น MAC หากระบุเลขฐานสิบหกน้อยกว่า 12 หลัก Nmap จะเติมใน
ส่วนที่เหลือของหกไบต์ที่มีค่าสุ่ม ถ้าอาร์กิวเมนต์ไม่ใช่ศูนย์หรือเลขฐานสิบหก
สตริง Nmap จะดูผ่าน nmap-mac-prefix เพื่อค้นหาชื่อผู้ขายที่มี
สตริงที่กำหนด (ไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) หากพบการจับคู่ Nmap จะใช้ OUI . ของผู้ขาย
(คำนำหน้าสามไบต์) และกรอกสามไบต์ที่เหลือโดยการสุ่ม ถูกต้อง
--spoof-mac ตัวอย่างอาร์กิวเมนต์คือ Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2,
และซิสโก้ ตัวเลือกนี้มีผลเฉพาะกับการสแกนแพ็คเก็ตดิบ เช่น การสแกน SYN หรือการตรวจจับระบบปฏิบัติการ
ไม่ใช่คุณลักษณะที่มุ่งเน้นการเชื่อมต่อ เช่น การตรวจหาเวอร์ชันหรือ Nmap Scripting
เครื่องยนต์

--ผู้รับมอบฉันทะ คั่นด้วยเครื่องหมายจุลภาค รายการ of หนังสือมอบฉันทะ URL ที่ (ถ่ายทอดการเชื่อมต่อ TCP ผ่านสายโซ่ของ
ผู้รับมอบฉันทะ) .
ขอให้ Nmap สร้างการเชื่อมต่อ TCP กับเป้าหมายสุดท้ายผ่านสายโซ่ที่ให้มาของ
พร็อกซี HTTP หรือ SOCKS4 หนึ่งรายการขึ้นไป พร็อกซี่สามารถช่วยซ่อนแหล่งที่มาที่แท้จริงของการสแกนหรือ
หลบเลี่ยงข้อจำกัดของไฟร์วอลล์บางอย่าง แต่สามารถขัดขวางประสิทธิภาพการสแกนได้
เวลาแฝงที่เพิ่มขึ้น ผู้ใช้อาจจำเป็นต้องปรับการหมดเวลาของ Nmap และพารามิเตอร์การสแกนอื่น ๆ
ตามนั้น โดยเฉพาะค่าที่ต่ำกว่า --max-ขนาน อาจช่วยได้เพราะผู้รับมอบฉันทะบางส่วน
ปฏิเสธที่จะจัดการการเชื่อมต่อพร้อมกันมากเท่าที่ Nmap เปิดขึ้นโดยค่าเริ่มต้น

ตัวเลือกนี้รับรายการพร็อกซี่เป็นอาร์กิวเมนต์ แสดงเป็น URL ในรูปแบบ
proto://host:พอร์ต. ใช้เครื่องหมายจุลภาคเพื่อแยก URL ของโหนดในสาย ไม่มีการรับรองความถูกต้อง is
ยังได้รับการสนับสนุน โปรโตคอลที่ถูกต้องคือ HTTP และ SOCKS4

คำเตือน: ฟีเจอร์นี้ยังอยู่ระหว่างการพัฒนาและมีข้อจำกัด มันคือ
ใช้งานภายในไลบรารี nsock จึงไม่มีผลกับ ping, การสแกนพอร์ต
และขั้นตอนการค้นพบ OS ของการสแกน เฉพาะ NSE และการสแกนเวอร์ชันเท่านั้นที่ได้รับประโยชน์จากตัวเลือกนี้
จนถึงตอนนี้ คุณลักษณะอื่นๆ อาจเปิดเผยที่อยู่ที่แท้จริงของคุณ การเชื่อมต่อ SSL ยังไม่ได้
รองรับและไม่ใช่การแก้ปัญหา DNS ฝั่งพร็อกซี (Nmap จะแก้ไขชื่อโฮสต์เสมอ)

--แบดซัม (ส่งแพ็กเก็ตที่มีการตรวจสอบ TCP/UDP ปลอม)
ขอให้ Nmap ใช้การตรวจสอบ TCP, UDP หรือ SCTP ที่ไม่ถูกต้องสำหรับแพ็กเก็ตที่ส่งไปยังเป้าหมาย
เจ้าภาพ เนื่องจากสแต็ค IP ของโฮสต์แทบทั้งหมดปล่อยแพ็กเก็ตเหล่านี้อย่างเหมาะสม การตอบสนองใดๆ
ที่ได้รับมักจะมาจากไฟร์วอลล์หรือ IDS ที่ไม่รบกวนการตรวจสอบ
เช็คซัม สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับเทคนิคนี้ โปรดดูที่ https://nmap.org/p60-12.html

--adler32 (ใช้ Adler32 ที่เลิกใช้แล้วแทน CRC32C สำหรับเช็คซัม SCTP)
ขอให้ Nmap ใช้อัลกอริทึม Adler32 ที่เลิกใช้แล้วในการคำนวณเช็คซัม SCTP
If --adler32 ไม่ได้ให้ไว้ จะใช้ CRC-32C (Castagnoli) RFC 2960[14] เดิม
กำหนด Adler32 เป็นอัลกอริธึมการตรวจสอบสำหรับ SCTP; RFC 4960[7] ภายหลังนิยามใหม่ SCTP
เช็คซัมเพื่อใช้ CRC-32C การใช้งาน SCTP ปัจจุบันควรใช้ CRC-32C แต่ใน
เพื่อกระตุ้นการตอบสนองจากการใช้งาน SCTP แบบเก่า มันอาจจะดีกว่า
เพื่อใช้ Adler32

เอาท์พุท


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

นอกเหนือจากการนำเสนอรูปแบบเอาต์พุตที่แตกต่างกันแล้ว Nmap ยังมีตัวเลือกสำหรับการควบคุม
การใช้คำฟุ่มเฟือยของเอาต์พุตตลอดจนการดีบักข้อความ อาจส่งประเภทเอาต์พุตไปที่
เอาต์พุตมาตรฐานหรือไฟล์ที่มีชื่อ ซึ่ง Nmap สามารถต่อท้ายหรือปิดล้อมได้ ไฟล์เอาต์พุตอาจ
ยังใช้เพื่อดำเนินการสแกนที่ยกเลิกต่อ

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

เอาต์พุต XML เป็นหนึ่งในประเภทเอาต์พุตที่สำคัญที่สุด เนื่องจากสามารถแปลงเป็น HTML ได้
แยกวิเคราะห์อย่างง่ายดายโดยโปรแกรม เช่น ส่วนต่อประสานกราฟิกกับผู้ใช้ Nmap หรือนำเข้าสู่
ฐานข้อมูล

เอาต์พุตที่เหลืออีก XNUMX ประเภทคือเอาต์พุต grepable อย่างง่าย ซึ่งรวมถึงส่วนใหญ่
ข้อมูลสำหรับโฮสต์เป้าหมายในบรรทัดเดียว และ sCRiPt KiDDi3 0utPUt สำหรับผู้ใช้ที่
พิจารณาตัวเอง |<-r4d.

ในขณะที่เอาต์พุตแบบโต้ตอบเป็นค่าเริ่มต้นและไม่มีตัวเลือกบรรทัดคำสั่งที่เกี่ยวข้อง
ตัวเลือกรูปแบบอีกสี่รูปแบบใช้ไวยากรณ์เดียวกัน พวกเขาใช้อาร์กิวเมนต์เดียว ซึ่งก็คือ
ชื่อไฟล์ที่ควรเก็บผลลัพธ์ไว้ อาจระบุได้หลายรูปแบบ แต่แต่ละไฟล์
สามารถระบุรูปแบบได้เพียงครั้งเดียว ตัวอย่างเช่น คุณอาจต้องการบันทึกผลลัพธ์ปกติสำหรับ
การตรวจสอบของคุณเองในขณะที่บันทึก XML ของการสแกนเดียวกันสำหรับการวิเคราะห์แบบเป็นโปรแกรม คุณอาจจะทำ
นี้ด้วยตัวเลือก -วัว myscan.xml -บน myscan.nmap. ในขณะที่บทนี้ใช้ง่าย
ชื่ออย่าง myscan.xml เพื่อความกระชับ ขอแนะนำให้ใช้ชื่อที่สื่อความหมายมากกว่า ดิ
ชื่อที่เลือกเป็นเรื่องของความชอบส่วนบุคคล แม้ว่าฉันจะใช้ชื่อยาวที่รวม
วันที่สแกนและคำหรือสองคำที่อธิบายการสแกน วางไว้ในไดเร็กทอรีที่ตั้งชื่อตาม
บริษัทที่ฉันกำลังสแกน

แม้ว่าตัวเลือกเหล่านี้จะบันทึกผลลัพธ์ลงในไฟล์ แต่ Nmap ยังคงพิมพ์เอาต์พุตแบบโต้ตอบไปที่ stdout
เหมือนอย่างเคย. ตัวอย่างเช่น คำสั่ง nmap -วัว myscan.xml เป้า พิมพ์ XML ไปที่ myscan.xml และ
เติมเอาต์พุตมาตรฐานด้วยผลลัพธ์เชิงโต้ตอบแบบเดียวกับที่มันจะพิมพ์ถ้า -วัว
ไม่ได้ระบุไว้เลย คุณสามารถเปลี่ยนได้โดยส่งอักขระยัติภังค์เป็นอาร์กิวเมนต์
เป็นรูปแบบใดรูปแบบหนึ่ง สิ่งนี้ทำให้ Nmap ปิดการใช้งานเอาต์พุตแบบโต้ตอบและแทน
พิมพ์ผลลัพธ์ในรูปแบบที่คุณระบุให้กับสตรีมเอาต์พุตมาตรฐาน ดังนั้นคำสั่ง
nmap -วัว - เป้า จะส่งเฉพาะเอาต์พุต XML ไปยัง stdout.. ข้อผิดพลาดร้ายแรงอาจยังคงอยู่
พิมพ์ไปยังสตรีมข้อผิดพลาดปกติ stderr..

ไม่เหมือนกับอาร์กิวเมนต์ Nmap บางข้อ ช่องว่างระหว่างแฟล็กตัวเลือกล็อกไฟล์ (เช่น -วัว) and
ชื่อไฟล์หรือยัติภังค์เป็นข้อบังคับ หากคุณละเว้นแฟล็กและให้อาร์กิวเมนต์เช่น -oG-
or -oXscan.xmlคุณลักษณะความเข้ากันได้แบบย้อนหลังของ Nmap จะทำให้เกิดการสร้าง
ปกติ รูป ไฟล์เอาต์พุตชื่อ G- และ Xscan.xml ตามลำดับ

อาร์กิวเมนต์ทั้งหมดเหล่านี้สนับสนุน สตริฟไทม์-ชอบ. การแปลงในชื่อไฟล์ %H, %M, %S,
%m, %d, %y และ %Y เหมือนกันทุกประการกับใน สตริฟไทม์. %T เหมือนกับ %H%M%S, %R
เหมือนกับ %H%M และ %D เหมือนกับ %m%d%y A % ตามด้วยอักขระอื่น ๆ
เพียงแค่ให้อักขระนั้น (%% ให้สัญลักษณ์เปอร์เซ็นต์) ดังนั้น -วัว 'สแกน-%T-%D.xml' จะ
ใช้ไฟล์ XML ที่มีชื่ออยู่ในรูปแบบ scan-144840-121307.xml

Nmap ยังมีตัวเลือกในการควบคุมการใช้คำฟุ่มเฟือยในการสแกนและผนวกกับไฟล์เอาต์พุตแทน
มากกว่าที่จะปิดบังพวกเขา ตัวเลือกทั้งหมดนี้มีอธิบายไว้ด้านล่าง

nmap เอาท์พุต รูปแบบ

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

-วัว สเปคไฟล์ (เอาต์พุต XML)
ร้องขอให้ส่งเอาต์พุต XML ไปยังชื่อไฟล์ที่กำหนด Nmap รวมถึงเอกสาร
คำจำกัดความประเภท (DTD) ซึ่งอนุญาตให้ตัวแยกวิเคราะห์ XML ตรวจสอบเอาต์พุต Nmap XML ในขณะที่มัน
มีไว้สำหรับการใช้งานแบบเป็นโปรแกรมเป็นหลัก นอกจากนี้ยังสามารถช่วยให้มนุษย์ตีความ Nmap XML . ได้อีกด้วย
เอาท์พุท DTD กำหนดองค์ประกอบทางกฎหมายของรูปแบบ และมักจะระบุ
คุณลักษณะและค่านิยมที่สามารถนำไปใช้ได้ รุ่นล่าสุดอยู่เสมอจาก
https://svn.nmap.org/nmap/docs/nmap.dtd.

XML นำเสนอรูปแบบที่เสถียรซึ่งแยกวิเคราะห์ได้ง่ายโดยซอฟต์แวร์ ตัวแยกวิเคราะห์ XML ฟรีคือ
ใช้ได้กับภาษาคอมพิวเตอร์หลักๆ ทั้งหมด รวมถึง C/C++, Perl, Python และ Java
ผู้คนยังเขียนการผูกสำหรับภาษาเหล่านี้ส่วนใหญ่เพื่อจัดการกับเอาต์พุต Nmap
และการดำเนินการโดยเฉพาะ ตัวอย่างคือ Nmap::สแกนเนอร์[15]. และ Nmap::พาร์เซอร์[16]. ใน
Perl CPAN. ในเกือบทุกกรณีที่แอปพลิเคชันที่ไม่สำคัญเชื่อมต่อกับ Nmap
XML เป็นรูปแบบที่ต้องการ

เอาต์พุต XML อ้างอิงสไตล์ชีต XSL ซึ่งสามารถใช้เพื่อจัดรูปแบบผลลัพธ์เป็น
HTML วิธีที่ง่ายที่สุดในการใช้งานคือการโหลดเอาต์พุต XML ในเว็บเบราว์เซอร์
เช่น Firefox หรือ IE โดยค่าเริ่มต้น การดำเนินการนี้จะใช้ได้เฉพาะกับเครื่องที่คุณรัน Nmap บน
(หรือการกำหนดค่าที่คล้ายกัน) เนื่องจากเส้นทางระบบไฟล์ nmap.xsl แบบฮาร์ดโค้ด ใช้
--webxml or --สไตล์ชีต ตัวเลือกในการสร้างไฟล์ XML แบบพกพาที่แสดงเป็น HTML
บนเครื่องที่เชื่อมต่อเว็บ

-ระบบปฏิบัติการ สเปคไฟล์ (ScRipT KIdd|3 oUTpuT)
เอาต์พุตตัวพิมพ์เล็กของสคริปต์นั้นเหมือนกับเอาต์พุตแบบโต้ตอบ ยกเว้นว่ามันจะถูกประมวลผลภายหลังถึง
เหมาะกับ l33t HaXXorZ ที่เคยดูถูก Nmap เนื่องจากความสม่ำเสมอ
การใช้อักษรตัวพิมพ์ใหญ่และการสะกดคำ ผู้ที่มีความบกพร่องทางอารมณ์ขันควรสังเกตว่าตัวเลือกนี้คือ
ล้อเลียนบทละครก่อนจะจุดไฟเผาฉันว่า "ช่วยพวกเขา"

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

อย่างไรก็ตาม เอาต์พุต grepable ยังคงได้รับความนิยมค่อนข้างมาก เป็นรูปแบบง่าย ๆ ที่แสดงรายการ
แต่ละโฮสต์ในหนึ่งบรรทัดและสามารถค้นหาและแยกวิเคราะห์ได้เล็กน้อยด้วย Unix . มาตรฐาน
เครื่องมือเช่น grep, awk, cut, sed, diff และ Perl ฉันมักจะใช้มันครั้งเดียว
การทดสอบทำที่บรรทัดคำสั่ง ค้นหาโฮสต์ทั้งหมดที่มีพอร์ต SSH เปิดอยู่หรือนั่น
กำลังเรียกใช้ Solaris ใช้ grep ง่าย ๆ เพื่อระบุโฮสต์ ส่งไปยัง awk หรือ
ตัดคำสั่งพิมพ์ฟิลด์ที่ต้องการ

เอาต์พุต Grepable ประกอบด้วยความคิดเห็น (บรรทัดที่ขึ้นต้นด้วยปอนด์ (#)) และเป้าหมาย
เส้น บรรทัดเป้าหมายประกอบด้วยช่องที่มีป้ายกำกับหกช่อง คั่นด้วยแท็บ
และตามด้วยโคลอน ฟิลด์ต่างๆ ได้แก่ Host, Ports, Protocols, Ignored State, OS,
ดัชนี Seq, IP ID และสถานะ

ที่สำคัญที่สุดของฟิลด์เหล่านี้โดยทั่วไปคือพอร์ตซึ่งให้รายละเอียดในแต่ละ
พอร์ตที่น่าสนใจ เป็นรายการพอร์ตที่คั่นด้วยเครื่องหมายจุลภาค เข้าแต่ละพอร์ต
แสดงถึงพอร์ตที่น่าสนใจหนึ่งพอร์ตและอยู่ในรูปของเครื่องหมายทับ (/) เจ็ดตัวแยกจากกัน
ฟิลด์ย่อย ฟิลด์ย่อยเหล่านี้คือ: หมายเลขพอร์ต, สถานะ, โปรโตคอล, เจ้าของ, บริการ, SunRPC
ข้อมูล และข้อมูลเวอร์ชัน

เช่นเดียวกับเอาต์พุต XML หน้าคู่มือนี้ไม่อนุญาตให้บันทึกรูปแบบทั้งหมด อา
ดูรายละเอียดเพิ่มเติมเกี่ยวกับรูปแบบเอาต์พุต Nmap grepable ได้จาก
https://nmap.org/book/output-formats-grepable-output.html.

-โอเอ ชื่อฐาน (ส่งออกได้ทุกรูปแบบ) .
เพื่อความสะดวก ท่านสามารถระบุ -โอเอ ชื่อฐาน เพื่อจัดเก็บผลการสแกนในรูปแบบปกติ, XML,
และรูปแบบที่อ่านได้พร้อมกัน พวกเขาจะถูกเก็บไว้ใน ชื่อฐาน.nmap ชื่อฐาน.xml และ
ชื่อฐาน.gnmap ตามลำดับ เช่นเดียวกับโปรแกรมส่วนใหญ่ คุณสามารถนำหน้าชื่อไฟล์ด้วย
เส้นทางไดเรกทอรีเช่น ~/nmaplogs/foocorp/ บน Unix หรือ c:\hacking\sco บน Windows

คำฟุ่มเฟือย และ การแก้จุดบกพร่อง ตัวเลือก

-v (เพิ่มระดับความฟุ่มเฟือย) .
เพิ่มระดับความฟุ่มเฟือยทำให้ Nmap พิมพ์ข้อมูลเพิ่มเติมเกี่ยวกับการสแกน
กำลังดำเนินการ. พอร์ตที่เปิดอยู่จะแสดงตามที่พบและเวลาที่เสร็จสิ้นโดยประมาณคือ
ให้ไว้เมื่อ Nmap คิดว่าการสแกนจะใช้เวลามากกว่าสองสามนาที ใช้สองครั้งหรือ
มากขึ้นสำหรับการใช้คำฟุ่มเฟือยมากยิ่งขึ้น: -vvหรือให้ระดับความฟุ่มเฟือยโดยตรง เช่น
-v3..

การเปลี่ยนแปลงส่วนใหญ่มีผลกับเอาต์พุตแบบโต้ตอบเท่านั้น และบางส่วนก็ส่งผลต่อปกติและสคริปต์ด้วย
เอาท์พุทตัวเล็ก ประเภทเอาต์พุตอื่น ๆ นั้นมีไว้สำหรับการประมวลผลโดยเครื่อง ดังนั้น Nmap
สามารถให้รายละเอียดมากมายโดยปริยายในรูปแบบเหล่านั้นโดยไม่ทำให้มนุษย์เหนื่อย
ผู้ใช้ อย่างไรก็ตาม มีการเปลี่ยนแปลงเล็กน้อยในโหมดอื่นๆ ซึ่งสามารถลดขนาดเอาต์พุตได้
อย่างมากโดยละเว้นรายละเอียดบางอย่าง ตัวอย่างเช่น บรรทัดแสดงความคิดเห็นใน grepable
เอาต์พุตที่แสดงรายการพอร์ตทั้งหมดที่สแกนจะถูกพิมพ์ในโหมด verbose เท่านั้น
เพราะมันอาจค่อนข้างยาว

-d (เพิ่มระดับการดีบัก) .
เมื่อโหมด verbose ไม่ได้ให้ข้อมูลเพียงพอสำหรับคุณ การดีบักก็สามารถใช้ได้
ที่จะทำให้คุณท่วมท้นมากขึ้น! เช่นเดียวกับตัวเลือกการใช้คำฟุ่มเฟือย (-v) เปิดใช้งานการดีบัก
ด้วยแฟล็กบรรทัดคำสั่ง (-d) และระดับการดีบักสามารถเพิ่มได้โดยการระบุ
หลายครั้ง,. เช่นเดียวกับใน -ววหรือโดยการตั้งค่าระดับโดยตรง ตัวอย่างเช่น, -d9 ชุด
ระดับเก้า นั่นคือระดับที่มีประสิทธิภาพสูงสุดและจะผลิตหลายพันสาย
เว้นแต่คุณจะเรียกใช้การสแกนแบบง่ายๆ ที่มีพอร์ตและเป้าหมายน้อยมาก

เอาต์พุตการดีบักมีประโยชน์เมื่อสงสัยว่ามีจุดบกพร่องใน Nmap หรือถ้าคุณเป็นเพียงแค่
สับสนว่า Nmap กำลังทำอะไรและทำไม เนื่องจากคุณสมบัตินี้มีไว้สำหรับ .เป็นส่วนใหญ่
นักพัฒนา สายการดีบักไม่ได้อธิบายตนเองได้เสมอไป คุณอาจได้รับสิ่งที่ชอบ:
ระยะหมดเวลา: srtt: -1 rttvar: -1 ถึง: 1000000 เดลต้า 14987 ==> srtt: 14987 rttvar:
14987 ถึง: 100000 หากคุณไม่เข้าใจบรรทัดใด ๆ การขอความช่วยเหลือเพียงอย่างเดียวของคุณคือเพิกเฉย
ค้นหาในซอร์สโค้ดหรือขอความช่วยเหลือจากรายการการพัฒนา
(nmap-dev).. บางบรรทัดอธิบายตัวเองได้ แต่ข้อความก็คลุมเครือมากขึ้นเช่น
ระดับการดีบักเพิ่มขึ้น

--เหตุผล (เหตุผลของโฮสต์และพอร์ต) .
แสดงเหตุผลที่แต่ละพอร์ตถูกตั้งค่าเป็นสถานะเฉพาะและเหตุผลที่แต่ละโฮสต์ขึ้น
หรือลง. ตัวเลือกนี้แสดงประเภทของแพ็กเก็ตที่กำหนดพอร์ตหรือโฮสต์
สถานะ. ตัวอย่างเช่น แพ็กเก็ต RST จากพอร์ตที่ปิด หรือการตอบกลับจากตัวที่ยังมีชีวิตอยู่
เจ้าภาพ. ข้อมูลที่ Nmap สามารถให้ได้นั้นพิจารณาจากประเภทของการสแกนหรือ ping ดิ
การสแกน SYN และ SYN ping (-NS และ -ปล) มีรายละเอียดมาก แต่ TCP เชื่อมต่อการสแกน (-เซนต์)
ถูกจำกัดด้วยการดำเนินการของ ต่อ ระบบเรียก. คุณลักษณะนี้คือ
เปิดใช้งานโดยอัตโนมัติโดยตัวเลือกการดีบัก (-d). และผลลัพธ์จะถูกเก็บไว้ในบันทึก XML
ไฟล์แม้ว่าจะไม่ได้ระบุตัวเลือกนี้

--สถิติ-ทุก เวลา (พิมพ์สถิติระยะเวลาเป็นระยะ) .
พิมพ์ข้อความสถานะเวลาเป็นระยะหลังจากแต่ละช่วงเวลาของ เวลา. เวลาคือ
ข้อมูลจำเพาะของประเภทที่อธิบายไว้ในส่วนที่เรียกว่า "เวลาและประสิทธิภาพ" ดังนั้น
เช่น ใช้ --สถิติ-ทุก 10s เพื่อรับการอัปเดตสถานะทุกๆ 10 วินาที อัพเดท
ถูกพิมพ์ไปยังเอาต์พุตแบบโต้ตอบ (หน้าจอ) และเอาต์พุต XML

--packet-ติดตาม (ติดตามแพ็กเก็ตและข้อมูลที่ส่งและรับ)
ทำให้ Nmap พิมพ์สรุปของทุกแพ็กเก็ตที่ส่งหรือรับ ใช้บ่อย
สำหรับการดีบัก แต่ยังเป็นวิธีที่มีค่าสำหรับผู้ใช้ใหม่ที่จะเข้าใจอย่างถ่องแท้ว่า
Nmap กำลังทำภายใต้หน้าปก เพื่อหลีกเลี่ยงการพิมพ์หลายพันบรรทัด คุณอาจต้องการ
ระบุจำนวนพอร์ตที่จะสแกนอย่างจำกัด เช่น - หน้า 20-30. ถ้าคุณสนใจแต่เรื่อง
การทำงานของระบบย่อยการตรวจหาเวอร์ชัน ใช้ --รุ่นติดตาม แทนที่. ถ้าคุณเท่านั้น
ดูแลเกี่ยวกับการติดตามสคริปต์, ระบุ --script-ติดตามที่มาพร้อม --packet-ติดตาม, คุณได้รับทั้งหมด
ข้างบน.

--เปิด (แสดงเฉพาะพอร์ตที่เปิดอยู่ (หรืออาจเปิดได้)) .
บางครั้งคุณสนใจเฉพาะพอร์ตที่คุณสามารถเชื่อมต่อได้จริง (พอร์ตเปิด) และอย่า
ต้องการผลลัพธ์ที่รกด้วยพอร์ตที่ปิด กรองแล้ว และปิด|กรองแล้ว เอาท์พุต
โดยปกติการปรับแต่งจะทำหลังจากการสแกนโดยใช้เครื่องมือเช่น grep, awk และ Perl
แต่ฟีเจอร์นี้ถูกเพิ่มเข้ามาเนื่องจากมีการร้องขออย่างล้นหลาม ระบุ --เปิด ให้เห็นเท่านั้น
โฮสต์ที่มีพอร์ตเปิด, เปิด|กรองแล้ว หรือไม่มีการกรองอย่างน้อยหนึ่งพอร์ต และดูเฉพาะพอร์ตใน
รัฐเหล่านั้น ทั้งสามสถานะนี้ได้รับการปฏิบัติตามปกติซึ่งหมายความว่า
ที่เปิด|กรองและไม่กรองอาจรวมเป็นจำนวนถ้ามี
จำนวนมหาศาลของพวกเขา

--iflist (แสดงรายการอินเตอร์เฟสและเส้นทาง) .
พิมพ์รายการอินเทอร์เฟซและเส้นทางของระบบตามที่ Nmap ตรวจพบ สิ่งนี้มีประโยชน์สำหรับ
การดีบักปัญหาการกำหนดเส้นทางหรือการกำหนดลักษณะอุปกรณ์ผิด (เช่น Nmap ที่ปฏิบัติต่อ PPP
การเชื่อมต่อเป็นอีเธอร์เน็ต)

เบ็ดเตล็ด เอาท์พุต ตัวเลือก

--ผนวก-เอาท์พุต (ต่อท้ายไฟล์เอาต์พุต clobber)
เมื่อคุณระบุชื่อไฟล์ให้กับแฟล็กรูปแบบเอาต์พุต เช่น -วัว or -บน, ไฟล์นั้นคือ
เขียนทับโดยค่าเริ่มต้น หากคุณต้องการเก็บเนื้อหาที่มีอยู่ของไฟล์และ
ต่อท้ายผลลัพธ์ใหม่ ระบุ --ผนวก-เอาท์พุต ตัวเลือก. ชื่อไฟล์เอาต์พุตทั้งหมด
ที่ระบุในการดำเนินการ Nmap นั้นจะถูกต่อท้ายแทนที่จะปิดบัง นี้
ใช้งานไม่ได้กับ XML (-วัว) สแกนข้อมูลเนื่องจากไฟล์ผลลัพธ์โดยทั่วไปจะไม่แยกวิเคราะห์
อย่างถูกต้องจนกว่าคุณจะแก้ไขด้วยมือ

--ประวัติย่อ ชื่อไฟล์ (ยกเลิกการสแกนต่อ) .
การรัน Nmap แบบครอบคลุมบางรายการใช้เวลานานมาก—เรียงตามลำดับวัน การสแกนดังกล่าวไม่ได้
วิ่งให้เสร็จเสมอ ข้อจำกัดอาจทำให้ Nmap ไม่ทำงานระหว่างการทำงาน
ชั่วโมง, เครือข่ายอาจล่ม, เครื่อง Nmap กำลังทำงานอยู่อาจประสบปัญหา a
รีบูตตามแผนหรือไม่ได้วางแผนหรือ Nmap เองอาจหยุดทำงาน ผู้ดูแลระบบที่ทำงานอยู่
Nmap สามารถยกเลิกได้ด้วยเหตุผลอื่นเช่นกัน โดยการกด ctrl-C รีสตาร์ท
การสแกนทั้งหมดตั้งแต่ต้นอาจไม่เป็นที่พึงปรารถนา โชคดีที่ถ้าปกติ (-บน) หรือ
เกรียนได้ (-โอจี) บันทึกถูกเก็บไว้ผู้ใช้สามารถขอให้ Nmap ทำการสแกนต่อด้วย
เป้าหมายที่ทำงานอยู่เมื่อการประหารชีวิตหยุดลง เพียงระบุ --ประวัติย่อ ตัวเลือกและ
ส่งไฟล์เอาต์พุตปกติ / grepable เป็นอาร์กิวเมนต์ ไม่มีข้อโต้แย้งอื่น ๆ
ได้รับอนุญาต เนื่องจาก Nmap แยกวิเคราะห์ไฟล์เอาต์พุตเพื่อใช้ไฟล์เดียวกันกับที่ระบุก่อนหน้านี้
เรียกง่ายๆ ว่า Nmap as nmap --ประวัติย่อ ชื่อไฟล์บันทึก. Nmap จะเพิ่มผลลัพธ์ใหม่ให้กับ
ไฟล์ข้อมูลที่ระบุในการดำเนินการก่อนหน้า การเริ่มต้นใหม่ไม่รองรับ XML
รูปแบบเอาต์พุตเพราะการรวมทั้งสองรันเป็นไฟล์ XML ที่ถูกต้องไฟล์เดียวจะเป็น
ยาก.

--สไตล์ชีต เส้นทาง or URL (ตั้งค่า XSL stylesheet เพื่อแปลงเอาต์พุต XML)
Nmap มาพร้อมกับ XSL สไตล์ชีต ชื่อ nmap.xsl สำหรับการดูหรือแปล XML
เอาต์พุตเป็น HTML.. เอาต์พุต XML มีคำสั่งสไตล์ชีต xml ซึ่งชี้ไปที่
nmap.xml ที่ซึ่ง Nmap ติดตั้งในตอนแรก เรียกใช้ไฟล์ XML ผ่าน XSLT
โปรเซสเซอร์เช่น xsltproc[17]. เพื่อสร้างไฟล์ HTML เปิด XML . โดยตรง
ไฟล์ในเบราว์เซอร์ใช้งานไม่ได้อีกต่อไปเพราะเบราว์เซอร์สมัยใหม่จำกัดตำแหน่ง a
สามารถโหลดสไตล์ชีตได้จาก หากคุณต้องการใช้สไตล์ชีตอื่น ให้ระบุ
เป็นข้อโต้แย้งของ --สไตล์ชีต. คุณต้องส่งชื่อพาธแบบเต็มหรือ URL ธรรมดาคนหนึ่ง
วิงวอนคือ --สไตล์ชีต https://nmap.org/svn/docs/nmap.xsl. สิ่งนี้บอก XSLT
ตัวประมวลผลเพื่อโหลดเวอร์ชันล่าสุดของสไตล์ชีตจาก Nmap.Org ดิ --webxml
ตัวเลือกทำสิ่งเดียวกันกับการพิมพ์และการท่องจำน้อยลง กำลังโหลด XSL จาก
Nmap.Org ทำให้ง่ายต่อการดูผลลัพธ์บนเครื่องที่ไม่มี Nmap (และดังนั้น
nmap.xsl) ติดตั้งแล้ว ดังนั้น URL มักจะมีประโยชน์มากกว่า แต่ระบบไฟล์ในเครื่อง
ตำแหน่งของ nmap.xsl ถูกใช้โดยค่าเริ่มต้นเพื่อเหตุผลด้านความเป็นส่วนตัว

--webxml (โหลดสไตล์ชีตจาก Nmap.Org)
นี่เป็นตัวเลือกที่สะดวกสบาย ไม่มีอะไรมากไปกว่านามแฝงสำหรับ --สไตล์ชีต
https://nmap.org/svn/docs/nmap.xsl.

--ไม่มีสไตล์ชีต (ละเว้นการประกาศสไตล์ชีต XSL จาก XML)
ระบุตัวเลือกนี้เพื่อป้องกันไม่ให้ Nmap เชื่อมโยงสไตล์ชีต XSL กับ XML
เอาท์พุท ละเว้นคำสั่งสไตล์ชีต xml

เบ็ดเตล็ด OPTIONS


ส่วนนี้อธิบายตัวเลือกที่สำคัญ (และไม่สำคัญ) บางอย่างที่ไม่เข้ากันจริงๆ
ที่อื่น

-6 (เปิดใช้งานการสแกน IPv6)
Nmap รองรับ IPv6 สำหรับคุณสมบัติยอดนิยม การสแกน Ping, การสแกนพอร์ต,
การตรวจหาเวอร์ชัน และ Nmap Scripting Engine ทั้งหมดรองรับ IPv6 ไวยากรณ์คำสั่ง
เหมือนกับปกติ ยกเว้นว่าคุณเพิ่ม . ด้วย -6 ตัวเลือก. แน่นอนคุณต้องใช้
ไวยากรณ์ IPv6 หากคุณระบุที่อยู่แทนที่จะเป็นชื่อโฮสต์ ที่อยู่อาจดูเหมือน
เช่น 3ffe:7501:4819:2000:210:f3ff:fe03:14d0 ดังนั้นจึงแนะนำชื่อโฮสต์ ผลลัพธ์
ดูเหมือนเดิมโดยมีที่อยู่ IPv6 ในบรรทัด "พอร์ตที่น่าสนใจ" เป็น
แจก IPv6 เท่านั้น

แม้ว่า IPv6 ไม่ได้ทำให้โลกนี้ตกต่ำลง แต่ก็ได้ประโยชน์อย่างมากในบางส่วน
(โดยปกติคือเอเชีย) และระบบปฏิบัติการที่ทันสมัยที่สุดรองรับ การใช้งาน Nmap
ด้วย IPv6 ทั้งต้นทางและเป้าหมายของการสแกนของคุณต้องได้รับการกำหนดค่าสำหรับ IPv6 ถ้า
ISP ของคุณ (เช่นเดียวกับส่วนใหญ่) ไม่ได้จัดสรรที่อยู่ IPv6 ให้กับคุณ อุโมงค์ฟรี
โบรกเกอร์มีอยู่ทั่วไปและทำงานได้ดีกับ Nmap ฉันใช้อุโมงค์ IPv6 ฟรี
นายหน้า บริการที่ http://www.tunnelbroker.net. โบรกเกอร์อุโมงค์อื่น ๆ คือ ที่ระบุไว้ at
วิกิพีเดีย[18]. อุโมงค์ 6to4 เป็นอีกแนวทางหนึ่งที่ได้รับความนิยมและไม่เสียค่าใช้จ่าย

บน Windows การสแกน raw-socket IPv6 ได้รับการสนับสนุนบนอุปกรณ์อีเธอร์เน็ตเท่านั้น (ไม่ใช่
อุโมงค์) และบน Windows Vista เท่านั้น และหลังจากนั้น. ใช้ --ไม่มีสิทธิพิเศษ. ตัวเลือกใน
สถานการณ์อื่นๆ

-A (ตัวเลือกการสแกนเชิงรุก) .
ตัวเลือกนี้เปิดใช้งานตัวเลือกขั้นสูงและเชิงรุกเพิ่มเติม ปัจจุบันนี้ช่วยให้
การตรวจจับระบบปฏิบัติการ (-O) การสแกนเวอร์ชัน (-sV) การสแกนสคริปต์ (-สค) และเส้นทางตามเส้นทาง
(--traceroute).. อาจมีการเพิ่มคุณสมบัติเพิ่มเติมในอนาคต ประเด็นคือการเปิดใช้งานa
ชุดตัวเลือกการสแกนที่ครอบคลุมโดยที่คนไม่ต้องจำชุดใหญ่
ธง อย่างไรก็ตาม เนื่องจากการสแกนสคริปต์ด้วยการตั้งค่าเริ่มต้นถือเป็นการล่วงล้ำ
คุณไม่ควรใช้ -A กับเครือข่ายเป้าหมายโดยไม่ได้รับอนุญาต ตัวเลือกนี้เท่านั้น
เปิดใช้งานคุณสมบัติและไม่ใช่ตัวเลือกเวลา (เช่น -T4) หรือตัวเลือกการใช้คำฟุ่มเฟือย (-v) ว่า
คุณอาจต้องการเช่นกัน ตัวเลือกที่ต้องใช้สิทธิ์ (เช่นการเข้าถึงรูท) เช่น OS
การตรวจหาและติดตามเส้นทางจะเปิดใช้งานก็ต่อเมื่อมีสิทธิ์เหล่านั้นเท่านั้น

--ดาต้าดีร์ ชื่อไดเรกทอรี (ระบุตำแหน่งไฟล์ข้อมูล Nmap ที่กำหนดเอง)
Nmap รับข้อมูลพิเศษบางอย่างขณะรันไทม์ในไฟล์ชื่อ nmap-service-probes
nmap-services, nmap-protocols, nmap-rpc, nmap-mac-prefixes และ nmap-os-db ถ้า
มีการระบุตำแหน่งของไฟล์เหล่านี้ (โดยใช้เครื่องหมาย --servicedb or
--versiondb ตัวเลือก) ตำแหน่งนั้นใช้สำหรับไฟล์นั้น หลังจากนั้น Nmap ก็ค้นหา
ไฟล์เหล่านี้ในไดเร็กทอรีที่ระบุด้วย the --ดาต้าดีร์ ตัวเลือก (ถ้ามี) ไฟล์ใดก็ได้
ไม่พบที่นั่น กำลังค้นหาในไดเร็กทอรีที่ระบุโดย นมปดิร.
ตัวแปรสภาพแวดล้อม ต่อไปมา ~/.nmap. สำหรับ UID ที่แท้จริงและมีประสิทธิภาพ หรือบน Windows
หน้าหลัก\AppData\Roaming\nmap (โดยที่ หน้าหลัก เป็นโฮมไดเร็กทอรีของผู้ใช้ เช่น
C:\Users\user) ตามด้วยตำแหน่งของไฟล์เรียกทำงาน nmap และเหมือนกัน
ตำแหน่งที่มี ../share/nmap ต่อท้าย แล้วคอมไพล์ในสถานที่เช่น
/usr/local/share/nmap หรือ /usr/share/nmap

--servicedb บริการ ไฟล์ (ระบุไฟล์บริการที่กำหนดเอง) .
ขอให้ Nmap ใช้ไฟล์บริการที่ระบุแทนไฟล์ข้อมูล nmap-services
ที่มาพร้อมกับ Nmap การใช้ตัวเลือกนี้ยังทำให้เกิดการสแกนอย่างรวดเร็ว (-F) เพื่อนำไปใช้ ดู
คำอธิบายของ --ดาต้าดีร์ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์ข้อมูลของ Nmap

--versiondb บริการ ยานสำรวจ ไฟล์ (ระบุไฟล์โพรบเซอร์วิสแบบกำหนดเอง)
ขอให้ Nmap ใช้ไฟล์เซอร์วิสโพรบที่ระบุ แทนที่จะเป็น nmap-service-probes
ไฟล์ข้อมูลที่มาพร้อมกับ Nmap ดูคำอธิบายสำหรับ --ดาต้าดีร์ เพื่อรับข้อมูลเพิ่มเติม
ในไฟล์ข้อมูลของ Nmap

--ส่ง-eth (ใช้การส่งอีเธอร์เน็ตดิบ)
ขอให้ Nmap ส่งแพ็กเก็ตที่เลเยอร์อีเธอร์เน็ตดิบ (ดาต้าลิงค์) มากกว่าที่สูงกว่า
เลเยอร์ IP (เครือข่าย) โดยค่าเริ่มต้น Nmap จะเลือกอันที่ดีที่สุดสำหรับ
แพลตฟอร์มที่ทำงานอยู่ ซ็อกเก็ตดิบ (เลเยอร์ IP) โดยทั่วไปจะมีประสิทธิภาพมากที่สุดสำหรับ
เครื่อง Unix ในขณะที่เฟรมอีเธอร์เน็ตจำเป็นสำหรับการทำงานของ Windows ตั้งแต่
Microsoft ปิดใช้งานการสนับสนุนซ็อกเก็ตดิบ Nmap ยังคงใช้แพ็กเก็ต IP ดิบบน Unix แม้ว่า
ตัวเลือกนี้เมื่อไม่มีทางเลือกอื่น (เช่น การเชื่อมต่อที่ไม่ใช่อีเทอร์เน็ต)

--ส่ง-ip (ส่งที่ระดับ IP ดิบ) .
ขอให้ Nmap ส่งแพ็กเก็ตผ่านซ็อกเก็ต IP ดิบแทนที่จะส่งอีเธอร์เน็ตระดับล่าง
เฟรม เป็นส่วนเสริมของ --ส่ง-eth ตัวเลือกที่กล่าวถึงก่อนหน้านี้

--สิทธิพิเศษ (สมมติให้ผู้ใช้ได้รับสิทธิพิเศษอย่างเต็มที่) .
บอก Nmap ให้คิดว่ามีสิทธิพิเศษเพียงพอที่จะดำเนินการส่งซ็อกเก็ตดิบ
การดมกลิ่นแพ็กเก็ต และการดำเนินการที่คล้ายกันซึ่งมักจะต้องใช้สิทธิ์ของรูท บน Unix
ระบบต่างๆ โดยค่าเริ่มต้น Nmap จะหยุดทำงานหากมีการร้องขอการดำเนินการดังกล่าวแต่ รับ ไม่ใช่
ศูนย์. --สิทธิพิเศษ มีประโยชน์กับความสามารถของเคอร์เนล Linux และระบบที่คล้ายกันซึ่ง
อาจมีการกำหนดค่าให้ผู้ใช้ที่ไม่มีสิทธิ์ทำการสแกน raw-packet ให้แน่ใจว่าได้
ระบุตัวเลือกนี้ก่อนตั้งค่าสถานะสำหรับตัวเลือกที่ต้องการสิทธิ์ (SYN
การสแกน การตรวจหา OS เป็นต้น) ดิ NMAP_สิทธิพิเศษ. ตัวแปรสภาพแวดล้อมอาจถูกตั้งค่าเป็น an
ทางเลือกที่เทียบเท่ากับ --สิทธิพิเศษ.

--ไม่มีสิทธิพิเศษ (สมมติว่าผู้ใช้ไม่มีสิทธิ์ของซ็อกเก็ตดิบ)
ตัวเลือกนี้ตรงข้ามกับ --สิทธิพิเศษ. มันบอกให้ Nmap ปฏิบัติต่อผู้ใช้เหมือน
ไม่มีซ็อกเก็ตเครือข่ายดิบและสิทธิ์ในการดมกลิ่น สิ่งนี้มีประโยชน์สำหรับการทดสอบ
การดีบักหรือเมื่อฟังก์ชันเครือข่ายดิบของระบบปฏิบัติการของคุณเป็นอย่างใด
แตกหัก. NS NMAP_UNสิทธิ์. ตัวแปรสภาพแวดล้อมอาจถูกตั้งค่าเป็นค่าเทียบเท่า
ทางเลือกที่จะ --ไม่มีสิทธิพิเศษ.

--ปล่อยหน่วยความจำ (ปล่อยความจำก่อนเลิกงาน) .
ตัวเลือกนี้มีประโยชน์สำหรับการดีบักหน่วยความจำรั่วเท่านั้น มันทำให้ Nmap ปล่อย
หน่วยความจำที่จัดสรรไว้ก่อนที่จะหยุดทำงาน เพื่อให้ตรวจพบการรั่วไหลของหน่วยความจำจริงได้ง่ายขึ้น
โดยปกติ Nmap จะข้ามสิ่งนี้เนื่องจากระบบปฏิบัติการทำสิ่งนี้เมื่อสิ้นสุดกระบวนการ

-V; --รุ่น (พิมพ์หมายเลขรุ่น) .
พิมพ์หมายเลขเวอร์ชัน Nmap และออก

-h; --ช่วยด้วย (พิมพ์หน้าสรุปความช่วยเหลือ) .
พิมพ์หน้าจอวิธีใช้สั้นๆ ด้วยแฟล็กคำสั่งทั่วไป เรียกใช้ Nmap โดยไม่ต้อง
อาร์กิวเมนต์ใด ๆ ทำในสิ่งเดียวกัน

รันไทม์ ปฏิสัมพันธ์


ในระหว่างการดำเนินการ Nmap การกดปุ่มทั้งหมดจะถูกบันทึก สิ่งนี้ทำให้คุณสามารถโต้ตอบได้
กับโปรแกรมโดยไม่ต้องยกเลิกและเริ่มต้นใหม่ คีย์พิเศษบางอย่างจะเปลี่ยนไป
ในขณะที่ปุ่มอื่นๆ จะพิมพ์ข้อความสถานะที่แจ้งให้คุณทราบเกี่ยวกับการสแกน
ข้อตกลงก็คือว่า ตัวพิมพ์เล็ก ตัวอักษร เพิ่ม ปริมาณการพิมพ์และ ตัวพิมพ์ใหญ่
ตัวอักษร ลดลง การพิมพ์ นอกจากนี้คุณยังสามารถกด '?' เพื่อขอความช่วยเหลือ

v / V
เพิ่ม/ลดระดับความฟุ่มเฟือย

d / D
เพิ่ม / ลดระดับการดีบัก

p / P
เปิด / ปิดการติดตามแพ็กเก็ต

?
พิมพ์หน้าจอความช่วยเหลือในการโต้ตอบรันไทม์

สิ่งอื่นใด
พิมพ์ข้อความสถานะดังนี้:

สถิติ: 0:00:07 ผ่านไปแล้ว; เสร็จสิ้น 20 โฮสต์ (1 ขึ้นไป), 1 อยู่ระหว่างการบริการ Scan
ระยะเวลาการสแกนบริการ: เสร็จสิ้นประมาณ 33.33%; ฯลฯ: 20:57 (เหลือเวลา 0:00:12 น.)

ตัวอย่าง


ต่อไปนี้คือตัวอย่างการใช้งาน Nmap จากแบบธรรมดาและแบบธรรมดาไปจนถึงแบบซับซ้อนกว่าเล็กน้อย
และลึกลับ ใช้ที่อยู่ IP และชื่อโดเมนจริงเพื่อสร้างสิ่งต่างๆ ได้มากขึ้น
คอนกรีต. แทนที่ที่อยู่/ชื่อจาก ธุรกิจ ของตนเอง เครือข่าย.
แม้ว่าฉันไม่คิดว่าการสแกนพอร์ตเครือข่ายอื่นจะผิดกฎหมาย แต่บางเครือข่าย
ผู้ดูแลระบบไม่เห็นคุณค่าของการสแกนเครือข่ายโดยไม่ได้ตั้งใจและอาจบ่นได้
การขออนุญาตก่อนเป็นวิธีที่ดีที่สุด

เพื่อวัตถุประสงค์ในการทดสอบ คุณได้รับอนุญาตให้สแกนโฮสต์ scanme.nmap.org.. นี้
การอนุญาตรวมถึงการสแกนผ่าน Nmap เท่านั้นและไม่ทดสอบการหาประโยชน์หรือการปฏิเสธบริการ
การโจมตี เพื่อประหยัดแบนด์วิดธ์ โปรดอย่าเริ่มการสแกนมากกว่าสิบครั้งต่อ
โฮสต์นั้นต่อวัน หากบริการเป้าหมายการสแกนฟรีนี้ถูกละเมิด จะถูกลบ
และ Nmap จะรายงานความล้มเหลวในการแก้ไขชื่อโฮสต์/IP ที่กำหนด: scanme.nmap.org เหล่านี้
สิทธิ์ยังใช้กับโฮสต์ scanme2.nmap.org, scanme3.nmap.org เป็นต้น
โฮสต์เหล่านั้นไม่มีอยู่ในขณะนี้

nmap -v scanme.nmap.org.

ตัวเลือกนี้จะสแกนพอร์ต TCP ที่สงวนไว้ทั้งหมดบนเครื่อง scanme.nmap.org ดิ -v ตัวเลือก
เปิดใช้งานโหมด verbose

nmap -NS -O scanme.nmap.org/24.

เปิดตัวการสแกน SYN ที่ซ่อนเร้นกับแต่ละเครื่องที่อยู่เหนือ 256 IP บน
เครือข่ายขนาดคลาส C ที่ Scanme อาศัยอยู่ นอกจากนี้ยังพยายามกำหนดว่าปฏิบัติการใด
ระบบกำลังทำงานในแต่ละโฮสต์ที่เปิดใช้งานอยู่ สิ่งนี้ต้องใช้สิทธิ์รูท
เนื่องจากการสแกน SYN และการตรวจจับระบบปฏิบัติการ

nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127.

เริ่มการแจงนับโฮสต์และการสแกน TCP ในช่วงครึ่งแรกของแต่ละ 255 ที่เป็นไปได้
ซับเน็ตแปดบิตในพื้นที่แอดเดรสคลาส B 198.116 เป็นการทดสอบว่าระบบทำงานหรือไม่
SSH, DNS, POP3 หรือ IMAP บนพอร์ตมาตรฐาน หรืออะไรก็ได้บนพอร์ต 4564 สำหรับใดๆ
พบพอร์ตเหล่านี้เปิดอยู่ การตรวจจับเวอร์ชันใช้เพื่อระบุว่าแอปพลิเคชันคืออะไร
วิ่ง.

nmap -v -ไออาร์ 100000 - ป ณ -p 80.

ขอให้ Nmap สุ่มเลือกโฮสต์ 100,000 โฮสต์และสแกนหาเว็บเซิร์ฟเวอร์ (พอร์ต 80) เจ้าภาพ
การแจงนับถูกปิดใช้งานด้วย - ป ณ ตั้งแต่แรกส่งการสอบสวนสองสามข้อเพื่อตรวจสอบว่า
โฮสต์จะสิ้นเปลืองเมื่อคุณตรวจสอบพอร์ตเดียวในแต่ละโฮสต์เป้าหมาย

nmap - ป ณ -p80 -วัว บันทึก/pb-port80scan.xml -โอจี บันทึก/pb-port80scan.gnmap 216.163.128.20/20.

สิ่งนี้จะสแกน 4096 IP สำหรับเว็บเซิร์ฟเวอร์ใด ๆ (โดยไม่ต้องส่งคำสั่ง ping) และบันทึกเอาต์พุตใน
grepable และรูปแบบ XML

แผนที่ BOOK


แม้ว่าคู่มืออ้างอิงนี้จะให้รายละเอียดตัวเลือกวัสดุ Nmap ทั้งหมด แต่ก็ไม่สามารถแสดงให้เห็นได้อย่างเต็มที่
วิธีการใช้คุณสมบัติเหล่านั้นเพื่อแก้ไขงานในโลกแห่งความเป็นจริงอย่างรวดเร็ว เพื่อการนั้น เราจึงปล่อย Nmap
การสแกนเครือข่าย: คู่มือโปรเจ็กต์ Nmap อย่างเป็นทางการสำหรับการค้นพบและความปลอดภัยเครือข่าย
การสแกน หัวข้อต่างๆ ได้แก่ การทำลายไฟร์วอลล์และระบบตรวจจับการบุกรุก การเพิ่มประสิทธิภาพ
ประสิทธิภาพของ Nmap และทำให้งานเครือข่ายทั่วไปเป็นแบบอัตโนมัติด้วย Nmap Scripting Engine
มีคำแนะนำและคำแนะนำสำหรับงาน Nmap ทั่วไปเช่นการทำเครือข่าย
สินค้าคงคลัง การทดสอบการเจาะ การตรวจจับจุดเชื่อมต่อไร้สายที่หลอกลวง และการกำจัด
เวิร์มเครือข่ายระบาด ตัวอย่างและไดอะแกรมแสดงการสื่อสารจริงบนสาย มากกว่า
กว่าครึ่งของหนังสือสามารถอ่านได้ฟรีทางออนไลน์ ดู https://nmap.org/book สำหรับข้อมูลเพิ่มเติม
ข้อมูล

ใช้ nmap ออนไลน์โดยใช้บริการ onworks.net


Ad




×
โฆษณา
❤️ช้อป จอง หรือซื้อที่นี่โดยไม่เสียค่าใช้จ่าย ช่วยให้บริการต่างๆ ฟรี