ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

เทคนิคการทำงานของ  Port Scanning

มีการนำ SYN, ACK, RST มาใช้งานกับเทคนิค
วิธีการทำงานของ Port Scanning

 

Port Scanning คือ กระบวนการที่ใช้ในการติดต่อไปที่ Port ของ TCP หรือ UDP ของเครื่องเป้าหมายและมีจุดประสงค์เพื่อตรวจสอบเพื่อหาบริการที่ระบบรอรับการเชื่อมต่อหรืออยู่ในสถานะที่ให้บริการ โดยบทความนี้จะมาบอกถึงเทคนิคในการใช้งานของ Port Scanning โดยจะมีอะไรบ้าง

 

เทคนิคที่ในการใช้งานมีดังนี้

1. Address Resolution Protocol ตรวจหาอุปกรณ์ที่ทำงานในเครือข่ายโดยส่ง ARP แบบ broadcasts Packet และเพิ่มค่าของฟิลด์ที่บรรจุ IP address ของเป้าหมายในแต่ละbroadcasts การสแกนจะได้รับการตอบสนองจากอุปกรณ์ที่มี IP บนเครือข่ายออกมาในรูปแบบของ IP address ของแต่ละอุปกรณ์ แต่จะมีข้อจำกัดคือสามารถใช้ได้ในเครือข่ายเดียวกันเท่านั้น

2. The Vanilla TCP connect การสแกนพอร์ตพื้นฐานโดยใช้ connect system call ของ OS ไปบนระบบของเป้าหมายด้วยกลไกมาตรฐานที่เรียกว่า TCP three-way handshake เพื่อเปิดการเชื่อมต่อไปยังทุกพอร์ตที่เปิดใช้งาน การสแกนชนิดนี้สามารถจับได้ง่ายโดยการล็อกต่าง ๆ ของระบบที่เป็นเป้าหมายจะแสดงการร้องขอการเชื่อมต่อและข้อความแสดงข้อผิดพลาด สำหรับบริการที่ตอบรับการเชื่อมต่อหรือป้องกันโดยการติดตั้งไฟล์วอลล์

3. The TCP SYN (Half Open) การเชื่อมต่อที่ไม่สมบูรณ์ โดยระบบมีการโจมตีไม่ได้ปิดการเชื่อมต่อ โดยที่เปิด scannerและส่ง SYN (เปิดสถานะการเชื่อมต่อ)ไปยังเป้าหมายและรอการตอบสนอง ถ้าพอร์ตถูกเปิดไว้เป้าหมายก็จะส่ง SYN/ACK(รับรองการเชื่อมต่อ) กลับมา ซึ่งก็สรุปได้ว่าพอร์ตดังกล่าวอยู่ในสถานะ listening แต่ถ้าพอร์ตถูกปิดอยู่ เป้าหมายก็จะส่ง RST (Reset) กลับมาแทน เทคนิคการนี้สามารถทำการสแกนเป้าหมายได้อย่างรวดเร็วและยากต่อการตรวจจับ 

4. The TCP FIN scan เทคนิคที่ใช้ทะลุผ่านไฟล์วอลล์และตรวจจับการสแกนโดยไม่ถูกตรวจพบ เพราะระบบที่ทำการโจมตีจะส่ง TCP ที่เซตค่า flag FIN เป็น 1 (การร้องของจบการเชื่อมต่อ) ไปยังระบบของเป้าหมาย สำหรับพอร์ตที่ปิดอยู่จะตอบสนองกลับไปด้วย RST ส่วนพอร์ตที่เปิดจะไม่สนใจ packets นั้นเลย ดังนั้นเครื่องที่ทำการโจมตีก็จะได้ข้อมูลว่าได้รับ RST(reset) จากพอร์ตไหนบ้างและไม่ได้ RST จากพอร์ตไหนบ้าง (ทำให้รู้หมายเลขพอร์ตที่ไม่ได้เปิดให้บริการ) โดยปกติแล้ว ใช้ได้กับเครื่องปลายทางที่รันผ่านระบบปฏิบัติการ Unix

5. The TCP Reverse Ident scan ตรวจหาชื่อของเจ้าของแต่ละโพรเซสที่เชื่อมต่อด้วย TCP บนเครื่องเป้าหมายโดยจะทำให้ระบบที่ทำการโจมตีสามารถเชื่อมต่อเข้าไปยังพอร์ตที่เปิดอยู่และใช้ Ident protocol( IP ที่ระบุชื่อผู้ใช้ ) ในการค้นหาว่าใครเป็นเจ้าของโพรเซสบนเครื่องเป้าหมายได้

6. The TCP XMAS ค้นหา Port บนเครื่องเป้าหมายที่อยู่ในสถานะ listening โดยจะไม่ส่ง TCP packet ทั้ง3ตัวซึ่งเป็นที่สังเกตง่าย คือ SYN, ACK, RST แต่จะใช้ flag เป็น URG, PSH และ FIN ใน TCP header ไปยังพอร์ตของเครื่องเป้าหมาย ทั้งนี้เพื่อหลบการตรวจจับให้มากที่สุด ซึ่งถ้าพอร์ต TCP ของเครื่องเป้าหมายปิดอยู่ พอร์ตนั้นก็จะส่ง RST กลับมา แต่ถ้าพอร์ตเปิดอยู่ก็จะไม่สนใจ packet

7. The TCP NULL scan ไม่ใช้ flag ในการสแกนและส่ง TCP packet ที่มีลำดับหมายเลขที่ไม่มี flag ออกไปยังเครื่องเป้าหมาย ถ้าพอร์ตปิดอยู่จะส่ง RST packet กลับมา แต่ถ้าพอร์ตเปิดอยู่ก็จะไม่สนใจ packet แล้ว TCP packet นี้ไม่มีอยู่ในข้อกำหนดของ protocol จึงไม่มีผู้สนใจแล้วนอกจากนี้ยังสามารถตรวจสอบระบบปฏิบัติการของเป้าหมายได้ เนื่องจากระบบปฎิบัติการแต่ละแบบจะมีการตอบสนองที่ไม่เหมือนกัน

8. The TCP ACK scan ค้นหาเว็บไซต์ที่เปิดบริการอยู่ แต่ปฏิเสธการตอบสนองต่อ ICMP ping เพื่อตรวจสอบดูว่าfirewallทำหน้าที่แค่เพียงกรอง packet อย่างง่ายหรือเป็นไฟล์วอลล์ที่มีความฉลาด

9. TCP Windows scan ตรวจสอบPortที่เปิดอยู่พร้อมตรวจดูว่าพอร์ตไหนที่ถูก filter เอาไว้ไม่ให้ผ่านเข้าไปและพอร์ตหมายเลขใดได้รับการอนุญาต โดยอาศัยช่องโหว่จากความผิดปกติบางอย่างในการแจ้งค่า TCP Windows Size ของ TCP/IP protocol

10. TCP RPC scan ใช้งานได้เฉพาะกับเครื่องที่อยู่ปลายทางที่รันผ่านระบบ Unix เท่านั้น ถูกใช้งานเพื่อตรวจสอบหาServiceที่ทำงานอยู่บน Service RPC รวมทั้งตรวจดูเวอร์ชันของเซอร์วิสนั้นและโปรแกรมที่เกี่ยวข้อง

11. The FTP Bounce Attack ใช้ FTP protocol เพื่อสร้างการเชื่อมต่อบริการ FTP ของ proxy ทำให้ผู้ที่โจมตีสามารถซ่อนตัวอยู่หลัง FTP server และสแกนเป้าหมายอื่น ๆ ได้โดยไม่ถูกตรวจจับ

12. The UDP ICMP Port scanning ใช้ UDP protocol ในการส่ง UDP packet ไปยังportของเครื่องเป้าหมาย ถ้าพอร์ตนั้นปิดอยู่จะตอบกลับมาด้วยICMP type PORT UNREACHABLE packetและถ้าหากportนั้นเปิดอยู่จะไม่มีการส่งpacketกลับมา

13. The ICMP ping-sweeping scan ใช้คำสั่ง ping เพื่อดูว่ามีระบบไหนที่เปิดใช้งานอยู่

 

เทคนิคในการใช้งานของ Port scanning จะประกอบไปด้วยรูปแบบคำสั่งที่ใช้งานร่วมกับ Port TCP หรือ UTP เช่น มีการนำคำสั่ง ACK เพื่อรับรองสถานะ, RST(reset) เป็นการสั่งตัดการเชื่อมต่อแบบไม่สนสถานะ, SYN สถานะเริ่มการเชื่อมต่อ, FIN ร้องขอจบการเชื่อมต่อ เป็นต้น

 

อ้างอิงรูปภาพ : https://resources.infosecinstitute.com

 

ช่องทางการศึกษาเพิ่มเติมข่าวสารที่น่าสนใจเกี่ยวกับ : เทคนิคการทำงานของ  Port Scanning

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Range Sliders เก็บค่าตัวเลขด้วย range sliders
โดย benzas00123 พ 22 ม.ค. 2020 5:50 pm บอร์ด Booststap Knowledge
1
147
ศ 24 ม.ค. 2020 9:32 am โดย LEG
อยากทราบวิธีการตรวจสอบว่าจะมีเวลาอีกกี่วันถึงจะ ถึงเลข timestamp ที่กำหนด
โดย Ittichai_chupol พ 22 ม.ค. 2020 3:54 pm บอร์ด Programming - PHP
1
199
พ 22 ม.ค. 2020 4:18 pm โดย thatsawan
ขอสอบถามวิธีการเขียน bootstrap 3 ในการสร้าง bar ครับ
โดย benzas00123 พ 22 ม.ค. 2020 3:13 pm บอร์ด HTML CSS
5
254
พ 22 ม.ค. 2020 3:32 pm โดย benzas00123
วันหยุดที่หายไป
โดย noppadonsk พ 22 ม.ค. 2020 11:42 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
138
พ 22 ม.ค. 2020 11:42 am โดย noppadonsk
วิธีการปรับการการแสดงการ รายชื่อของแจ้งเตือน bookmark โดย phpbb
โดย Ittichai_chupol อ 21 ม.ค. 2020 5:45 pm บอร์ด PHP Knowledge
0
94
อ 21 ม.ค. 2020 5:45 pm โดย Ittichai_chupol
pillow vs wand library ความแตกต่างของ library ทั้ง 2 ตัวในการ procress รูปภาพ
โดย benzas00123 อ 21 ม.ค. 2020 5:29 pm บอร์ด Python Knowledge
1
121
อ 21 ม.ค. 2020 5:54 pm โดย mindphp
อยู่ดีๆ ก็ไม่สามารถเชื่อมต่อกับ database ได้ครับ
โดย benzas00123 อ 21 ม.ค. 2020 4:46 pm บอร์ด Programming - C/C++ & java & Python
5
192
อ 21 ม.ค. 2020 5:39 pm โดย benzas00123
ขอถามเกี่ยวกับ library ImageMagick ครับ
โดย benzas00123 อ 21 ม.ค. 2020 3:29 pm บอร์ด Programming - C/C++ & java & Python
2
93
อ 21 ม.ค. 2020 4:23 pm โดย benzas00123
Git Lad จะทำอย่างไรให้ไฟล์ที่อยู่ในโฟร์ย่อย ออกมาครับ
โดย jamepiyawat อ 21 ม.ค. 2020 12:08 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
225
อ 21 ม.ค. 2020 2:04 pm โดย jamepiyawat
ขอทราบวิธีการเขียน python เก็บข้อมูล ip ของผู้ใช้หน่อยครับ
โดย benzas00123 อ 21 ม.ค. 2020 10:54 am บอร์ด Programming - C/C++ & java & Python
1
181
อ 21 ม.ค. 2020 12:20 pm โดย mindphp
ขอสอบถามเกี่ยวกับการอัพโหลดรูปภาพเข้า ฐานข้อมูลครับ
โดย benzas00123 จ 20 ม.ค. 2020 6:29 pm บอร์ด SQL - Database
3
154
อ 21 ม.ค. 2020 2:00 pm โดย mindphp
โปรแกรมแปลงหน่วย เครื่องมือในการแปลงหน่วยความจุคอมพิวเตอร์
โดย prmindphp จ 20 ม.ค. 2020 6:24 pm บอร์ด MindPHP News & Feedback
0
116
จ 20 ม.ค. 2020 6:24 pm โดย prmindphp
เทคนิคทำธุรกิจอสังหาอย่างไรให้มีกำไร
โดย Patty Perfume อ 19 ม.ค. 2020 7:12 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
208
ส 25 ม.ค. 2020 1:29 am โดย Kasey00
ความปลอดภัยด้านสุขภาพ เรื่องที่ทุกคนควรเริ่มต้นใฝ่หา
โดย medalezga อ 19 ม.ค. 2020 4:30 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
236
ศ 24 ม.ค. 2020 9:32 am โดย LEG
วิธีการนำชื่อข้อมูลในชื่อในฐานข้อมูล ในไฟล์ XML ของ module joomla
โดย jamepiyawat ส 18 ม.ค. 2020 6:44 pm บอร์ด Joomla Developing Knowledge
0
251
ส 18 ม.ค. 2020 6:44 pm โดย jamepiyawat
วิธีการจัดทำการระบบแจ้้งเตือนใน phpbb
โดย Ittichai_chupol ส 18 ม.ค. 2020 5:42 pm บอร์ด PHP Knowledge
0
241
ส 18 ม.ค. 2020 5:42 pm โดย Ittichai_chupol
Pillow library ปรับขนาดรูปเป็นเปอร์เซ็นเพื่อนำไปใช้งานได้สะดวก
โดย benzas00123 ส 18 ม.ค. 2020 5:25 pm บอร์ด Python Knowledge
0
74
ส 18 ม.ค. 2020 5:25 pm โดย benzas00123
Pillow library Optimize รูปภาพเพื่อให้มีขนาดของข้อมูลที่เล็กลง
โดย benzas00123 ส 18 ม.ค. 2020 2:53 pm บอร์ด Python Knowledge
0
218
ส 18 ม.ค. 2020 2:53 pm โดย benzas00123
ตัวช่วยในการคำนวณแคลอรี่สำหรับผู้ที่รักการออกกำลังกาย
โดย prmindphp ส 18 ม.ค. 2020 11:50 am บอร์ด MindPHP News & Feedback
0
209
ส 18 ม.ค. 2020 11:50 am โดย prmindphp
เราจะเก็บรูปข้อมูลของรูปลง database เราจะใช้ data type อะไรครับ
โดย benzas00123 ส 18 ม.ค. 2020 11:31 am บอร์ด SQL - Database
2
231
ส 18 ม.ค. 2020 1:17 pm โดย benzas00123