สแกนพอร์ตด้วย Nmap: รายการคำสั่ง Nmap

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

คุณสมบัติหลัก

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

สแกนพอร์ตด้วย Nmap

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

Nmap มีการสแกนพอร์ตประเภทต่างๆโดยสามารถทำได้ผ่านเซ็กเมนต์ TCP ดาตาแกรม UDP หรือแพ็กเก็ต ICMP นอกจากนี้ยังช่วยให้ทำการสแกนในลักษณะที่ซ่อนอยู่เพื่อให้ไฟร์วอลล์ตรวจจับได้ยาก แน่นอนว่าเราจะสามารถสแกนพอร์ตบนพอร์ตเฉพาะบางพอร์ตระหว่างช่วงพอร์ตช่วงที่อยู่ IP ความเป็นไปได้ในการใช้แพ็กเก็ต TCP null, FIN, Xmas และ ACK นอกเหนือจาก SYN เพื่อค้นหาพอร์ต TCP ที่เปิดอยู่

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

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

สถานะพอร์ตด้วย Nmap

  • จุดเปิด - แอปพลิเคชันกำลังยอมรับการเชื่อมต่อ TCP หรือ UDP พอร์ตเปิดอยู่และสามารถใช้งานได้เพนเทสเตอร์จะสามารถใช้พอร์ตที่เปิดนี้เพื่อใช้ประโยชน์จากระบบได้ เป็นสถานะเริ่มต้นหากเราไม่มีไฟร์วอลล์ปิดกั้นการเข้าถึง
  • ปิด : พอร์ตที่ปิดสามารถเข้าถึงได้เนื่องจากตอบสนองต่อ Nmap อย่างไรก็ตามไม่มีแอปพลิเคชันที่ทำงานบนพอร์ตนั้น มีประโยชน์สำหรับการค้นหาว่าโฮสต์ทำงานอยู่หรือเป็นส่วนหนึ่งของการตรวจจับระบบปฏิบัติการ สำหรับผู้ดูแลระบบขอแนะนำให้กรองพอร์ตเหล่านี้ด้วยไฟร์วอลล์เพื่อไม่ให้เข้าถึงได้ สำหรับ pentester ขอแนะนำให้ทิ้งพอร์ตเหล่านี้ไว้ "ปิด" เพื่อวิเคราะห์ในภายหลังในกรณีที่มีการให้บริการใหม่
  • Filtered : ในสถานะนี้ Nmap ไม่สามารถระบุได้ว่าพอร์ตเปิดอยู่หรือไม่เนื่องจากมีไฟร์วอลล์กรองแพ็กเก็ต Nmap บนพอร์ตนั้น พอร์ตที่ถูกกรองเหล่านี้เป็นพอร์ตที่จะปรากฏขึ้นเมื่อเราเปิดใช้งานไฟร์วอลล์ Nmap จะพยายามเชื่อมต่อซ้ำ ๆ ซึ่งทำให้การสแกนพอร์ตค่อนข้างช้า
  • เปิด | Filtered : Nmap ไม่ทราบว่าพอร์ตเปิดอยู่หรือถูกกรอง สิ่งนี้เกิดขึ้นเนื่องจากพอร์ตที่เปิดอยู่ไม่ส่งการตอบสนองใด ๆ และการขาดการตอบสนองนี้อาจมาจากไฟร์วอลล์ สถานะนี้จะปรากฏขึ้นเมื่อเราใช้ UDP และ IP และเราใช้การสแกน FIN, NULL และ Xmas
  • ปิด | Filtered : ในสถานะนี้จะไม่ทราบว่าพอร์ตถูกปิดหรือถูกกรอง สถานะนี้ใช้ใน IP Idle Scan เท่านั้น

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

ดาวน์โหลดและติดตั้ง Nmap บนระบบใดก็ได้

สิ่งแรกที่เราต้องทำเพื่อใช้โปรแกรมที่มีประสิทธิภาพนี้คือการดาวน์โหลดจากนั้นติดตั้ง ใน ส่วนดาวน์โหลด Nmap คุณสามารถค้นหาลิงค์ไบนารีและซอร์สโค้ดทั้งหมดสำหรับการติดตั้งในระบบปฏิบัติการ Windows, Linux และ MacOS ขณะนี้เรามีโปรแกรมนี้อยู่ในที่เก็บทั้งหมดของระบบปฏิบัติการที่ใช้ Linux ดังนั้นการติดตั้งจึงง่ายมาก เราได้ติดตั้งโปรแกรมนี้ใน อูบุนตูแต่เพียงดำเนินการคำสั่งการติดตั้งระบบปฏิบัติการของคุณตามด้วย“ nmap” คุณจะติดตั้งโปรแกรมได้โดยไม่มีปัญหา

sudo apt install nmap

เมื่อติดตั้งแล้วเราสามารถใช้งานได้จากเทอร์มินัลทั้งใน Windows, Linux หรือ macOS ในตัวอย่างทั้งหมดที่เราจะให้คุณด้านล่างนี้เราได้ใช้ระบบปฏิบัติการ Ubuntu แต่เรามีคำสั่งเดียวกันสำหรับ Windows และ macOS โดยไม่มีการเปลี่ยนแปลงใด ๆ

ตัวอย่างการใช้งาน Nmap

สแกนพอร์ตด่วน

หากคุณต้องการสแกนพอร์ตด่วนไปยังโฮสต์เฉพาะเราต้องพิมพ์คำสั่งต่อไปนี้

nmap [ip]

ตัวอย่างเช่นหากเราต้องการสแกนพอร์ตหลักอย่างรวดเร็วไปยังโฮสต์ที่มีที่อยู่ IP 192.168.1.2 ลำดับจะเป็นดังนี้:

nmap 192.168.1.2

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

puertosnmap_foto_2

สแกนพอร์ตต่างๆ

แทนที่จะสแกนพอร์ตทั้งหมดเราสามารถกำหนดช่วงของพอร์ตที่จะตรวจสอบได้ สำหรับสิ่งนี้เราจะดำเนินการ:

nmap -p [rango] [ip]

หากเราต้องการทำการสแกนพอร์ตจาก TCP 20 ถึง TCP 200 ที่ที่อยู่ IP 192.168.1.2 เพียงดำเนินการคำสั่งต่อไปนี้:

nmap -p 20-200 192.168.1.2

โปรแกรมจะระบุภายในช่วงนั้นว่าพอร์ตใดเปิดอยู่

puertosnmap_foto_3

ตรวจจับระบบปฏิบัติการและข้อมูลโฮสต์เพิ่มเติม

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

nmap -A -v [ip]

หากเราต้องการทำการสแกนนี้ไปยังที่อยู่ IP 192.168.1.2 เราสามารถดำเนินการคำสั่งต่อไปนี้:

nmap -A -v 192.168.1.2

puertosnmap_foto_4

รายการคำสั่งทั้งหมด s

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

เลือกวัตถุประสงค์

ที่อยู่หรือช่วง IP ชื่อของระบบเครือข่าย ฯลฯ

  • ตัวอย่าง: scanme.nmap.org, microsoft.com/24, 192.168.0.1, 10.0.0-255.1-254
  • -iL รายการไฟล์ในไฟล์ -iR n เลือกเป้าหมายแบบสุ่ม 0 ไม่สิ้นสุด
  • - ไม่รวมไฟล์ –excludefile ไม่รวมระบบออกจากไฟล์

ค้นพบระบบ

  • -PS n tcp ซิงก์ ping
  • -PA และปิง TCP ACK
  • -PU และปิง UDP
  • -PM Netmask ความต้องการ
  • -PP ข้อกำหนดการประทับเวลา
  • -PE สะท้อนความต้องการ
  • การวิเคราะห์รายการ -sL
  • -PO ping ต่อโปรโตคอล
  • -PN อย่าปิง
  • -n อย่าทำ DNS
  • -R แก้ไข DNS ในระบบเป้าหมายทั้งหมด
  • –Traceroute: ติดตามเส้นทางไปยังระบบ (สำหรับโทโพโลยีเครือข่าย)
  • -sP ping เช่นเดียวกับ –PP –PM –PS443 –PA80

เทคนิคการวิเคราะห์พอร์ต

  • -sS แยกวิเคราะห์โดยใช้ TCP SYN
  • -sT การแยกวิเคราะห์โดยใช้ TCP CONNECT
  • การวิเคราะห์ -sU โดยใช้ UDP
  • -s และการวิเคราะห์โดยใช้ SCTP INIT
  • -sZ โดยใช้ COOKIE ECHO จาก SCTP
  • -sO โปรโตคอล IP
  • -sW หน้าต่าง TCP -sN
  • –SF -sX NULL, FIN, คริสต์มาส
  • –SA TCP ระดาษ

พอร์ตสำหรับวิเคราะห์และลำดับการวิเคราะห์

  • -p n-mrango
  • -p– พอร์ตทั้งหมด
  • -pn, m, z ระบุ
  • -p U: nm, z T: n, m U สำหรับ UDP, T สำหรับ TCP
  • -F เร็ว 100 ทั่วไป
  • - พอร์ตบนสุด n วิเคราะห์พอร์ตที่ใช้มากที่สุด
  • -r ไม่สุ่ม

ระยะเวลาและการดำเนินการ:

  • -T0 หวาดระแวง
  • -T1 ชิงทรัพย์
  • -T2 ซับซ้อน
  • -T3 ปกติ
  • -T4 ก้าวร้าว
  • -T5 บ้า
  • –Min-กลุ่มโฮสต์
  • –Max-กลุ่มโฮสต์
  • - อัตราขั้นต่ำ
  • - อัตราสูงสุด
  • - ขั้นต่ำขนานกัน
  • - คู่ขนานสูงสุด
  • –Min-rtt-หมดเวลา
  • - Max-rtt-timeout
  • - เริ่มต้น -Rtt-timeout
  • - สูงสุด - ลองใหม่
  • - โฮสต์หมดเวลา - สแกนล่าช้า

บริการและการตรวจหาเวอร์ชัน

  • -sV: การตรวจหาเวอร์ชันบริการ
  • - พอร์ตทั้งหมดไม่รวมพอร์ต
  • - เวอร์ชันทั้งหมดทดสอบการสแกนแต่ละครั้ง
  • –Version-trace กิจกรรมการวิเคราะห์เวอร์ชันการติดตาม
  • - หรือเปิดใช้งานการตรวจจับระบบปฏิบัติการ
  • –Fuzzy เดาการตรวจจับระบบปฏิบัติการ
  • - Max-os-พยายามตั้งค่าจำนวนครั้งสูงสุดของความพยายามกับระบบเป้าหมาย

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

  • -f แพ็คเก็ตส่วนย่อย
  • -D d1, d2 การวิเคราะห์เสื้อคลุมด้วยตัวล่อ
  • -S ip ที่อยู่แหล่งปลอมแปลง
  • –G พอร์ตซอร์สหลอกซอร์ส
  • - สั่งซื้อแบบสุ่ม - โฮสต์
  • –Spoof-mac mac เปลี่ยนแหล่งที่มา MAC

ระดับรายละเอียดและพารามิเตอร์การดีบัก

  • -v เพิ่มระดับของรายละเอียด
  • - เหตุผลตามระบบและพอร์ต
  • -d (1-9) ตั้งค่าระดับการดีบัก
  • - เส้นทางแพ็คเก็ตติดตามแพ็คเก็ต

ตัวเลือกอื่น ๆ

  • - ไฟล์ดำเนินการต่อการวิเคราะห์ต่อถูกยกเลิก (ใช้รูปแบบเอาต์พุตด้วย -oN หรือ -oG)
  • -6 เปิดใช้งานการสแกน IPV6
  • - ก้าวร้าวเช่นเดียวกับ -O -sV -sC –traceroute

ตัวเลือกแบบโต้ตอบ

  • v / V เพิ่ม / ลดระดับรายละเอียดการวิเคราะห์
  • d / D เพิ่ม / ลดระดับการดีบัก
  • p / P เปิด / ปิดการติดตามแพ็คเก็ต

สคริปต์

  • -sC ทำการวิเคราะห์ด้วยสคริปต์เริ่มต้น
  • - สคริปต์เรียกใช้ไฟล์สคริปต์ (หรือทั้งหมด)
  • –Script-args n = v ให้อาร์กิวเมนต์
  • –Script-trace แสดงการสื่อสารขาเข้าและขาออก

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

  • -oN บันทึกในรูปแบบปกติ
  • -oX บันทึกในรูปแบบ XML
  • -oG บันทึกในรูปแบบเพื่อใช้ Grep ในภายหลัง
  • -oA บันทึกในรูปแบบก่อนหน้าทั้งหมด

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

nmap --help

puertosnmap_foto_5

Nmap เป็นเครื่องมือที่เรียบง่ายและสมบูรณ์ในการตรวจสอบเครือข่ายอย่างไม่ต้องสงสัย แต่สิ่งนี้ไม่ได้จบเพียงแค่นั้นเรายังมี Nmap NSE เพื่อทำการ pentesting ขั้นสูง

Nmap NSE: มันคืออะไรและมีไว้เพื่ออะไร

Nmap Search Engine หรือเรียกอีกอย่างว่า Nmap NSE เป็นฐานข้อมูลขนาดใหญ่ที่มีสคริปต์หลายพันตัวที่จะช่วยให้เราทำการทดสอบระบบและเครือข่ายได้โดยอัตโนมัติ สคริปต์ชุดนี้จะช่วยให้เราดำเนินการหลายอย่างโดยอัตโนมัติเช่นการโจมตีด้วยกำลังดุร้ายบนเซิร์ฟเวอร์ Samba เซิร์ฟเวอร์ FTP เซิร์ฟเวอร์ SSH ตรวจสอบว่าเว็บเซิร์ฟเวอร์มีช่องโหว่ที่ทราบหรือไม่และอื่น ๆ อีกมากมาย

ตัวอย่างเช่นหากเราต้องการดำเนินการโจมตีแบบเดรัจฉานโดยพิจารณาจากรายชื่อผู้ใช้ (ที่มีไฟล์ชื่อ users.txt) และรายการรหัสผ่านที่จะทดสอบ (ด้วยไฟล์ที่เรียกว่า keys.txt) ไปยังเซิร์ฟเวอร์ SSH ของ คอมพิวเตอร์บางเครื่องที่มี IP 99.99.99.99 เราสามารถใส่คำสั่งต่อไปนี้:

nmap -p 22 --script ssh-brute --script-args userdb=usarios.txt,passdb=claves.txt --script-args ssh-brute.timeout=4s 99.99.99.99

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