# <center> Rapport Pentest
<center>Travail effectué par Imaan SHAHEEN et Redouane NASR
## <center> ++Sommaire++ :
<center>I. Introduction<br>
II. Objectif du pentest<br>
III. Déroulement du pentest <br>
IV. Résumé des vulnérabilités<br>
V. Liste des menaces et leurs correctives conseillers <br>
VI. Niveau de sécurité général<br>
VII. Résumé des risques<br>
VIII. Conclusion
---
## ++I. Introduction++
Un test d’intrusion est une tentative autorisée de pénétrer un système afin d’identifier les faiblesses de ce dernier. L’exploitation de vulnérabilités présentes permettent d’identifier les risques encourus par le système. La ou les personnes effectuant ce test sont appelées pentesters et ont recours à plusieurs méthodes pour avoir accès à l’infrastructure cible, souvent en s’introduisant d’abord dans une partie du système possédant de faibles droits. Les pentesters gagnent ensuite en niveau de privilèges et peuvent atteindre des zones plus sensibles sur système.
Les menaces et vulnérabilités des réseaux, des ordinateurs, des systèmes et logiciels évoluant sans cesse, ce test d’intrusion n’est valide qu’à la date indiquée sur la couverture. Les résultats présentés sont corrects jusqu’au jour où a été achevé l’évaluation.
---
### ++II. Objectif du pentest++
Un test d’intrusion a été effectué sur la VM DC4 en respectant le contrat signé entre le prestataire de ce test et le client en date du 06 juillet 2022. Ce test a permis d’évaluer le niveau de sécurité mis en place sur cette VM. Nous présentons les vulnérabilités trouvées ainsi que les menaces et risques présents.
---
### ++III. Déroulement du pentest++
La prestation s’est déroulée à Paris et a posté sur la VM DC4 dont l’adresse IP est 192.168.1.167. Nous avons utilisé des outils permettant de scanner la VM (nmap, hydra, burp suite) dont les résultats sont présentés dans la section suivante. Nous présentons également les préconisations techniques correspondant aux failles présentes.
---
### ++IV. Résumé des vulnérabilités++

---
### ++V. Listes des menaces et leurs correctives conseillers++
#### Menace n°1 : Authentification cassée | Utilisation du protocole http
##### Risque de vulnérabilité :
Lors de la connexion à l'aide d'un site Web HTTP, le pirate peut voir le nom d'utilisateur et le mot de passe. De plus, lorsque vous utilisez un site Web HTTP, tout ce que le serveur renvoie est également lisible. Un pirate peut alors facilement transformer le site Web. Si un site Web utilise HTTP au lieu de HTTPS, toute information transmise sur le réseau peut être vue et utilisée contre la personne en question. Lorsque nous nous connectons à un compte sur un site Web, nous pouvons voir que le pirate voit le mot de passe lorsqu'il utilise HTTP alors qu'il ne peut même pas voir que nous communiquons le mot de passe lorsque nous utilisons HTTPS car tout est crypté. Le protocole http n'est pas du tout sécurisé contre les injections SQL, XSS, les mauvaises configurations de sécurité, l'authentification défectueuse, la gestion de session ou contre les références directes d'objets non sécurisés
##### Recommandation de corrections :
HTTP, HyperText Transfer Protocol, est utilisé pour communiquer des informations entre un client et un serveur. Il est transmis via la couche application sur le modèle OSI. Le modèle OSI est une norme qui peut être utilisée pour que les ordinateurs communiquent entre eux. Il est utilisé pour caractériser les protocoles et mieux comprendre leur interaction. Lors de l'utilisation de HTTPS, HyperText Transfer Protocol Secure, les données transmises dans le paquet sont cryptées. En plus de HTTP, il existe un protocole qui sécurise les données transmises : TLS, Transport Layer Secure.
#### Menace n°2 : Authentification cassée | Login / mot de passe non sécuriser
##### Risque de vulnérabilité :
L'un des points faibles de tout système de sécurité des données, quelle que soit sa puissance, est le point d'accès légitime et protégé par mot de passe pour les utilisateurs autorisés. Si un pirate peut obtenir votre nom d'utilisateur et votre mot de passe, il peut alors se connecter à votre système et accéder à toutes les informations et commandes du système qui seraient normalement à votre disposition. Cela pourrait entraîner un préjudice financier considérable pour votre entreprise ou votre organisation. Malgré cela, de nombreuses personnes ont tendance à commettre des erreurs très simples qui rendent leurs mots de passe plus vulnérables aux attaques. De plus, le login
« admin » pour un « admin » est un peu trop courant comme login, il suffit alors de trouver le mot de passe.
##### Recommandation de corrections :
Selon l'ANSSI, vous devez choisir des mots de passe d'au moins 12 caractères de types différents (majuscules, minuscules, chiffres, caractères spéciaux).
Deux méthodes pour choisir vos mots de passe :
• La méthode phonétique : «J'ai acheté huit CD cent euros cet après-midi» deviendra ght8CD%E7am;
• La méthode de la première lettre : la citation « un vôtre vaut mieux que deux vous aurez » donnera 1tvmQ2tl’A.
Le mot de passe de Charles semblait un peu plus sûr : 
#### Menace n°3 : Authentification cassée | BruteForce Attack
##### Risque de vulnérabilité :
Une attaque par force brute est l'une des méthodes de piratage les plus simples et les moins sophistiquées. La théorie derrière une telle attaque est que si vous faites un nombre infini de tentatives pour deviner un mot de passe, vous aurez forcément raison à la fin. L'attaquant vise à accéder de force à un compte d'utilisateur en essayant de deviner le nom d'utilisateur / e-mail et le mot de passe. Habituellement, le motif est d'utiliser le compte piraté pour exécuter une attaque à grande échelle, voler des données sensibles, arrêter le système ou une combinaison des trois. Il ne faut pas beaucoup d'imagination ou de connaissances pour créer un code qui effectue ce type d'attaque, et il existe même des outils automatisés largement disponibles qui soumettent plusieurs milliers de tentatives de mot de passe par seconde comme l'outil Hydra que nous avons utilisé.
##### Recommandation de corrections :
Il existe de nombreuses façons d'arrêter ou de prévenir les attaques par force brute. La plus évidente est une politique de mots de passe forts. Chaque application Web ou serveur public doit imposer l'utilisation de mots de passe forts, comme nous l'avons vu précédemment. Il existe d'autres moyens d'empêcher une attaque par force brute, tels que :
• Limiter les tentatives de connexion infructueuses
• Rendre l'utilisateur root inaccessible via SSH en modifiant le fichier sshd_config
• N'utilisez pas de port par défaut, modifiez la ligne de port dans votre fichier sshd_configfile
• Utilisez le Captcha
• Limiter les connexions à une adresse IP spécifique ou à une plage d'adresses IP
• Authentification à deux facteurs
• URL de connexion uniques
• Surveiller les journaux du serveur
#### Menace n°4 : Mauvaise configuration de la sécurité | Affichage des versions
##### Risque de vulnérabilité :
Lors de l'ouverture d'un site Web, certains programmes de serveur transfèrent des informations supplémentaires, telles que la version du serveur, le système d'exploitation ou les plug-ins utilisés. Les attaquants pourraient utiliser ces informations pour exploiter de manière ciblée les points faibles des logiciels utilisés. Cela rend plus difficile pour les attaquants de dissimuler ces informations sensibles.
##### Recommandation de corrections :
Il vous suffit de masquer la version en configurant correctement votre serveur pour qu'il ne rende pas la version publique.
#### Menace n°5 : Mauvaise configuration de la sécurité | Vuln OpenSSH 7.4 ou Nginx
##### Risque de vulnérabilité :
La divulgation d'informations est importante et la modification de certains fichiers (CVE-2018-15919) ou d'informations système est possible, mais l'attaquant n'a aucun contrôle sur ce qui peut être modifié, ni sur la portée de quoi l'attaquant peut affecter est limité (CVE-2017-15906)
##### Recommandation de corrections :
Pour ce type de faille, dans un premier temps il serait bon de ne pas afficher publiquement la version des serveurs puis de mettre à jour régulièrement les logiciels et divers outils nécessaire. Par exemple pour masquer la version de Nginx, il suffit d'ajouter la ligne suivante dans la configuration : "server_tokens off;"
#### Menace n°6 : Mauvaise configuration de la sécurité | Vuln Kernel 4.9.0
##### Risque de vulnérabilité :
Il existe de nombreux CVE liés au noyau Linux 4.9.0, nous prendrons le plus critique. CVE-2019-15292 où il y a divulgation complète des informations entraînant la divulgation de tous les fichiers du système. Il y a aussi un compromis total de l'intégrité du système. Il y a une perte totale de protection du système, ce qui a pour conséquence de compromettre l'ensemble du système et enfin il peut y avoir un arrêt total de la ressource affectée. L'attaquant peut rendre la ressource complètement indisponible.
##### Recommandation de corrections :
Mettez régulièrement à jour le système d'exploitation et ne commencez pas à travailler avec une ancienne version d'un système d'exploitation.
#### Menace n°7 : Contrôle d'accès cassé | Vuln Droits sur les dossiers/fichiers
##### Risque de vulnérabilité :
La plupart des utilisateurs s'accordent des droits complets de lecture, d'écriture et d'exécution pour leur répertoire personnel et aucun droit pour le groupe ou d'autres personnes, mais certaines personnes, pour diverses raisons, peuvent avoir une configuration légèrement différente. . Normalement, pour une meilleure sécurité, vous ne devriez pas donner au groupe ou à d'autres un accès en écriture à votre répertoire personnel, mais l'exécution sans lecture peut parfois être utile. Cela permet aux gens d'accéder à votre répertoire personnel mais ne leur permet pas de voir ce qu'il contient. Il existe également des fichiers contenant des informations sur les mots de passe des utilisateurs et leur nom. Même le fait de n'avoir que des droits de lecture sur celui-ci peut être très utile pour qu'un attaquant accède au compte root ou à un utilisateur disposant de droits root ou autres.
##### Recommandation de corrections :
Le contrôle des autorisations sous Linux est simple et vous permet d'avoir un bon contrôle du système. Cependant, cette simplicité ne couvre pas toujours tous les besoins. Chaque fichier appartient à un utilisateur et à un groupe uniques, ce qui peut être problématique et restrictif. Pour permettre une gestion plus précise des droits d'accès, il existe des ACL (Access Control List) qui accordent des privilèges à plusieurs utilisateurs ou plusieurs groupes pour un même fichier. Cependant, il est essentiel que les fichiers critiques soient accessibles, en lecture, en écriture ou en exécution, à ceux qui en ont vraiment besoin.
#### Menace n°8 : Exposition des données sensibles | Transmission des informations importantes en clair
##### Risque de vulnérabilité :
Pouvoir accéder au réseau, au système, à certaines applications ou à d'autres vulnérabilités qui permettraient à l'attaquant de pénétrer encore plus.
##### Recommandation de corrections :
Il existe différentes solutions pour transmettre des informations importantes telles que les mots de passe :
• Communiquer les mots de passe verbalement, directement à la personne
• Communiquer les mots de passe par un canal autre que le réseau Internet de l'entreprise comme par SMS ou messagerie instantanée sécurisée
• Communiquer les mots de passe par e-mail crypté
• Transférer les mots de passe via un coffre-fort tel que KeePass
#### Menace n°9 : Contrôle d'accès cassé | Droits root de certains utilisateurs pour certaines commandes
##### Risque de vulnérabilité :
La commande SUDO (Substitute User and Do) permet aux utilisateurs de déléguer des ressources de privilèges : les utilisateurs peuvent exécuter des commandes spécifiques sous d'autres utilisateurs (également root) en utilisant leurs propres mots de passe au lieu de ceux de l'utilisateur. ou sans mot de passe selon les paramètres du fichier /etc/sudoers. Ils peuvent ainsi, grâce à certaines failles de certains outils, augmenter les privilèges et ainsi devenir root.
##### Recommandation de corrections :
L'élévation des privilèges par des exécutables SUID mal configurés est négligeable. Par conséquent, les administrateurs doivent évaluer tous les fichiers binaires SUID et déterminer s'ils doivent fonctionner avec des autorisations utilisateur élevées. Une attention particulière doit être accordée aux applications capables d'exécuter du code ou d'écrire des données arbitraires sur le système.
#### Menace n°10 : Injection | Injection de commandes du système d'exploitation
##### Risque de vulnérabilité :
L'injection de commandes est une attaque visant à exécuter des commandes arbitraires sur le système d'exploitation hôte via une application vulnérable. Les attaques par injection de commande sont possibles lorsqu'une application transmet des données dangereuses fournies par l'utilisateur à un shell système. Dans cette attaque, les commandes du système d'exploitation fournies par l'attaquant sont généralement exécutées avec les privilèges de l'application vulnérable.
Les attaques par injection de commandes sont possibles en grande partie en raison d'une validation insuffisante des entrées. Cette attaque diffère de l'injection de code, en ce sens que l'injection de code permet à l'attaquant d'ajouter son propre code qui est ensuite exécuté par l'application. Dans l'injection de commande, l'attaquant étend la fonctionnalité par défaut de l'application, qui exécute les commandes système, sans avoir besoin d'injecter du code.
##### Recommandation de corrections :
Le moyen de loin le plus efficace d'empêcher les vulnérabilités d'injection de commandes du système d'exploitation est de ne jamais appeler les commandes du système d'exploitation à partir du code de la couche application. S'il est considéré comme inévitable d'invoquer des commandes du système d'exploitation avec une entrée fournie par l'utilisateur, une validation d'entrée rigoureuse doit être effectuée. Voici quelques exemples de validation efficace :
• Validation par rapport à une liste blanche de valeurs autorisées
• Valider que l'entrée est un nombre
• Vérifier que l'entrée ne contient que des caractères alphanumériques, aucune autre syntaxe ou aucun espace.
---
### ++VI. Niveau de sécurité général++
★ ☆ ☆ ☆ ☆
INSATISFAISANT
---
### ++VII. Résumé des risques++

---
### ++VIII. Conclusion++
Suite à l'audit, de nombreux risques ont été relevés. Ceux-ci ont un impact fort sur la VM, sur les données personnelles des clients entre-autre. Des vulnérabilités qui ne sont pas corrigées continuent d’introduire des risques et par conséquent, des contrôles doivent être appliqués pour atténuer les risques associés aux vulnérabilités trouvées en attendant qu’un correctif soit appliqué. Le niveau de sécurité global est insatisfaisant. Beaucoup de vulnérabilités sont facilement et rapidement corrigeables, ce qui permettrait de relever le niveau de sécurité, mais beaucoup d'autres avec un impact moyen nécessitent plus d'investissement. Nous recommandons que le niveau de sécurité du SI soit réévalué au moins une fois par an et dès lors que des modifications sont apportées à l’infrastructure.