Conseils, services, ingénierie en informatique. Mise en place de solutions technologiques, et support, pour les entreprises.

Note utilisateur: 5 / 5

Etoiles activesEtoiles activesEtoiles activesEtoiles activesEtoiles actives
 

OWASP ZAP et son mode "attaque" en test des applications web de ce scanner de vunérabilités pour le pentesting et les audits tests d'intrusions

Mise à jour tutorial ZAP en version 2.8.0 novembre 2019

 

Lors de ses projets de création de l'application (applications web ou applications mobile smartphones Android iphone IOS) Consultingit intègre une phase de pentesting (bug bounty comme certains l'appellent). Après les tests unitaires, les tests d'intégration, les tests d'intrusions sont à prendre en comptes. Consultingit fait appel à la célèbre équipe CTF LGHM, (aussi connue sous le nom de l'association loi 1901 à but non lucratif Le Gang des Hackers de Montreuil), cette "RED TEAM" de hackers éthiques (chapeaux blancs CEH) consultants en cybersécurité: pour sécuriser les applications, trouver les failles et les vulnérabilités du programme, avant que le programme passe en production. Cela évite qu'ensuite des hackers mal intentionnés (les black hats, ou chapeaux noirs) trouvent des failles et les exploitent. 

 

Comme nous utilisons beaucoup d'outils différents (comme Acunetix ou Nessus) il est interessant d'utiliser aussi le logiciel OWASP ZAP pour pentester (effectuer un test d'intrusion) à chaque étape/jalon du projet des applications .Net, PHP, NodeJS avec ses fameuses injections Nosql , (à chaque fin de sprint Agile) ou chacune des release de la roadmap, il est surtout très intéréssant d'utiliser ZAP pour son excellent mode "attaque" .

 

 

 

Les applications Web constituent souvent la meilleure porte d’entrée pour le serveur / la base de données d'une entreprise, un point d'entrée vers l'ensemble de leur réseau interne. Par définition, l'application Web est conçue pour prendre une entrée de l'utilisateur et la renvoyer au serveur ou à la base de données. De cette manière, l'attaquant peut renvoyer des bouts de programmes malveillants aux serveurs et au réseau si l'application Web n'est pas correctement sécurisée.

OWASP ZAP est un outil Java permettant de tester la sécurité des applications Web. Il possède une interface graphique intuitive et de puissantes fonctionnalités permettant de fuzzing, de scripting, de spidering, de proxy et d’attaque d’applications Web. Il est également extensible à travers un certain nombre de plugins. De cette manière, il s'agit d'un outil de test d'applications Web tout-en-un. OWASP ZAP pourrait même devenir votre outil de test d'applications Web une fois que vous aurez compris le principe.

ZAP est un des scanners de vulnérabilités le plus complet. ZAP nous permet d'automatiser le processus d’analyse des vulnérabilités, de gagner du temps dans nos cycles de conformité et nous permet de faire participer toute notre équipe informatique Red Team.

 

Une question? Posez-la ici

pentesting, audits et tests d'intrusions

 

Pré-requis à l'utilisation d'OWASP ZAP 

 

Un ordinateur avec Windows, MacOS ou Linux, on peut facilement l'installer avec Homebrew ou Docker. Le plus pratique: Kali linux qui propose OWASP ZAP de base et le maintient à jour , Java JRE, JDK, les développeurs JAVA appréçient ;-)

En mode développeur (pas besoin si on ne se sert que pour auditer), on peut importer un projet Zap dans Eclipse en 1 url! Top! Voir ici https://github.com/zaproxy/zap-api-java 

import java.nio.charset.StandardCharsets;
import org.zaproxy.clientapi.core.ApiResponse;
import org.zaproxy.clientapi.core.ApiResponseElement;
import org.zaproxy.clientapi.core.ClientApi;

Un IDE comme Eclipse 

Un accès à internet: généralement les clients offrent la possibilité aux auditeurs de se connecter à leur Wi-fi Guest.

 

 

Une question? Posez-la ici

pentesting, audits et tests d'intrusions

 

 

Le plus simple donc, à partir d’un PC sous Linux Kali. Dans le terminal taper owasp-zap ou autrement par l’interface graphique:

 

Lancement d'OWASP ZAP

 

zap owasp scan vulerabilites red team lghm lancement

 

On sauvegarde la session avec le nom du site scanné : « consultingit » dans le répertoire « consultingit » . Le logiciel crée 5 fichiers d’audits dans ce répertoire.

 

 zap owasp scan vulerabilites red team lghm persistence session

 

Puis "start"

Dans un premier temps, nous ne testerons que la fonction "Attaque" dans la grande fenêtre de gauche. Dans ce mode, OWASP ZAP se rend de manière agressive sur le site Web que nous avons désigné et commence à rechercher des vulnérabilités.

 

zap owasp scan vulerabilites red team lghm persistence mises a jour

 

Selectionner le mode Attaque "Attack mode" d’OWASP ZAP

 

Nous avons le choix entre safe mode (si le site est en production, pour ne pas le perturber), protected mode, standard mode, ou attack mode (attention, ce mode est très violent et risque de crasher le site en production) . Comme nous avons des webmasters très expériménté dans l'équipe, Javascript, AngularJS, etc... N'est-ce pas Biotienne, nous pouvons nous permettre de tester le site en attack mode, ils sauront comment réparer en cas de crash.

 

 zap owasp scan vulerabilites red team lghm persistence attack mode

 

 

 

 

OWASP ZAP avec le mode "attaque" nous rédige un rapport

Les rapports sont très importants pour les réunions de restitution. Le consultant s’appuie dessus pour transmettre l’information.

Nous pouvons générer des rapports: XML, Markdown, Json

Report/Generate HTML report

On va l’appeler par exemple consultingit.html

Le rapport généré est responsive design, consultable sur tablette, smartphone

extrait:

 

 

 

 

 

  

Une question? Posez-la ici

pentesting, audits et tests d'intrusions

OWASP ZAP mode "attaque" en test des applications web, analyse du rapports

Voici un extrait de l'analyse que nous allons présenter en réunion de restitution, il y en a pour chaque audit environ dix fois plus ;-)

  

ZAP Scanning Report

 

Summary of Alerts

Risk LevelNumber of Alerts
High 2
Medium 2
Low 5
Informational 0

 


Le serveur web Apache est en vulnérabilité critique. Il est en version inférieure à la 2.2.15 qui l’expose à des risques.

En effet, comme le mentionne Apache sur son site, “Apache httpd 2.2 is End-of-Life since December 2017 and should not be used”.

http://httpd.apache.org/security/vulnerabilities_22.html

https://archive.apache.org/dist/httpd/CHANGES_2.2.15

Après quelques recherches, le serveur web (le serveur des pages internet, pas les pages en elles-même) est vulnérable entre autre à ces attaques :

Uninitialized memory reflection in mod_auth_digest (CVE-2017-9788)

ap_get_basic_auth_pw() Authentication Bypass (CVE-2017-3167)

mod_ssl Null Pointer Dereference (CVE-2017-3169)

ap_find_token() Buffer Overread (CVE-2017-7668)

mod_mime Buffer Overread (CVE-2017-7679)

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0434

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0425

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0408

http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2009-3555

http://secunia.com/advisories/38776

http://www.securityfocus.com/bid/21865

http://cwe.mitre.org/data/definitions/200

La function “Customized reports” de Nessus permet de créer des reports en y insérant le logo (exemple logo de LGHM)

Export : on peut exporter le rapport en « .nessus » ou en « .html »

Pratique pour présenter les résultats au client lors de la réunion de restitution.

Avec cet outil, le pentester est capable de proposer des solutions rapide comme par exemple:

-mettre à jour Apache en version 2.2.15 ou supérieure maintenue

-désactiver les modules qui ne sont pas utilisés (mod_status)

-mettre à jour la version d’OpenSSL 0.9.8 vers une version maintenue

-mettre à jour PHP version 5.3.7 vers une version supérieure maintenue

-basculer la valeur « expose_php » à « off » dans le php.ini

-mettre un mot de passe au composant PHPMyadmin

-configurer le serveur web pour restreindre l’accès au repertoire « svn »

-enlever printenv du répertoire /cgi-bin

Etc…

Là il est question de vulnérabilités sur l’infrastructure, pas sur les pages webs en elles-même. Ces vulnérabilités seront corrigées par les développeurs PHP qui les considèreront comme des bugs dans leur outil de versionning. 

En affinant la recherche, nous visualisons les alertes .Après examen des vulnérabilités, nous constatons par exemple que le site web fonctionne avec le coposant PHP 5.3 .  Alors qu’aujourd’hui une majorité de sites internet fonctionnent avec PHP 7. Il s’agit du « moteur » qui permet aux pages web d’être affichées.

 

En cadeau, voici les 10 meilleurs outils de tests d'intrusion de Ben Schultz:

https://www.comparitech.com/net-admin/best-penetration-testing-tools/

 

Voilà, j'espère que ça vous a plu. Vos commentaires/remarques sont les bienvenus