Czy istnieje narzędzie do dzielenia pliku przechwytywania pakietów (w formacie pcap) na osobne pliki dla każdego połączenia TCP? (inne niż domowy skrypt powłoki, który prawdopodobnie musi zostać uruchomiony dwukrotnie podczas przechwytywania ...). Coś w stylu „podążania za strumieniem TCP” wiresharka, ale dla wiersza poleceń (obawiam się, że wireshark zużyje dużą ilość pamięci podczas wyświetlania przechwytywania pakietów 700 MB)
Patrzyłem na tcpflow, ale wydaje się, że produkuje on pliki znacznie większe niż oryginalne pliki pcap i wydaje się, że nie są w formacie pcap.
linux
command-line-interface
tcp
pcap
Andre Holzner
źródło
źródło
Odpowiedzi:
Możesz także użyć PcapSplitter, który jest częścią pakietu PcapPlusPlus . Robi dokładnie to, czego potrzebujesz (czyli dzielenie plików pcap przez połączenie TCP lub UDP), jest wieloplatformowy i nie ma ograniczenia liczby połączeń w oryginalnym pliku (więc możesz go użyć do podzielenia dużego plik pcap zawierający tysiące połączeń lub nawet więcej). Powyższy link dotyczy kodu źródłowego, ale jeśli chcesz skompilowanego pliku binarnego - oto link do plików binarnych, które utworzyłem dla kilku platform
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ż łącze, które wcześniej podałem. Możesz go znaleźć tutaj
źródło
Możesz użyć
tcpdump
do wyodrębnienia części pcap, którą chcesz ... załóżmy, że szukasz pakietów w połączeniu gniazdowym między TCP / 55777 na jednym hoście a TCP / 80 na innym. Twój plik źródłowy tobigfile.pcap
zrzut sniffera wielu sesji HTTP do danego hosta internetowego ...Spowoduje to pobranie wszystkich pakietów idących do iz TCP / 55777
bigfile.pcap
i skopiowanie ich dosession.pcap
.źródło
-s0
ma jakiś wpływ, gdy jest stosowany razem z-r
?Trochę przesada, ale używając
tshark
(w zestawiewireshark
) możesz zrobić zzsh
:Który generuje pliki o nazwie jak
1509466312.202450000-10.0.0.1-58892-10.0.0.2-80.pcap
(na podstawie pierwszego pakietu widzianego dla każdego połączenia).źródło
tcpflow jest tym, czego chcesz - dzieli pcaps na jeden plik na sesję TCP
http://www.circlemud.org/jelson/software/tcpflow/
źródło
Wydaje się, że jest to narzędzie, które może działać (nie korzystałem z niego osobiście)
http://www.netresec.com/?page=SplitCap (oparty na systemie Windows)
źródło
zainspirowany @sch tutaj jest wersja bash:
nazwa pliku będzie taka:
stream number__time__source IP__port__destination IP__port.pcap
tr -d '\r'
jest dla użytkowników systemu Windows, ponieważ tshark w systemie Windows wyprowadza CR LF.Edytuj :
to rozwiązanie z tshark jest takie wolne, ale pewne. SplitCap jest super szybki, ale gdy pojawia się błąd w pewnym pakiecie, ulega awarii, podczas gdy tshark informuje cię tylko o błędzie, ale kontynuuje:
i wreszcie jest PcapSplitter, który jest także super szybki, ale potrzebuje sterownika winpcap, nie działa ze sterownikiem npcap w systemie Windows.
Ale istnieje rozwiązanie SplitCap: za pomocą pcapfix mogę naprawić uszkodzone pakiety, wtedy SplitCap nigdy się nie zawiesza. i tego właśnie używam teraz, ponieważ tshark tak wolno dzieli.
a rozwiązaniem PcapSplitter, które zrobiłem, było wstrzykiwanie biblioteki dll winpcap za pomocą dowolnej metody, ale skoro mamy SplitCap, dlaczego to robisz?
źródło