3 votes

Comment utiliser tshark pour extraire les données de morceaux bittorrent dans un fichier pour un traitement ultérieur/rapportage ?

Wireshark fait un bon travail d'extraction des messages PIECE de bittorrent envoyés à des pairs spécifiques à partir d'autres pairs en utilisant un filtre comme celui-ci par exemple:

bittorrent.piece.data et ip.dst_host == 192.168.3.14 et ip.src_host == 192.168.3.15 

Je veux automatiser la génération d'un fichier de ces données de pièce pour un traitement ultérieur/inline avec une application Python par exemple tracer le débit de pièce en fonction du temps avec Matplotlib.

Est-ce que quelqu'un peut me dire les arguments de ligne de commande tshark pour parvenir à cela en supposant:

  • Le fichier pcap d'entrée est input.pcap
  • La sortie désirée est output.txt contenant des infos de résumé de paquets suivies des octets de paquet réels sous forme de tableau hexadécimal

Comme mentionné, je prévois d'importer output.txt dans mon application d'analyse Python, mais j'ai aussi besoin des données de pièce brutes pour réassembler les pièces en Python pour une vérification d'intégrité. Dans mon cas, les pièces sont des parties d'une vidéo. Je peux faire la réassemblage dans Python sans problème.

Tout ce dont j'ai besoin est le décalage temporel, l'index de pièce, et les données de pièce brutes qui, comme je l'ai vérifié, peuvent être exportées depuis la boîte de dialogue Wireshark > Export en sélectionnant les options Résumé du paquet et Octets de paquet avec le filtre ci-dessus en effet. Je veux éviter de devoir faire cette exportation manuellement cependant pour les nombreuses captures que je dois faire au cours des prochaines semaines et mois.

Merci d'avance.

2voto

Mister M Points 11

Il semble que ce qui suit me permette d'atteindre en grande partie ce que je recherche en termes de fonctionnalités d'automatisation:

tshark -r 2-live.pcap -R 'bittorrent.piece.data and ip.dst_host == 192.168.3.15' -T fields -e frame.number -e frame.time -e frame.len -e ip.src_host -e bittorrent.piece.index -e bittorrent.piece.data -E separator=+

Il semble que je n'aurais peut-être pas besoin de développer beaucoup d'utilitaires Python après tout. Je peux obtenir par exemple des statistiques de charge utile BT par seconde avec ce qui suit:

tshark -r 2-live.pcap -q -z io,stat,1,"bittorrent.piece.data and ip.dst_host == 192.168.3.15"

La création de graphiques à partir de ces données sera un jeu d'enfant

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X