pfSense
Mise à jour de Zed Attack Proxy
Nous allons aussi mettre ZAP Ã jour.
Ouvrir l’application zap.
Dans l’onglet help, cliquer sur “Check for Updates…”.
Cliquer sur “Update All”.
Ajout des add-ons ZAP.
Pour pouvoir utiliser ZAP à son plein potentiel et faire plus tard l’analyse de vulnérabilités avec OWASP top10, nous allons installer des add-ons.
Pour cela, cliquer sur “Help” (1).
Cliquer sur “Check for Updates…” (2).
Sélectionner les add-ons suivants :
Sélectionner les add-ons suivants :
Cliquer sur “Install Selected”.
Nous avons désormais accès aux add-ons que nous venons d’installer.
Burp injection SQL
Dans cette partie, nous allons gérer les vulnérabilités applicatives grâce au logiciel Burp.
Burp est un logiciel qui peut être utilisée pour la sécurisation ou effectuer des tests de pénétration sur les applications web. Nous nous servons ici de Burp pour tester des injections SQL en interceptant les paquets.
Commencer par ouvrir Burp en cliquant sur l’icône kali en haut en gauche.
Chercher “burp” (1), cliquer sur burpsuite (2).
Cliquer sur “Start Burp”.
Nous allons pouvoir ouvrir l’interface nous permettant d’intercepter les paquets.
Cliquer sur “Intercept is on” (1) pour désactiver l’interception de paquets réseau.
Cliquer sur “Open Browser” (2).
Ouvrir un navigateur intégré à Burp permet à Burp d’intercepter et de déchiffrer les paquets HTTPS.
En effet, le navigateur ouvert par Burp contient le certificat du proxy Burp.
Ouvrir l’interface web du site que nous voulons tester.
Cliquer sur “Intercept is off” pour réactiver l’interception de paquets réseau.
Nous pouvons essayer d’entrer un username (1) et cliquer sur “SIGN IN” (2) pour envoyer une requête qui sera interceptée par le proxy.
Nous voyons ici la requête HTTP envoyé par notre navigateur Burp.
Nous allons maintenant tenter de modifier cette requête grâce à Burp.
Cliquer sur “Action” (1) puis cliquer sur “Send to Intruder” (2).
Cliquer sur “Intruder” pour ouvrir l’intruder nouvellement créé.
Cliquer sur “Clear” afin d’enlever les balises déposées par Burp. Ces balises nous permettent d’indiquer à Burp où insérer le payload dans le paquet.
Nous allons désormais ajouter des injections SQL dans notre requête.
Pour cela, sélectionner le texte que nous voulons remplacer dans la requête. Ici l’username (1).
Cliquer sur “Add” (2) pour ajouter un balisage.
Cliquer sur “Payloads” (3) pour sélectionner le texte qui remplacera l’username de la requête.
Cliquer sur “Load…” pour charger une liste de payload sur laquelle Burp va itérer.
Appuyer sur “Clear” dans le cas où la liste de payloads ne serait pas vide.
Nous sélectionnons un fichier contenant une liste de payloads susceptibles d’exploiter une SQLI (1). Ce fichier est composé d’injection classique, mais également d’injection spécifique au bypass d’authentification.
Cliquer sur “Open” (2).
Scan vulnérabilités pfSense .TXT
Nous pouvons voir que tous les tests qui vont être faits sont chargés dans Burp.
Il suffit à présent de lancer l’attaque en cliquant sur “Start attack” (2):
Pour chaque ligne, une requête est faite, il faut donc attendre que Burp finisse de faire les requêtes.
Nous sommes ici à 13 sur 248.
Le chargement est désormais fini.
Nous pouvons voir la réponse associée à chaque requête.
Cliqur sur une requête (1), cliquer sur “Render” (2) pour afficher la réponse en HTML.
Nous voyons que la requête n’a pas abouti à une connexion (3).
La chaîne de caractères visible en (3) va nous permettre de discriminer les réponses ayant abouti de celles qui n’ont pas abouti, car contenant cette chaîne caractéristique :
Nous voyons que cela peut être assez laborieux de vérifier si une requête a abouti à une connexion. Nous ne pouvons pas vérifier manuellement chaque réponse.
Pour palier ce problème, nous utilisons une fonctionnalité de Burp permettant de filtrer les réponses avec grep.
Pour cela, nous cherchons un mot clé présent dans la réponse. Cliquer sur “Raw” pour afficher la réponse textuelle (1).
Chercher le mot clé “username” (2). Nous le trouvons ici (3). Nous pouvons le copier-coller et cliquer sur “options” (4).
Cliquer sur “Clear” (1) puis sur “Paste” (2).
Nous pouvons voir dans la nouvelle colonne un booléen qui affiche 1 si la réponse match, et donc infructueuse dans notre cas.
Ici, aucune tentative d’injection n’a fonctionné.
Zed Attack Proxy injection SQL
Ouvrir ZAP.
Cliquer sur le petit onglet Firefox pour ouvrir un navigateur pour les mêmes raisons que données précédemment.
Aller sur le site du pfSense (192.168.2.1).
Une interface ZAP apparaît et nous demande si l’on veut forward la requête vers le site.
Cliquer sur “Continue to the target” pour interagir avec le site web.
Faire une requête de tentative de connexion.
Nous pouvons voir dans ZAP que des sites sont apparus dans l’onglet “Sites”. Ce sont les sites web avec lesquels on a interagi via le navigateur embarqué par ZAP. Ce dossier contient toutes les requêtes interceptées par ZAP.
Cliquer sur l’adresse du pfSense en HTTPS.
Cliquer sur la requête envoyé (1).
Cliquer sur “Attack” (2), puis sur “Fuzz…” (3).
Sélectionner les champs de la requête que nous voulons remplacer.
Ici, c’est le champ username (1) puis sur “Add…” (2).
Cliquer sur “Add” pour ajouter des payloads.
Dans Type, choisir “File Fuzzers” puis descendre pour trouver le type de fuzzer que nous cherchons pour la partie SQLi.
Cocher “Injection” (1) & “SQL Injection” (2)
Cliquer sur “Add” (3) pour valider.
Cliquer sur “Start Fuzzer” pour démarrer l’attaque.
Cliquer sur “Export” pour exporter le rapport de l’attaque.
Cliquer sur “Report” (1).
Cliquer sur “Generate Report…” (1) pour générer le rapport de l’attaque.
Choisir le chemin du dossier dans lequel sauvegarder les fichiers du rapport (1).
Choisir l’attaque pour le site que nous voulons exporter, ici l’attaque sur le pfSense (2).
Cliquer sur “Generate Report” (3).
Zed Attack Proxy brute force
Nous allons désormais tester la vulnérabilité de notre pfSense à des attaques par brute force.
Dans ZAP, faire une tentative de connexion au pfSense, en renseignant cette fois ci les deux champs. Contrairement à l’injection SQL, nous allons devoir ici tester de remplacer les deux champs.
Sélectionner le premier champ à remplacer, username (1), et cliquer sur “Add…” (2).
Pour le brute force, nous allons utiliser un fichier rempli de mots qui remplaceront le mot de passe et le username, ici fasttrack.txt trouvé directement sur la machine KALI01.
Sélectionner “File” (1) comme type de payload
Renseigner le chemin du fichier fasttrack.txt (2)
Choisir le fichier et cliquer sur “Add” (3).
Nous allons aussi remplacer le champ mot de passe.
Choisir le même fichier que pour le username.
Cliquer sur “Start Fuzzer”.
Zed Attack Proxy OWASP top10
Commencer par ouvrir le site que nous voulons tester dans ZAP, ici pfSense.
Se connecter.
Nous voyons que ZAP ajoute un overlay avec des boutons.
Cliquer sur le bouton “Start” avec l’araignée noire qui lance un programme qui parcourt récursivement le site.
Cliquer sur le bouton “Start”.
Attendre la fin du chargement.
Cliquer sur “Start” avec l’araignée rouge qui lance un programme basé sur AJAX spider qui permet d’aller plus en profondeur.
Nous utilisons en général les deux araignées pour de meilleurs résultats. Comme indiqué dans la documentation du logiciel.
Cliquer sur “Start” avec la goûte pour lancer le scan actif.
Les scans actifs ne sont pas conseillés sur du matériel opérationnel, en effet, envoyer des paquets malveillants peut détruire le routeur. C’est pour cette raison que nous avons pris la précaution de faire des snapshots avant de lancer le scan actif.
Nous obtenons le rapport suivant :
Aucune alerte supplémentaire n’a été détectée grâce au scan actif.
Rapport SQLI
Scan SQLI pfSense
Rapport Brute force
Scan brute force pfSense
Rapport scan vulnérabilités
Scan vulnérabilités pfSense