Better security & Port scanning : NMAP

พบกันอีกครั้งค่ะ สำหรับสัปดาห์นี้ได้ไปเจอหนังสือเล่มนึงชื่อ 8 Steps to Better Security หนึ่งในนั้นมีหัวข้อ Step 4: Frequent Security Testing เล่าเกี่ยวกับเครือข่ายคอมพิวเตอร์ที่เติบโต และเปลี่ยนแปลงตลอดเวลา การทดสอบความปลอดภัยบ่อยสม่ำเสมอจึงเป็นสิ่งจำเป็น ทีมรักษาความปลอดภัยของสามารถเพิ่มความปลอดภัยให้กับองค์กรของได้ การทำ VA, Pentest, Security Audit ต่างๆ และการตรวจสอบระบบอยู่เป็นประจำ การพบความเสี่ยง หรือช่องโหว่งที่สามารถระบุผู้ใช้งานที่ไม่ประสงค์ดี จากการตรวจสอบที่เกิดขึ้นจากเครือข่าย Network หรือตัวกรองภัยคุกคามที่สำคัญ ที่ช่วยลดผลเสียที่อาจจะเกิดกับองค์กรได้เป็นอย่างมาก นั้นคือเหตุผลว่าระบบเครือข่ายที่ดีควรได้รับการตรวจสอบช่องโหว่ที่เกิดขึ้นภายใน และ Take Action ก่อนที่จะเกิดอัตรายกับระบบ

วันนี้ก็เลยจะมาแนะนำ Tool Nmap ตรวจสอบ Network ที่เป็น Open Source ยอดนิยม เบื้องต้นที่ใช้สำหรับทำ Active Information Gathering หรือ Pre-attack phase และใช้งานง่ายที่หลายๆคนรู้จักกันดี และผู้โจมตีระบบ มักใช้เก็บข้อมูลเป้าหมายที่เล็งไว้ ไม่ใช่เพียงการ Port Scanning เพื่อค้นหา Service และ port ที่เปิดใช้งาน หรือรายละเอียดของ OS ที่ทำงานบนระบบดังกล่าวเท่านั้น แต่เรายังสามารถใช้ Nmap ในการทดสอบระบบ และสืบหาข้อมูลในมุมมองอื่น ๆ ได้อีกด้วย โดยใช้ Nmap Scripting Engine (.nse) ได้

Nmap ช่วยในการ Port Scanning ถึงจะไม่ได้ถูกพัฒนาขึ้นเพื่อนำมาใช้ทดแทน Tools เฉพาะทางอื่นๆ แต่ก็สามารถใช้ในการตรวจสอบระบบเบื้องต้นอย่างคร่าว ๆ เพื่อนำผลลัพธ์ไปวิเคราะห์ว่าควรทำการตรวจสอบเชิงลึกในด้านใดต่อไป นับเป็นการ Scan ที่เป้าหมายตรงๆ จะมีการทิ้งล่องรอยเอาไว้ทางฝั่งปลายทาง คือถ้าหากปลายทางมี End-Point Security ก็จะสามารถได้รับข้อมูลเครื่องลูกข่าย หรือ Server จะก็มีการเก็บ log ไว้ด้วย เนื่องจากเป็นการตรวจสอบหรือการสัมผัสกับ Surface ของอุปกรณ์โดยตรง

Port Scanning Techniques

สแกนของ Nmap Default เริ่มต้นจะทำงาน เหมือนผู้ใช้มีสิทธิสแกนแพ็คเก็ต TCP ข้อมูล SYN (synchonization) เหตุผลที่ควรใช้ TCP-SYN แทนการ ping ในการดูเวลาตอบสนองที่แท้จริง เพราะเวลาที่ได้จากการ ping หรือ Protocol ICMP อ่อนไหวต่อหลายปัจจัยมาก ไม่ว่าจะเป็นการโดนบล็อก ตรวจจับ จับเปลี่ยนเส้นทาง หรือโดนอุปกรณ์จัด Traffic ให้อยู่ในลำดับความสำคัญต่ำ เป็นต้น

  • sS TCP SYN Scan

เป็นวิธีที่รวดเร็วในการสแกน สามารถสแกน port หลายๆ port ได้ภายในไม่กี่วินาที ทำงานโดยส่ง SYN Packet แล้วรอการตอบกลับ หากได้รับการตอบรับ SYN/ACK จะถือว่าเป็น port เปิด ในขณะที่ post ปิดจะ จะส่ง RST กลับมา

  • sT TCP Connect Scan

สามารถเรียกใช้การสแกน SYN ได้ TCP Connect Scan จะเป็นเหมือนมีการเชื่อมต่อจริงในการส่ง แต่จะใช้เวลาค่อนข้างนานกว่าเมื่อเทียบกับการสแกน SYN

  • sU UDP Scan

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

  • sN TCP NULL Scan

เป็น การ Scan โดยส่งค่า ที่เป็น 0 ทุก Flag ซึ่งถ้าไม่มีการตอบกลับจากฝั่ง Destination ก็ถือว่าเปิด port ถ้าพอร์ตปิดอยู่จะส่ง กลับมา RST packet กลับมา

Port Scanning Option Summary

>Nmap –script=nbstat –open –top ports 100 — sV <IP Target>

|-script=nbstat เรียกใช้ Sctript NetBIOS

|-oX Output XML File เพื่อใช้ในการเจาะระบบอื่นๆต่อไป

|-sV ตรวจสอบ Service Version

| — Open ให้โชว์เฉพาะ Port ที่เปิด

|-Top port 100 port แรก

|-sV ตรวจสอบ Service Version

ผลลัพธ์ที่ได้ เราสามารถที่จะเห็นได้เลยว่ามีการปิด 95 Port ไว้ รวมถึง Port ที่ใช้งานสำคัญอื่นๆ รวมถึง Service และ Version ที่ใช้

NMAP Scripting Engine

สามารถเรียกใช้สคริปต์ที่มีชื่อว่า NSE script ในวันนี้จะขอยกตัวอย่างบาง Script ที่น่าสนใจ เช่น การ scan หาช่องโหว่ และการทดลอง Burteforce

Scanning for Vulnerabilities

>Nmap -p<rang> — script=vuln <IP target>

ผลลัพธ์แสดงให้เห็นได้ว่า Server มีปัจจัยเสี่ยงสูง

>Nmap -p<rang> -sV --script=vuln -t5 --version-intensity 9 --Pn -sS -oX <file name.xml> <IP target>

|-p<ranges> ระบุ port

|-sV ตรวจสอบ Service Version

| — script=vuln ตรวจสอบหาช่องโหว่ของ Service ที่ทำงานอยู่บนระบบเป้าหมาย

|-t<0–5> สามารถระบุ Timing และ Performance

| — version-intensity 9 พยายามระบุ port ที่เปิดอยู่

|-Pn ต้องกาข้ามการ ping

|-sS TCP SYN Scan

|-oX Output XML File เพื่อใช้ในการเจาะระบบอื่นๆต่อไป

ผลลัพธ์ที่ได้ Export file ผลออกมา พบช่องโหว่ phpMyAdmin grab_globals.lib.php subform Parameter Traversal Local File Inclusion อยู่ใน Likely Vulnerable

หากต้องการที่จะ Enumerate บางช่องโหว่ที่อัพเดทใหม่ แต่ Nmap จะไม่ได้ install script auto ไว้ สามารถ download https://nmap.org/nsedoc/scripts/ หรือบน GitHub มาติดตั้งเพิ่มได้ ยกตัวอย่าง เช่น SMB Vulnerabilities คือ กระจายการโจมตีต่อได้ (Wormable) ลักษณะคล้ายๆ กับเหตุการณ์ WannaCry อย่างไรก็ตามรายละเอียดที่มีในตอนนี้คือมีสาเหตุจาก Buffer Overflow ซึ่งสามารถทำให้เกิด Remote Code Execution ได้ ซึ่งสามารถแก้ไขด้วยการ patch แต่ก็จะมีหลายๆ Server ที่พลาดไป วิธีก็นี้จะช่วยในการตรวจจับ Server แล้วแก้ไข หรือสร้างการควบคุมที่ดี

เมื่อโหลด Script เสร็จเรียบร้อยแล้วให้ทำการอัพเดท Library ก่อน

>Nmap — script-updatedb

>Nmap — script smb-os-discovery.nse — script-args=unsafe=1 -p445 <IP Target>

ผลลัพธ์ที่ได้การตรวจสอบช่องโหว่ SMB Vulnerabilities และรายงานผลให้ผู้ใช้งาน

Brute Forcing Passwords

มีสคริปต์ที่สามารถใช้สำหรับ Brute Force ตัวอย่างของโปรโตคอล ได้แก่ http-brute, snmp-brute, oracle-brute เป็นต้น

>Nmap –script=brute -Pn <Ip Target>

| — script=brute ใช้ในการเดาสุ่มรหัสผ่านของ Service ต่าง ๆ

|-Pn ต้องกาข้ามการ ping

ผลลัพธ์ที่ได้คือพบ Guest Account ไม่มี Password

Commands ที่น่าสนใจอื่นๆ

|-O สามารถระบุชนิดของ OS ที่ทำงานอยู่ในอุปกรณ์บางตัว จะส่งทั้งแพ็กเก็ต UDP และ TCP ไปยังพอร์ต แล้ววิเคราะห์การตอบสนองที่ได้รับ

|–sL ตรวจสอบ List Scan

|-A ตรวจสอบทั้ง OS และ Server Detection, traceroute

|-oN แสดงผลลัพธ์ในรูปแบบปกติทั่วไป (เป็นค่าตั้งต้น ไม่จำเป็นต้องระบุก็ได้)

|-v รายงานความคืบหน้าระหว่าง Scan

|-6 สามารถใช้ IPv6 Scan ได้

นอกจากนี้ NMAP สามารถใช้ในการทำ เช่น การทำ Mail Sever Auditing, Server penetration และหาข้อมูล NSE script เพิ่มเติมได้จาก documentation https://nmap.org/book/nse-usage.html

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store