Comment exporter du texte imprimable (ou toute autre propriété de paquets) dans Wireshark
-
14-10-2019 - |
Question
Longue histoire courte - je capture SQLs de l'outil de fournisseur de base de données Oracle en utilisant Wireshark. Il a déjà décodeur pour le protocole TNS (qui est grand) et je peux accéder à texte de SQL par
Right Click->Copy->Bytes(Printable Text Only).
Le problème est qu'il ya des tonnes de paquets et en faisant un clic droit sur chacun d'entre eux pourrait prendre des siècles. Je me demandais s'il y a un moyen de « texte imprimable » exportation dès Wireshark. Idéalement, je veux avoir un fichier texte avec des déclarations.
Toute aide sera très appréciée.
La solution
Je ne sais pas comment le faire avec TNS. mais vous pouvez faire quelque chose comme cela en utilisant tshark, par exemple pour consulter les requêtes HTTP.
tshark -T fields -e http.request.uri
Donc, si vous pouvez regarder les options du décodeur TNS, vous devriez être en mesure de saisir ce champ et rediriger la sortie vers un fichier.
Autres conseils
Enfin trouvé loin de le faire. Tout d'abord, l'utilisation tshark la capture des paquets de tns:
tshark -R tcp.port==1521 -T fields -e data.data -d tcp.port==1521,tns > input.txt
Ensuite, vous pouvez utiliser Ruby brasser la maison de script ci-dessous pour transformer d'octets au texte:
file = ARGV[0]
print_all = ARGV[1]
File.open(file, "r").each {|line|
line.gsub(",", ":").split(':').each {|byte|
chr = Integer('0x' + byte).chr
print chr if ((' '..'~').include?(chr) or chr == "\n") or (print_all.downcase == 'all' if print_all)
} if !line.chomp.empty?
}
Les exemples sont:
encode.rb input.txt > output.txt
exportera texte imprimable de l'entrée à la sortie
encode.rb input.txt all > output.txt
exportera tout le texte de l'entrée à la sortie
Un moyen facile de les regarder tout ce qui a fonctionné pour moi est juste Right Click -> Follow TCP Stream
.
A: Les caractères non imprimables sont affichés sous forme .
s. S'il y a un tas de ces intercalés entre tout le texte que vous souhaitez extraire (comme il y avait pour moi), passer à ASCII
, enregistrez-le et ouvrez-le dans votre éditeur de texte favori (vim pour moi), puis lancer une recherche et remplacer similaire à /\.//g
.