2011-12-09 11 views
6

Sadece Ethernet, IP ve Katman 4 (durumumda TCP) başlıklarını içeren bir pcap dosyası oluşturmak için otomatikleştirilmiş bir yol (tcpdump veya bir Yardımcı uygulama yoluyla) var, böylece herhangi bir veri yükü/uygulama verisi yok. sonuçta oluşan pcap? Üstbilgi boyutları genellikle farklılık gösterdiğinden, herhangi bir veri yükü verilerini yakalayamayacak bir yakalama boyutu seçmenin mümkün olmadığını buldum. Basit truncate sizin için çalışacak olursaBir tcpdump’tan gelen yükü mi sıyırıyorsunuz?

cevap

9

Sen Python'un scapy modülü ile çok kolay TCP yükünü dışarı şerit olabilir

[[email protected] tshark_wd]$ tcpdump -n -r sample.pcap 
reading from file sample.pcap, link-type EN10MB (Ethernet) 
00:25:42.443559 IP 192.168.12.237.1052 > 192.168.12.236.22: Flags [P.], 
    seq 2445372969:2445373021, ack 1889447842, win 63432, length 52 
00:25:42.443607 IP 192.168.12.236.22 > 192.168.12.237.1052: Flags [.], 
    ack 52, win 65535, length 0 
00:25:42.443980 IP 192.168.12.236.22 > 192.168.12.237.1052: Flags [P.], 
    seq 1:389, ack 52, win 65535, length 388 

SIYIRMA KALDIRMA

... linux root olarak

bu Running ÖNCE
#!/usr/bin/env python 
from scapy.all import * 
INFILE = 'sample.pcap' 
OUTFILE = 'stripped.pcap' 
paks = rdpcap(INFILE) 
for pak in paks: 
    pak[TCP].remove_payload() 
wrpcap(OUTFILE, paks) 

Yukarıdaki tcpdump yılında

[[email protected] tshark_wd]$ tcpdump -n -r stripped.pcap 
reading from file sample.pcap, link-type EN10MB (Ethernet) 
00:25:42.443559 IP truncated-ip - 52 bytes missing! 192.168.12.237.1052 
    > 192.168.12.236.22: Flags [P.], seq 2445372969:2445373021, 
    ack 1889447842, win 63432, length 52 
00:25:42.443607 IP 192.168.12.236.22 > 192.168.12.237.1052: Flags [.], 
    ack 52, win 65535, length 0 
00:25:42.443980 IP truncated-ip - 388 bytes missing! 192.168.12.236.22 
    > 192.168.12.237.1052: Flags [P.], seq 1:389, 
    ack 52, win 65535, length 388 

SONRA, "XX bayt eksik!" Fark mesajlar. Bunun nedeni, TCP yükünü kaldırdık.

0

şunu kullanabilirsiniz:

tcpdump -i eth0 -s 96 -w test1.pcap 

Daha sonra size wireshark analiz edebilirsiniz.

+0

Ne yazık ki OP doğru, TCP başlıklarının uzunluğu nedeniyle TCP başlıklarının uzunluğunu güvenilir şekilde tahmin etmenin bir yolu yoktur. Çoğunlukla, IP/TCP başlıklarının uzunluk bakımından büyük bir şansı olan tek kısmı budur. Sabit bir snaplen değeri, TCP yükünü her zaman doğru yerde kesmenizi garanti etmez. –

-2

Benim çözümüm şu şekilde oldu. Başkalarının harici kütüphaneler veya kesintiler olmadan nasıl yaptıklarını duymak isterim. Başkalarının bunu nasıl gerçekleştirdiğini duymak isterim, çünkü Scapy belgelerinde remove_payload() işlevini bulamadı ve bu yanıtı kullanılamaz hale getirdim.

#read pcap file 
pkts = rdpcap("packet-capture.pcap") 

#write packet with payload "XXXXXXXXXX" 
for pkt in pkts: 
    pkt.load = "XXXXXXXXXX" 

#write new pcap 
wrpcap("new.pcap", pkts) 

bu sorun, tcpdump ile okuduğumda, bir bayt eksik bırakıyor olması! Src IP için. Ben

pkts[_packet_num].load 

değişmeden sanki böylece görünüyor bütün yakalama yenilemek için bir yolu var mı aracılığıyla BİLGİ EDİNME hala orada scapy kullanıyor doğrulayabilir?

+0

Bu, bir yanıttan başka bir soruya daha çok benziyor. Belki başka bir [http://stackoverflow.com/questions/ask] [sorarak] düşünün. – adamdunson

İlgili konular