Apakah ada cara untuk memfilter / mengikuti aliran TCP / SSL berdasarkan ID proses tertentu menggunakan Wireshark ?
Apakah ada cara untuk memfilter / mengikuti aliran TCP / SSL berdasarkan ID proses tertentu menggunakan Wireshark ?
Jawaban:
Saya tidak mengerti bagaimana caranya. PID tidak berhasil masuk ke kabel (secara umum), ditambah Wireshark memungkinkan Anda untuk melihat apa yang ada di kabel - kemungkinan semua mesin yang berkomunikasi melalui kabel. ID proses tidak unik di berbagai mesin.
Jika Anda mencari cara alternatif dan lingkungan yang Anda gunakan adalah Windows, Monitor Jaringan 3.3 Microsoft adalah pilihan yang baik. Ini memiliki kolom nama proses. Anda dengan mudah menambahkannya ke filter menggunakan menu konteks dan menerapkan filter .. Seperti biasa GUI-nya sangat intuitif ...
Anda dapat mencocokkan nomor port dari wireshark hingga nomor port dari, katakanlah, netstat yang akan memberi tahu Anda PID dari proses yang mendengarkan pada port tersebut.
Gunakan Microsoft Message Analyzer v1.4
Arahkan ke ProcessId dari pemilih bidang.
Etw
-> EtwProviderMsg
--> EventRecord
---> Header
----> ProcessId
Klik kanan dan Tambahkan sebagai Kolom
Di Windows ada versi eksperimental yang melakukan hal ini, seperti yang dijelaskan di milis, Filter menurut nama proses lokal
Ini adalah hal penting yang dapat dilakukan untuk memantau di mana proses tertentu mencoba untuk terhubung, dan tampaknya tidak ada cara yang nyaman untuk melakukan ini di Linux. Namun, beberapa solusi mungkin dilakukan, jadi saya merasa perlu untuk menyebutkannya.
Ada sebuah program bernama nonet yang memungkinkan menjalankan program tanpa akses Internet (Saya memiliki sebagian besar peluncur program di sistem saya yang disiapkan dengannya). Menggunakan setguid untuk menjalankan proses di Nonet kelompok dan set sebuah iptables aturan untuk menolak semua koneksi dari grup ini.
Pembaruan: sekarang saya menggunakan sistem yang lebih sederhana, Anda dapat dengan mudah memiliki konfigurasi iptables yang dapat dibaca dengan ferm, dan cukup gunakan program sg
untuk menjalankan program dengan grup tertentu. Iptables juga memungkinkan Anda untuk mengubah rute lalu lintas sehingga Anda bahkan dapat merutekannya ke antarmuka terpisah atau proxy lokal pada port yang memungkinkan Anda untuk memfilter di wireshark atau LOG paket langsung dari iptables jika Anda tidak ingin menonaktifkan semua internet saat Anda sedang memeriksa lalu lintas.
Tidak terlalu rumit untuk mengadaptasinya untuk menjalankan program dalam grup dan memotong semua lalu lintas lainnya dengan iptables untuk masa eksekusi dan kemudian Anda dapat menangkap lalu lintas hanya dari proses ini.
Jika saya pernah datang untuk menulisnya, saya akan memposting tautan di sini.
Pada catatan lain, Anda selalu dapat menjalankan proses di mesin virtual dan mengendus antarmuka yang benar untuk mengisolasi koneksi yang dibuatnya, tetapi itu akan menjadi solusi yang lebih rendah ...
Jika Anda ingin mengikuti aplikasi yang masih harus dijalankan, maka kemungkinan besar:
docker run -t -i ubuntu /bin/bash
(ubah "ubuntu" ke distro favorit Anda, ini tidak harus sama dengan di sistem Anda yang sebenarnya)any
, wlan0
, eth0
, ... memilih antarmuka virtual baru docker0
sebagai gantinya.Anda mungkin memiliki keraguan tentang menjalankan perangkat lunak Anda dalam sebuah wadah, jadi berikut adalah jawaban atas pertanyaan yang mungkin ingin Anda tanyakan:
Dalam beberapa kasus, Anda tidak dapat memfilter berdasarkan id proses. Misalnya, dalam kasus saya, saya perlu mengendus lalu lintas dari satu proses. Tetapi saya menemukan dalam alamat IP mesin target config, menambahkan filter ip.dst==someip
dan voila. Ini tidak akan berfungsi dalam hal apa pun, tetapi untuk beberapa hal ini berguna.
Dapatkan nomor port menggunakan netstat
:
netstat -b
Dan kemudian gunakan filter Wireshark:
tcp.port == portnumber
Penggunaan strace
lebih cocok untuk situasi ini.
strace -f -e trace=network -s 10000 -p <PID>;
opsi -f
untuk juga melacak semua proses bercabang, -e trace=netwrok
untuk hanya memfilter panggilan sistem jaringan dan -s
untuk menampilkan panjang string hingga 10.000 karakter.
Anda juga hanya dapat melacak panggilan tertentu seperti operasi kirim, terima, baca.
strace -f -e trace=send,recv,read -s 10000 -p <PID>;
Anda dapat memeriksa nomor port dengan contoh perintah berikut di wireshark: -
tcp.port == 80
tcp.port == 14220