Lokakarya di Wireshark

Julia Evans, penulis materi yang kami terbitkan hari ini, memutuskan untuk berbicara tentang salah satu alat jaringan favoritnya yang disebut Wireshark . Ini adalah program yang kuat dan kompleks, dilengkapi dengan antarmuka grafis, yang dirancang untuk menganalisis lalu lintas di jaringan komputer. Julia mengatakan bahwa dalam praktiknya, dia hanya menggunakan beberapa fitur Wireshark, tetapi biasanya berguna. Di sini dia ingin berbagi dengan semua orang yang menginginkan cerita tentang metode yang paling berguna untuk bekerja dengan program dan berharap bahwa mereka akan berguna tidak hanya untuknya, tetapi juga untuk semua orang yang harus menyelesaikan masalah jaringan.



Instal Wireshark


Distribusi Wireshark untuk berbagai sistem operasi dapat ditemukan di sini . Untuk menginstal program, Anda dapat mengunduh dan menginstal file yang sesuai. Atau, jika Anda menggunakan distribusi Linux berdasarkan Debian, Anda dapat menggunakan perintah sudo apt install wireshark . Jika Anda ingin, untuk menemukan versi terbaru dari program, Anda dapat merujuk ke arsip pribadi paket wireshark-dev .

Seperti inilah tampilan antarmuka program.


Antarmuka Wireshark

Pada pandangan pertama, semua ini mungkin tampak terlalu rumit: daftar panjang paket, bidang misterius untuk memasukkan beberapa jenis permintaan ... Bagaimana cara bekerja dengan Wireshark?

Analisis file pcap


Saya biasanya menggunakan Wireshark untuk mencari tahu penyebab masalah jaringan. Urutan tindakan yang dilakukan saat menyelesaikan masalah seperti ini terlihat seperti ini:

  1. Paket capture dengan tcpdump (biasanya dengan perintah seperti sudo tcpdump port 443 -w output.pcap ).
  2. Menyalin file pcap ke laptop yang berfungsi ( scp host:~/output.pcap . ).
  3. Membuka file pcap menggunakan Wireshark ( wireshark output.pcap ).

Seperti yang Anda lihat, semuanya sangat sederhana. Namun, setelah file pcap dibuka di program, Anda mungkin memiliki pertanyaan logis tentang apa yang harus dilakukan dengan semua ini. Mari kita bicarakan.

Analisis koneksi TCP


Seringkali, ketika saya menganalisis situasi tertentu di Wireshark, saya perlu memeriksa beberapa koneksi TCP tertentu, yang dengannya, untuk beberapa alasan, ada sesuatu yang salah. Berkat Wireshark, Anda dapat menganalisis seluruh siklus hidup koneksi TCP individu dan mencari tahu penyebab perilaku sistem yang salah.

Anda dapat melakukan ini dengan mengklik kanan pada paket yang Anda minati dan memilih Conversation filter > TCP perintah Conversation filter > TCP di menu konteks.


Mulai analisis koneksi TCP

Setelah itu, Wireshark akan menampilkan paket-paket lain dari koneksi TCP yang sama dengan milik paket yang Anda klik. Pada gambar di bawah ini Anda dapat melihat contoh koneksi SSL yang sukses - ada client hello , service hello , certificate , paket server key exchange yang digunakan untuk membuat koneksi SSL.


Analisis koneksi TCP

Teknik analisis paket TCP yang dibahas di sini harus saya gunakan pada hari artikel ini ditulis, di tempat kerja. Beberapa koneksi terputus, dan saya perhatikan bahwa setelah mengirim paket client hello , client hello mengirim paket FIN ACK , yang memutuskan koneksi TLS. Apa yang berhasil saya temukan ternyata bermanfaat, karena menjadi jelas bahwa klien dan bukan server yang mengakhiri koneksi. Akibatnya, saya segera mengetahui bahwa masalahnya ada pada klien, dan saya harus memperhatikannya.

Di atas adalah skema yang sangat khas bagi saya untuk bekerja dengan Wireshark. Biasanya klien dan server terlibat dalam koneksi, dan ada yang salah baik pada klien atau di server. Ini mungkin, misalnya, beberapa jenis kegagalan atau kesalahan dalam pengaturan sistem. Sebagai hasilnya, Wireshark memberi saya bantuan yang tak ternilai dalam mengidentifikasi penyebab masalah, membantu mencari tahu apakah itu klien atau server.

Dekode sebagai Tim


Untuk memahami apa sebenarnya paket tertentu, Wireshark menggunakan nomor port, dan pendekatan ini biasanya berfungsi. Misalnya, jika suatu program melihat lalu lintas pada port 80, ia memutuskan bahwa itu adalah lalu lintas HTTP dan biasanya itu.

Namun, terkadang koneksi HTTP menggunakan port yang tidak biasa, dan sebagai hasilnya, Wireshark membutuhkan petunjuk untuk mengenalinya. Petunjuk semacam itu dapat diberikan kepada program dengan memanggil menu konteks paket dan memilih Decode as perintah di sana. Selanjutnya, Anda dapat memberi tahu Wireshark protokol mana yang digunakan untuk mengirimkan paket menggunakan port tertentu. Petunjuk ini menyederhanakan analisis data.

Lihat Isi Paket


Di Wireshark, hanya ada mode yang menyenangkan untuk melihat informasi rinci tentang suatu paket, yang dengannya Anda dapat memahami isi dari paket apa pun. Ambil, misalnya, paket dengan pesan client hello dari contoh sebelumnya. Ini adalah paket pertama dari koneksi SSL, klien dengan bantuannya seolah-olah mengatakan: "Halo! Saya disini! ”

Wireshark memberi administrator jaringan dua alat yang sangat berguna untuk memeriksa isi paket. Yang pertama adalah mode tampilan di mana Anda dapat memperluas header yang tersedia untuk paket (misalnya, header Ethernet, header IP, header TCP) dan melihat isinya.


Analisis Header Paket

Mode kedua untuk melihat paket adalah keajaiban nyata. Di sini Anda dapat melihat data paket mentah sebagai urutan byte. Dan, yang sangat bagus, jika Anda mengarahkan mouse di atas byte (misalnya, pada gambar di bawah ini, kursor berada pada byte yang termasuk dalam tiles.services.mozilla.com ), program itu, di bilah status, akan memberi tahu Anda bidangnya. byte ini (dalam hal ini adalah bidang Server Name ), dan tentang nama kode yang digunakan oleh Wireshark untuk bidang ini (dalam kasus ini - ssl.handshake.extensions_server_name )


Analisis Data Paket Baku

Pencarian Paket


Wireshark mendukung bahasa permintaan yang kuat. Ini sangat menyederhanakan pencarian paket spesifik dalam daftar. Biasanya, ketika bekerja dengan suatu program, saya menggunakan pertanyaan yang sangat sederhana. Berikut ini beberapa contohnya:

  • frame contains "mozilla" kueri frame contains "mozilla" memungkinkan Anda untuk mencari baris mozilla di mana saja dalam paket dan mencantumkan paket yang ditemukan.
  • Permintaan tcp.port == 443 menampilkan paket menggunakan port TCP 443.
  • Kueri dns.resp.len > 0 menampilkan semua jawaban DNS
  • Permintaan ip.addr == 52.7.23.87 menampilkan paket-paket yang sumber atau tujuan IP-nya adalah 52.7.23.87.

Bahasa permintaan Wireshark memiliki kemampuan yang jauh lebih besar daripada bahasa permintaan tcpdump (dan, di samping itu, mendukung pelengkapan otomatis dengan menekan tombol TAB). Akibatnya, saya sering menggunakan urutan tindakan berikut: Saya menangkap sejumlah besar paket menggunakan tcpdump (katakanlah, sesuatu seperti semua paket dari port 443), dan kemudian mempelajarinya dengan hati-hati menggunakan Wireshark.

Lihat Detail Durasi Koneksi TCP


Terkadang saya perlu memberi perhatian khusus pada studi koneksi TCP yang lambat. Bagaimana melakukan ini, asalkan dalam file saya ada catatan ribuan paket? Bagaimana menemukan koneksi TCP yang lambat?

Jika Anda memilih Statistics di menu utama program dan perintah Conversations di dalamnya, Wireshark akan memberi kami satu set informasi statistik yang luar biasa.


Informasi Statistik

Secara khusus, di sini, di kolom Duration , Anda dapat melihat durasi koneksi TCP, mengidentifikasi yang terpanjang dari mereka dan mempelajarinya dengan cermat. Ini adalah fitur yang sangat berguna.

Pembaruan Wireshark


Jika Anda belum memperbarui Wireshark untuk waktu yang lama, ini layak dilakukan. Sebagai contoh, baru-baru ini, pada laptop yang berfungsi, saya sedang meneliti paket HTTP / 2. Itu tidak mudah bagi saya saat itu, dan saya memutuskan untuk melihat dokumentasi. Ternyata, saya punya versi lama dari program ini. Dalam pembaruan yang saya instal, dukungan HTTP / 2 ditingkatkan secara serius, yaitu, hanya ada yang saya butuhkan saat itu.

Menggunakan Wireshark untuk Mempelajari Protokol Jaringan


Artikel ini berisi beberapa istilah yang dapat dikaitkan dengan sesuatu seperti jargon spesialis jaringan. Misalnya - frame, port TCP (port TCP), respons DNS (respons DNS), alamat IP sumber (alamat IP sumber), paket client hello koneksi SSL (halo klien SSL). Salah satu alasan untuk menggunakannya adalah fakta bahwa Wireshark jelas tidak berusaha melindungi pengguna dari seluk-beluk struktur internal teknologi jaringan. Untuk seorang pemula, keadaan ini mungkin, pada awalnya, membuat Anda berpikir bahwa Wireshark bukan program untuknya, tetapi hanya untuk spesialis jaringan yang berpengalaman.

Namun, fokus Wireshark pada mekanisme jaringan tingkat rendah memiliki nilai tambah utama. Faktanya adalah bahwa dengan bekerja dengan program ini, Anda dapat mempelajari sesuatu yang baru tentang protokol jaringan. Misalnya, saya tidak tahu banyak tentang mekanisme internal protokol TLS / SSL. Namun, menganalisis lalu lintas di Wireshark, saya perhatikan bahwa dua paket pertama dari koneksi SSL adalah client hello dan server hello . Akibatnya, protokol, yang, jika seseorang tidak menyelidiki rincian karyanya, tampaknya misterius dan tidak dapat dipahami, mulai mengambil bentuk yang lebih dapat dipahami, berubah menjadi sesuatu yang dapat dipahami dan dianalisis.

Ringkasan


Wireshark memiliki peluang luar biasa. Di sini kami hanya berbicara tentang beberapa dari mereka. Namun, metode kerja yang dibahas di sini, menurut penulis materi, digunakan dalam sekitar 95% situasi ketika ada kebutuhan untuk Wireshark. Karena itu, kami berharap bahwa bahkan sedikit yang Anda pelajari hari ini bermanfaat bagi Anda.

Pembaca yang budiman! Apakah Anda menggunakan Wireshark?

Source: https://habr.com/ru/post/id416537/


All Articles