เทคนิคการสแกนพอร์ต
SYN, connect, UDP
เทคนิคการสแกนพอร์ต เป็นบทเรียน Ethical Hacking Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ethical Hacking Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
เหตุใดจึงต้องสแกนพอร์ต
พอร์ตที่เปิดอยู่เผยให้เห็นบริการที่โฮสต์กำลังทำงาน ซึ่งเป็นแผนผังพื้นผิวการโจมตีของคุณ การสแกนพอร์ตใช้ระบุว่าพอร์ต TCP และ UDP ใดเปิด ปิด หรือถูกกรอง
Nmap มีเทคนิคการสแกนหลายแบบ โดยแต่ละแบบมีข้อแลกเปลี่ยนด้านความเร็ว การพรางตัว และสิทธิ์ที่จำเป็น
สถานะพอร์ต
Nmap รายงานแต่ละพอร์ตด้วยสถานะใดสถานะหนึ่งต่อไปนี้:
- เปิด: บริการกำลังยอมรับการเชื่อมต่ออยู่
- ปิด: เข้าถึงได้ แต่ไม่มีบริการรอรับการเชื่อมต่อ
- ถูกกรอง: ไฟร์วอลล์บล็อกโพรบ ทำให้ Nmap ไม่สามารถระบุได้
- เปิด|ถูกกรอง และ ปิด|ถูกกรอง: ผลลัพธ์กำกวม
การจับมือสามขั้นตอนของ TCP
การทำความเข้าใจการสแกนจำเป็นต้องเข้าใจการจับมือของ TCP:
- ไคลเอนต์ส่ง SYN
- เซิร์ฟเวอร์ตอบกลับ SYN-ACK หากพอร์ตเปิดอยู่
- ไคลเอนต์ส่ง ACK เพื่อทำการเชื่อมต่อให้เสร็จสมบูรณ์
พอร์ตที่ปิดจะตอบกลับด้วย RST ประเภทการสแกนแตกต่างกันที่ดำเนินการไปไกลเพียงใดในขั้นตอนการจับมือนี้
การสแกน SYN
การสแกน SYN (-sS) เป็นค่าเริ่มต้นเมื่อเรียกใช้ในฐานะรูท โดยจะส่ง SYN ตรวจดู SYN-ACK (เปิด) หรือ RST (ปิด) แล้วส่ง RST เพื่อไม่ทำการจับมือให้เสร็จสมบูรณ์
การสแกนแบบ "เปิดเพียงครึ่งเดียว" นี้รวดเร็วและพรางตัวได้ค่อนข้างดี เพราะไม่มีการสร้างการเชื่อมต่อเต็มรูปแบบ และจำเป็นต้องมีสิทธิ์ใช้ซ็อกเก็ตดิบ
sudo nmap -sS 192.168.1.10การสแกนแบบเชื่อมต่อ
การสแกนแบบเชื่อมต่อ (-sT) ทำการจับมือสามขั้นตอนอย่างสมบูรณ์โดยใช้ API เครือข่ายของระบบปฏิบัติการ ไม่จำเป็นต้องมีสิทธิ์พิเศษ จึงเป็นทางเลือกสำรองสำหรับผู้ใช้ที่ไม่มีสิทธิ์ระดับสูง
เนื่องจากมีการเชื่อมต่ออย่างสมบูรณ์ การสแกนนี้จึงส่งสัญญาณชัดเจนกว่า และมีแนวโน้มถูกบันทึกโดยบริการของเป้าหมายมากกว่า
nmap -sT 192.168.1.10การสแกน UDP
การสแกน UDP (-sU) ใช้ค้นหาบริการอย่าง DNS, SNMP และ DHCP ที่ใช้ UDP เนื่องจาก UDP ไม่ต้องสร้างการเชื่อมต่อ การสแกนจึงช้าและซับซ้อน:
- การไม่ตอบกลับมักหมายถึงเปิด|ถูกกรอง
- ข้อความ ICMP แจ้งว่าพอร์ตเข้าถึงไม่ได้หมายถึงปิด
บริการ UDP มักถูกมองข้าม จึงอาจซ่อนข้อมูลสำคัญที่ค้นพบได้
sudo nmap -sU --top-ports 50 192.168.1.10การสแกนแบบพรางตัว
การสแกนหลายแบบส่งชุดแฟล็กที่ไม่ปกติเพื่อหลบไฟร์วอลล์อย่างง่ายและหลีกเลี่ยงการบันทึก SYN:
- FIN (
-sF): มีเฉพาะแฟล็ก FIN - NULL (
-sN): ไม่ตั้งค่าแฟล็กใดเลย - Xmas (
-sX): ตั้งค่า FIN, PSH และ URG เปรียบเสมือน "ต้นคริสต์มาสที่สว่างไสว"
วิธีเหล่านี้อาศัยพฤติกรรมตาม RFC และมักใช้ได้กับชุดระบบเครือข่ายบางประเภทเท่านั้น
sudo nmap -sX 192.168.1.10การเลือกพอร์ต
กำหนดพอร์ตที่จะสแกนเพื่อสร้างสมดุลระหว่างความเร็วกับความครอบคลุม:
-p 80,443พอร์ตที่ระบุ-p 1-1000ช่วงพอร์ต-p-พอร์ตทั้ง 65535 พอร์ต--top-ports 100พอร์ตที่พบบ่อยที่สุด-Fการสแกนอย่างรวดเร็วด้วยพอร์ต 100 อันดับแรก
nmap -p- 192.168.1.10
nmap --top-ports 100 192.168.1.10แม่แบบการกำหนดเวลา
แฟล็ก -T กำหนดความเร็วตั้งแต่ 0 (หวาดระแวง) ถึง 5 (บ้าคลั่ง):
- -T0/-T1: ช้ามาก ใช้เพื่อหลบ IDS
- -T3: ค่าเริ่มต้นที่สมดุล
- -T4: เร็วขึ้น เหมาะกับเครือข่ายที่เชื่อถือได้
- -T5: เร่งความเร็วสูง อาจพลาดผลลัพธ์
การสแกนที่เร็วขึ้นจะส่งสัญญาณชัดเจนกว่าและเสี่ยงต่อความไม่แม่นยำ
nmap -sS -T4 -p- 192.168.1.10พื้นฐานการหลบเลี่ยงไฟร์วอลล์
Nmap มีตัวเลือกสำหรับทดสอบความทนทานของไฟร์วอลล์และ IDS:
-fแบ่งแพ็กเก็ตเป็นส่วนย่อย-Dใช้ที่อยู่ต้นทางลวง--source-portปลอมแปลงพอร์ตต้นทางที่เชื่อถือได้ เช่น 53
ใช้ตัวเลือกเหล่านี้เฉพาะในการทดสอบที่ได้รับอนุญาต เพื่อประเมินความสามารถในการตรวจจับ
การรวมตัวเลือกเป็นการสแกนที่ใช้งานได้จริง
การสแกนจริงมักผสมผสานตัวเลือกเหล่านี้ การสแกน TCP อย่างละเอียดที่ใช้กันทั่วไปจะเลือกประเภทการสแกน สแกนทุกพอร์ต ใช้ความเร็วที่สูงขึ้น และบันทึกผลลัพธ์
เริ่มจากการสแกนให้ครอบคลุมเพื่อค้นหาพอร์ตที่เปิด จากนั้นจึงสแกนติดตามแบบเจาะจง (ตรวจหารุ่นและใช้สคริปต์) เฉพาะพอร์ตที่เปิดอยู่จริง แนวทางสองระยะนี้เร็วและเงียบกว่าการทำทุกอย่างพร้อมกัน
sudo nmap -sS -p- -T4 -oA tcp_all 192.168.1.10
# Then deep-scan only the open ports foundตรวจสอบอย่างรวดเร็ว
จับคู่การสแกนกับพฤติกรรมของการสแกนนั้น
สรุปทบทวน
คุณได้เรียนรู้เทคนิคการสแกนพอร์ต:
- สถานะพอร์ต: เปิด ปิด ถูกกรอง และรูปแบบกำกวม
- การสแกน SYN (-sS) เป็นค่าเริ่มต้นที่พรางตัวได้ดี ส่วน การเชื่อมต่อ (-sT) ไม่ต้องใช้สิทธิ์พิเศษแต่ส่งสัญญาณชัดเจนกว่า
- UDP (-sU) ช้า แต่ค้นพบบริการที่มักถูกมองข้าม
- การสแกน FIN/NULL/Xmas ช่วยหลบไฟร์วอลล์อย่างง่าย
- ควบคุมพอร์ตด้วย
-pควบคุมความเร็วด้วย-Tและทดสอบการหลบเลี่ยงด้วย -f/-D
ถัดไป: การตรวจหาบริการและระบบปฏิบัติการ
คำถามที่พบบ่อย
บทเรียน “เทคนิคการสแกนพอร์ต” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เทคนิคการสแกนพอร์ต” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ethical Hacking Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เทคนิคการสแกนพอร์ต”
SYN, connect, UDP คุณปฏิบัติ Ethical Hacking Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ethical Hacking Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ethical Hacking Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “เทคนิคการสแกนพอร์ต” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ethical Hacking Academy นี้ได้ไหม
ได้ บทเรียน Ethical Hacking Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การค้นหาโฮสต์
- เทคนิคการสแกนพอร์ต
- การตรวจจับบริการและ OS
- เครื่องมือสร้างสคริปต์ของ Nmap