Notre contribution à la communauté de la sécurité de l'information et des systèmes d'information

Extension Burp Suite

Lien vers la première partie : http://blog.conixsecurity.fr/archives/2076

Nous avons vu comment fonctionnait le moteur de Proxyshark dans la première partie. L’objectif de ce second article est de parler de l’extension Burp Suite utilisée pour fournir une interface graphique et des outils supplémentaires à Proxyshark.

Interface avec le moteur

Le contrôle de Proxyshark à partir de Burp Suite nécessite d’activer l’option de « pilotage web » de Proxyshark (option « -w »). Une fois activée, et l’adresse IP / le port du proxy spécifiés, Proxyshark construira un message HTTP POST à destination du proxy pour chaque paquet intercepté. Ce message contiendra une chaîne de caractère décrivant le contenu du paquet tel que disséqué par TShark. Le contenu du paquet est transmis sous la forme d’une liste de dictionnaires. Chaque champ ou protocole sera représenté sous la forme d’un dictionnaire disposant des attributs du format PDML :

Proxyshark CONIX

Figure 1 : exemple d’encodage des champs ip.src et ip.dst

Une fois reçu, le paquet devient accessible à l’utilisateur. Lorsqu’un verdict (ou toute autre action) est ordonné, l’extension génère une requête HTTP POST à destination du moteur, visant une URL correspondant à l’action demandée :

figure-2

Figure 2 : requête de suppression de paquets

figure-3

Figure 3 : communication entre l’extension et le moteur

Fonctionnalités

L’extension se présente sous la forme d’une fenêtre, composée de trois parties distinctes :

La première partie, en haut à gauche, permet de visualiser la liste des paquets reçus depuis le moteur. Il s’agit d’une table donnant entre autres l’identifiant de chaque paquet, une description sommaire ainsi que le statut courant : accepté, rejeté, en attente, introuvable. Chacune de ces lignes est sélectionnable. Il est possible d’effectuer des actions sur une sélection : accepter, rejeter, supprimer. Un menu contextuel permet l’envoi d’un paquet vers les outils Intruder et Repeater de Burp. Il est également possible de filtrer le contenu de la table à l’aide d’un filtre de paquet (cf. article précédent).

La deuxième partie, en bas à gauche, permet de visualiser le contenu d’un paquet sélectionné. Chacun des protocoles et champs apparaît au sein d’une table qui détaille sa position, sa taille et sa valeur. La sélection d’un des champs permet sa modification.

La troisième partie, à droite, affiche le contenu d’un champ donné dans un champ de texte éditable. Il est possible d’afficher la valeur du champ sélectionné sous plusieurs formes :

  • Texte ASCII
  • Chaîne hexadécimale (défaut)
  • Adresse IP
  • Base 64
  • Entier base 10

Les paquets capturés par le moteur de Proxyshark sont relayés automatiquement vers l’extension Burp s’ils passent les différents filtres mis en place. Ils sont également mis en attente au niveau du moteur (état « Pending ») :

figure-4

Figure 4 : capture de paquets DNS

Il est nécessaire de leur affecter un verdict, afin que le moteur puisse les rejeter ou les réinjecter. Dans ce dernier cas, le paquet sera renvoyé sur le réseau et la réponse pourra être capturée :

figure-5

Figure 5 : réception d’une réponse après acceptation d’un paquet

La capture ci-dessous montre le champ « dns.a » d’un paquet DNS, affiché sous forme d’adresse IP :

figure-6

La modification d’un paquet capturé se fait dans le même panneau, conformément à la méthode d’interprétation sélectionnée (ici, sous forme d’adresse IP) :

figure-7

Après acceptation, la modification du paquet se retrouve réfléchie au niveau du moteur :

figure-8

Cette extension, toujours en développement, permettra par la suite d’interfacer simplement les modules d’audit de Burp Suite avec les fonctionnalités de Proxyshark : rejeu sur plusieurs couches, fuzzing avec l’outil Intruder, etc.

 

By | 2017-01-31T17:16:42+00:00 26/09/2016|Technique|