Wireshark untuk semua orang. Peretasan hidup untuk setiap hari



Paket dengan sertifikat dari Habr



Wireshark adalah program yang sangat terkenal untuk menangkap dan menganalisis lalu lintas jaringan, alat yang sangat diperlukan untuk peretas, insinyur jaringan, pemrogram, spesialis keamanan . Secara umum, setiap orang yang ingin tahu yang ingin mempelajari secara rinci lalu lintas dari ponselnya atau orang lain, gelang kebugaran, TV.



Wireshark menangkap paket jaringan secara real time dan menyimpannya, misalnya, dalam file pcap (Packet Capture). Mereka kemudian digunakan untuk mempelajari lalu lintas, memulihkan informasi, menganalisis kinerja jaringan, dan mendeteksi serangan. Ini adalah alternatif dan tambahan untuk utilitas standar tcpdump



, dengan antarmuka grafis, filter, dan lebih banyak fitur.



Kasus penggunaan praktis



Wireshark memiliki sejuta fungsi, tetapi secara harfiah setiap orang dengan pengetahuan minimal dapat menggunakannya untuk keuntungan mereka. Di bawah ini adalah contoh tugas jaringan dasar.



Dekripsi lalu lintas SSL / TLS



Chrome dan Firefox dapat menulis log kunci sesi, yang digunakan untuk mengenkripsi lalu lintas SSL/TLS. Tugas kita adalah mengaktifkan perekaman log ini, lalu mengunggahnya ke Wireshark untuk dianalisis. Diasumsikan bahwa kita memiliki akses fisik ke komputer pengguna yang lalu lintasnya ingin kita dekripsi. Atau ke server yang membuat koneksi terenkripsi dengan pengguna.



Pertama, aktifkan perekaman kunci.



Versi Windows 10 yang lebih lama



Metode lama berfungsi di versi Windows 10 yang lebih lama. Buka Panel Kontrol  → Sistem dan Keamanan  → Sistem . Pada tab "Parameter sistem tambahan", klik tombol "Variabel Lingkungan".







Tambahkan variabel baru untuk pengguna SSLKEYLOGFILE



dan tentukan jalur ke file.







Akibatnya, kami mendapatkan log dengan kunci, awal file:



# File log rahasia SSL / TLS, dibuat oleh NSS
CLIENT_HANDSHAKE_TRAFFIC_SECRET 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 dcfc82758fbb587e526daaab9fdc0bcaaab2768e
SERVER_HANDSHAKE_TRAFFIC_SECRET 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 d807f4757db1f9ba8df434d8b0005d07e4987459c1d14c7ea793e4c4f5b240dc
CLIENT_TRAFFIC_SECRET_0 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 40186c6b1c925c63cd57e8fa235ba9d0bf14eb29c21cbb6494ef944e1e7a4cc3
SERVER_TRAFFIC_SECRET_0 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 a0a377f26a0962eceae55bec94fcd7549d9b1d5d1e9b70c45627299ca2b9b129
EXPORTER_SECRET 2f80c7dfd9f1bd5f4cf0084b9c814006178a06b820c5cab264f3727fac1abb23 
...


Windows 10



Dalam versi yang lebih baru, setelah menginstal Windows 10, cara lama untuk menambahkan variabel lingkungan mungkin tidak lagi berfungsi. Lalu ada opsi alternatif menggunakan perintah di PowerShell .



Tetapkan variabel:



[Environment]::SetEnvironmentVariable("PATH", "C:\TestPath", "User")







Parameter pertama adalah nama variabel, yang kedua adalah nilainya, yang ketiga adalah tingkat variabel tersebut (pengguna atau sistem).



Dalam kasus kami:



[Environment]::SetEnvironmentVariable("SSLKEYLOGFILE", "D:\wireshark", "User")







Linux dan Mac OS X



Di Linux dan Mac OS X, Anda dapat menggunakan perintah ini untuk mengubah variabel lingkungan dan menyimpan log - memulai browser dari jendela terminal yang sama, karena variabel lingkungan selalu bekerja dalam sesi yang sama.



# export SSLKEYLOGFILE=/Users/username/sslkeylogs/output.log
# open -a firefox
# wireshark
      
      





Setelah mengumpulkan log, luncurkan Wireshark.







Kami pergi ke "Parameter", di sana pada tab "Protokol" kami menemukan bagian TLS (sebelumnya disebut SSL) - dan tentukan jalur ke file dengan log dan kunci yang digunakan dalam sesi enkripsi simetris: (Pra) -Nama file log Master-Rahasia .







Misalnya, ketika pengguna masuk ke server Gmail di jendela pemeriksaan paket QUIC, kami melihat paket QUIC biasa yang dienkripsi dengan kunci TLS.







Tetapi tab QUIC Decrypted baru muncul di bagian bawah layar , yang menunjukkan konten yang didekripsi dari paket-paket ini.







Metode mendekripsi lalu lintas klien ini tidak perlu menginstal Wireshark di komputernya, cukup mengunduh dump dengan kunci dan kemudian menggunakannya bersama dengan dump lalu lintas.



Di bawah hukum Rusia modern, penyedia diharuskan menyimpan lalu lintas pengguna untuk beberapa waktu, termasuk lalu lintas TLS/SSL terenkripsi. Sekarang jelas mekanisme seperti apa yang dapat digunakan untuk menguraikan dan menganalisisnya. Penyerang harus memiliki kunci sesi untuk enkripsi simetris. Perusahaan Internet Rusia terbesar seperti Yandex dan Mail.ru dengan patuh mematuhi persyaratan undang-undang Rusia - dan memberikan kunci-kunci ini (lihat pesanan FSB No. 432 tanggal 12/08/2016 tentang prosedur untuk mendapatkan kunci enkripsi).



Catatan... Metode ini tidak terbatas pada HTTP saja. Demikian pula, Anda dapat mencegat dan mendekripsi lalu lintas SSL / TLS di aliran lain. Misalnya, lalu lintas terenkripsi dari server MySQL .







Menganalisis lalu lintas dari komputer lain



Jika Anda perlu berurusan dengan server dalam produksi, akan lebih mudah untuk menyalin file pcap dari sana - dan menganalisis lalu lintas di komputer pribadi Anda.



Kami menulis paket di server menggunakan tcpdump packet sniffer, yang termasuk dalam paket * nix standar:



tcpdump port 443 -w output.pcap
      
      





Kemudian kami menyalin file ke komputer kami:



scp host:~/output.pcap
      
      





Di sini kita sudah meluncurkan Wireshark dan membuka file yang dihasilkan.



Ada opsi untuk memantau lalu lintas server secara real time dari komputer rumah / kantor Anda. Misalnya, semua lalu lintas kecuali port 22 dan 53:



ssh root@host tcpdump -U -s0 'not port 22 and not port 53' -w - | wireshark -k -I -
      
      





Kurang lebih sama dari komputer Windows:



plink.exe -ssh -pw password root@host "tcpdump -ni eth0 -s 0 -w - not port 22" | "C:\Program Files\Wireshark\Wireshark.exe" -k -i -
      
      





Mencari masalah



Untuk memilih koneksi TCP tertentu, kami menemukan paket apa pun yang menarik, klik kanan padanya, dan terapkan filter dialog.







Sekarang, dari semua lalu lintas yang direkam, hanya paket milik koneksi khusus ini yang tersisa.







Pada tangkapan layar, kita melihat paket dari awal pembentukan koneksi TLS: paket dengan salam klien, paket respons dengan salam server, sertifikat yang disajikan, daftar cipher, dan sebagainya. Isi setiap paket dapat diperiksa secara terpisah. Sangat nyaman.



Pola tipikal adalah menggunakan Wireshark untuk mendiagnosis masalah tertentu. Misalnya, jika koneksi TLS terputus, kita dapat masuk dan melihat siapa yang memutuskannya (klien atau server), pada tahap apa itu terjadi dan untuk alasan apa.



Isi paket



Isi byte dari setiap paket ajaib. Secara khusus, fungsi Wireshark ini memungkinkan Anda mengidentifikasi bug paling serius. Misalnya, beberapa tahun yang lalu terungkap bahwa pengontrol Intel 82574L Gigabit Ethernet dinonaktifkan jika paket yang dirancang khusus dengan urutan byte tertentu dikirim ke mereka - yang disebut "paket kematian" . Berkat Wireshark, menjadi jelas byte spesifik mana dalam paket yang mengarah pada pemutusan yang dijamin dari kartu jaringan.



Berikut adalah entri untuk paket tertentu: pod-http-post.pcap dan pod-icmp-ping.pcap . Kita dapat mengunduhnya, membukanya di Wireshark dan melihatnya dengan mata kepala sendiri.



Antarmuka jaringan Intel dinonaktifkan jika alamat 0x47f adalah 2 atau 3, yaitu 32 HEX atau 33 HEX. Jika ada 4, maka semuanya baik-baik saja.







Paket apa pun cocok untuk serangan: HTTP POST, ICMP echo-request, dll. Misalnya, respons 200 dapat dikonfigurasi pada server web untuk "membunuh" antarmuka jaringan pada mesin klien. Situasi yang cukup aneh.



Cari paket berdasarkan konten



Di atas, kami menerapkan filter dialog untuk mengembalikan semua paket untuk koneksi TCP tertentu. Namun, filter juga dapat ditulis secara manual. Berikut adalah beberapa contoh permintaan:



  • frame contains "google"



    - cari semua paket dengan kata "google" di mana saja dalam paket

  • tcp.port == 443



    - port 443

  • dns.resp.len > 0



    - semua tanggapan DNS

  • ip.addr == 95.47.236.28



    - alamat IP khusus untuk penerima atau pengirim


… dll. Filter jauh lebih kaya daripada tcpdump, jadi lebih baik melakukan analisis lalu lintas di Wireshark.



Lalu lintas ponsel



Demikian pula, Anda dapat menganalisis lalu lintas dari jam tangan kebugaran melalui Bluetooth atau lalu lintas aplikasi seluler apa pun untuk Android. Untuk melakukan ini, Anda perlu merekam paket PCAP di perangkat seluler Anda - dan mentransfernya untuk dianalisis ke Wireshark di PC kerja Anda.



Ada beberapa program perekaman PCAP seluler. Misalnya, aplikasi

PCAPdroid untuk Android:





PCAPdroid



Pada prinsipnya, dimungkinkan untuk tidak mentransfer file PCAP yang direkam, tetapi untuk menganalisisnya langsung di perangkat seluler. Beberapa mobile sniffer memiliki fitur packet sniffing yang belum sempurna, lihat Packet Capture dan Termux (lebih lanjut tentang itu di bawah).





Pengambilan Paket



Wireshark juga memiliki antarmuka Androiddump langsung untuk menarik data dari ponsel secara langsung melalui Android SDK.



Lalu lintas dari TV dan peralatan rumah tangga lainnya



Untuk mempelajari lalu lintas dari TV, ponsel cerdas istri, atau peralatan rumah tangga lainnya yang terhubung ke jaringan rumah melalui Ethernet dan WiFi, Anda harus merekam PCAP di router. Terkadang alat bawaan sudah cukup . Jika Anda memiliki router dengan firmware DD-WRT, Anda dapat langsung menjalankannya di perangkat tcpdump



:



ssh root@192.168.1.1 -c "tcpdump -v -w - -i eth2" > mypackets.pcap
      
      





Untuk firmware OpenWrt, ada opsi untuk mencerminkan lalu lintas menggunakan iptables-mod-tee .



Lalu lintas dapat dicerminkan dan direkam menggunakan hub fisik tambahan atau ikatan jaringan. Lihat dokumentasi untuk detailnya .











Cara lain adalah dengan mencegat lalu lintas nirkabel WiFi menggunakan utilitas Airodump-ng tanpa terhubung ke router. Tapi ini lebih cocok untuk menganalisa traffic di hotspot orang lain.



Selanjutnya, semuanya knurled - muat file ke Wireshark, jalankan filter.



Omong-omong, Wireshark juga mendukung analisis lalu lintas USB: sniffer USBPcap bawaandan mengimpor paket dari sniffer pihak ketiga seperti Npcap dan RawCap .



Termhark



Jika Anda menganalisis log besar di server jauh, tetapi tidak ingin menyalin semuanya ke mesin Anda, Termshark mungkin berguna - antarmuka pengguna yang nyaman di konsol untuk penganalisis TShark, yang terlihat seperti Wireshark.



Fungsi



  • Membaca file pcap dan mendengarkan lalu lintas dari antarmuka aktif secara real time (di mana tshark diaktifkan)

  • Memfilter pcap atau antarmuka aktif dengan filter tampilan Wireshark

  • Merakit kembali dan memeriksa aliran TCP dan UDP

  • Lihat sesi jaringan untuk setiap protokol

  • Menyalin paket yang dipilih dari konsol ke clipboard

  • Alat ini ditulis dalam bahasa Go, di setiap platform dikompilasi menjadi satu file yang dapat dieksekusi: sudah ada versi bawaan untuk Linux, macOS, varian BSD, Android (termux) dan Windows






Seperti inilah tampilan versi Android:







Wireshark sebagai aplikasi web



Jika karena alasan tertentu Anda tidak dapat menjalankan Wireshark di mesin lokal Anda, Anda dapat menggunakan layanan cloud CloudShark , yang dibuat dengan sangat baik. Fungsi utamanya adalah untuk berkolaborasi dan mempublikasikan parsing paket berdasarkan URL. Misalnya, cloudshark.org/captures/05aae7c1b941 . File diunggah ke cloud dan dianalisis di browser. Ini diperlukan jika Anda ingin meminta saran di forum, berbagi informasi dengan rekan kerja, atau mempublikasikan rincian paket untuk khalayak luas. Omong-omong, nyaman digunakan dari ponsel, karena ada aplikasi untuk menangkap paket untuk Android, tetapi tidak ada penganalisa yang baik. Layanan ini berbayar, ada masa percobaan 30 hari.















Secara keseluruhan, Wireshark adalah program fantastis untuk semua kesempatan.



Selain penggunaan praktis yang nyata, penganalisis memberikan gambaran kasar tentang cara kerja penyaringan DPI dengan penyedia Rusia. Semuanya diatur hampir sama di sana. Sistem memindai lalu lintas secara real time, memfilter secara khusus paket dari Twitter - dan memperlambat pengirimannya ke pengguna di Rusia. Secara khusus, Roskomnadzor telah menangani percabulan ini sejak 10 Maret 2021 .






Periklanan



Jika Anda memerlukan server untuk disewa di Linux atau Windows untuk bekerja , maka Anda pasti datang kepada kami - aktivasi layanan satu menit setelah pembayaran!



Bergabunglah dengan obrolan Telegram kami .






All Articles