# Wireshark

Wireshark est un analyseur de paquets libre et gratuit. Il est utilisé dans le dépannage et l’analyse de réseaux informatiques, le développement de protocoles, l’éducation et la rétro-ingénierie.
Wireshark utilise la bibliothèque logicielle Qt pour l’implémentation de son interface utilisateur et pcap pour la capture des paquets ; il fonctionne sur de nombreux environnements compatibles Unix comme GNU/Linux, FreeBSD, NetBSD, OpenBSD ou Mac OSX, mais également sur Microsoft Windows. Il existe aussi entre autres une version en ligne de commande nommé TShark. Ces programmes sont distribués gratuitement sous la licence GNU General Public License.
Wireshark reconnaît 1 515 protocoles.

## Fonctionnalités

Wireshark est similaire à tcpdump, mais il implémente une interface graphique ainsi que plusieurs options de tri et filtrage des paquets. Il décode les paquets capturés et comprend les différentes structures (encapsulation) des protocoles de communication. Wireshark utilise pcap pour capturer les paquets, donc il ne supporte que les types de réseaux supportés par pcap.
* Des données d’une capture précédente peuvent être lues depuis un fichier.
* Les données peuvent être capturées from the wire d’une connexion réseau.
* Les données peuvent être lues sur différents réseaux, comme Ethernet, IEEE 802.11 (Wi-Fi), PPP, loopback, les réseaux FTTH et les réseaux mobiles utilisant les protocoles IP.
* Les données capturées peuvent être affichées via une interface graphique, ou via un terminal en ligne de commande avec l’outil TShark.
* Les fichiers capturés peuvent être édités ou convertis via la ligne de commande à l’aide de l’outil editcap.
* Des plug-ins peuvent être créés pour l’analyse de nouveaux protocoles.
* Support de Lua pour le prototypage et le scriptage.
* Les appels VoIP peuvent être capturés et les médias peuvent être lus si les paquets sont compatibles.
* Les données brutes d’un trafic USB peuvent être capturées.
* Une connexion sans fil peut aussi être capturée si elle passe sur le réseau Ethernet surveillé.
* Plusieurs paramètres et filtres peuvent être activés pour faciliter le tri du trafic de sortie.
* Wireshark permet d’activer le Promiscuous mode (mode promiscuité) sur votre carte réseau, si celle-ci le permet. Ceci permet de voir les paquets de type unicast sur un réseau qui ne sont pas dirigées vers votre adresse MAC.

## Histoire

À la fin des années 1990, Gerald Combs est diplômé de l'université du Missouri-Kansas City et travaille au sein d’un petit fournisseur d'accès à Internet. L'analyseur de protocole utilisé en interne est un logiciel propriétaire commercialisé près de 1 500 $ et ne fonctionne pas sur la plateforme de production de la société (GNU/Linux et Solaris). Gerald Combs commence alors les développements d'Ethereal et réalise sa première version en 1998.
En mai 2006, Combs intègre la société CACE Technologies. Il clone alors le dépôt SVN du projet Ethereal sur son propre dépôt de code source Wireshark en toute légalité puisqu’il détient les droits d'auteur sur la majeure partie du code source d'Ethereal, le reste étant également distribué selon les termes de la licence publique générale GNU. Il n’est toutefois pas propriétaire de la marque Ethereal et change donc le nom de son projet en Wireshark.

## Code couleur

L’utilisateur peut voir les paquets capturés surlignés d’une couleur. Wireshark utilise ces couleurs pour aider l’utilisateur à identifier le type de trafic capturé d’un coup d’œil.
Couleur et signification par défaut :
| couleur | signification |
| Mauve clair | Trafic TCP. |
| Gris | Paquet TCP comportant le drapeau SYN ou FIN. |
| Rouge | Paquet TCP comportant le drapeau RST. |
| Noire | Paquets TCP avec un problème (typiquement paquets avec un numéro de séquence désordonné) . |
| Vert clair | Trafic HTTP. |
| Bleu clair | Trafic DNS et trafic UDP. |
L'utilisateur peut changer, créer, supprimer une règle couleur.

## Capture de paquets de simulation

Wireshark peut également être utilisé pour capturer des paquets de la plupart des outils de simulation réseau tels que ns, OPNET Modeler et Netsim.