Nmap เป็นเครื่องสแกนพอร์ตที่ยอดเยี่ยม แต่บางครั้งคุณต้องการสิ่งที่เชื่อถือได้มากกว่า คุณสามารถถามเคอร์เนลว่ากระบวนการใดมีพอร์ตที่เปิดโดยใช้netstat
ยูทิลิตี้:
me @ myhost: ~ $ sudo netstat -tlnp
การเชื่อมต่ออินเทอร์เน็ตที่ใช้งาน (เซิร์ฟเวอร์เท่านั้น)
Proto Recv-Q ผู้ส่งในท้องถิ่นที่อยู่ต่างประเทศที่อยู่รัฐชื่อ PID / ชื่อโปรแกรม
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1004 / dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 380 / sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 822 / cupsd
tcp6 0 0 ::: 22 ::: * ฟัง 380 / sshd
tcp6 0 0 :: 1: 631 ::: * ฟัง 822 / cupsd
ตัวเลือกที่ฉันได้รับคือ:
-t
TCP เท่านั้น
-l
ฟังพอร์ตเท่านั้น
-n
อย่าค้นหาบริการและชื่อโฮสต์เพียงแสดงหมายเลข
-p
แสดงข้อมูลกระบวนการ (ต้องใช้สิทธิ์รูท)
ในกรณีนี้เราสามารถเห็นได้ว่าsshd
กำลังฟังบนอินเตอร์เฟสใด ๆ ( 0.0.0.0
) พอร์ต 22 และcupsd
กำลังฟังบนลูปแบ็ค ( 127.0.0.1
) พอร์ต 631 เอาต์พุตของคุณอาจแสดงว่าtelnetd
มีที่อยู่ในตัวของ192.168.1.1:23
ซึ่งหมายความว่ามันจะไม่ตอบรับการเชื่อมต่อบนอะแดปเตอร์ย้อนกลับ (เช่นคุณทำไม่ได้telnet 127.0.0.1
)
มีเครื่องมืออื่น ๆ ที่จะแสดงข้อมูลที่คล้ายกัน (เช่นlsof
หรือ/proc
) แต่ netstat นั้นมีอยู่อย่างกว้างขวางที่สุด มันใช้งานได้กับ Windows ( netstat -anb
) BSD netstat นั้นแตกต่างกันเล็กน้อย: คุณจะต้องใช้sockstat (1)เพื่อรับข้อมูลกระบวนการแทน
เมื่อคุณมี ID กระบวนการและชื่อโปรแกรมคุณสามารถไปที่การค้นหากระบวนการและฆ่ามันหากคุณต้องการที่จะปิดพอร์ต สำหรับการควบคุมที่ละเอียดยิ่งขึ้นคุณสามารถใช้ไฟร์วอลล์ (iptables บน Linux) เพื่อ จำกัด การเข้าถึงเฉพาะบางที่อยู่ คุณอาจต้องปิดการใช้งานบริการเริ่มต้น ถ้า PID คือ "-" บน Linux อาจเป็นกระบวนการเคอร์เนล (ซึ่งเป็นเรื่องปกติกับ NFS เป็นต้น) ดังนั้นขอให้โชคดีในการค้นหาว่ามันคืออะไร
หมายเหตุ: ฉันพูดว่า "เชื่อถือ" เพราะคุณไม่ได้ถูกขัดขวางโดยสภาพเครือข่ายและไฟร์วอลล์ ถ้าคุณเชื่อใจในคอมพิวเตอร์ของคุณมันยอดเยี่ยมมาก อย่างไรก็ตามหากคุณสงสัยว่าคุณถูกแฮ็คคุณอาจไม่สามารถเชื่อถือเครื่องมือในคอมพิวเตอร์ของคุณได้ การแทนที่ยูทิลิตี้มาตรฐาน (และบางครั้งก็เรียกระบบ) ด้วยคนที่ซ่อนกระบวนการหรือพอร์ตบางอย่าง (รูทคิท) เป็นวิธีปฏิบัติมาตรฐานในหมู่ผู้โจมตี ทางออกที่ดีที่สุดของคุณคือการทำสำเนาทางนิติเวชของดิสก์และกู้คืนจากการสำรองข้อมูล จากนั้นใช้สำเนาเพื่อกำหนดวิธีที่พวกเขาเข้าไปและปิดมัน
localhost
กำลังเข้าถึงlo
อินเทอร์เฟซ (วนรอบ) ที่อยู่ IP กำลังเชื่อมต่ออินเทอร์เฟซที่แท้จริงของคุณอาจeth0
หรือwlan0
หรืออย่างใดอย่างหนึ่ง