Le mode "test des applications web" de Nessus scanner de vunérabilités pour le pentesting et les audits tests d'intrusions
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 ZAP Owasp ) il est interessant d'utiliser aussi le logiciel Nessus pour pentester (effectuer un test d'intrusion) à chaque étape/jalon du projet des applications .Net, PHP, NodeJS avec ses fameuses injections Nosql , ou chacune des release de la roadmap, il est surtout très intéréssant d'utiliser Nessus pour son excellent mode "test des applications web" .
Nessus est un des scanners de vulnérabilités le plus complet du marché. Nessus Professional 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
Installation du mode "test des applications web" de Nessus
En allant sur le site web de Nessus nous pouvons télécharger toutes les versions disponibles: Windows, Linux (Suze, Debian, Ubuntu, Kali...) MacOS , avec la clé GPG. Comme le client nous a mis à disposition des stations de travail Windows, nous installons cette version Windows. (Nous faisons beaucoup de tests de vulnérabilités sur des portails web intranets en interne)
WinPcap est automatiquement installé.
Enfin, aprè l'installation, notre navitageur se lance automatique sur https://localhost:8834/WelcomeToNessus-Install/welcome
Pour utiliser ce scanner, un compte doit être créé. Ce compte peut exécuter des commandes sur des cibles distantes et doit être traité comme un utilisateur root.
Username: rootuser
Password: Passw0rdf0rt
on choisit le mode "professional or manager". Une phase de téléchargement des plugins commence. Si l'on est sur un réseau lent, ou en zone blanche dans le fin fond du Larzac, le téléchargement peut durer jusqu'à 2h.
Une fois téléchargés, les plugins sont compilés.
L'installation terminée, l'interface nous propose un bouton nouveau scan sur lequel nous allons appuyer
Une question? Posez-la ici
pentesting, audits et tests d'intrusions
Choisissons le mode "test des applications web" de Nessus (template)
Le panneau settings apparait:
On sauvegarde et on clique sur "launch"!
Le scan dure un certain temps en fonction du nombre de pages web du site...
L'écran suivant montre que certaines vulnérabilités ont été detectées:
Nessus avec le mode "test des applications web" nous rédige un rapport
Si l'on choisit HTML, voici un exemple de rapport qui nous est proposé:
>
Report generated by Nessus™
consultingit.fr
Tue, 30 Oct 2018 10:34:13 Greenwich Standard Time
TABLE OF CONTENTS
Hosts Executive Summary
3
|
6
|
5
|
1
|
3
|
Critical
|
High
|
Medium
|
Low
|
Info
|
Une question? Posez-la ici
pentesting, audits et tests d'intrusions
Oh lala mais le site consultingit.fr est vulnérable!
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.
Nessus "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 ;-)
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.
Voilà, j'espère que ça vous a plu. Vos commentaires/remarques sont les bienvenus