jak podzielić plik pcap na zestaw mniejszych

47

Mam ogromny plik pcap (wygenerowany przez tcpdump). Kiedy próbuję otworzyć go w wireshark, program po prostu przestaje odpowiadać. Czy istnieje sposób na podzielenie pliku na zestaw mniejszych i otwieranie ich jeden po drugim? Ruch przechwycony w pliku jest generowany przez dwa programy na dwóch serwerach, więc nie mogę podzielić pliku za pomocą filtrów „host” lub „port” tcpdump. Próbowałem także polecenia linuksa „split” :-), ale bez powodzenia. Wireshark nie rozpoznaje formatu.

facha
źródło
Jak duży jest ogromny? Czy jest znacznie większy niż dostępna pamięć RAM?
pehrs
2
Trochę za późno, ale powodem, dla którego Wireshark nie odczytuje plików, które są wynikiem, splitjest to, że podział dzieli się według dokładnych granic bajtów. Jest bardzo prawdopodobne, że podzieli pakiet, który unieważnia część zawartości pliku.
Burhan Ali

Odpowiedzi:

72

Możesz użyć samego tcpdump z opcjami -C, -r i -w

tcpdump -r old_file -w new_files -C 10

Opcja „-C” określa rozmiar pliku do podziału. Np .: W powyższym przypadku każdy nowy plik będzie miał 10 milionów bajtów.

Dan Andreatta
źródło
Jesteś niesamowitym człowiekiem, Dan.
lobi
Czy można to zrobić bez rozbijania sesji? (Zakładając, że pojedyncza sesja jest mniejsza niż argument limitu rozmiaru).
spanishgum
Szybko: tcpdump -r old_file -w new_files -C 1000 dzieli na każde 955 MB zarejestrowanego ruchu
gies0r
18

Skorzystaj z editcapnarzędzia, które jest dystrybuowane wraz z Wireshark.

Dan Carley
źródło
5
editpcap -c 1000 input.pcap output.pcappodzieli input.pcapsię na przechwytywania z maksymalnie 1000 pakietów na przechwytywanie. Wyjściem będzie wiele plików przechwytywania sformatowanych jakoutput_{index}_{timestamp}.pcap
blachniet
1
Dziękuję Blachniet za przykład! Ale to tylko editcapnie editpcapprawda, prawda?
Lindhe
3

Wiem, że ta odpowiedź jest trochę spóźniona, ale może też służyć innym ludziom. Znalazłem świetne narzędzie do dzielenia plików pcap : PcapSplitter . Jest to część biblioteki PcapPlusPlus, co oznacza, że ​​jest wieloplatformowa (Win32, Linux i Mac OS) i może dzielić pliki pcap na podstawie różnych kryteriów, takich jak rozmiar pliku (co wydaje się potrzebne), ale także według połączenia, klienta / serwera IP, port serwera (podobny do protokołu), liczba pakietów itp. Uważam, że jest to bardzo przydatne. Powyższy link dotyczy kodu źródłowego, ale jeśli nie chcesz / nie wiesz jak skompilować, stworzyłem skompilowane pliki binarne dla kilku platform, z którymi korzystałem z tego narzędzia. Bardzo polecam to narzędzie

EDYCJA: podobno została wydana nowa wersja PcapPlusPlus i zawiera pliki binarne PcapSplitter dla całkiem wielu platform (Windows, Ubuntu 12.04 / 14.04, Mac OSX Mavericks / Yosemite / El Captian). Myślę, że lepiej jest używać tych plików binarnych niż link, który wcześniej podałem. Możesz go znaleźć tutaj

fx23
źródło
2

Najlepszym i najszybszym sposobem jest użycie SplitCap, który może dzielić pliki zrzutu dużych pakietów na przykład na podstawie sesji. W ten sposób uzyskasz każdą sesję TCP w osobnym pliku PCAP. SplitCap może również dzielić pakiety na pliki pcap na podstawie adresów IP.

Możesz przeczytać więcej o SplitCap na blogu Netresec: http://www.netresec.com/?page=Blog&month=2011-05&post=Split-or-filter-your-PCAP-files-with-SplitCap

Pobierz SplitCap stąd: http://www.netresec.com/?page=SplitCap

Powodzenia!

Netresec
źródło
Czy są jakieś wersje linux?
ychaouche
To fajny program, nie ma możliwości pracy z plikami pcapng.
Guntram Blohm obsługuje Monikę
0
tcpdump -w trace.pcap -W 48 -G 300 -C 100 -i any port 41110
  • -G 300 obróci się za 5 minut
  • -W 48 liczba plików
  • -C 100 rozmiar pliku 100 MB
  • port możesz określić port na podstawie aplikacji
użytkownik531905
źródło