CaptainCalm
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.

      Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

      Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

      Explore these features while you wait
      Complete general settings
      Bookmark and like published notes
      Write a few more notes
      Complete general settings
      Write a few more notes
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.

    Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Explore these features while you wait
    Complete general settings
    Bookmark and like published notes
    Write a few more notes
    Complete general settings
    Write a few more notes
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # <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++ ![](https://i.imgur.com/SQjX9XI.png) --- ### ++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 : ![](https://i.imgur.com/LtS1aPC.png) #### 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++ ![](https://i.imgur.com/177fQqp.png) --- ### ++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.

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password
    or
    Sign in via Facebook Sign in via X(Twitter) Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    By signing in, you agree to our terms of service.

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully