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

เทคนิคการทำงานของ  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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
สอบถามครับ ทำไมสร้างตารางฐานข้อมูลแล้ว มันไม่ใน ใน pg
โดย chatee supasand พ 15 ม.ค. 2020 5:55 pm บอร์ด Programming - C/C++ & java & Python
4
102
พ 15 ม.ค. 2020 6:07 pm โดย thatsawan
ขอสอบถาม error ของ flask ครับ
โดย benzas00123 พ 15 ม.ค. 2020 10:44 am บอร์ด Programming - C/C++ & java & Python
4
97
พ 15 ม.ค. 2020 10:53 am โดย benzas00123
สอบถาม code ของ Flask หน่อยครับว่ามันเอาไว้ใช้ทำอะไร
โดย benzas00123 อ 14 ม.ค. 2020 4:50 pm บอร์ด Programming - C/C++ & java & Python
3
119
พ 15 ม.ค. 2020 5:54 am โดย mindphp
วิธีการเพิ่มส่วนการแสดงในหน้าสมัครสมาชิกของ เว็บบอร์ด phpbb
โดย Ittichai_chupol อ 14 ม.ค. 2020 3:19 pm บอร์ด PHP Knowledge
0
91
อ 14 ม.ค. 2020 3:19 pm โดย Ittichai_chupol
อยากทราบวิธีการแก้ไขปัญหา การเปิดใช้งาน xampp
โดย Ittichai_chupol อ 14 ม.ค. 2020 11:11 am บอร์ด Programming - PHP
6
2346
อ 14 ม.ค. 2020 3:20 pm โดย Ittichai_chupol
การแปลงข้อมูลที่ดึงมาจาก database ที่เป็น list ให้เป็น string เพื่อนำมาใช้ประโยชน์ในด้านต่างๆ
โดย benzas00123 จ 13 ม.ค. 2020 5:34 pm บอร์ด Python Knowledge
0
74
จ 13 ม.ค. 2020 5:34 pm โดย benzas00123
การใช้ os.walk ในการหานามสกุลไฟล์ที่ต้องการทั้งหมดที่อยู่ใน Project
โดย benzas00123 จ 13 ม.ค. 2020 3:09 pm บอร์ด Python Knowledge
0
86
จ 13 ม.ค. 2020 3:09 pm โดย benzas00123
ปฏิทินประจําปี 2563 ธีมรูปแบบญี่ปุ่น
โดย noppadonsk จ 13 ม.ค. 2020 2:32 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
148
จ 13 ม.ค. 2020 2:32 pm โดย noppadonsk
ขอสอบถามวิธํีการ split tuple หน่อยครับ
โดย benzas00123 จ 13 ม.ค. 2020 11:17 am บอร์ด Programming - C/C++ & java & Python
7
121
จ 13 ม.ค. 2020 12:11 pm โดย benzas00123
มีปัญหากับ do-while ค่ะ
โดย mashato ส 11 ม.ค. 2020 10:03 pm บอร์ด Programming - C/C++ & java & Python
1
115
อ 12 ม.ค. 2020 5:40 pm โดย mindphp
ขอทราบวิธีการติดตั้ง pgadmin 4 บน ubuntu ครับ
โดย benzas00123 ส 11 ม.ค. 2020 4:30 pm บอร์ด SQL - Database
8
158
ส 11 ม.ค. 2020 5:38 pm โดย benzas00123
ทิปการเขียน php ลบ Cookies ทั้งหมด ออกด้วย php
โดย mindphp ส 11 ม.ค. 2020 1:54 pm บอร์ด PHP Knowledge
0
51
ส 11 ม.ค. 2020 1:54 pm โดย mindphp
วิธีการเขียน SQL เพื่ม PRIMARY KEY ตาราง ฐานข้อมูล
โดย Ittichai_chupol ศ 10 ม.ค. 2020 6:20 pm บอร์ด SQL Knowledge
0
101
ศ 10 ม.ค. 2020 6:20 pm โดย Ittichai_chupol
วิธีการสร้างหน้าเว็บให้หน่วงเวลาก่อนจะไปยังหน้าเว็บจริง ๆ ด้วยฟังชั่น header()
โดย jamepiyawat ศ 10 ม.ค. 2020 5:51 pm บอร์ด PHP Knowledge
0
88
ศ 10 ม.ค. 2020 5:51 pm โดย jamepiyawat
ช่วยอธิบาย Code การ zip file หน่อยครับ
โดย benzas00123 ศ 10 ม.ค. 2020 11:35 am บอร์ด Programming - C/C++ & java & Python
3
96
ศ 10 ม.ค. 2020 12:16 pm โดย benzas00123
จำลองรูปแบบแผนการเล่นฟุตบอลเพื่อใช้เป็นกลยุทธ์ในการเล่นด้วยโปรแกรมจัดรูปแบบแผนการเล่นฟุตบอล
โดย prmindphp พฤ 09 ม.ค. 2020 7:19 pm บอร์ด MindPHP News & Feedback
0
100
พฤ 09 ม.ค. 2020 7:19 pm โดย prmindphp
ช่วยหน่อยครับ รับค่าข้อมูลเพื่อบันทึกลงไปในฐานข้อมูลของ Postgres ไม่ได้ครับ
โดย benzas00123 พฤ 09 ม.ค. 2020 5:53 pm บอร์ด Programming - C/C++ & java & Python
0
58
พฤ 09 ม.ค. 2020 5:53 pm โดย benzas00123
การเชื่อต่อฐานข้อมูล Postgres ด้วย Module psycopg2
โดย benzas00123 พฤ 09 ม.ค. 2020 3:48 pm บอร์ด Python Knowledge
0
53
พฤ 09 ม.ค. 2020 3:48 pm โดย benzas00123
เชื่อมต่อกับ ฐานข้อมูลของ psycopg2 ไม่ได้ครับ
โดย benzas00123 พฤ 09 ม.ค. 2020 2:28 pm บอร์ด Programming - C/C++ & java & Python
1
53
พฤ 09 ม.ค. 2020 2:53 pm โดย benzas00123
ไม่สามารถติดตั้ง Module psycopg2 ใน pycharm ได้ครับ
โดย benzas00123 พฤ 09 ม.ค. 2020 1:30 pm บอร์ด Programming - C/C++ & java & Python
1
80
พฤ 09 ม.ค. 2020 1:42 pm โดย benzas00123