Partie 2
Partie 2
17 heures
CHAPITRE 1
Collecter les informations de manière
passive
5 heures
CHAPITRE 1
Collecter les informations de manière
passive
1. Moteurs de recherche
2. Réseaux sociaux pour la reconnaissance
3. Outils d’automatisation OSINT
4. Frameworks de collecte d’informations
01 – Collecter les informations de manière
passive
Moteurs de recherche
La reconnaissance passive
• La reconnaissance passive (collecte passive d'informations) ou encore OSINT (Open Source Intelligence) est un processus de collecte d'informations disponibles
publiquement concernant une cible, sans aucune interaction directe avec elle.
• Nous pouvons définir la collecte passive d'informations selon deux versions différentes :
✓ La définition la plus stricte, stipule que nous n’interagissons jamais directement avec la cible. Par exemple, en utilisant des tierces parties pour recueillir les
informations. Cette approche peut permettre de cacher nos réelles actions et intentions à la cible. Cependant elle peut être limitée en terme de résultats
collectés.
✓ La définition la plus flexible, stipule qu’on peut interagir avec la cible, dans la peau d’un utilisateur normal. Par exemple, pour un site internet comme cible, on
peut effectuer une action simple sur ledit site sans pour autant tester les vulnérabilités pendant cette action.
• Le but de la reconnaissance passive est de recueillir des informations qui clarifient et/ou élargissent la surface d'attaque sur une cible donnée.
• Il existe beaucoup de ressources et d'outils disponibles pour la collecte d'informations :
✓ Les moteurs de recherche
✓ Les réseaux sociaux
✓ Les sites spécialisés dans la collecte d’informations publiques sur les organisations
PARTIE 2
• Les résultats des moteurs de recherche peuvent varier de plusieurs manières, en fonction de la date à laquelle le moteur a exploré le contenu pour la dernière fois et de
l'algorithme utilisé par le moteur pour déterminer les pages pertinentes.
Google
• Le terme « Google Hacking » a été popularisé par Johnny Long en 2001. A travers plusieurs talks142 et un livre extrêmement populaire (Google Hacking for Penetration
Testers143), il a expliqué comment la recherche des moteurs comme Google pourraient être utilisés pour découvrir des informations critiques, des vulnérabilités et des
sites Internet.
• Au cœur de cette technique se trouvent des chaînes de recherches intelligentes et des opérateurs qui permettent raffinement des requêtes de recherche, dont la
plupart fonctionnent avec une variété de moteurs de recherche. Le processus est itératif, en commençant par une recherche large, qui est affinée avec des opérateurs
pour filtrer les éléments non pertinents ou des résultats inintéressants.
• Google prend en charge plusieurs opérateurs avancés qui aident à modifier la recherche :
✓ [cache :] Affiche les pages Web stockées dans le cache de Google
✓ [lien :] Répertorie les pages Web qui ont des liens vers la page Web spécifiée
✓ [lié :] Répertorie les pages Web similaires à une page Web spécifiée
✓ [info :] Présente des informations que Google possède sur une page Web particulière
✓ [site :] Limite les résultats aux sites Web du domaine donné
✓ [allintitile :] Limite les résultats aux sites Web contenant tous les mots-clés de recherche dans le titre
PARTIE 2
✓ [intitle:] Limite les résultats aux documents contenant le mot-clé de recherche dans le titre
✓ [allinurl :] Limite les résultats à ceux qui contiennent tous les mots-clés de recherche dans l'URL
✓ [inurl :] Limite les résultats aux documents contenant le mot-clé de recherche dans l'URL
Google
• Les bases de données de hacking Google : La Google Hacking Database (GHDB) contient une multitude de recherches créatives qui démontrent la puissance de la
recherche créative avec des opérateurs combinés :
✓ Google Hacking Database (GHDB): [Link]
✓ Google Dorks: [Link]
PARTIE 2
Google
• Collecte d'informations à l'aide de la recherche avancée de Google :
✓ Utilise l'option de recherche avancée de Google pour trouver des sites susceptibles de renvoyer au site Web de l'entreprise cible
✓ Cela peut extraire des informations telles que des partenaires, des fournisseurs, des clients et d'autres affiliations pour le site Web cible
✓ Avec l'option de recherche avancée de Google, vous pouvez rechercher sur le Web de manière plus précise.
PARTIE 2
• Dans ce cas, Shodan répertorie les adresses IP, les services et les
informations sur la bannière. Tout cela est recueilli passivement
sans interagir avec le site Web du client.
PARTIE 2
Cette liste de sous-domaines et de technologies s'avérera utile lorsque nous passerons à la collecte active des informations et l'exploitation.
1. Moteurs de recherche
2. Réseaux sociaux pour la reconnaissance
3. Outils d’automatisation OSINT
4. Frameworks de collecte d’informations
01 – Collecter les informations de manière
passive
Réseaux sociaux pour la reconnaissance
Exemple : LinkedIn
• LinkedIn est un excellent réseau social professionnel. Plusieurs de ses utilisateurs sont trop ouverts sur leur expérience, révélant toutes les technologies et processus
utilisés en interne.
• En recherchant les employés de l'entreprise sur le site, nous pouvons remplir une liste de cibles pour le phishing, trouver les technologies utilisées dans l'entreprise et
énumérer les rôles que nous pourrions occuper dans les attaques de phishing.
• LinkedIn est une mine d'or OSINT, en particulier pour les petites entreprises avec une empreinte en ligne plus petite.
Informations sur l'emploi :
• Étant donné que les gens utilisent souvent LinkedIn comme site d'emploi, les pages de l'entreprise répertorient les informations pertinentes pour les demandeurs
d'emploi, tel que le nombre d'employés connu et s'il augmente ou diminue.
• L'ancienneté moyenne d'un employé peut nous aider à interagir avec les cibles en cas d'hameçonnage et de phishing.
• Nous pouvons estimer la probabilité qu'un employé connaisse un employé d'un autre site, en particulier dans les grandes entreprises de plus de 300 000 employés.
• De même, les données de LinkedIn sur la répartition des employés, la croissance et les nouvelles embauches peuvent nous donner un aperçu de la probabilité que nous
rencontrions un nouvel employé si, par exemple, nous appelions les bureaux.
PARTIE 2
Exemple : LinkedIn
Informations générales sur la société
• Jetons un coup d'œil à la page commerciale LinkedIn de Walmart.
• En haut de la page, nous pouvons voir le nombre d'abonnés de Walmart,
le nombre de connexions de ce compte qui travaillent chez Walmart,
un symbole boursier et un aperçu de la compagnie.
• La section À propos de nous, fournit également des informations
générales sur Walmart.
• Plus bas, la page répertorie le site Web et les adresses de tous les
principaux sites Walmart, des informations sur la date et le lieu de création
de l'entreprise, l'emplacement du siège social, la taille de l'entreprise et
ses spécialités.
PARTIE 2
Exemple : LinkedIn
Employés de la Société
• Une page distincte répertorie les utilisateurs de LinkedIn qui sont des employés de l'entreprise. Utilisez-le pour voir le rôle joué par chaque personne. Quelqu'un avec le
titre d'analyste d'intrusion, un rôle de cybersécurité suggère que l'entreprise surveille activement ses sites Web et ses réseaux pour détecter les comportements
malveillants. Nous pouvons évaluer la sécurité de l'entreprise via son nombre d'employés chargés de la sécurité de l'information.
• Un moyen simple d'y parvenir consiste à rechercher dans les profils des employés
les acronymes de certification. La certification de CISSP, GPEN, OSCP, CEH et Security+
sont de bons points de départ. Les bons titres de poste à rechercher incluent les
termes : sécurité de l'information, cybersécurité, intrusion et CISO.
• Ces profils d'employés nous renseignent également sur les technologies utilisées par
l'entreprise. En les recherchant, nous pouvons détecter la présence de solutions
de gestion des événements et des incidents de sécurité (SEIM), de protections contre
les logiciels malveillants, de filtrage des e-mails ou de VPN. De plus, ils nous aident à
créer une liste de diffusion pour davantage de profilage et de phishing.
PARTIE 2
Exemple : LinkedIn
Job Boards et sites carrières
• Les employés, les recruteurs et les fournisseurs de recrutement externalisés peuvent créer des liens vers des pages de carrière ou des sites d'emploi sur leurs réseaux
sociaux. Les pentesters peuvent récupérer ces informations et les transformer en armes.
• Selon la façon dont l'offre d'emploi est rédigée, vous pourriez trouver des informations clés. Par exemple, vous pouvez voir que le candidat doit avoir une expérience
Oracle E-Business Suite (EBS) version 12.2 Cela indique que l’entreprise utilise ou utilisera cette version d’Oracle.
• La façon dont cette annonce de carrière est rédigée pourrait amener un attaquant à croire
que l’entreprise continue également à utiliser une version antérieure, par exemple [Link],
dont les vulnérabilités remontent à 2006.
• Tout d'abord, nous pouvons rechercher des vulnérabilités et d'expositions communes (CVE)
liées à ce logiciel particulier, puis consulter des sites comme [Link]
pour trouver des codes d'exploitation.
• Alternativement, nous pourrions utiliser ces informations dans une compagne de phishing.
• Enfin, nous pourrions simplement tenter d'utiliser le brute force sur toutes les instances
publiques du logiciel en question, qui seraient les plus bruyantes et en dehors du champ
PARTIE 2
Exemple : Facebook
• Facebook peut être une mine d'orselon à qui vous demandez et ce que vous recherchez. C'est parce que les données sont abondantes mais peu vérifiées, bien que
parfois vérifiées. Beaucoup de gens ont tendance à sur-partager sur cette plateforme.
• Lorsque vous ciblez une entreprise, l'un des moyens les plus sournois d'amener un employé à vous parler est de se faire passer pour un client. Vous pouvez trouver une
myriade de vrais clients en consultant l'onglet Communauté de Facebook et en lisant les avis.
• l'onglet Communauté de Walmart affiche diverses publications sur la page par le grand public.
Ceux-ci doivent être pris comme un grain de sel et dans leur contexte.
Certains de ces messages sont des préoccupations légitimes,
mais d'autres sont des théories du complot, réclamations non fondées,
tentatives de propagation virale et rapports de pages fausses ou usurpant l'identité.
PARTIE 2
1. Moteurs de recherche
2. Réseaux sociaux pour la reconnaissance
3. Outils d’automatisation OSINT
4. Frameworks de collecte d’informations
01 – Collecter les informations de manière
passive
Outils d’automatisation OSINT
Kali linux
• La plupart des outils OSINT sont préinstallés sur dans la distribution Kali Linux. Avant de présenter quelques outils OSINT, nous introduisons Kali linux qui sera la
distribution utilisée dans les prochaines sections aussi.
• Kali Linux est une distribution Linux open source basée sur Debian destinée aux tests d’intrusion avancés et à l'audit de sécurité. Kali Linux contient plusieurs centaines
d'outils destinés à diverses tâches de sécurité de l'information, tels que les tests d'intrusion, la recherche en sécurité, l’analyse forensique et le reverse engineering. Kali
Linux est une solution multiplateforme, accessible et disponible gratuitement pour les professionnels de la sécurité de l'information et les amateurs.
• Kali Linux est spécifiquement conçu pour répondre aux exigences des tests d'intrusion professionnels et des audits de sécurité. Pour y parvenir, plusieurs modifications
fondamentales ont été implémentées dans Kali Linux qui reflètent ces besoins :
✓ Services réseau désactivés par défaut : Kali Linux contient des hooks systemd qui désactivent les services réseau par défaut. Ces hooks nous permettent
d'installer divers services sur Kali Linux, tout en garantissant que notre distribution reste sécurisée par défaut, quels que soient les packages installés. Des
services supplémentaires tels que Bluetooth sont également bloqués par défaut.
✓ Noyau Linux personnalisé : Kali Linux utilise un noyau en amont, corrigé pour l'injection sans fil.
✓ Un ensemble minimal et fiable de référentiels : compte tenu des buts et objectifs de Kali Linux, le maintien de l'intégrité du système dans son ensemble est
absolument essentiel. Avec cet objectif à l'esprit, l'ensemble des sources logicielles en amont utilisées par Kali est réduit au strict minimum. De nombreux
nouveaux utilisateurs de Kali sont tentés d'ajouter des référentiels supplémentaires à leur [Link], mais cela risque très sérieusement de casser votre
PARTIE 2
Kali linux
• Pour commencer, téléchargez la machine virtuelle (VM) Kali Linux 64 bits (amd64) officielle et le logiciel VMware que vous choisissez d'utiliser.
• VMware propose un essai gratuit pour VMware WorkStation Pro et VMware Fusion pour Mac. L'avantage d'utiliser l'une de ces versions commerciales est la possibilité
de prendre des instantanés auxquels vous pouvez revenir si vous avez besoin de réinitialiser votre machine virtuelle sur une table rase. VMware propose également une
version gratuite de son logiciel, VMware WorkStation Player. Cependant, la fonction d'instantané n'est pas disponible dans la version gratuite.
• Vous pouvez trouver la dernière image de la machine virtuelle Kali Linux ainsi que des instructions à jour pour vérifier l'archive téléchargée sur le site Web :
[Link]
• Pour utiliser la machine virtuelle Kali Linux, nous allons d'abord extraire l'archive et ouvrir le fichier .vmx avec VMware. Si l'option est présentée, choisissez ’’I copied
it ’’ pour demander à la machine virtuelle de générer une nouvelle adresse MAC virtuelle et d'éviter un conflit potentiel. Les informations d’authentification par défaut
pour la machine virtuelle sont : kali/kali
• La machine virtuelle Kali Linux est configurée avec deux utilisateurs par défaut, "root" et "kali". Nous utiliserons le compte utilisateur kali. Bien qu'il puisse être tentant
de se connecter en tant qu'utilisateur root, cela n'est pas recommandé. L'utilisateur root a un accès illimité et une commande pourrait endommager notre système. Pire
encore, si un pirate arrive à exploiter un processus s'exécutant en tant que root, il aura le contrôle total de notre machine.
• De nombreuses commandes nécessiteront des privilèges élevés pour s'exécuter. Heureusement, la commande sudo peut résoudre ce problème. Nous entrons sudo
suivi de la commande que nous souhaitons exécuter et fournissons notre mot de passe (kali) lorsque vous y êtes invité.
PARTIE 2
Kali linux
• Le menu Kali Linux contient de nombreux outils présentés dans la distribution. Cette structure permet de clarifier le rôle principal de chaque outil ainsi que le contexte
de son utilisation. Il faut prendre le temps de naviguer dans les menus de Kali Linux pour se familiariser avec les outils disponibles et leurs catégories.
PARTIE 2
Kali linux
• Kali Linux est une distribution Linux spécialisée destinée aux professionnels de la sécurité. En tant que tel, il contient plusieurs fonctionnalités non standard. L'installation
par défaut de Kali est livrée avec plusieurs services préinstallés, tels que SSH, HTTP, MySQL, etc. En conséquence, ces services se chargent au boot, ce qui aurait pour
conséquence que Kali exposerait plusieurs ports ouverts par défaut, ce que nous voulons éviter pour des raisons de sécurité.
• Kali résout ce problème en mettant à jour ses paramètres pour empêcher les services réseau d’être activés au démarrage. Kali contient également un mécanisme
permettant à la fois de mettre sur whitelist et de mettre sur blacklist divers services.
Le service ssh :
Le service SSH est basé sur TCP et écoute par défaut sur le port 22. Pour démarrer le service SSH dans Kali, nous exécutons systemctl avec l'option start suivie du nom du
service (ssh dans cet exemple). Lorsque la commande est exécutée, elle ne renvoie aucune sortie, mais nous pouvons vérifier que le service SSH est en cours d'exécution et
en écoute sur le port TCP 22 en utilisant la commande ss et en « pipant » la sortie vers grep pour rechercher la sortie pour "sshd":
PARTIE 2
Si nous voulons que le service SSH s’active automatiquement au démarrage (comme le préfèrent de nombreux utilisateurs), nous l'activons simplement à l'aide de la
commande systemctl. Cependant, assurez-vous de changer le mot de passe par défaut en premier ! Nous pouvons utiliser systemctl pour activer et désactiver la plupart des
services dans Kali Linux.
Kali linux
Le service HTTP :
Le service Apache HTTP est souvent utilisé lors d'un test d'intrusion, soit pour héberger un site, soit pour fournir une source de téléchargement de fichiers sur une
machine cible. Le service HTTP est basé sur TCP et écoute par défaut sur le port 80. Pour démarrer le service HTTP dans Kali, nous pouvons utiliser systemctl comme nous
l'avons fait lors du démarrage du service SSH, en remplaçant le nom du service par "apache2 ». Comme pour le service SSH, nous pouvons vérifier que le service HTTP
s'exécute et écoute sur le port TCP 80 avec les commandes ss et grep.
Pour que le service HTTP démarre au démarrage, comme avec le service SSH, nous devons l'activer explicitement avec systemctl et son option enable :
PARTIE 2
La plupart des services de Kali Linux fonctionnent à peu près de la même manière que SSH et HTTP, via leurs scripts de service ou d'initialisation.
Kali linux
• La distribution Kali contient les outils les plus couramment utilisés dans le domaine des tests d'intrusion. Cependant, il n'est pas pratique d’ajouter chaque outil présent
dans le répertoire Kali dans notre machine. Par conséquent, nous devrons discuter de la manière de rechercher, d'installer ou de supprimer des outils. Nous explorerons
l'ensemble d'outils Advanced Package Tool (APT) ainsi que d'autres commandes utiles pour effectuer des opérations de maintenance sur le système d'exploitation Kali
Linux. APT est un ensemble d'outils qui aide à gérer les packages, ou les applications, sur un système basé sur Debian. Puisque Kali est basé sur Debian, nous pouvons
utiliser APT pour installer et supprimer des applications, mettre à jour des packages et même mettre à niveau l'ensemble du système.
apt update :
Les informations concernant les packages APT sont mises en cache localement pour accélérer tout type d'opération qui implique d'interroger la base de données APT. Par
conséquent, il est toujours recommandé de mettre à jour la liste des packages disponibles, y compris les informations relatives à leurs versions, leurs descriptions, etc.
Nous pouvons le faire avec la commande apt update comme suit :
PARTIE 2
Kali linux
apt upgrade :
Une fois la base de données APT mise à jour, nous pouvons mettre à niveau les packages installés et le système principal vers les dernières versions à l'aide de la
commande apt upgrade. Pour mettre à niveau un seul package, ajoutez le nom du package après la commande apt upgrade, par exemple apt upgrade metasploit-
framework.
apt-cache search :
La commande de recherche apt-cache affiche une grande partie des informations stockées dans le cache de la base de donnés interne des paquets. Par exemple, disons
que nous aimerions installer l'application python2 via APT. La première chose que nous devons faire est de savoir si python2 est présent ou non dans les répertoires Kali
Linux. Pour ce faire, nous exécutons la commande :
PARTIE 2
Kali linux
apt show :
Certains résultats ne contiennent pas forcément le mot-clé python2. Pour confirmer par exemple que la description du package cloud-sptheme contient bien le mot-clé
«python2», on peut utiliser la commande apt show avec le nom du package :
PARTIE 2
Kali linux
apt install :
La commande apt install peut être utilisée pour ajouter un package au système avec apt install suivi du nom du package. Continuons avec l'installation de python2 :
Parrot OS
• Parrot OS est une alternative de Kali Linux qui commence à être utilisée pour les tests d’intrusion. Parrot OS est une distribution aussi basée sur Debian qui se concentre
principalement sur tout ce qui concerne la sécurité informatique. Elle propose aussi un écosystème complet de test d’intrusion, d’évaluation et d’analyse des vulnérabilités,
ainsi que l’analyse forensique des systèmes, la préservation de l’anonymat et la pratique de la cryptographie et du cryptage.
• Plusieurs versions de Parrot OS existent, pour notre besoin nous utiliserons la version la security edition où la plupart des outils de tests d’intrusion sont installés.
• La version Parrot OS security edition peut être téléchargée à partir du lien suivant : [Link]
• Comme pour Kali Linux, nous recommandons l’utilisation de vmware pour installer Parrot OS security edition.
• La gestion des paquets est identique à la gestion des paquets sur Kali Linux.
PARTIE 2
recon-ng
• Notez que certains modules sont marqués d'un astérisque dans la colonne "K". Ces modules nécessitent des informations d'identification ou des clés API pour les
fournisseurs tiers. Le wiki recon-ng maintient une courte liste des clés utilisées par ses modules. Certaines de ces clés sont disponibles pour les comptes gratuits, tandis
que d'autres nécessitent un abonnement.
• Nous pouvons en savoir plus sur un module en utilisant marketplace info suivi du nom du module. Étant donné que les modules GitHub nécessitent des clés API,
utilisons cette commande pour examiner le module recon/domainshosts/google_site_web :
PARTIE 2
recon-ng
• Selon sa description, ce module recherche sur Google avec l'opérateur "site" et il ne nécessite pas de clé API. Installons le module avec marketplace install :
PARTIE 2
recon-ng
• Après avoir installé le module, nous pouvons le charger avec module load suivi de son nom. Ensuite, nous utiliserons les informations pour afficher les détails sur le
module et les paramètres requis :
PARTIE 2
recon-ng
• Notez que la sortie contient des informations supplémentaires sur le module maintenant que nous l'avons installé et chargé. Selon la sortie, le module nécessite
l'utilisation d'une source, qui est la cible sur laquelle nous voulons collecter des informations. Dans ce cas, nous utiliserons les options set SOURCE [Link] pour
définir notre domaine cible :
• La requête a été bloquée par un CAPCHA google. Un pentester doit toujours trouver une autre solution en cas de blocage. Utilisons un autre module en suivant les
mêmes étapes.
recon-ng
• Nous allons utiliser un autre module hackertarget qui nous permettra d’avoir les mêmes informations en suivant les même étapes info, install, load, run :
PARTIE 2
recon-ng
• Nous pouvons utiliser la commande show hosts pour afficher les données stockées :
PARTIE 2
recon-ng
• Examinons un autre module recon/hosts-hosts/resolve qui nous permettra de résoudre des noms de hôtes avec des IPs avec marketplace info :
PARTIE 2
recon-ng
• Une fois le module installé, nous pouvons l'utiliser avec modules load, run et info pour afficher des informations sur le module et ses options :
PARTIE 2
recon-ng
• Comme il ressort clairement de la sortie précédente, ce module résoudra l'adresse IP d'un hôte. Nous devons fournir l'adresse IP que nous voulons résoudre comme
source. Nous avons quatre options que nous pouvons définir pour la source : default, string, path et query. Chaque option est accompagnée d'une description, comme
indiqué. Par exemple, dans le module de reconnaissance « google_site_web », nous avons utilisé une valeur de chaîne.
• Nous allons choisir de résoudre [Link] :
1. Moteurs de recherche
2. Réseaux sociaux pour la reconnaissance
3. Outils d’automatisation OSINT
4. Frameworks de collecte d’informations
01 – Collecter les informations de manière
passive
Frameworks de collecte d’informations
OSINT framework
• Nous terminons ce chapitre en mentionnant brièvement deux frameworks
supplémentaires qui intègrent bon nombre des techniques dont nous avons
discuté et ajoutent des fonctionnalités supplémentaires.
Ces frameworks sont généralement trop lourds pour donner juste quelques
exemples dans un cours, mais ils sont très précieux lors des tests d’intrusion
en conditions réelles parce qu’ils permettent de gérer une très grande quantité
d’informations et de sources.
• L’OSINT framework contient des outils de collecte d'informations et des sites
Web dans un emplacement central. Certains outils répertoriés dans ce
framework couvrent plus de disciplines que la cybersécurité.
• L’OSINT framework n'est pas censé être une checklist, mais l'examen des
catégories et des outils disponibles peut susciter des idées pour des
opportunités de collecte d'informations supplémentaires.
PARTIE 2
12 heures
CHAPITRE 2
Identifier les vulnérabilités des services
utilisés
• La reconnaissance active commence par des connexions directes établies avec la machine cible. Une telle connexion peut laisser des informations dans les journaux
indiquant l'adresse IP que nous utilisons, l'heure de la connexion et la durée de la connexion, entre autres. Cependant, toutes les connexions ne sont pas suspectes. Il
est possible de faire apparaître votre reconnaissance active comme une activité client régulière. Par exemple, naviguer sur le Web cible avec un navigateur connecté à
internet ne sera pas détecté comme reconnaissance parmi des centaines d'autres utilisateurs légitimes.
• Ensuite vient la partie où il faut utiliser des outils plus agressifs pour scanner les ports, les services, les domaines, les sous-domaines et les dossiers pour trouver des
vulnérabilités sur la cible. La découverte des vulnérabilités fait partie intégrante de tout type de test d’intrusion. Bien que nous préférions le faire manuellement en
tirant partie de nos connaissances et de notre expérience lors d'un audit de sécurité, les scanners de vulnérabilité automatisés sont néanmoins inestimables lorsqu'ils
sont utilisés dans un contexte approprié.
PARTIE 2
• Dans ce chapitre, nous donnerons un aperçu de l'analyse automatisée des vulnérabilités, discuterons de ses diverses considérations et nous concentrerons à la fois sur
nmap, Nessus et nexpose en tant qu'outils indispensables.
lorsque vous vous connectez à une page Web, votre ordinateur peut ouvrir le port
49534 pour se connecter au port 443 du serveur.
80/443 HTTP/HTTPS
161 SNMP
88 KERBEROS
Client Target
PARTIE 2
Client Target
PARTIE 2
nmap : exemples
nmap -sV -p 1-65535 [Link]/24
Il s'agit d'une commande simple pour scanner votre réseau local. Cette commande scannera toute votre plage d'adresses IP locales (en supposant que vous êtes dans la
plage [Link]-254), effectuera l'identification du service -sV et scannera tous les ports -p 1 -65535. En l'exécutant en tant qu'utilisateur normal et non root, ce sera un
scan basé sur TCP Connect. Si la commande est exécutée avec sudo au début, elle s'exécutera comme un scan TCP SYN.
Vous pouvez scanner plusieurs hôtes en lancant simplement leurs adresses IP ou leurs noms d'hôte avec Nmap : nmap [Link] [Link] [Link]
Pour économiser du temps et des ressources réseau, nous pouvons également analyser plusieurs adresses IP, en recherchant une courte liste de ports communs. Par
exemple, effectuons une analyse de connexion TCP pour les vingt premiers ports TCP avec l'option --top-ports et activons la détection de la version du système
d'exploitation, l'analyse des scripts et la traceroute avec -A : nmap -sT -A --top-ports=20 [Link]-254 -oG [Link]
Nous pouvons également identifier les services s'exécutant sur des ports spécifiques en inspectant les bannières de service (-sV) et en exécutant divers scripts
d'énumération de système d'exploitation et de service (–A) sur la cible : nmap -sV -sT -A [Link]
PARTIE 2
4. Nous allons maintenant démarrer le service Nessus avec la commande : sudo systemctl start [Link]
5. Ouvrez Firefox et accédez à l'URL suivante : [Link]
4. Connectez-vous avec les identifiants de compte que vous avez créés précédemment.
Console de scan :
Vous avez maintenant installé Nessus avec succès et vous aurez une console d’accueil comme ceci :
PARTIE 2
Le FQDN du hôte a été trouvé ( c’est une instance ec2 on sait donc que le hôte. L’OS de l’hôte a été retrouvé, c’est Microsoft Windows 2012 R2
est hébergé chea AWS)
PARTIE 2
• Real risk score : Le score CVSS standard de 1 à 10 entraîne des milliers de vulnérabilités « critiques ». Le score de risque réel de notre scanner de vulnérabilité fournit
des informations plus exploitables.
• Security adaptative : "L'analyse passive" est chargée de faux positifs et de données obsolètes provenant de vidages de données peu fréquents. Avec Nexpose Adaptive
Security, vous pouvez détecter et évaluer automatiquement les nouveaux appareils et les nouvelles vulnérabilités dès qu'ils accèdent à votre réseau
• Policy assessment : Le renforcement de vos systèmes est tout aussi important que la détection et la correction des vulnérabilités. Nexpose fournit une analyse intégrée
des politiques pour vous aider à comparer vos systèmes aux normes courantes telles que CIS et NIST. Des rapports de correction intuitifs vous donnent des instructions
étape par étape sur les actions à entreprendre pour avoir le plus grand impact sur l'amélioration de la conformité.
• Remediation reporting : Avec les rapports de remédiation de Nexpose, montrez au service informatique les 25 actions qu'il peut entreprendre dès maintenant pour
réduire le plus possible les risques. Vos données peuvent être facilement découpées en tranches et en dés pour donner aux bonnes personnes les informations exactes
dont elles ont besoin pour faire leur travail, sans parcourir des rapports de 10 000 pages ou des feuilles de calcul manuelles.
• Integration avec metasploit : L'objectif de tout produit de sécurité est de renforcer vos défenses en cas d'attaque réelle. Quelle meilleure façon de les tester qu'en en
simulant une ? Avec Metasploit Pro, vous pouvez valider les résultats de votre analyseur de vulnérabilités à l'aide d'un processus automatisé en boucle fermée, vous
PARTIE 2
assurant de prioriser automatiquement les actifs les plus importants en premier : ceux qui sont les plus faciles à violer.
Ne fournissent pas d'informations plus approfondies sur les vulnérabilités. Fournissent des informations détaillées et plus approfondies sur les
vulnérabilités.
Ils découvrent les failles de sécurité courantes comme une mise à jour Ils détectent les failles difficiles qui sont souvent manquées par un scanner
manquante, des règles d'autorisation défectueuses, des défauts de comme les erreurs de logique métier, les failles, les défauts de codage, etc. Cela
configuration, avec une efficacité étonnante. implique également d'exploiter ces vulnérabilités pour évaluer l'impact sur le
système.
PARTIE 2
Cela peut être fait fréquemment sans beaucoup de préparation et de Cela demande des efforts et du temps, donc ne peut pas être fait fréquemment.
planification.
Il est rapide à exécuter et fait gagner beaucoup de temps. Les test manuels peuvent prendre des jours entiers.
SMB
• SMB - Server Message Block Protocol - est un protocole de communication client-serveur utilisé pour partager l'accès aux fichiers, imprimantes, ports série et autres
ressources sur un réseau. Les serveurs mettent les systèmes de fichiers et d'autres ressources (imprimantes, canaux nommés, API) à la disposition des clients sur le
réseau. Les ordinateurs clients peuvent avoir leurs propres disques durs, mais ils souhaitent également accéder aux systèmes de fichiers partagés et aux imprimantes
sur les serveurs.
• Le protocole SMB est connu sous le nom de protocole de demande de réponse, ce qui signifie qu'il transmet plusieurs messages entre le client et le serveur pour établir
une connexion. Les clients se connectent aux serveurs en utilisant TCP/IP (en fait NetBIOS sur TCP/IP comme spécifié dans RFC1001 et RFC1002), NetBEUI ou IPX/SPX.
• Une fois qu'ils ont établi une connexion, les clients peuvent alors envoyer des commandes (SMB) au serveur qui leur permettent d'accéder aux partages, d'ouvrir des
fichiers, de lire et d'écrire des fichiers, et généralement de réaliser tout ce qu’on peut faire avec un système de fichiers.
• Les systèmes d'exploitation Microsoft Windows depuis Windows 95 ont inclus la prise en charge du protocole SMB client et serveur. Samba, un serveur open source
prenant en charge le protocole SMB, a été publié pour les systèmes Unix.
PARTIE 2
SMB
Enum4Linux
• Enum4linux est un outil utilisé pour énumérer les partages SMB sur les systèmes Windows et Linux. Il s'agit essentiellement d'un wrapper autour des outils du package
Samba et facilite l'extraction rapide des informations de la cible relatives à SMB. Il est installé par défaut sur Parrot et Kali, mais si vous avez besoin de l'installer, vous
pouvez le faire depuis le github officiel.
• La syntaxe d'Enum4Linux est simple et agréable : enum4linux [options] ip
PARTIE 2
SMB
Les types d'exploit SMB
• Bien qu'il existe des vulnérabilités telles que CVE-2017-7494 qui peuvent permettre l'exécution de code à distance en exploitant SMB, on est plus exposé à rencontrer
une situation où la meilleure façon d'accéder à un système est due à des erreurs de configuration dans le système. Dans ce cas, nous allons exploiter l'accès anonyme
au partage SMB - une mauvaise configuration courante qui peut permettre d'obtenir des informations qui mèneront à un shell.
La méthode d’analyse
• Avec l’énumération initiale, on peut connaitre :
✓ L'emplacement de partage SMB
✓ Le nom d'un partage SMB intéressant
SMBClient
• Pour accéder à un partage SMB, nous avons besoin d'un client pour accéder aux ressources sur les serveurs. Nous utiliserons SMBClient car il fait partie de la suite
samba par défaut et bien sûr il est disponible par défaut sur Kali et Parrot.
• On peut accéder à distance au partage SMB en utilisant la syntaxe : smbclient //[IP]/[PARTAGER]
Suivie par les options :
PARTIE 2
Telnet
• Telnet est un protocole d'application qui vous permet, à l'aide d'un client telnet, de vous connecter et d'exécuter des commandes sur une machine distante hébergeant
un serveur telnet. Le client telnet établira une connexion avec le serveur. Le client deviendra alors un terminal virtuel, vous permettant d'interagir avec l'hôte distant.
• Telnet envoie tous les messages en texte clair et ne dispose d'aucun mécanisme de sécurité spécifique. Ainsi, dans de nombreuses applications et services, Telnet a été
remplacé par SSH dans la plupart des implémentations.
• L'utilisateur se connecte au serveur en utilisant le protocole Telnet, ce qui signifie entrer "telnet" dans une invite de commande. L'utilisateur exécute ensuite des
commandes sur le serveur à l'aide de commandes Telnet spécifiques dans l'invite Telnet. Vous pouvez vous connecter à un serveur telnet avec la syntaxe suivante :
telnet [ip] [port]
• Cependant, on est beaucoup plus exposé de trouver une mauvaise configuration dans la façon dont telnet a été configuré ou fonctionne qui permettra de l'exploiter.
Telnet
La méthode d’analyse
Ainsi, dès notre étape d’énumération avec nmap, nous devons savoir que :
✓ Il y a un service telnet mal caché en cours d'exécution sur la cible
✓ Le message d’acceuil du service
✓ Et peut être un un nom d'utilisateur par exemple "Skidy" impliqué
• Toutes les analyse intéressantes peuvent être effectuées par nmap : nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
• Pour des cibles Windows, nous pouvons aussi utiliser le script [Link] pour avoir des infos NTLM comme les infos ci-dessous :
PARTIE 2
FTP
• File Transfer Protocol (FTP) est, comme son nom l'indique, un protocole utilisé pour permettre le transfert à distance de fichiers sur un réseau. Il utilise un modèle client-
serveur pour ce faire et, comme nous le verrons plus tard, relaie les commandes et les données de manière très efficace.
• Une session FTP typique fonctionne à l'aide de deux canaux :
✓ un canal de commande (parfois appelé le canal de contrôle)
✓ un canal de données
• Comme leur nom l'indique, le canal de commande est utilisé pour transmettre des commandes ainsi que des réponses à ces commandes, tandis que le canal de données
est utilisé pour transférer des données. FTP fonctionne à l'aide d'un protocole client-serveur. Le client initie une connexion avec le serveur. Ce dernier valide les
identifiants de connexion fournis, puis ouvre la session.
• Pendant que la session est ouverte, le client peut exécuter des commandes FTP sur le serveur. Le serveur FTP peut prendre en charge les connexions actives ou passives,
ou les deux.
• Utilisation de starttls pour se connecter à un serveur ftp :
PARTIE 2
FTP
• Parmi les mauvaises configurations les plus fréquentes en ftp est le « anonymous login ». Cependant, il faut vérifier les droits que nous avons en se connectant en
anonymous en testant les paires username/mot de passes suivantes : anonymous/anonymous, ftp/ftp, anonymous/ (rien)
• Enfin, nous pouvons toujours essayer de se connecter à un serveur FTP à l'aide d'un navigateur (comme Firefox) en utilisant une URL comme :
PARTIE 2
[Link]
HTTP/HTTPS
• Comme nous pouvons l’imaginer, le service web est parmi les services les plus utilisés et aussi les plus exposés. Après avoir identifié qu’il y a un service http/https utilisé
et lancer des scans pour identifier des vulnérabilités d’une manière automatisée et générale, nous devons envisager d'utiliser des outils spécialisés d'évaluation
d'applications Web pour énumérer plus d'informations sur la cible. Il existe une variété d'outils qui peuvent aider à découvrir et à exploiter les vulnérabilités des
applications Web, dont beaucoup sont préinstallés dans Kali.
Vulnérabilités serveur
• Il faut Vérifier s'il existe des vulnérabilités connues pour la version du serveur en cours d'exécution. Les en-têtes HTTP et les cookies de la réponse peuvent être très
utiles pour identifier les technologies et/ou la version utilisées. Nmap scan permet d'identifier la version du serveur, mais il peut aussi être utile les outils whatweb,
webtech ou [Link] :
PARTIE 2
HTTP/HTTPS
Des scanners automatiques web
Spidering et le brute-forrcing
Les outils de spidering et de brute-forcing permettent de trouver autant de chemins que possible à partir de l'application testée. Par conséquent, l'exploration Web et les
PARTIE 2
sources externes doivent être utilisées pour trouver autant de chemins valides que possible.
HTTP/HTTPS
• Quelques outils de spidering et de brute-forcing :
✓ Dirsearch (python): Il n'autorise pas les certificats auto-signés mais permet la recherche récursive.
✓ Gobuster (go): Il autorise les certificats auto-signés mais n'a pas de recherche récursive.
✓ wfuzz : un outil très puissant et très facile à utiliser pour tout type de brute-forcing :
ffuf : ressemble à wfuzz mais plus rapide : ffuf -c -w /usr/share/wordlists/dirb/[Link] -u [Link]
✓ xnLinkFinder : il s'agit d'un outil utilisé pour découvrir les points de terminaison d'une cible donnée.
✓ waymore : permet de découvrir les liens de la machine cible(également en téléchargeant les réponses dans le retour et en recherchant plus de liens)
PARTIE 2
HTTP/HTTPS
Vulnérabilités SSL/TLS
• Si l'application ne force pas l'utilisation de HTTPS dans aucune partie, alors elle est vulnérable à MitM
• Si l'application envoie des données sensibles (mots de passe) via HTTP, il s'agit alors d'une vulnérabilité très critique.
On peut utiliser le script [Link] pour vérifier les vulnérabilités et utiliser sslscan ou sslyze pour revérifier les vulnérabilités :
PARTIE 2
Note importante : pour une liste de tous les types de vulnérabilités web que nous devons vérifier, il faut se référer à la partie 1 de ce guide. Dans le chapitre 3, vous
trouverez une liste des vérifications à effectuer pour chaque type de vulnérabilité web.
DNS
• Le système de noms de domaine (DNS) est le répertoire téléphonique d'Internet. Les humains accèdent aux informations en ligne via des noms de domaine, comme
[Link] ou [Link]. Les navigateurs Web interagissent via des adresses IP (Internet Protocol). DNS traduit les noms de domaine en adresses IP afin que les
navigateurs puissent charger des ressources Internet.
Zone transfer
Pour vérifier si le service DNS est vulnérable à la vulnérabilité zone transfer, qui est un des mécanismes disponibles pour répliquer les bases de données distribuées
contenant les données DNS au travers d'un ensemble de serveurs DNS, nous pouvons utiliser la commande dig :
dig axfr @<DNS_IP> #tente un transfert de zone sans domaine
dig axfr @<DNS_IP> <DOMAIN> #tente un transfert de zone en devinant le domaine
fierce --domain <DOMAIN> --dns-servers <DNS_IP> #tente un transfert zone contre chaque authoritative name server et si ça ne marche pas lance un brute force
nslookup
> SERVER <IP_DNS> #sélectionne le serveur dns
> [Link] #faire un reverse de [Link] (lui-même) pour avoir le nom dns ou le FQND
PARTIE 2
> <IP_MACHINE> #faire une reverse de la cible ou une autre machine pour avoir son nom dns ou son FQND
• Les tests d’intrusion doivent également être intégrés dans le pipeline de développement et automatisés autant que possible pour garantir que les problèmes sont
détectés rapidement et que les résultats des tests sont efficacement communiqués aux développeurs. Les faux positifs dans les résultats d'analyse introduisent un
travail supplémentaire inutile dans le pipeline de développement hautement automatisé et compromettent l'ensemble du processus de développement.
• Malheureusement, les faux positifs continueront d'exister, mais ils peuvent être limités par la compétence de la personne qui écrit les signatures ou configure les
templates de scan et vérifie manuellement les vulnérabilités remontées.
• Si nous pensons que nous avons un faux positif, il faut travailler soigneusement avec les développeurs ou le fournisseur de l’actif pour essayer de trouver la solution.
PARTIE 2
peut-être que vous êtes en fait vulnérable, ou que quelque chose d'autre est vulnérable à ce "contrôle de sécurité" particulier.