
EXE dosyasını çalıştırmadan inceleme: PE başlıklarını okumak
Bir EXE dosyasını çalıştırmadan başlıklarından, bölüm tablosundan, import listesinden ve entropisinden ne öğrenirsiniz; statik triyaj nerede biter.

Bir yakalama dosyası, sıralı çerçevelerin önüne birkaç bayt başlık eklenmiş halidir. Biçimi bilirseniz protokol ağacına ihtiyaç duymadan da dosyadan anlamlı bir özet çıkarırsınız.
Bir pcap dosyası, arayüzden geçen çerçevelerin sıralı bir kaydıdır. Sihir yoktur: dosyanın başında tek bir global başlık, ardından her paket için küçük bir başlık ve onun hemen arkasında paketin ham baytları durur. Wireshark'ın gösterdiği protokol ağacı dosyada saklı değildir; her açışta bu baytlardan yeniden üretilir. Bu yüzden aynı dosyayı farklı bir çözümleyiciyle okumak bilgi kaybı yaratmaz.
Klasik libpcap dosyası 24 baytlık bir başlıkla açılır. İlk dört bayt sihirli sayıdır: 0xa1b2c3d4 mikrosaniye çözünürlüklü bir dosyayı, 0xa1b2cd34 nanosaniye çözünürlüklüsünü gösterir. Aynı sayının ters sırada görünmesi dosyanın farklı bayt sıralamalı bir makinede yazıldığı anlamına gelir ve okuyucunun tüm sayısal alanları çevirmesi gerekir. Sonra sürüm numaraları (pratikte hep 2.4), saat dilimi ve hassasiyet alanları, ardından iki önemli alan gelir: snaplen ve network. Snaplen, paket başına kaydedilen azami bayt sayısıdır. Network alanı ise bağlantı katmanı türünü verir ve dosyanın tamamı için geçerlidir.
Her paketin önünde 16 baytlık bir kayıt bulunur: saniye, saniye kesri, caplen ve len. Bu son iki alan farklı şeylerdir ve aradaki farkı gözden kaçırmak analizi sessizce bozar. len paketin telde kaç bayt olduğunu, caplen ise dosyaya kaçının yazıldığını söyler. caplen küçükse paket kırpılmıştır.
Kırpma genelde yakalama sırasında -s ile küçük bir snaplen verilmesinden gelir. 96 baytlık bir snaplen, Ethernet başlığı, IP başlığı ve TCP başlığından sonra yük için neredeyse hiçbir şey bırakmaz. Bu dosyada akış istatistikleri doğru çıkar, çünkü len alanı gerçek boyutu taşır; ama HTTP başlıklarını, DNS cevaplarını veya TLS sunucu adını göremezsiniz. Bir dosyayı açar açmaz caplen < len olan paket oranına bakın: yüksekse içerik aramayı bırakın, elinizde yalnızca meta veri vardır.
Paket baytlarının nasıl yorumlanacağını link type belirler. En yaygını LINKTYPE_ETHERNET (değer 1): paket 14 baytlık Ethernet başlığıyla başlar. Bir VPN veya tünel arayüzünden yapılan yakalamalarda LINKTYPE_RAW (101) görürsünüz ve paket doğrudan IP başlığıyla başlar; Ethernet varsayan bir okuyucu burada anlamsız sonuçlar üretir. Linux'ta any arayüzünü dinlediğinizde LINKTYPE_LINUX_SLL (113) çıkar, sahte bir 16 baytlık başlıkla. Kablosuz monitör modunda ise 802.11 çerçeveleri ve sıklıkla bir radiotap başlığı gelir. Bir dosyanın neden "bozuk" göründüğünün en sık sebebi budur: dosya bozuk değildir, link type farklıdır.
Modern Wireshark varsayılan olarak pcapng yazar ve uzantı çoğu zaman yine .pcap kalır, bu yüzden karışıklık olağandır. pcapng tek bir global başlık yerine bloklardan oluşur: Section Header Block ile başlar, her arayüz için bir Interface Description Block gelir, paketler Enhanced Packet Block olarak yazılır. Kazanç somuttur. Tek dosyada birden fazla arayüz olabilir ve her birinin kendi link type ve snaplen değeri vardır; zaman çözünürlüğü arayüz başına tanımlanır; paketlere ve bölümlere yorum eklenebilir; ad çözümleme blokları saklanır. Sihirli sayı da farklıdır, pcapng 0x0a0d0d0a ile başlar. Bir çözümleyici "desteklenmeyen biçim" diyorsa ilk bakılacak yer burasıdır.
Paket listesi okumak nadiren doğru başlangıçtır. Otuz bin satırın içinde gözle örüntü aramak yerine, önce toplayın. İki temel özet vardır ve ikisi de basit gruplamalardan ibarettir.
Bu iki tablo çoğu sorunun cevabını verir. Uzun süren bir bağlantı mı arıyorsunuz, akış süresine göre sıralayın. Büyük bir dışa aktarım mı, gönderilen bayta göre. Tarama mı, tek pakete düşen çok sayıda hedefe göre. Bu işleri pcap'ten akış çıkaran araç ve uç nokta özeti ile yapabilirsiniz; paketleri alan bazında görmek isterseniz pcap'ten JSON çıktısını JSON görüntüleyicide açmak, filtreyi kendi diliniz yerine tanıdık bir veri yapısıyla kurmanızı sağlar.
Bu üç araç dosyayı çözümlemek için sunucuya yükler; tarayıcıda çalışmaz. Yakalama dosyanız hassas bir ağdan geliyorsa bunu bilerek karar verin.
Bir yakalamanın büyük kısmı bugün TLS'tir ve "şifreli, demek ki görünmez" doğru değildir. El sıkışmanın bir bölümü açıktır ve zarf bilgisi zaten açıktır.
Göremedikleriniz nettir: gövde, başlıklar, çerezler, kimlik bilgileri, sorgu dizeleri. Anahtar günlüğü olmadan bunları çözemezsiniz ve o günlük yalnızca istemciyi siz kontrol ediyorsanız vardır. Bir sunucunun hangi TLS sürümünü ve sertifikayı sunduğunu yakalamadan bağımsız olarak doğrulamak isterseniz TLS kontrolü daha doğrudan bir yoldur. Karşı taraftaki adresleri anlamlandırmak için IP konumu ve whois sorguları işe yarar.
Şifrelenmemiş DNS hâlâ yaygındır ve bir yakalamadaki en zengin bağlamdır. Sorgu adları, hangi IP'nin hangi isme karşılık geldiğini söyler ve akış tablosundaki anlamsız adresler birden okunur hale gelir. DNS over HTTPS kullanılan ağlarda bu bağlam kaybolur; geriye SNI ve ters çözümleme kalır.

Bir pcap, bir günlük dosyasından çok daha fazlasını taşır. Şifrelenmemiş protokollerde oturum çerezleri, API anahtarları, e-posta içerikleri ve form verileri düz metin olarak dosyadadır. Şifreli trafikte bile iç ağ topolojisi, makine adları, kullanıcı ajanı dizeleri ve ziyaret edilen alan adları kalır. Bir hata ayıklama yakalaması, farkında olmadan kişisel veri toplamış olabilir.
Bir yakalamada gördüğünüz istemci dizesini ayrıştırmak için user agent ayrıştırıcı işinizi kolaylaştırır. Trafikte yakaladığınız bir yetkilendirme başlığı varsa, onu kopyalayıp bir çözücüye yapıştırmadan önce JWT incelemesinin kurallarını okuyun. Ağdan indirilen bir çalıştırılabilir dosyayı incelemeniz gerekirse PE başlıklarını okumak aynı triyaj mantığının dosya tarafıdır.
Büyük olasılıkla dosya aslında pcapng biçiminde. Modern Wireshark varsayılan olarak pcapng yazar ve uzantı çoğu zaman değişmez. İlk dört baytı kontrol edin: 0x0a0d0d0a pcapng, 0xa1b2c3d4 veya 0xa1b2cd34 klasik libpcap dosyasıdır.
Paket yükünü kaybedersiniz, sayıları değil. Paket başlığındaki len alanı gerçek boyutu taşıdığı için akış ve bayt istatistikleri doğru kalır; ama HTTP başlıkları, DNS cevapları ve TLS sunucu adı gibi içerik alanları kırpılmış olabilir. caplen ile len farklı olan paketlerin oranına bakarak bunu hemen anlarsınız.
Genelde evet. ClientHello içindeki SNI uzantısı açık gider ve istenen sunucu adını verir. TLS 1.2 ve öncesinde sunucu sertifikası da açık gider. TLS 1.3'te sertifika şifreli bölümdedir ve Encrypted Client Hello kullanılıyorsa SNI de görünmez.
Protokol şifreli değilse evet, ve bu tam olarak pcap dosyalarını hassas kılan şeydir. TLS içindeki kimlik bilgileri ise anahtar günlüğü olmadan çözülemez; o da yalnızca istemciyi siz kontrol ediyorsanız üretilir.
Hayır. Buradaki pcap araçları dosyayı çözümlemek için sunucuya yükler. Hassas bir ağdan gelen yakalamalarda dosyayı önce ilgilendiğiniz akışlara daraltmak ve gereksiz trafiği çıkarmak doğru yaklaşımdır.

Bir EXE dosyasını çalıştırmadan başlıklarından, bölüm tablosundan, import listesinden ve entropisinden ne öğrenirsiniz; statik triyaj nerede biter.

JWT yapısı, base64url, alg ve kid alanları, none ile algoritma karışıklığı saldırıları, süre ve saat kayması, tokenı güvenle inceleme kuralları.