bağlantısı ile pcap dosyalarını bölmek için bir araç? [kapalı]


16

Her TCP bağlantısı için bir paket yakalama dosyasını (pcap formatında) ayrı dosyalara bölmek için bir araç var mı? (muhtemelen yakalama üzerinde iki kez çalıştırılması gereken evde yetiştirilen bir kabuk komut dosyası dışında ...). Wireshark'ın 'TCP akışını takip et' gibi bir şey ama komut satırı için (korkarım wireshark 700 MB'lık bir paket yakalama görüntülerken büyük miktarda bellek tüketecek)

Ben tcpflow baktı ama orijinal pcap dosyalarından çok daha büyük dosyalar üretmek gibi görünüyor ve onlar pcap formatında değil gibi görünüyor.


Tcpflow'tan kaynaklanan dosyalar pcaps değildir, tcp akışlarının gerçek tcp yükleridir.
chris

Yanıtlar:


9

PcapPlusPlus paketinin bir parçası olan PcapSplitter'ı da kullanabilirsiniz . Tam olarak ihtiyacınız olanı yapar (pcap dosyalarını TCP veya UDP bağlantısına böler), çok platformludur ve orijinal dosyadaki bağlantı sayısında bir sınır yoktur (böylece büyük bir bölümü bölmek için kullanabilirsiniz binlerce bağlantı veya daha fazlasını içeren pcap dosyası). Yukarıdaki bağlantı kaynak kodu içindir, ancak derlenmiş bir ikili dosya istiyorsanız - işte birkaç platform için yaptığım ikili dosyalar için bir bağlantı

DÜZENLEME: görünüşe göre PcapPlusPlus'ın yeni bir sürümü çıktı ve oldukça fazla platform için PcapSplitter ikili dosyaları içeriyor (Windows, Ubuntu 12.04 / 14.04, Mac OSX Mavericks / Yosemite / El Captian). Bu ikili dosyaları kullanmak, daha önce verdiğim bağlantıdan daha iyi olduğunu düşünüyorum. Burada bulabilirsiniz


10

İstediğiniz tcpdumppcap bölümlerini ayıklamak için kullanabilirsiniz ... bir ana bilgisayarda TCP / 55777 ve başka bir bilgisayarda TCP / 80 arasındaki soket bağlantısında paketleri aradığınızı varsayalım. Kaynak dosyanız bigfile.pcap, söz konusu web barındırıcısına birçok HTTP oturumunun daha hızlı bir dökümüdür ...

tcpdump -r bigfile.pcap -w session.pcap -s0 tcp and port 55777

Bu, TCP / 55777 bigfile.pcapiçine ve içerisinden giden tüm paketleri alıp içine kopyalayacaktır session.pcap.


-s0Birlikte kullanıldığında herhangi bir etkisi var mı -r?
kasperd

4

Biraz overkill, ancak tshark(ile birlikte gönderilir wireshark) kullanarak şunları yapabilirsiniz zsh:

file=file.pcap
tshark -Tfields -e tcp.stream \
                -e frame.time_epoch \
                -e ip.src \
                -e tcp.srcport \
                -e ip.dst \
                -e tcp.dstport -r $file |
  sort -snu |
  while read -A f; do 
    tshark -r $file -2R "tcp.stream == $f[1]" -w ${(j:-:)f[2,-1]}.pcap
  done

Hangi gibi dosyalar üretir 1509466312.202450000-10.0.0.1-58892-10.0.0.2-80.pcap(her bağlantı için görülen ilk pakete dayanarak).



2

Çalışabilecek bu araç var gibi görünüyor (kişisel olarak kullanmadım)

http://www.netresec.com/?page=SplitCap (Windows tabanlı)

SplitCap ücretsiz (birada olduğu gibi) açık kaynaklı pcap dosya splitter. SplitCap, TCP ve UDP oturumlarına göre bir büyük pcap dosyasını, oturum başına bir pcap dosyası olan birden çok dosyaya böler. SplitCap, pcap dosyasını oturum yerine ana bilgisayar çifti başına bir pcap dosyasına bölmek için de kullanılabilir.


1

esinlenen @sch burada bir bash versiyonu:

file=cap.pcap
$tshark -Tfields -e tcp.stream \
                -e frame.time_epoch \
                -e ip.src \
                -e tcp.srcport \
                -e ip.dst \
                -e tcp.dstport -r $file |
  sort -snu |
  while read -a f; do 
  [[ "${f[5]}" ]] || continue  # sometimes there is no stream number ex. UDP
  fileout=$(echo ${f[0]}__${f[1]}__${f[2]}__${f[3]}__${f[4]}__${f[5]} | tr -d '\r'  )
    $tshark -r $file -2R "tcp.stream == ${f[0]}" -w "$fileout.pcap"
  done
read

dosya adı şöyle olacaktır: stream number__time__source IP__port__destination IP__port.pcap

tr -d '\r' Windows kullanıcıları içindir, çünkü windows'daki tshark CR LF çıktısıdır.

Düzenle :

tshark ile bu çözüm çok yavaş ama emin. SplitCap süper hızlıdır, ancak bazı paketlerde bir hata olduğunda çöker, tshark sadece hata hakkında sizi bilgilendirir, ancak devam eder:

tshark: The file "cap.pcap" appears to have been cut short in the middle of a packet.

ve son olarak süper hızlı PcapSplitter var ama winpcap sürücüsüne ihtiyaç duyuyor, pencerelerde npcap sürücüsü ile çalışmıyor.

Kullanarak: Ama SplitCap için bir çözümü var pcapfix SplitCap tekrar çöküyor asla o zaman bozuk paketleri düzeltebilirsiniz. ve şu an kullandığım şey bu, çünkü tshark bölünmede çok yavaş.

ve ben PcapSplitter bir çözüm herhangi bir yöntem kullanarak winpcap dll enjekte oldu ama biz SplitCap varken neden bunu?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.