Coding Gun

Scan Network ด้วย nmap

nmap คือเครื่องมือยอดนิยมสำหรับ Network Engineer และ Pen-Tester ซึ่ง nmap จะช่วยให้เราค้นหา(scan) Services หรือ Host ต่างๆที่อยู่ใน Network ได้ ที่สำคัญคือ nmap เป็น Open-Source ที่สามารถใช้งานได้ฟรี ไม่มีค่าใช้จ่าย

nmap ทำอะไรได้บ้าง?

Features ของ nmap นั้นมีดังต่อไปนี้

__Fingerprint__ หรือ __Banner__ คือชื่อของ Service, Version และข้อมูลอื่นๆที่สามารถค้นหาได้จาก Service ที่ทำงานอยู่

การติดตั้ง nmap บน Windows

การใช้งาน nmap บน Windows จะมีวิธีติดต้ังที่ไม่ซับซ้อนอยู่ 2 วิธีคือ

  1. ติดตั้ง nmap ผ่านตัว Installer ซึ่งวิธีนี้เราสามารถ Download ตัว Installer ได้ที่นี่ ข้อดีของการติดตั้งด้วยตัวติดตั้งนี้คือ เราจะได้ทั้ง nmap และ Zenmap(nmap GUI) มาใช้งานทั้งคู่ด้วยการติดตั้งครั้งเดียว
  2. ติดต้ัง nmap โดยใช้ WSL 2.0

วิธีใช้ Nmap Command

เราสามารถนำ Nmap ไปใช้ได้หลายรูปแบบซึ่งจะแบ่งออกเป็นการ Scan ในรูปแบบต่างๆ ดังนี้

Nmap scan Hosts

เราสามารถค้นหา Host ได้ด้วย Options ต่างๆ ดังนี้

Nmap scan ports

หลังจากเราพบ Host ใน Network แล้วโดยส่วนใหญ่เราจะใช้ nmap scan ports ที่เปิดอยู่เพื่อที่เราจะได้รู้ว่ามี Service อะไรเปิดให้บริการอยู่บ้าง หลังจากนั้นจะได้ค้นหาช่องโหว่จากรายชื่อของ Services เหล่านั้นต่อไป คำสั่งที่ใช้ในการ Scan ports มีดังนี้

Nmap Output

nmap สามารถส่ง Output ออกมาให้เราได้หลายรูปแบบดังนี้

  1. Stdout(-oN) เป็นผลลัพธ์ที่ออกมาทางหน้า Console ที่เราใช้(ผลลัพธ์ที่เราได้หลัง run command นั่นแหละ)
  2. XML(-oX) เป็นการ Export ผลลัพธ์ออกมาเป็น XML
  3. Grepable(-oG) เป็นการแสดงผลลัพธ์ที่สามารถนำไปกรองด้วยคำสั่ง grep ต่อได้
  4. All(-oA) เราสามารถ Export ผลลัพธ์ออกมาทั้ง 3 รูปแบบพร้อมกันได้ด้วยการใช้ -oA

วิธีการหลบเลี่ยงการตรวจจับ

ในการ Scan เราอาจถูกตรวจจับหรือถูก Block ด้วย Intrusion Detection System(IDS) หรือ Intrusion Protection System(IPS) เราจึงต้องใช้การ Delay หรือการ Scan แบบ Syn Scan(ส่งเฉพาะ Sync Packet เท่านั้นไม่ได้สร้าง Connection) ซึ่ง Nmap Options ที่เราต้องรู้จักมีดังนี้

Nmap Script Engine(NSE)

เป็น Script ที่เราใช้โจมตีหรือเก็บข้อมูลของ target ซึ่ง Scripts แต่ละตัวจะถูกจัดไว้เป็นกลุ่มๆ ดังนี้

วิธีเรียกใช้งาน Nmap Script Engine

การเรียกใช้ Nmap script engine สามารถทำได้โดยการใส่ --script หรือ -sC เข้าไป ยกตัวอย่างเช่น

# run nmap script engine ในกลุ่ม default ทั้งหมด
$ nmap -sC 10.0.2.5

# run nmap script engine ในกลุ่ม auth ทั้งหมด
$ nmap --script=auth 10.0.2.5

# run nmap script engine ที่ชื่อ http-title
$ nmap --script=http-title 10.0.2.5

และถ้าเราต้องการกำหนด Arguments ให้กับ Script เราจะใช้ --script-args แบบนี้

$ nmap -p80 --script "http-title" \
       --script-args "http-title.url=/admin" \
       10.0.2.5

ในตัวอย่างนี้เราจะใส่ arguments ให้กับ Script ที่ชื่อ http-title โดยที่ทำการทำหนด url ของ Web เป็น /admin (ค่า Default จะเป็น /)

Network Scanning ผ่าน GUI

นอกจากจะใช้ nmap ผ่าน command line แล้วเรายังสามารถเลือกใช้เครื่องมือที่เป็น GUI แทนก็ได้ ซึ่งถ้าใครไม่ชอบ Command line ก็สามารถเลือกเครื่องมือต่างๆเหล่านี้มาใช้แทนได้เลย

Zenmap

Zenmap เป็น GUI ที่มาจากต่ายของ nmap เอง ซึ่งด้านหลัง GUI ก็จะเป็น nmap ดังนั้นเราจึงกำหนด parameters ต่างๆ เหมือนกับการใช้งาน nmap เลย

Angry IP Scanner

Angry IP Scanner เป็น GUI อีกตัวนึงที่ใช้งานง่าย ความสามารถอาจสู้กับ nmap ไม่ได้แต่เรื่องความง่ายรับรองใช้ง่ายแน่นอน

อ่านข้อมูลเพิ่มเติมเกี่ยวกับ Nmap ต่อได้ที่นี่

Phanupong Permpimol
Follow me