ฉันสามารถดมกลิ่นการจราจรของพีซีในพื้นที่ของฉัน แต่ฉันต้องการทราบวิธีการดมกลิ่นการจราจรของเครื่องระยะไกลโดย wireshark?
เมื่ออยู่ในตัวเลือกการจับภาพฉันเลือกอินเทอร์เฟซระยะไกลและป้อน IP ระยะไกลของฉันแสดงข้อผิดพลาดรหัส (10061) ฉันควรทำอย่างไร?
ฉันสามารถดมกลิ่นการจราจรของพีซีในพื้นที่ของฉัน แต่ฉันต้องการทราบวิธีการดมกลิ่นการจราจรของเครื่องระยะไกลโดย wireshark?
เมื่ออยู่ในตัวเลือกการจับภาพฉันเลือกอินเทอร์เฟซระยะไกลและป้อน IP ระยะไกลของฉันแสดงข้อผิดพลาดรหัส (10061) ฉันควรทำอย่างไร?
คำตอบ:
บน Linux และ OSX คุณสามารถทำสิ่งนี้ได้โดยการรัน tcpdump บน ssh และให้ wireshark ฟังบนไพพ์
สร้างไพพ์ที่มีชื่อ:
$ mkfifo /tmp/remote
เริ่มต้น wireshark จากบรรทัดคำสั่ง
$ wireshark -k -i /tmp/remote
รัน tcpdump บน ssh บนเครื่องรีโมตของคุณและเปลี่ยนแพ็กเก็ตไปยังไพพ์ที่มีชื่อ:
$ ssh root@firewall "tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote
ที่มา: http://blog.nielshorn.net/2010/02/using-wireshark-with-remote-capturing/
ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remote
คุณบอกได้ไหมว่าทำไม
ฉันใช้ออนไลเนอร์นี้เป็นรูต มีประโยชน์มาก!
ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -
สุดท้าย-
ก่อนหน้า|
คือการเปลี่ยนเส้นทางของเอาต์พุตนั้นและใช้กับอินพุตมาตรฐานโดย wireshark -k
ตัวเลือกใน Wireshark หมายถึง "เริ่มต้น inmidiately ดมกลิ่น
วิธีหนึ่งคือใช้สิ่งที่เรียกว่ามิเรอร์หรือขยายพอร์ตบนสวิตช์ของคุณ หากสวิตช์ของคุณไม่ฉลาดพอคุณสามารถใส่ฮับเล็ก ๆ ไว้ระหว่างการเชื่อมต่อสวิตช์ / โฮสต์กับการดักจับได้ คุณเชื่อมต่อฟิสิคัลลิงก์จากโฮสต์การฟังของคุณไปยังพอร์ต / ฮับนั้นจากนั้นคุณจะเห็นการรับส่งข้อมูลทั้งหมดข้ามอุปกรณ์ อีกวิธีหนึ่งคุณจะต้องติดตั้งซอฟต์แวร์การจับแพ็คเก็ตของคุณในตำแหน่งที่มีกลยุทธ์ในเครือข่ายของคุณเช่นไฟร์วอลล์ / เราเตอร์ชายแดน
คุณสามารถใช้ file descriptor เพื่อเชื่อมต่อและรับแพ็กเก็ตโดยssh
และไปที่ wireshark ในพื้นที่:
wireshark -i <(ssh root@firewall tcpdump -s 0 -U -n -w - -i eth0 not port 22)
คุณ wireshark จะเปิดขึ้นและแสดงให้คุณเห็น "อินเตอร์เฟซ" /dev/fd/63
ซึ่งเป็นไฟล์อธิบายที่มีข้อมูลจากระบบระยะไกล
ดูข้อมูลเกี่ยวกับการตั้งค่าคอมพิวเตอร์ระยะไกลเพื่ออนุญาตให้เครื่องท้องถิ่นของคุณเชื่อมต่อและจับภาพ
ภายใต้ RHEL คำตอบของ Konrad ไม่ได้ผลสำหรับฉันเพราะtcpdump
ต้องใช้ root และฉันมีสิทธิ์เข้าถึง sudo เท่านั้น สิ่งที่ทำงานคือการสร้าง Fifo ระยะไกลพิเศษที่ฉันสามารถอ่านได้จาก:
remote:~$ mkfifo pcap
remote:~$ sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22 > pcap
และส่งข้อมูลโดยการเชื่อมต่อแยก:
local:~$ mkfifo pcap
local:~$ ssh user@host "cat pcap" > pcap
และในที่สุดก็เริ่ม Wireshark
local:~$ wireshark -k -i pcap
คุณสามารถสูดกลิ่นการจราจรที่ทำให้คุณ ดังนั้น Joe A ไปที่ Joe B ไม่เคยเข้าใกล้พีซีของคุณดังนั้นคุณจะไม่เห็นมัน
วิธีเดียวที่คุณจะได้รับการจราจรหรือการจราจรให้กับคุณ ในการรับส่งข้อมูลต้องมีการเชื่อมต่อกับเราเตอร์หรือสวิตช์หรือฮับที่ดีที่ใดที่หนึ่งในระหว่างการเชื่อมต่อ ในการรับส่งข้อมูลถึงคุณคุณจะต้องวางยาพิษ ARP บางสวิตช์เพื่อให้พวกเขาคิดว่าเป็นของคุณ
นอกเหนือจากคำตอบก่อนหน้าเวอร์ชันที่มี netcat nc
อาจมีประโยชน์เช่นกัน:
mkfifo /tmp/mypcap.fifo
tcpdump -i em0 -s 0 -U -w - > /tmp/mypcap.fifo
nc -l 10000 < /tmp/mypcap.fifo
wireshark -ki <(nc 192.168.1.1 10000)
หมายเหตุเกี่ยวกับวิธีนี้: ทำให้พอร์ตไม่ปลอดภัยเปิดไปยังอินเทอร์เฟซทั้งหมดดังนั้นให้แน่ใจว่าได้กรองการเชื่อมต่อขาเข้าด้วยกฎไฟร์วอลล์