Penangkapan paket headless di terminal Linux dan Windows

Penulis XDA minggu ini membuat kasus untuk melewatkan Wireshark di Windows 11 dan mulai dengan pktmon, monitor paket bawaan. Framing itu cocok dengan realitas yang lebih besar yang dihayati sebagian besar operator: kotak yang perlu kami curi jarang sekali kotak tempat kami duduk. Bisa jadi wadah Docker, VPS yang tidak dikelola, Raspberry Pi di lemari, atau router OPNsense dengan hanya SSH yang terbuka. Itulah masalah penangkapan headless, dan GUI Wireshark bukan jawabannya. Yang kami butuhkan adalah CLI yang berjalan melalui SSH, menulis pcap yang berputar tanpa diawasi, dan membaca filter BPF dengan cara yang sama seperti mesin penangkapan Wireshark. Kami menguji tujuh alat yang melakukan hal itu persis pada host Windows dan Linux, dan mengeringkasnya berdasarkan kekuatan.

Apa yang dicari dalam alat penangkapan paket headless

Penangkapan jarak jauh memiliki batasan berbeda dari penangkapan desktop. Enam hal membuat perbedaan:

Itu daftarnya. Sekarang alatnya.

Perbandingan cepat

AlatTerbaik untukPlatformPaket gratisHarga mulai/blnNilai
TSharkDissector Wireshark lengkap di baris perintahWindows, macOS, LinuxYaGratis5/5
tcpdumpPenangkapan headless di mana-mana di Linux dan BSDLinux, macOS, BSDYaGratis5/5
pktmonPenangkapan Windows tanpa memasang apa punWindows 10, 11, Server 2019+YaGratis4/5
tcpflowMerekonstruksi aliran TCP ke dalam fileLinux, macOSYaGratis4/5
ngrepPencocokan pola gaya grep di atas kawatLinux, macOS, WindowsYaGratis4/5
ZeekMengubah paket menjadi log yang dapat dicariLinux, macOS, BSDYaGratis4.5/5
TermsharkUI Wireshark di dalam sesi SSHLinux, macOS, Windows, BSDYaGratis4/5

Alatnya

1. TShark, untuk dissector Wireshark lengkap di baris perintah

TShark dilengkapi dengan Wireshark dan menjalankan mesin dissector yang sama persis, minus GUI. Setiap protokol yang didekodekan Wireshark, TShark dekodekan ke stdout, dan setiap filter tampilan yang kami kenal dari Wireshark berfungsi verbatim (-Y "http.request.method == POST"). Arahkan ke antarmuka dengan -i eth0, tambahkan -w capture.pcap untuk menulis, tambahkan -b duration:600 -b files:24 untuk berotasi setiap jam selama sehari penuh, dan kami memiliki penangkapan tanpa pengawasan dan analisis dalam satu biner.

Di mana kekurangannya: di Windows, diperlukan instalasi Wireshark penuh untuk mengambil Npcap; pada gambar Linux yang dipangkas, ia menarik perpustakaan dissector, yang tidak kecil. Dekripsi TLS langsung masih memerlukan file keylog, sama seperti GUI.

Harga: Gratis, sumber terbuka, GPLv2.

Platform: Windows, macOS, sebagian besar distribusi Linux, BSD.

Unduh: Fondasi Wireshark

Garis bawah: default ketika kami menginginkan otak Wireshark tanpa jendela Wireshark.

2. tcpdump, untuk penangkapan headless di Linux dan BSD

tcpdump adalah alat yang sudah dimiliki setiap host Unix, atau satu paket jauh dari memilikinya. tcpdump -i eth0 -w /var/log/capture.pcap -G 3600 -C 200 'tcp port 443' merekam ke pcap berputar yang dapat kami tarik nanti dan buka di Wireshark, TShark, atau salah satu alat di bawah ini. Sintaks filter BPF-nya cocok persis dengan filter penangkapan Wireshark, dan biner ini memiliki berat di bawah 2 MB pada sebagian besar distribusi.

Di mana kekurangannya: tidak ada filter tampilan, tidak ada dekode protokol di luar mode -vvv bawaan. Di macOS Big Sur dan yang lebih baru, beberapa antarmuka dikunci tanpa izin tambahan.

Harga: Gratis, sumber terbuka, BSD 3-klausa.

Platform: Linux, macOS, FreeBSD, OpenBSD, NetBSD.

Unduh: Grup Tcpdump

Garis bawah: jawaban refleks di kotak Unix apa pun yang berjalan headless.

3. pktmon, untuk penangkapan Windows tanpa memasang apa pun

pktmon adalah Packet Monitor yang dikirimkan Microsoft dengan Windows 10, Windows 11, dan Windows Server 2019 dan yang lebih baru. pktmon start --capture --pkt-type all --file-size 200 merekam ke file ETL yang kami konversi dengan pktmon pcapng (atau, pada build yang lebih lama, pktmon etl2txt) dan buka di Wireshark atau TShark di tempat lain. Untuk kotak Server Core, atau laptop yang dijaga ketat tempat pemasangan sniffer adalah tiket perubahan, pktmon melakukan penangkapan dengan alat yang sudah ada di disk.

Di mana kekurangannya: CLI itu bertele-tele, sintaks filternya menggunakan ID komponen daripada BPF, dan langkah ETL-ke-pcap adalah gerakan tambahan yang mengikat kami ke mesin Windows untuk konversi.

Harga: Gratis, dikirimkan dengan Windows.

Platform: Windows 10, Windows 11, Windows Server 2019+.

Unduh: Microsoft Learn

Garis bawah: jawaban ketika hostnya Windows dan menyentuh inventaris perangkat lunak tidak.

4. tcpflow, untuk merekonstruksi aliran TCP ke dalam file

tcpflow menangkap lalu lintas langsung (atau membaca pcap) dan menulis setiap aliran TCP yang direkonstruksi ke filenya sendiri, satu arah per file. Itu sering kali apa yang kami benar-benar inginkan ketika pertanyaannya adalah “apa yang dikirim klien ini ke server itu” dan menelusuri paket di Wireshark adalah ketinggian yang salah. Ini dikirimkan di Debian, Ubuntu, Fedora, dan Homebrew, dan bahasa filternya adalah BPF lurus.

Di mana kekurangannya: UDP adalah warga kelas dua; TLS dan aliran terenkripsi lainnya membuang ciphertext sama seperti tcpdump. File yang direkonstruksi juga tumbuh dengan cepat pada penangkapan yang lama.

Harga: Gratis, sumber terbuka, GPLv3.

Platform: Linux, macOS.

Unduh: Simson Garfinkel di GitHub

Garis bawah: pilihan ketika deliverable adalah “badan HTTP”, bukan “jejak paket”.

5. ngrep, untuk pencocokan pola gaya grep di atas kawat

ngrep membawa pola gaya POSIX yang akrab untuk lalu lintas langsung dan file pcap. ngrep -q -W byline -d eth0 'GET|POST' 'tcp port 80' hanya mencetak paket yang muatannya cocok dengan regex, dengan filter BPF sekitar mempersempit sisi antarmuka. Untuk pertanyaan cepat seperti “apakah klien mengirim header Host yang salah” atau “apakah respons berisi string kesalahan itu”, ngrep mengalahkan senam filter tampilan.

Di mana kekurangannya: tidak memahami framing TLS atau HTTP/2, jadi apa pun yang terenkripsi kembali sebagai kebisingan. Siklus rilis-nya telah melambat, dan meskipun sebagian besar distribusi masih mengemasnya, beberapa tidak.

Harga: Gratis, sumber terbuka, BSD yang direvisi.

Platform: Linux, macOS, Windows melalui WSL.

Unduh: ngrep di GitHub

Garis bawah: yang harus dijangkau ketika insting pertama kami adalah grep.

6. Zeek, untuk mengubah paket menjadi log yang dapat dicari

Zeek, dahulu Bro, duduk di antara penangkapan mentah dan IDS penuh. Alih-alih pcap, ia menulis log terstruktur per protokol (conn.log, dns.log, http.log, ssl.log, x509.log, dan puluhan lainnya) yang dapat kami grep, kirim ke Splunk atau Loki, atau masukkan ke SIEM. Di lab rumahan atau router dengan port cermin, Zeek memberi kami berminggu-minggu data perilaku dalam jejak pcap tidak bisa menyentuh.

Di mana kekurangannya: bukan instalasi lima menit; harapkan langkah kompilasi atau paket distro ditambah kelewatan konfigurasi ringan. Kurva pembelajaran itu nyata, dan nilainya muncul pada hari kedua, bukan hari nol.

Harga: Gratis, sumber terbuka, BSD yang direvisi.

Platform: Linux, macOS, FreeBSD.

Unduh: Proyek Zeek

Garis bawah: pilihan ketika kami ingin menjawab pertanyaan berminggu-minggu nanti, bukan menatap paket hari ini.

7. Termshark, untuk UI Wireshark di dalam sesi SSH

Termshark adalah front-end terminal untuk TShark. Buka pcap atau lampirkan ke antarmuka langsung dan kami mendapatkan daftar paket yang akrab, pohon protokol, dan pane hex, semuanya dirender di terminal yang sudah terbuka. Ini bekerja melalui SSH, melalui tmux, melalui konsol serial ke VM headless, di mana pun TTY adalah semua yang kami miliki.

Di mana kekurangannya: pada 80 kolom tata letak menjadi sesak, dan penangkapan langsung pada tautan dengan paket per detik yang sangat tinggi dapat tertinggal di UI. Ini adalah penampil, bukan pengganti untuk koleksi skrip.

Harga: Gratis, sumber terbuka, MIT.

Platform: Linux, macOS, Windows, FreeBSD.

Unduh: Termshark

Garis bawah: yang paling dekat yang kami dapatkan ke Wireshark di kotak yang tidak akan pernah memiliki tampilan.

Bagaimana memilih

FAQ

Apa alat penangkapan paket headless terbaik untuk server Windows?

pktmon di Windows Server 2019 dan yang lebih baru. Ini dilengkapi dengan OS, menangkap di lapisan ETW, berputar sendiri, dan output pcapng langsung pada build saat ini. Ketika kami memerlukan dissector Wireshark, kami mengonversi file dan membukanya di TShark di stasiun kerja.

Bisakah kami menjalankan TShark atau tcpdump tanpa root?

Ya di Linux, dengan setcap cap_net_raw,cap_net_admin+eip pada biner. Itu memberikan hak istimewa penangkapan ke executable tertentu tanpa memberi pemanggil root penuh. Di BSD, tambahkan pengguna ke grup yang memiliki perangkat bpf. Di Windows, TShark memerlukan Administrator untuk berbicara dengan Npcap.

Bagaimana kami memutar penangkapan sehingga sesi yang berjalan lama tidak mengisi disk?

tcpdump menggunakan -G <seconds> untuk rotasi berbasis waktu dan -C <MB> untuk berbasis ukuran, digabungkan dengan -W <count> untuk membatasi berapa banyak file yang disimpan. TShark menampilkan yang sama melalui -b duration: dan -b filesize:. pktmon dibatasi dengan --file-size dan mode log sirkularnya. Zeek memutar lognya pada jadwal tetap dengan sendirinya.

Apakah bahasa filter tampilan Wireshark sama dengan sintaks tcpdump?

Tidak. tcpdump dan filter penangkapan TShark (-f) menggunakan sintaks BPF (tcp port 443 and host 10.0.0.1). Filter tampilan Wireshark dan TShark (-Y) adalah bahasa berbeda (tcp.port == 443 && ip.addr == 10.0.0.1). Keduanya layak dipelajari; filter sisi penangkapan berjalan pada kecepatan kernel, filter sisi tampilan berjalan di atas paket yang sudah ditangkap.

Bisakah pktmon sepenuhnya menggantikan Wireshark?

Tidak. pktmon adalah alat penangkapan, bukan penganalisis. Ini merekam ke ETL, mengkonversi ke pcapng pada build yang lebih baru, dan berhenti. Untuk mendekode jabat tangan TLS, aliran HTTP/2, atau QUIC, kami masih membuka pcap yang dihasilkan di Wireshark atau TShark. Keduanya saling melengkapi, bukan pengganti.

Apakah aman menjalankan alat-alat ini di host produksi?

Ya dengan perawatan yang wajar. Penangkapan paket pasif dan tidak mengubah lalu lintas, tetapi biaya CPU pada tautan yang sibuk tidak nol, dan file pcap dapat tumbuh dengan cepat. Batasi disk dengan kebijakan rotasi, sempitkan filter BPF untuk membatasi CPU, dan pilih port cermin atau ketukan daripada penangkapan sebaris di mana profil risiko penting.