Saya mencoba memecahkan masalah di mana saya hanya memiliki tcpdump pada suatu alat. Saya ingin menggunakan tcpdump untuk memfilter lalu lintas web, dan hanya menampilkan lalu lintas yang berisi string tertentu.
Saya melakukan hal berikut:
tcpdump -nei eth0 -X | grep "something interesting"
Outputnya adalah hexview dengan garis 16 byte pr. Saya tidak dapat menerima data ini, karena data disajikan pada beberapa baris.
Apakah ada cara bagi tcpdump untuk menyajikan data yang diambil pada satu baris? Ini akan memungkinkan untuk menggunakan grep untuk menemukan paket yang menarik.
linux
networking
tcpdump
Anjing makan dunia kucing
sumber
sumber
tcpdump -nei eth0 -X | grep --line-buffered "something interesting"
akan melakukan, karena alasan yang tidak diketahui jawaban kerja saya yang valid telah dihapusJawaban:
Bagi Anda yang tidak bisa menggunakan
ngrep
, berikut cara menggunakannyaawk
untuk membuattcpdump
output isi paket dapat diterima.Pertama-tama, beberapa sampel keluaran disediakan oleh
tcpdump -x
, untuk mempresentasikan tugas di depanDan ini adalah skrip copy-and-pastable
awk
yang bisa Anda gunakan untuk mengirimkan hasilnyauntuk mendapatkan yang berikut, hasil yang dapat diterima
Di bawah ini adalah versi komentar dari skrip di atas:
sumber
Dari halaman
tcpdump
manual:Pastikan Anda juga menggunakan
-s 0
opsi untuk memastikan seluruh paket ditampilkan.sumber
Anda mungkin ingin melihat
ngrep
perintah:ngrep -W single -d eth0 'regex to match' 'port 80'
Dimana:
-W single
menentukan pemformatan garis tunggalregex to match
artinya hanya membuang paket yang berisi string tertentu.'port 80'
adalah filter pcap untuk hanya mengendus paket dari atau ke port 80sumber
Alasan output Anda hex adalah
-X
bendera. Mencoba:Anda akan mendapatkan hasil keluaran yang dibuang langsung ke klien.
sumber
Saya tidak bisa mendapatkan script awk untuk melakukan apa yang saya inginkan dan ngrep tidak akan bekerja pada Ethernet melalui USB, jadi saya menulis sebuah program C kecil untuk bergabung dengan output baris oleh tcpdump sehingga mereka dapat diterima. Itu ada di https://gitlab.com/dargaud/TcpDumpJoin
sumber