โปรแกรม telnet ซึ่งไม่ใช่โปรโตคอล Telnet อาจมีประโยชน์ในการทดสอบสถานะพอร์ตซึ่งเป็นฟังก์ชันที่อธิบายในบทช่วยสอนนี้ เหตุผลที่โปรโตคอลนี้มีประโยชน์ในการเชื่อมต่อกับโปรโตคอลต่างๆ เช่น POP คือโปรโตคอลทั้งสองรองรับข้อความธรรมดา (ซึ่งเป็นปัญหาหลักและเหตุใดจึงไม่ควรใช้บริการดังกล่าว)
ตรวจสอบพอร์ตก่อนเริ่ม:
ก่อนเริ่มต้นด้วย telnet ให้ตรวจสอบกับ Nmap บางพอร์ตบนเป้าหมายตัวอย่าง (linuxhint.com)
#nmaplinuxhint.com
เริ่มต้นใช้งาน Telnet ไปยังพอร์ตเฉพาะเพื่อการทดสอบ:
เมื่อเราเรียนรู้เกี่ยวกับพอร์ตที่เปิดอยู่ เราก็สามารถเริ่มการทดสอบได้ มาลองใช้พอร์ต 22 (ssh) บนคอนโซลเขียน telnet ดังที่แสดงด้านล่าง:
#telnet linuxhint.com22
ดังที่คุณเห็นในตัวอย่างด้านล่าง ผลลัพธ์ระบุว่าฉันเชื่อมต่อกับ linuxhint.com แล้ว ดังนั้นพอร์ตจึงเปิดอยู่
มาลองกันบนพอร์ต 80 (http):
#telnet linuxhint.com80เอาต์พุตจะคล้ายกับพอร์ต 80 ตอนนี้มาลองใช้พอร์ต 161 ซึ่งตาม Nmap จะถูกกรอง:
#telnet linuxhint.com161ตามที่คุณเห็นพอร์ตที่กรองแล้วไม่อนุญาตให้สร้างการเชื่อมต่อโดยส่งคืนข้อผิดพลาดการหมดเวลา
ตอนนี้ ลองใช้ Telnet กับพอร์ตที่ปิด (ไม่ได้กรอง) สำหรับตัวอย่างนี้ ฉันจะใช้พอร์ต 81 เนื่องจาก Nmap ไม่ได้รายงานเกี่ยวกับพอร์ตที่ปิดก่อนที่จะดำเนินการต่อ ฉันจะยืนยันว่ามันถูกปิด โดยการสแกนพอร์ตเฉพาะโดยใช้ -p ธง:
#nmap -NS 81linuxhint.comเมื่อยืนยันว่าพอร์ตถูกปิดแล้ว มาทดสอบกับ Telnet กัน:
#telnet linuxhint.com81ดังที่คุณเห็นว่าไม่ได้สร้างการเชื่อมต่อและข้อผิดพลาดนั้นแตกต่างจากพอร์ตที่ถูกกรองซึ่งแสดงว่าการเชื่อมต่อถูกปฏิเสธ
ในการปิดการเชื่อมต่อที่สร้างขึ้น คุณสามารถกด CTRL + ] และคุณจะเห็นข้อความแจ้ง:
telnet>แล้วพิมพ์ ล้มเลิก แล้วกด เข้าสู่ .
ภายใต้ Linux คุณสามารถเขียนเชลล์สคริปต์เล็กน้อยเพื่อเชื่อมต่อผ่าน telnet กับเป้าหมายและพอร์ตต่างๆ ได้อย่างง่ายดาย
เปิด nano และสร้างไฟล์ชื่อ multipletelnet.sh โดยมีเนื้อหาต่อไปนี้อยู่ภายใน:
#! /bin/bash #The first uncommented line will connect to linuxhint.com through port $ telnet linuxhint.com 80 #The second uncommented line will connect to linux.lat through ssh. telnet linux.lat 22 #The third uncommented line will connect to linuxhint.com through ssh telnet linuxhint.com 22
การเชื่อมต่อเริ่มต้นหลังจากปิดก่อนหน้านี้เท่านั้น คุณสามารถปิดการเชื่อมต่อโดยส่งอักขระใดก็ได้ ในตัวอย่างข้างต้น ฉันส่ง q
อย่างไรก็ตาม หากคุณต้องการทดสอบพอร์ตและเป้าหมายจำนวนมากพร้อมๆ กัน Telnet ไม่ใช่ตัวเลือกที่ดีที่สุด ซึ่งคุณมี Nmap และเครื่องมือที่คล้ายกัน
เกี่ยวกับเทลเน็ต:
ดังที่กล่าวไว้ก่อนหน้านี้ Telnet เป็นโปรโตคอลที่ไม่มีการเข้ารหัสซึ่งเสี่ยงต่อการดมกลิ่น ผู้โจมตีสามารถสกัดกั้นการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ด้วยข้อความธรรมดาที่เข้าถึงข้อมูลที่เหมาะสม เช่น รหัสผ่าน
การขาดวิธีการรับรองความถูกต้องยังทำให้ผู้โจมตีสามารถแก้ไขแพ็คเกจที่ส่งระหว่างสองโหนดได้
ด้วยเหตุนี้ Telnet จึงถูกแทนที่อย่างรวดเร็วด้วย SSH (Secure Shell) ซึ่งมีวิธีการรับรองความถูกต้องที่หลากหลาย และยังเข้ารหัสการสื่อสารทั้งหมดระหว่างโหนดด้วย
โบนัส: การทดสอบพอร์ตเฉพาะสำหรับช่องโหว่ที่เป็นไปได้ด้วย Nmap:
ด้วย Nmap เราสามารถไปได้ไกลกว่า Telnet เราสามารถเรียนรู้เวอร์ชันของโปรแกรมที่ทำงานอยู่เบื้องหลังพอร์ต และเรายังสามารถทดสอบช่องโหว่ได้อีกด้วย
การสแกนพอร์ตเฉพาะเพื่อค้นหาช่องโหว่ในบริการ:
ตัวอย่างต่อไปนี้แสดงการสแกนเทียบกับพอร์ต 80 ของ linuxhint.com ที่เรียกใช้สคริปต์ Nmap NSE เพื่อทดสอบ ก้าวร้าว สคริปต์มองหาช่องโหว่:
#nmap -v -NS 80 --scriptvuln linuxhint.comอย่างที่คุณเห็น เนื่องจากเป็นเซิร์ฟเวอร์ LinuxHint.com จึงไม่พบช่องโหว่ใดๆ
เป็นไปได้ที่จะสแกนพอร์ตเฉพาะเพื่อหาช่องโหว่เฉพาะ ตัวอย่างต่อไปนี้แสดงวิธีการสแกนพอร์ตโดยใช้ Nmap เพื่อค้นหาช่องโหว่ของ DOS:
#nmap -v -NS 80 --scriptสอง linuxhint.comอย่างที่คุณเห็น Nmap พบช่องโหว่ที่เป็นไปได้ (ในกรณีนี้เป็นผลบวกที่ผิดพลาด)
คุณสามารถค้นหาบทช่วยสอนคุณภาพสูงมากมายพร้อมเทคนิคการสแกนพอร์ตต่างๆ ได้ที่ https://linuxhint.com/?s=scan+ports
ฉันหวังว่าคุณจะพบบทช่วยสอนนี้ใน Telnet ไปยังพอร์ตเฉพาะเพื่อการทดสอบ มีประโยชน์. ติดตาม LinuxHint เพื่อรับเคล็ดลับและการอัปเดตเพิ่มเติมเกี่ยวกับ Linux และเครือข่าย