Ping

Datafarm
3 min readFeb 10, 2022

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

คำสั่ง Ping นั้นเปรียบเสมือนการจับเวลาไปกลับของข้อมูลที่ส่งจากต้นทางไปยังเครื่องคอมพิวเตอร์ปลายทางและคอมพิวเตอร์ปลายทางส่งข้อมูลกลับไปยังต้นทาง ซึ่งคำว่า “ping” นั้นมีต้นกำเนิดมาจากสมัยสงครามโลกครั้งที่ 2 ซึ่งคำนี้ใช้เป็นศัพท์เทคนิคสำหรับคลื่นโซนาร์ที่เรือดำน้ำส่งออกไปเพื่อวัดระยะทางระหว่างตัวเรือกับเรือลำอื่นในท้องทะเล คำนี้เป็นการเลียนเสียงธรรมชาติ โดยมีที่มาจากเสียง “ปิ๊ง” สูง ๆ เหมือนเสียงจากโลหะกระทบกัน

https://en.wikipedia.org/wiki/Sonar

ในการทำงานของคำสั่ง Ping นั้น คำสั่ง Ping เป็นคำสั่งที่ให้คอมพิวเตอร์สร้าง ICMP (Internet Control Message Protocol) ที่เป็น Echo Request ส่งไปยังปลายทาง หากเครื่องปลายทางและระบบเครือข่ายทำงานได้ตามปกติ เครื่องเป้าหมายปลายทางจะตอบกลับมาด้วย ICMP Echo Reply ซึ่งจะมีรายละเอียดต่างๆ เช่นรายงานข้อผิดพลาด packet lost และสรุปผลทางสถิติ โดยทั่วไปจะรวมถึงค่าต่ำสุด สูงสุด เวลาไปกลับเฉลี่ย เหล่านี้เป็นข้อมูลตอบกลับให้กับผู้ใช้งานคำสั่ง Ping นี้ รูปแบบของโครงสร้าง Echo request และ Echo reply มีดังนี้

โครงสร้างของ Echo request

โครงสร้างของ Echo reply

ในส่วนข้อมูลจากการใช้คำสั่ง Ping นี้เราสามารถนำมาเป็นข้อมูลเบื้องต้นได้ว่า host ปลายทางหรือเป้าหมายของเรานั้นมีสถานะ online หรือ offline อยู่ในระบบ Network แต่ถ้าไม่มีการตอบกลับของ host ปลายทางนั้นอาจไม่ได้หมายถึงเครื่อง host ปลายทางอยู่ในสถานะ offline เสมอไป แต่หากสามารถมาจากเหตุผลอื่นๆ ได้ เช่นเครื่องปลายทางมีอุปกรณ์ Firewall ที่มีการกำหนด policy ไม่อนุญาตให้ Ping ไปยังเครื่องนั้นๆ กั้นขวางอยู่ หรือเครื่องปลายทางนั้นมีการ enable Firewall ของตัวระบบปฏิบัติการเอง เช่น Windows Firewall เป็นต้น

ซึ่งการทดสอบโดยใช้คำสั่ง Ping นั้นนอกจากใช้คำสั่ง Ping ปกติยังสามารถเพิ่ม parameter เข้าไปในคำสั่งเพื่อให้ได้รับข้อมูลต่างๆ เพิ่มขึ้นอีกด้วย เช่น

— ping -a คำสั่งนี้จะ resolve IP เป็น DNS Name แจ้งกลับมา ถ้ามีการทำ reverse dns เอาไว้ แต่ปัจจุบันอาจจะไม่ค่อยได้ใช้มากเท่าไรนัก

— Ping -t เป็นการ ping ไปยัง host ที่ระบุไว้เรื่อยๆ จนกว่าจะกดยกเลิกด้วยการกด Ctrl+c

เหล่านี้ก็เป็น option ที่บาง option มีความคุ้นเคยหรือใช้งานบ่อย

ในส่วนของ Security การใช้ Ping หรือโปรโตคอล ICMP Packet ยังถูกนำมาใช้เพื่อการโจมตีในรูปแบบ Dos ที่เรียกว่า Ping of Death ซึ่งผู้โจมตีมีเพียงแค่โน๊ตบุ๊คและลิงค์อินเตอร์เน็ตความเร็ว 18 Mbps เป็นอย่างต่ำ ก็สามารถทำให้เครื่อง Server หรือ Firewall หรืออุปกรณ์เครือข่ายภายในล่มได้อย่างง่ายดาย โดยการโจมตีดังกล่าวมีชื่อเรียกว่า BlackNurse หรือก็คือ “Ping of Death” แบบ Low-rate ซึ่งเป็นเทคนิคการโจมตีแบบ DoS ขนาดเล็กหลายๆ ครั้ง ผ่านการส่ง ICMP Packet แบบพิเศษ เพื่อให้หน่วยประมวลผลบน Server และ Firewall รับภาระหนักจนไม่สามารถให้บริการได้อีกต่อไป

การโจมตีแบบ BlackNurse เรียกได้ว่าเป็นเทคนิคการโจมตีแบบดั้งเดิมที่รู้จักในฐานะการโจมตีแบบ Ping Flood โดยจะใช้การร้องขอแบบ ICMP Type 3 (Destination Unreachable) Code 3 (Port Unreachable) แทน ICMP Type 8 Code 0 แบบ Ping Flood ปกติ ซึ่ง traffic มีขนาดเล็กมาก ประมาณ 15–18 Mbps หรือ 40,000–50,000 Packets per second เท่านั้น อุปกรณ์เครือข่ายที่ได้รับผลกระทบได้แก่ อุปกรณ์ Firewall บางรุ่น

การทดสอบช่องโหว่นี้สามารถทดสอบได้โดยการใช้ Hping3 ที่ใช้งานบน Ubuntu หรือระบบปฏิบัติการ Linux อื่นๆ ด้วยคำสั่ง ดังนี้

hping3 -1 -C 3 -K 3 -i u20 <target ip>hping3 -1 -C 3 -K 3 --flood <target ip>

ตัวช่องโหว่ดังกล่าวที่กล่าวถึงนี้เป็นช่องที่ออกมาตั้งแต่ปี 2016 ซึ่งอุปกรณ์ต่างๆพวก Firewall ที่ได้รับผลกระทบจากช่องโหว่นี้ ได้รับการอัพเกรดและสามารถตรวจสอบและป้องกันได้ด้วย IDS/IPS แล้ว

นอกจาก Ping of Death แล้วตัว ICMP Protocol ยังถูกใช้ในการโจมตีอื่นๆเช่น Smurf attack, Twinge attack ที่จัดอยู่ในรูปแบบ denial-of-service และ Ping Sweep ซึ่งรูปแบบการโจมตีดังกล่าวมีรายละเอียดเพิ่มเติมดังนี้

Smurf attack — เป็นการโจมตีโดยส่ง ICMP Echo Request ไปยัง broadcast address ในเครือข่ายที่เป็นตัวกลาง (ปกติจะเรียกว่า amplifier) โดยปลอม source IP address เป็น IP address ของระบบที่ต้องการโจมตี ซึ่งจะทำให้เครือข่ายที่เป็นตัวกลางส่ง ICMP Echo Reply กลับไปยัง IP address ของเป้าหมายทันที ซึ่งทำให้มีการใช้งาน bandwidth อย่างเต็มที่

https://www2.crma.ac.th/itd/ThaiCERT/ThaiCERT23032017/index.asp

Twinge attack — เป็นการส่ง ICMP Packets ปลอมจำนวนมากเพื่อที่จะทำให้ระบบขัดข้อง การโจมตีดังกล่าวเป็นการปลอมแปลงที่อยู่ internet โดยสุ่ม ซึ่งทำให้ระบุผู้โจมตีได้ยาก แนวคิดของการโจมตีคือการลดประสิทธิภาพของคอมพิวเตอร์ที่ถูกโจมตีหรือทำให้เครื่องหยุดทำงาน

Ping sweeps — เป็นรูปแบบการโจมตีที่ใช้ในการค้นหา address จำนวนมากที่มีอยู่ในเครือข่ายทั้งหมด เพื่อนำ list เครื่องที่มีอยู่ในเครือข่ายต่างๆ ที่มีอยู่ในระบบเครือข่ายว่าเครื่องไหนมีสถานะ online อยู่บ้าง ซึ่งเครื่องมือหรือ tool ที่ใช้กันก็จะมีเช่น fping, Nmap, Solarwinds, Pinger แตกต่างกันไปตามระบบปฏิบัติการของผู้ใช้งาน ซึ่ง tool แต่ละตัวนั้นก็มีความสามารถหรือ feature ใช้งานอื่นๆ เช่น Nmap ที่สามารถ ใช้งาน port scanning ตรวจสอบว่าเครื่องคอมพิวเตอร์เป้าหมายมีการเปิดใช้งาน port หรือ service ใดๆ อยู่บ้าง ตรวจสอบระบบปฏิบัติการของเครื่องปลายทางว่าใช้ OS อะไรเป็นต้น นอกเหนือจาก tool หรือเครื่องมือที่ได้กล่าวมาข้างต้นบางส่วนนั้น เราสามารถใช้ command prompt หรือ powershell บนระบบปฏิบัติการ windows สร้าง batch file หรือ script ping ตรวจสอบเครื่องปลายทางและบันทึกผลที่ได้ไว้ใน text file เพื่อนำไปทดสอบในส่วนของ security หรืองานอื่นต่อไปได้อีกด้วย

--

--

No responses yet