Dans le chapitre précédent, nous avons traité toute la partie cadrage des tests. Il faut maintenant se préparer pour être directement opérationnel le jour de l’audit.
Comme l’a si bien dit Abraham Lincoln :
“Que l'on me donne six heures pour couper un arbre, j'en passerai quatre à préparer ma hache."
Découvrez les outils de test d’intrusion
Les tests d’intrusion ne sont pas nouveaux, et globalement l’outillage offensif évolue plus vite que l’outillage défensif. Depuis plusieurs années, il existe des systèmes d’exploitation conçus spécialement pour l’attaque. Ces systèmes d'exploitation tout-en-un embarquent la plupart des outils nécessaires pour réaliser des tests d’intrusion :
Kali, une distribution Linux basée sur Debian (c’est la distribution la plus utilisée d’après le classement DistroWatch) ;
Parrot OS, basée sur Debian également mais un peu moins populaire ;
Commando VM, basée sur Windows mais qui nécessite une installation pas toujours simple ;
Exegol, basée sur Kali mais qui tourne dans Docker. Mention spéciale pour cet environnement qui a été initialement créé par un Français, cocorico !
Vous pourriez installer unitairement les différents outils dont vous allez avoir besoin sur votre environnement du quotidien, mais vous perdriez l'avantage du caractère “jetable” de votre environnement de travail. L’idée, c'est d’avoir un environnement prêt à l’emploi, dédié à un client, pour éviter de vous balader avec les données d’un client A dans les logs de vos outils par exemple, en allant chez un client B.
Installez Kali, l’outil de référence
Je vous invite donc à télécharger la machine virtuelle Kali de votre choix et à l'installer sur votre hyperviseur. (Le mot de passe par défaut quand on télécharge la VM toute prête est kali / kali).
La documentation officielle d’installation (en anglais) est très bien faite, nous vous renvoyons donc vers celle-ci pour vous guider.
Si vous rencontrez des problèmes avec le clavier qui est potentiellement en qwerty la première fois, vous pouvez changer la configuration :
soit temporairement à chaque session avec la commande :
setxkbmap -layout fr
soit définitivement, avec la commande :
sudo dpkg-reconfigure keyboard-configuration
(Ensuite, sélectionnez les paramètres adéquats à votre matériel ;Generic 104 key
si vous ne trouvez pas quelque chose d’adapté).
Familiarisez-vous avec l’environnement Kali
Maintenant que votre environnement est installé et que vous vous êtes connecté, vous devriez avoir quelque chose qui ressemble à cette interface :
![Capture d'écran de l'interface par défaut de Kali version 2022.2](https://user.oc-static.com/upload/2022/07/20/1658304313516_image29.png)
Prendre en main Kali, c’est un peu comme prendre en main un nouveau système d’exploitation (quand on passe de Windows à Mac OS par exemple), cela demande un petit temps d'adaptation.
Comme pour la plupart des systèmes Linux, nous allons beaucoup utiliser le terminal et des lignes de commande. Le raccourci vers le terminal se trouve dans la barre d’outils :
![L'icône du terminal de Kali, depuis lequel nous allons lancer la plupart des commandes, se trouve dans la barre d'outils.](https://user.oc-static.com/upload/2022/07/20/16583043550049_image9.png)
Kali “range” les applications installées par défaut en haut à gauche, un peu comme le “menu Démarrer” sous Windows :
![Un menu déroulant des applications installées par défaut dans Kali est accessible en haut à gauche de l'écran.](https://user.oc-static.com/upload/2022/07/20/16583043926276_image16.png)
Prenez conscience de la limite des outils
Ce n’est pas parce que vous venez d’installer une distribution conçue pour la sécurité offensive que vous êtes maintenant un hacker accompli. Pour cela malheureusement, pas de recette magique mais tout de même quelques conseils que nous aurons l’occasion de mettre en pratique :
Avant de lancer des outils tous azimuts contre la cible, regardez depuis le navigateur ou testez manuellement via le terminal certaines fonctionnalités, pour voir le comportement de l’application.
Familiarisez-vous avec vos outils, appropriez-les-vous. Il existe bien souvent plusieurs outils qui répondent au même besoin. N’hésitez pas au début à faire deux fois le même travail avec deux outils différents. Une fois que vous connaissez le fonctionnement “normal” d’un outil, un comportement anormal vous sautera aux yeux
Comprenez pourquoi votre outil favori vous a fait défaut. Cela permettra de mieux comprendre encore l’outil, et de découvrir potentiellement un comportement anormal de l’application auditée, qui pourrait se révéler être un mécanisme de défense ou une vulnérabilité. Dans tous les cas, comprendre pourquoi vous sera bénéfique.
Lisez la documentation ! Parfois, certains comportements anormaux sont :
des partis pris cités dans la documentation ;
des “issues” sur GitHub qui ont été marquées en “won’t fix” ou en bug. Les “issues” sont des problèmes ou des doléances remontées par les utilisateurs. Le mainteneur du repository décide ensuite de le corriger ou non. C’est son outil !
Pour les plus déterminés d’entre vous, faites vos propres outils. Les outils existants ne sont que des accélérateurs, on l’a déjà dit. Développer les outils vous permettra de comprendre les concepts fondamentaux qu’ils automatisent.
Retrouvons maintenant nos pentesters pour voir comment ils se positionnent sur l’usage des outils, et comment ils s’adaptent en cas de problème :
Documentez tout ce que vous faites
Utiliser des outils pour documenter ce que vous faites permet de :
Garder une trace de ce qui a été testé, de ce qui a fonctionné ou non.
Savoir ce que vous avez fait et à quelle heure. En cas d’incident avec le client, vous pourrez lui prouver que ce n’est pas vous (si bien sûr c’est le cas).
Il vous faudra être très rigoureux là-dessus. Pour cela vous avez besoin d'un outil pour :
prendre des notes.
faire des captures d’écran (voire des vidéos pour les cinématiques parfois complexes).
Prenez des notes
Sélectionnez un outil avec lequel vous êtes à l’aise : traitement de texte comme Word ou en diaporama comme PowerPoint ; fichiers Markdown (le formatage des fichiers de ReadMe sur GitHub, par exemple), ou encore un outil comme OneNote, par exemple. À vous de choisir le vôtre en fonction des contraintes qui vous sont imposées par l’entreprise ou par le client.
Pensez à bien noter les heures des différentes actions que vous faites, surtout celles qui peuvent avoir un impact sur le système. En cas de problème, vous pourrez dire à votre client si c’était de votre fait ou non. Cela lui évitera de devoir déclencher une gestion d’incident de sécurité, par exemple.
Faites des captures d’écran
Prenez beaucoup de captures, même si vous pensez que c’est peu pertinent. J’ai vu beaucoup trop de pentesters se dire au moment d’écrire le rapport “Mince, je n’ai pas cette capture pour apporter la preuve de la vulnérabilité”. Et je vous garantis que c’est beaucoup plus difficile à défendre devant une personne chez le client qui soutient mordicus qu’il n’y a pas de vulnérabilité, si vous n’en avez pas la preuve.
En résumé
L’environnement de travail Kali Linux nous servira par la suite pour réaliser les actions techniques de ce cours, et plus globalement dans votre vie de pentester.
Les outils ne sont que des accélérateurs, et ils peuvent vous faire défaut. Dans le cadre d’un pentest, gardez ceci en tête et soyez vigilant quant aux comportements auxquels vous ne vous attendez pas.
La prise de notes est primordiale en pentest, car vous allez tester beaucoup de choses : il sera très difficile de se souvenir de tout, et impossible de le prouver si vous n’avez pris aucune capture d’écran. Ne faites pas cette erreur !
Dans la partie suivante, nous allons enclencher la première phase de notre test d’intrusion : la phase de découverte et de reconnaissance. Prêt ? C’est parti !