Pentest
https://www.login-securite.com/2019/02/22/le-pentest-de-a-a-z-methodologie-et-bonnes-pratiques-pour-securiser-son-si/
La méthodologie du pentest (cyber kill chain) est globalement partagée par tous, mais elle se doit d’être adaptée et il existe de nombreux outils pour la mettre en œuvre. J’ai utilisé une combinaison de scans automatisés et de tests manuels que j’ai découpé en deux étapes :
-
La reconnaissance par la collecte d'informations et la cartographie m'a permis d'identifier et de recueillir des informations sur les cibles à tester.
-
La recherche et l’analyse des vulnérabilités m’a permis d’établir une liste des technologies et des applications afin de détecter des vulnérabilités, les analyser, mesurer le risque et l’impact potentiel selon selon la triade CIA (Confidentialité : accès à des données confidentielles ? / Intégrité : les données peuvent-elle être altérées ? / Accessibilité : interruption de services ou destruction des données ?).
Suite d'outils :
- Kali Linux
- Exegol
- Hackingtool https://github.com/Z4nzu/hackingtool
- https://pentestgpt.ai/
0. Planification et engagement
Cette étape inclut souvent la définition des règles d'engagement, l'obtention des autorisations nécessaires et la délimitation du périmètre du test. C'est essentiel pour garantir que le pentest est réalisé légalement et de manière éthique.
1. Collecte d'informations et cartographie : reconnaissance, énumération et Open Source INTelligence (OSINT)
-
Identifier les cibles à tester (systèmes, réseaux, applications);
-
Recueillir des informations sur les cibles, comme les adresses IP, les noms de domaine, les informations WHOIS...;
-
Identifier les technologies utilisées (système d'exploitation, services et applications);
-
Reconnaissance passive : Collecte d'informations sans interaction directe avec la cible. Cela peut inclure la collecte de données publiques, l'analyse des informations disponibles en ligne (WHOIS, dig, nslookup...) L'OSINT (Open Source INTelligence) joue un rôle crucial ici, car elle permet de recueillir des informations sans interaction directe avec les cibles;
-
Reconnaissance active : Interaction directe avec les systèmes cibles pour recueillir des données (scan de ports, détection de services..);
-
Cette phase peut également inclure l'identification des points d'entrée potentiels et la collecte d'informations sur les employés ou les processus internes qui pourraient être exploités.
Outils
-
https://web-check.xyz/
-
https://dnsdumpster.com/
-
https://hackertarget.com/
-
https://usersearch.ai
-
Nmap
nmap -sV -sC -O 192.168.1.0/24
-sV # Cette option active la détection de version, permettant à nmap de déterminer la version des services fonctionnant sur les ports ouverts.
-sC # Cette option indique à nmap d'exécuter un ensemble de scripts par défaut inclus avec Nmap Scripting Engine (NSE) pour des tâches communes telles que la détection de vulnérabilités, la collecte d'informations supplémentaires, etc. C'est équivalent à --script=default.
-O # Cette option active la détection du système d'exploitation, permettant à nmap de tenter de déterminer le système d'exploitation de la ou des machines cibles.
# Peut se résumer avec -A !
nmap -A -p- -v -oA fichier 192.168.1.0/24
-A # Active la détection du système d'exploitation (OS), la détection de version des services, l'exécution de scripts (avec NSE, Nmap Scripting Engine) et le traçage de route. C'est une option agressive et très informative qui combine plusieurs fonctions avancées.
-p- # Indique à nmap de scanner tous les 65535 ports TCP sur chaque machine cible. Par défaut, nmap scanne seulement les 1000 ports les plus courants.
-v # Augmente la verbosité, ce qui permet d'obtenir plus de détails sur ce que nmap fait et sur les résultats de l'analyse en temps réel.
-oA # Permet d'enregistrer les résultats de l'analyse dans trois formats différents simultanément : normal, XML et greppable.
- RustScan https://github.com/RustScan/RustScan
The Modern Port Scanner. Find ports quickly (3 seconds at its fastest). Run scripts through our scripting engine (Python, Lua, Shell supported).
- The Harvester https://github.com/laramies/theHarvester
theHarvester is a simple to use, yet powerful tool designed to be used during the reconnaissance stage of a red team assessment or penetration test. It performs open source intelligence (OSINT) gathering to help determine a domain's external threat landscape. The tool gathers names, emails, IPs, subdomains, and URLs by using multiple public resources that include...
- Lynix https://github.com/CISOfy/lynis
Lynis is a security auditing tool for systems based on UNIX like Linux, macOS, BSD, and others. It performs an in-depth security scan and runs on the system itself. The primary goal is to test security defenses and provide tips for further system hardening. It will also scan for general system information, vulnerable software packages, and possible configuration issues. Lynis was commonly used by system administrators and auditors to assess the security defenses of their systems. Besides the "blue team," nowadays penetration testers also have Lynis in their toolkit.
- https://github.com/catsploit/catsploit
CATSploit is an automated penetration testing tool using Cyber Attack Techniques Scoring (CATS) method that can be used without pentester. Currently, pentesters implicitly made the selection of suitable attack techniques for target systems to be attacked. CATSploit uses system configuration information such as OS, open ports, software version collected by scanner and calculates a score value for capture eVc and detectability eVd of each attack techniques for target system. By selecting the highest score values, it is possible to select the most appropriate attack technique for the target system without hack knack(professional pentester’s skill).
- OpenVAS Greenbone ou Nesus
Pour scanner les applications à la recherche de vulnérabilités. Greenbone va s'appuyer sur différents outils, notamment Nmap pour scanner les hôtes, les ports ouverts, etc... En fonction de ce qui est détecté, Greenbone va approfondir l'analyse avec des outils complémentaires.
- OSCP https://github.com/xsudoxx/OSCP
Cheat sheet
- GNS3 et Cisco Packet Tracer
Cartographie réseau
- smbmap
- enum4linux
- Pour la recherche de vulnérabilités sur des sites web, des outils comme Burp, Zap, Nikto, Wapiti, Dirbuster ou Nuclei peuvent être utilisé. On se concentrera notamment sur les 10 types de vulnérabilités les plus fréquents (Top10 OWASP).
- CLI
2. Recherche et analyse des vulnérabilités
-
L’analyse de vulnérabilités consiste à analyser les faiblesses des applications, sites et systèmes en se fondant sur les données collectées;
-
Etablir une listes des technologies et applications et faire une recherche manuelle ou automatisée des vulnérabilités;
-
Analyser les résultats pour mesurer l'impact des vulnérabilités selon la triade CIA (DIC en français);
-
Cette étape peut également impliquer des techniques manuelles pour comprendre la portée des problèmes identifiés;
-
Standards CVE, CVSS et EPSS : la classification des vulnérabilités en termes de gravité aide à prioriser les efforts d'exploitation.
Outils et vulnérabilités critiques
-
External Blue.
-
GitHub avec Proof Of Concept sur les vulnérabilités connues.
-
Catalogue KEV du CISA.
-
https://www.exploit-db.com/searchsploit
-
Veille : https://github.com/OpenCTI-Platform/opencti et https://www.cert.ssi.gouv.fr/
CVE
Annuaires des vulnérabilités :
-
cve.org
-
https://nvd.nist.gov/
-
https://www.opencve.io
-
CVEdetails.com
-
https://www.cert.ssi.gouv.fr/
CVSS
Un score d'évaluation du risque (criticité)
EPSS
- https://cyberwatch.fr/veille/epss-quest-ce-que-lexploit-prediction-scoring-system/
Les inventeurs du score EPSS proposent de calculer pour chaque vulnérabilité la probabilité que celle-ci soit réellement utilisée sous 12 mois lors d’une attaque informatique.
Dans leur présentation de la Black Hat, les créateurs de l’EPSS partent de plusieurs constats du marché, à savoir :
-
Trop de vulnérabilités sont publiées par rapport à la quantité de vulnérabilités pouvant être traitées par les équipes de sécurité ;
-
Moins de 5% des vulnérabilités sont réellement exploitées par des attaquants.
Cette probabilité est calculée à partir des caractéristiques de chaque vulnérabilité, et d’un modèle de prédiction qui repose sur 16 variables :
Est-ce que la vulnérabilité dispose d’un kit d’attaque réellement utilisable (c’est-à-dire un exploit avec un excellent niveau de maturité technique) ?
Est-ce que la vulnérabilité concerne un produit édité par Microsoft ?
Est-ce que la vulnérabilité dispose d’un kit d’attaque public ?
Est-ce que la vulnérabilité concerne un produit édité par Adobe ?
Est-ce que la vulnérabilité est de type « Corruption de mémoire » ?
Est-ce que la vulnérabilité concerne un produit édité par HP ?
Est-ce que la vulnérabilité concerne un produit édité par Apache ?
Est-ce que la vulnérabilité concerne un produit édité par IBM ?
Est-ce que la vulnérabilité est de type « Exécution de code » ?
Est-ce que la vulnérabilité est de type « Déni de service » ?
Est-ce que la vulnérabilité peut être exécutée à distance ?
Est-ce que la vulnérabilité concerne un service web ?
Est-ce que la vulnérabilité est utilisable en local ?
Est-ce que la vulnérabilité concerne un produit édité par Apple ?
Est-ce que la vulnérabilité concerne un produit édité par Google ?
Quel est le nombre de références associées à la vulnérabilité ?
3. Exploitation "exploit" des vulnérabilités
-
Tester activement les vulnérabilités identifiées pour voir si elles peuvent être exploitées;
-
Simuler des attaques pour déterminer la portée des failles et l'impact potentiel;
-
Il est important de documenter avec précision comment chaque vulnérabilité peut être exploitée, car cela aidera à développer des contre-mesures efficaces.
Outils
- Metasploit
use auxiliary/scanner/smb/smb_login
msf exploit (smb_login)>set rhosts 192.168.1.118
msf exploit (smb_login)>set user_file /root/Desktop/user.txt
msf exploit (smb_login)>set pass_file /root/Desktop/pass.txt
msf exploit (smb_login)>set stop_on_success true
msf exploit (smb_login)>exploit
-
Catsploit
-
Caido
-
BurpSuite : https://portswigger.net/burp/communitydownload
Proxy pour intercepter les requêtes http et réaliser des attaques par force brute.
- THC Hydra :
Brute force de mot de passe.
hydra -L fichier_users.txt -P /usr/share/wordlists/rockyou.txt.gz 192.168.0.1 smb2
hydra -l user -p motdepasse $IP ssh
hydra -L fichier_users.txt -P /usr/share/wordlists/rockyou.txt.gz 192.168.0.1 smb2
4. Post-exploitation
Si une exploitation réussit, évaluer les actions qui pourraient être entreprises par un attaquant après avoir compromis le système. Remplir la mission !
-
Elévation de privilèges;
-
Maintien d'accès, renforcer l'accès initial pour ne pas perdre la connexion;
-
Pivot / propagation / déplacements latéraux;
-
Effacer les traces...
Outils
Mimikatz
5. Livrables
Documentation des résultats.
-
Une synthèse technique (tableau) avec la liste des vulnérabilités ainsi que l’impact (criticité) dans le contexte métier du client.
-
Préparer un rapport détaillé des vulnérabilités découvertes, des preuves d'exploitation, et des recommandations pour la rdmédiation. Le rapport doit être détaillé, compréhensible et fournir des conseils clairs pour remédier aux problèmes identifiés.
-
Passer en revue les résultats avec les parties prenantes pour assurer une compréhension claire des problèmes de sécurité identifiés et discuter des mesures correctives à prendre.