Bagaimana saya bisa mengendus lalu lintas mesin jarak jauh dengan wireshark?

38

Saya dapat mengendus lalu lintas pc lokal saya tetapi saya ingin tahu bagaimana cara mengendus lalu lintas mesin jarak jauh oleh wireshark?

Ketika dalam opsi tangkap saya pilih antarmuka jarak jauh dan masukkan ip jarak jauh saya tunjukkan error.code (10061). Apa yang harus saya lakukan?

tentang studi
sumber
5
Anda hanya dapat mengendus lalu lintas yang dilihat antarmuka jaringan Anda. Jika jaringan beralih paket ke mesin jarak jauh tidak akan dikirimkan kepada Anda. BTW: cobalah untuk meningkatkan tingkat penerimaan Anda.
Matteo

Jawaban:

54

Di Linux dan OSX Anda dapat mencapai ini dengan menjalankan tcpdump di atas ssh dan membuat wireshark mendengarkannya.

  1. Buat pipa bernama:

    $ mkfifo /tmp/remote

  2. Mulai wireshark dari baris perintah

    $ wireshark -k -i /tmp/remote

  3. Jalankan tcpdump lewat ssh pada mesin jarak jauh Anda dan arahkan kembali paket ke pipa bernama:

    $ ssh root@firewall "tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote

Sumber: http://blog.nielshorn.net/2010/02/using-wireshark-with-remote-capturing/

konrad
sumber
Apakah mungkin untuk menangkap paket melalui router pada router itu sendiri dengan cara ini, atau apakah itu sesuatu yang mustahil?
inf3rno
Ini bagus. 2c saya: mengizinkan [ssh root] pada umumnya tidak disarankan, tetapi Anda dapat mengaktifkannya sementara dengan menambahkan root ke baris [Match User] di / etc / ssh / sshd_config.
moodboom
Ini tidak bekerja untuk saya, ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remotedapatkah Anda memberi tahu saya alasannya?
Phoenix
@ info jika router dapat menjalankan tcpdump secara langsung maka ya itu mungkin. Milik saya bukan tempat untuk menginstal tcpdump. Tidak jarang untuk router low end.
Diputarkandapatdaridari
21

Saya menggunakan oneliner ini sebagai root. Sangat bermanfaat!

ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -

Yang terakhir -sebelum de |adalah redirection dari output itu dan digunakan untuk input standar oleh wireshark. The -kpilihan dalam cara wireshark "mulai inmidiately sniffing

ctaglia
sumber
Jawaban pertama terbaik yang pernah saya lihat.
sjas
10

Salah satu pendekatan adalah menggunakan apa yang disebut mirror atau span port pada switch Anda. Jika sakelar Anda tidak cukup cerdas, Anda juga dapat menempatkan hub kecil di antara sakelar / host-ke-tangkap. Anda menghubungkan tautan fisik dari host mendengarkan Anda ke port / hub dan kemudian Anda dapat melihat semua lalu lintas melintasi perangkat. Sebagai alternatif, Anda harus menginstal perangkat lunak penangkapan paket di lokasi yang lebih strategis di jaringan Anda seperti firewall / router perbatasan.

dmourati
sumber
Saya memiliki masalah yang kurang lebih menarik yang dapat diselesaikan dengan cara ini. Bisakah kamu menjawabnya? serverfault.com/questions/855245/catch-tcp-packets-with-router
inf3rno
4

Anda dapat menggunakan deskriptor file untuk terhubung ke dan menerima paket dengan sshdan pipa itu ke wireshark secara lokal:

wireshark -i <(ssh root@firewall tcpdump -s 0 -U -n -w - -i eth0 not port 22)

Anda wireshark akan terbuka dan menampilkan "Antarmuka" seperti /dev/fd/63, yang merupakan deskriptor file yang berisi data dari sistem jarak jauh.

SiLeX
sumber
1

lihat info tentang pengaturan komputer jarak jauh, untuk memungkinkan mesin lokal Anda terhubung dan menangkap

http://wiki.wireshark.org/CaptureSetup/WinPcapRemote

Yakub
sumber
Sementara ini secara teoritis dapat menjawab pertanyaan, akan lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
Scott Pack
1

Di bawah RHEL, jawaban konrad tidak berfungsi untuk saya karena tcpdumpmemerlukan root, dan saya hanya memiliki akses sudo. Apa yang berhasil adalah membuat fifo jarak jauh tambahan yang bisa saya baca:

remote:~$ mkfifo pcap
remote:~$ sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22 > pcap

dan mengirim data dengan koneksi terpisah:

local:~$ mkfifo pcap
local:~$ ssh user@host "cat pcap" > pcap

dan akhirnya mulai Wireshark

local:~$ wireshark -k -i pcap
Dan
sumber
0

Anda hanya dapat mengendus lalu lintas yang membuatnya untuk Anda. Jadi Joe A pergi ke Joe B tidak pernah mendekati PC Anda, jadi Anda tidak dapat melihatnya.

Satu-satunya cara bagi Anda untuk mendapatkan lalu lintas atau mendapatkan lalu lintas untuk Anda. Untuk sampai ke lalu lintas memerlukan koneksi ke router atau switch atau hub yang baik di suatu tempat di tengah koneksi mereka. Untuk mendapatkan lalu lintas kepada Anda, Anda harus meracuni beberapa switch ARP sehingga mereka berpikir Anda itu.

Johnny
sumber
0

Selain jawaban sebelumnya, versi dengan netcat ncmungkin berguna juga:

Host jarak jauh:

mkfifo /tmp/mypcap.fifo

tcpdump -i em0 -s 0 -U -w - > /tmp/mypcap.fifo

nc -l 10000 < /tmp/mypcap.fifo

Tuan rumah lokal:

wireshark -ki <(nc 192.168.1.1 10000)

Catatan tentang metode ini: Ini membuat port tidak aman terbuka untuk semua antarmuka, jadi pastikan untuk menyaring koneksi masuk dengan aturan firewall.

buronan
sumber