J'ai des fichiers PCAP et je voudrais simplement obtenir une liste de protocoles présents sur ce fichier PCAP. Je l'aimerais en mode batch, sans utiliser Wireshark
Je pense TSHARK est capable de le faire, mais je ne pouvais pas trouver comment. une idée?
Je pense que -Tfields -eframe.protocols
serait la chose la plus proche que vous obtiendrez.
[.____] La sortie ressemble à ceci comme suit:
eth:ip:tcp:http
eth:ip:tcp
eth:ip:tcp:http:media
eth:ip:tcp
eth:ip:udp:nbdgm:smb:browser
eth:ip:tcp
eth:arp
eth:arp
eth:ipv6:udp:http
eth:ip:udp:http
Comme on peut le voir, les informations affichées varieront un peu en fonction duquel le dissecteur de protocole doit jouer. Vous devrez donc faire un post-traitement pour couper les pièces dont vous n'avez pas besoin et/ou dédénagez (par exemple à l'aide de la suggestion de @ Mark dans le commentaire).
As-tu essayé tshark -r test.cap -q -z io,phs
Cela vous donnera une liste hiérarchique de protocoles, je ne sais pas si cela répondrai.
===================================================================
Protocol Hierarchy Statistics
Filter: frame
frame frames:433 bytes:290520
eth frames:433 bytes:290520
ip frames:433 bytes:290520
tcp frames:423 bytes:289464
http frames:188 bytes:267285
ssh frames:24 bytes:7968
ssl frames:2 bytes:237
udp frames:10 bytes:1056
data frames:6 bytes:355
ntp frames:2 bytes:180
nbdgm frames:2 bytes:521
smb frames:2 bytes:521
mailslot frames:2 bytes:521
browser frames:2 bytes:521
===================================================================
Pour obtenir la liste des protocoles, vous pouvez faire de la ligne de commande kungfu.
tshark -r test.cap -z io,phs -q | tr -s ' ' | cut -f 2 -d ' ' | tail -n +7 | head -n -1
qui vous donnera
eth
ip
tcp
http
ssh
ssl
udp
data
ntp
nbdgm
smb
mailslot
browser
TCPDSTAT le fera pour vous. Je crois que cela a été mentionné dans l'un des livres de Richard Bejtlich.
Contrairement à la plupart des autres outils, bro détecte les protocoles d'application dans un Port-agnostique . Par exemple, il détecte HTTP non sur les ports standard (80, 8080, etc.), mais dans tout TCP.
L'extraction du nombre de connexions (TCP et UDP) est simple:
bro -r trace.pcap
bro-cut service < conn.log | sort | uniq -c
Exemple de sortie d'une petite trace HTTP:
19 -
53 dns
34 http