Security
น้องๆ เคยสงสัยไหมว่าเวลาเราเชื่อมต่ออินเทอร์เน็ตเนี่ย มันเกิดอะไรขึ้นเบื้องหลังบ้าง? แล้วเราจะรู้ได้ยังไงว่ามีใครแอบเข้ามาในเครือข่ายของเราหรือเปล่า? สมัยพี่ทำร้านเน็ต SiamCafe เนี่ย เจอปัญหาลูกค้าโดนแฮ็ก โดนขโมยข้อมูลบ่อยมาก เลยต้องหาเครื่องมือมาช่วยสอดส่องดูแลเครือข่าย เครื่องมือที่พี่ใช้บ่อยที่สุดก็คือ Nmap นี่แหละ
Nmap (Network Mapper) เนี่ย มันเป็นเหมือนเครื่องมือวิเคราะห์เครือข่ายแบบโอเพนซอร์ส คือใช้ฟรีนั่นแหละ แต่ความสามารถนี่ไม่ฟรีนะ มันช่วยให้เราสำรวจเครือข่าย, ตรวจสอบความปลอดภัย, หรือแม้แต่ใช้ในการแก้ปัญหา network ได้ด้วย พี่ใช้มาตั้งแต่สมัย DOS จนถึงปัจจุบันก็ยังใช้อยู่
น้องอาจจะถามว่า "พี่บอม ทำไมเราต้องสแกนเครือข่ายด้วยอ่ะ?" คืออย่างงี้นะ สมมติว่าบ้านเรามีประตูหน้าต่างหลายบาน ถ้าเราไม่เคยสำรวจเลยว่าประตูบานไหนมันล็อคสนิท บานไหนมันมีช่องโหว่ โจรก็อาจจะแอบเข้ามาได้ง่ายๆ เครือข่ายก็เหมือนกัน เราต้องสแกนเพื่อหาว่ามีช่องโหว่อะไรบ้าง จะได้อุดให้มิดชิดไงล่ะ
Nmap มันช่วยให้เรา:
ทั้งหมดนี้มันสำคัญหมดแหละน้อง พี่บอกเลย! SiamCafe Blog มีบทความเรื่องความปลอดภัยเยอะ ลองไปอ่านดูได้
หลักการทำงานของ Nmap ง่ายๆ เลย คือมันจะส่ง packet (ข้อมูล) ไปยังเครื่องเป้าหมาย แล้วดูว่าเครื่องเป้าหมายตอบสนองยังไง จากการตอบสนองนี่แหละ Nmap จะวิเคราะห์ว่าเครื่องเป้าหมายเป็นอะไร ทำอะไรได้บ้าง
ลองนึกภาพว่าเราเคาะประตูบ้านคนอื่น ถ้าเขาเปิดประตูออกมา เราก็จะรู้ว่ามีคนอยู่บ้าน ถ้าเขาไม่เปิด เราก็อาจจะเดาได้ว่าไม่มีใครอยู่ หรือเขาอาจจะไม่อยากเปิดให้เรา
Nmap มีวิธีการส่ง packet หลายแบบ แต่ละแบบก็ให้ผลลัพธ์ที่แตกต่างกันไป เดี๋ยวเราจะมาดูกัน
Nmap มันเป็น command-line tool นะน้อง คือเราต้องพิมพ์คำสั่งลงใน terminal (cmd บน Windows หรือ terminal บน Mac/Linux) แต่ไม่ต้องกลัว พี่จะสอน command พื้นฐานที่ใช้บ่อยๆ ให้
ก่อนอื่นเลย เราต้องติดตั้ง Nmap ก่อนนะ วิธีการติดตั้งก็ขึ้นอยู่กับระบบปฏิบัติการที่เราใช้
brew install nmap ใน terminalsudo apt-get install nmap ใน terminalsudo yum install nmap หรือ sudo dnf install nmap ใน terminalหลังจากติดตั้งเสร็จแล้ว ลองพิมพ์ nmap -v ใน terminal ถ้ามันแสดง version ของ Nmap ก็แสดงว่าติดตั้งสำเร็จแล้ว
คำสั่ง Nmap พื้นฐานที่สุดก็คือ nmap [target] โดยที่ [target] คือเป้าหมายที่เราต้องการสแกน อาจจะเป็น IP address, hostname, หรือ network range ก็ได้
ตัวอย่าง:
nmap scanme.nmap.org
คำสั่งนี้จะสแกน hostname scanme.nmap.org ซึ่งเป็นเครื่องที่ Nmap เตรียมไว้ให้เราทดสอบ
Nmap จะแสดงผลลัพธ์ออกมา บอกว่ามี port ไหนเปิดอยู่บ้าง และ service อะไรที่รันอยู่บน port นั้นๆ
Nmap มี option เยอะมากกกกก แต่พี่จะสอนเฉพาะ option ที่ใช้บ่อยๆ นะ
| Option | คำอธิบาย | ตัวอย่าง |
|---|---|---|
-v |
Verbose mode: แสดงรายละเอียดมากขึ้น | nmap -v scanme.nmap.org |
-A |
Aggressive scan: เปิดใช้งานหลาย option พร้อมกัน เช่น OS detection, version detection, script scanning | nmap -A scanme.nmap.org |
-p [port] |
ระบุ port ที่ต้องการสแกน | nmap -p 80,443 scanme.nmap.org (สแกน port 80 และ 443) |
-sS |
TCP SYN scan: เป็นการสแกนแบบ stealth (ไม่ค่อยถูกตรวจจับ) | nmap -sS scanme.nmap.org |
-sV |
Version detection: ตรวจสอบ version ของ service ที่รันอยู่ | nmap -sV scanme.nmap.org |
-O |
OS detection: ตรวจสอบระบบปฏิบัติการ (OS) ที่เครื่องเป้าหมายใช้อยู่ | nmap -O scanme.nmap.org |
-F |
Fast scan: สแกนเฉพาะ port ที่ใช้บ่อยๆ | nmap -F scanme.nmap.org |
น้องๆ ลองเอา option เหล่านี้ไปใช้ดูนะ แล้วจะเห็นว่า Nmap มันเก่งขนาดไหน
มาดูตัวอย่างการใช้งาน Nmap จริงๆ กันบ้างดีกว่า พี่จะยกตัวอย่างสถานการณ์ที่พี่เคยเจอตอนทำร้านเน็ต SiamCafe นะ
สมมติว่าเราต้องการค้นหาว่ามีเครื่องอะไรบ้างที่เชื่อมต่ออยู่ในเครือข่ายของเรา เราสามารถใช้ Nmap สแกน network range ได้เลย
เช่น ถ้าเราอยู่ในเครือข่าย 192.168.1.0/24 เราสามารถใช้คำสั่งนี้:
nmap 192.168.1.0/24
Nmap จะสแกนทุก IP address ตั้งแต่ 192.168.1.1 ถึง 192.168.1.254 แล้วแสดงผลลัพธ์ว่ามีเครื่องไหน online บ้าง
สมมติว่าเราต้องการตรวจสอบว่าเครื่อง 192.168.1.100 มี port อะไรเปิดอยู่บ้าง เราสามารถใช้คำสั่งนี้:
nmap 192.168.1.100
Nmap จะแสดงผลลัพธ์ว่ามี port ไหนเปิดอยู่บ้าง เช่น port 22 (SSH), port 80 (HTTP), port 443 (HTTPS) เป็นต้น
Nmap มี script ที่ช่วยให้เราตรวจหาช่องโหว่เบื้องต้นได้ (แต่ไม่ได้ละเอียดเท่าพวก vulnerability scanner นะ) เราสามารถใช้ option --script เพื่อรัน script เหล่านั้น
ตัวอย่าง:
nmap --script vuln 192.168.1.100
Nmap จะรัน script ที่เกี่ยวข้องกับ vulnerability แล้วแสดงผลลัพธ์ว่ามีช่องโหว่อะไรบ้างที่อาจเกิดขึ้นได้
ข้อควรระวัง: การสแกนหาช่องโหว่ อาจจะผิดกฎหมายในบางประเทศหรือบางองค์กร น้องๆ ต้องศึกษาข้อกฎหมายให้ดีก่อนนะ
SiamCafe Blog เตือนแล้วนะ!ดูวิดีโอเพิ่มเติมเกี่ยวกับNmap สแกนเครือข่ายเบื้องต้น:
สมัยผมทำร้านเน็ตฯ เรื่องนี้สำคัญมาก! อย่าสแกนเครือข่ายที่คุณไม่ได้รับอนุญาตเด็ดขาด! ผิดกฎหมายแถมเสียมารยาทอีกต่างหาก คิดเสมอว่าคุณกำลังเคาะประตูบ้านคนอื่น ถ้าเค้าไม่อนุญาตก็อย่าไปยุ่งเลย
Nmap มันแรง! ถ้าคุณสแกนเครือข่ายใหญ่ๆ ด้วยความเร็วสูงๆ อาจจะทำให้ระบบเค้าล่มได้ (DoS Attack โดยไม่ตั้งใจ) ใช้ option -T เพื่อควบคุมความเร็วในการสแกน เช่น -T3 คือค่า default ที่ค่อนข้างปลอดภัย
nmap -T3 target.com
เคยเจอเคสลูกค้าเล่น Nmap แล้วสแกน network มหาลัยฯ จนเน็ตเค้าอืดไปหมด โดนเรียกไปคุยยาวเลย
ถ้าไม่อยากให้ใครรู้ว่าคุณกำลังสแกน ลองใช้ Stealth Scan เช่น SYN Scan (-sS) หรือ FIN Scan (-sF) พวกนี้จะทำให้การสแกน "เงียบ" ขึ้น แต่ก็อาจจะใช้เวลานานกว่า
nmap -sS target.com
แต่จำไว้ว่า "ไม่มีอะไร stealth จริงๆ" ทุกอย่างมันทิ้งร่องรอยไว้เสมอ
Nmap ให้ข้อมูลเยอะมาก! อย่ามองข้ามรายละเอียดเล็กๆ น้อยๆ อ่าน output ให้ละเอียด แล้วลอง Google ดูว่าแต่ละ port แต่ละ service มันคืออะไรกันแน่ ยิ่งเข้าใจมากเท่าไหร่ คุณก็จะยิ่งได้ประโยชน์จาก Nmap มากขึ้น
อย่าลืมว่า Nmap เป็นแค่เครื่องมือ! สิ่งที่สำคัญที่สุดคือความรู้และความเข้าใจของคุณ
iCafeForexฟรีครับ! Nmap เป็น Open Source Software ใช้งานได้ฟรีๆ เลย แต่ถ้าคุณเอาไปใช้ในเชิงพาณิชย์ ก็ควรจะศึกษา License ให้ดีก่อนนะ
เยอะมาก! นอกจากสแกน port แล้ว Nmap ยังใช้ตรวจจับ OS, Firewall, Version ของ Service ต่างๆ ได้อีกด้วย แถมยังมี Scripting Engine (NSE) ให้คุณเขียน Script เพิ่มความสามารถได้อีกต่างหาก
ถ้าคุณสแกนเครือข่ายที่คุณไม่ได้รับอนุญาต ผิดกฎหมายแน่นอน! แต่ถ้าคุณสแกนเครือข่ายของคุณเอง หรือได้รับอนุญาตจากเจ้าของเครือข่าย ก็ไม่ผิดอะไร
Nmap ส่ง packet ไปยังเป้าหมาย แล้วดูว่าเป้าหมายตอบกลับมายังไง จากการวิเคราะห์ response เหล่านั้น Nmap ก็จะบอกได้ว่า port ไหนเปิดอยู่, Service อะไรกำลังทำงานอยู่, OS อะไรที่เป้าหมายใช้อยู่ ฯลฯ
มีครับ! ชื่อว่า Zenmap เป็น GUI Frontend สำหรับ Nmap ทำให้ใช้งานง่ายขึ้นเยอะ โดยเฉพาะสำหรับมือใหม่
Nmap เป็นเครื่องมือที่ทรงพลังมาก! แต่ต้องใช้อย่างระมัดระวัง ศึกษาให้เข้าใจก่อนใช้งานจริง และอย่าลืมเรื่องกฎหมายและจริยธรรมด้วยนะครับ
ลองเอาไปฝึกฝนกันดู แล้วคุณจะรู้ว่า Nmap มันเจ๋งแค่ไหน! แล้วอย่าลืมแวะไปอ่านบทความอื่นๆ ใน SiamCafe Blog ด้วยนะ มีเรื่อง IT สนุกๆ อีกเยอะเลย!