La reconnaissance lors d'un pentest

As a newcomer to the cybersecurity industry, I'm on an exciting journey of continuous learning and exploration. Join me as I navigate, sharing insights and lessons learned along the way
Search for a command to run...

As a newcomer to the cybersecurity industry, I'm on an exciting journey of continuous learning and exploration. Join me as I navigate, sharing insights and lessons learned along the way
No comments yet. Be the first to comment.
Ce lab a pour but de concevoir et déployer une infra sécurisée et segmentée sur Google Cloud Platform (GCP) en utilisant Terraform et Ansible. Bonne lecture :) Composants Voici les différentes technologies et composants du projet. Infrastructure Te...
Cet article présente la mise en place d’un environnement de détection, combinant Zeek, Suricata avec la stack ELK (Elasticsearch, Logstash, Kibana). Il permet de mettre en avant la gestion des logs avec ELK, l’analyse réseau avec Zeek et Suricata, pu...

Dans cet article, on va déployer une application Python Flask sur Kubernetes. Un premier article montrant les premiers pas avec Kubernetes et Minikube est disponible ici Kubernetes: Simplifying Container Orchestration Pré-requis Docker: pour créer l...

Kubernetes ou K8s est une plateforme open-source utilisée pour automatiser le déploiement et la gestion des applications conteneurisées. Une application conteneurisée est une application qui fonctionne à l’intérieur d’un conteneur, un environnement l...

Lien : https://www.root-me.org/fr/Challenges/App-Script/ELF32-System-2 On veut pouvoir lire le mot de passe du fichier .passwd mais il n’est lisible que par le propriétaire du fichier app-script-ch12-cracked. Le code source de ch12.c utilise la fonc...

La reconnaissance (Recon) est une étape du test de pénétration qui consiste à collecter le plus d’informations sur un système, afin d’exploiter de potentielles vulnérabilités.
Dans cet article, nous montrerons quelques outils et moyens utilisés pour la reconnaissance. Ces outils m’ont été présentés lors d’un Workshop de Bsides Montreal 2024 tenu par Jason Haddix.
Check_mdi un script pyhton qui interroge l’API Microsoft pour énumérer les domaines Microsoft 365 valides à un domaine donné. Il trouve le locataire du domaine et vérifie la présence d'une instance de Microsoft Defender for Identity (MDI). MDI est une solution de sécurité dévéloppée par Micosoft pour les environnements en Active Directory. Vous pouvez trouver le code source sur Github.
Pour utiliser Check_mdi, il faut exécuter la commande suivante:
git clone https://github.com/expl0itabl3/check_mdi.git
cd check_mdi
python3 ./check_mdi.py -d domain.com
Cette commande va cloner le dépôt, naviguer dans le répertoire cloné, et ensuite exécuter le script pour le domaine spécifié.


On voit donc une liste de sous-domaines et de domaines associés aux domaines recherchés, le nom du locataire, et la présence ou non de MDI.
Un ASN(Autonomous System Number) est un identifiant unique, écrit sous le format ASXXXXX, attribué à un groupe d’adresses IP géré par une même organisation, avec une politique de routage commune. Les ASN permettent aux réseaux de s’identifier de manière unique sur Internet.
Il existe plusieurs moyens et outils pour trouver les ASN associés à un domaine ou une adresse IP.
C’est un outil en ligne (dnschecker.org) qui permet de vérifier les DNS pour un domaine. Il permet aussi de voir l’ASN associé au domaine.

ASRank (asrank.caida.org) est un service qui permet d’explorer et d’analyser les relations entre différents ASN. Il fournit des informations détaillées sur l’organisation, les AS voisins et bien d’autres.

En essayant avec l’ASN de CloudFlare, on a des informations comme le positionnemnt de l’AS, le nombre de clients ou de réseaux qui dépendent de CloudFlare. Il y a aussi la liste des ASNs voisins qui montre les autres organisations avec lesquelles CloudFlare interagit. Toutes ces informations peuvent aider à mieux comprendre la topologie d’un réseau.
BGP.HE.NET est un service internet de Hurricane Eletric qui fournit des informations sur le DNS, l’ASN associé au domaine et les routes BGP utilisées pour atteindre ce domaine.

ASNmap est un outil de reconnaissance qui permet de retrouver les adresses IP associées à un domaine. Il est surtout utilisé pour avoir des infos sur les réseaux ou les serveurs. Le guide d’installation est disponible sur Github.
Installez d’abord Go sur votre machine avec la commande suivante:
sudo apt install golang-go
Clônez ensuite le dépôt depuis GitHub:
go install github.com/projectdiscovery/asnmap/cmd/asnmap@latest
Lors de la première utilisation de ASNmap, il vous faudra créer un compte sur Project Discovery Platform, pour avoir une clé gratuite pour l’utilisation de ASNmap.
ASNmap supporte plusieurs options:
asnmap -a ASXXXX pour la recherche d’un ASN spécifique,
asnmap --ip 192.168.2.0 pour une adresse IP,
asnmap -d domain.com pour interroger un nom de domaine,
asnmap -org ORGANIZATION pour une organisation.
Il est possible d’avoir plusieurs options dans une même commande. Toute la documentation est disponible sur Project Discovey Blog.
En faisant une recherche sur le domaine facebook.com avec l’option -j (affichage en format JSON), on obtient des informations comme l’ASN, le nom et le pays associé à l’AS, et aussi les plages d’adresses IP.

L’option jq ci-dessus, permet de formater et manipuler les données au format JSON
Pour les scans, l’outil le plus connu est peut être Nmap. Mais il en existe d’autres qui sont beaucoup plus rapides et efficaces.
Naabu est un scanner de ports devéloppé par Project Discorvery et écrit en lagange Go, pour identifier les services ouverts sur une machine ou un réseau. Il est connu pour être plus rapides avec beaucoup d’options, comme le fait de pouvoir exclure des ports, scanner toute une liste de ports ou encore le combiner avec Nmap pour avoir des résultats plus détaillés. Vous pouvez l’installer directement via Github.
Installez d’abord Go sur votre machine avec la commande suivante:
sudo apt install golang-go
Installez ensuite Naabu
go install -v github.com/projectdiscovery/naabu/v2/cmd/naabu@latest
L’option -p permet de scanner un port spécifique, et l’option -exclude-ports, exclut ici, les ports 22 et 80.
naabu -host [DOMAIN or IP] -exclude-ports 22,80
L’option -list ou -l effectue un scan avec un fichier contenant une liste de domaines ou d’adresses IP.
naabu -list domains.txt -p 22,80
Cette commande va scanner les hôtes à l’intérieur du fichier domains.txt, mais juste les ports 22 et 80
L’option -json permet d’avoir les résultats en format JSON. On peut ajouter l’option -o pour sauvegarder les résultats dans un fichier.
naabu -host [DOMAIN] -o output.json -json
L’option -nmap-cli permet d’exécuter la commande nmap directement sur les résultats obtenus. Nmap doit être déjà installé pour que ca fonctionne.
naabu -host [DOMAIN] -p [PORTS] -nmap-cli 'nmap -sV -Pn'
Cette commande exécute Naabu pour scanner les ports spécifiés sur le domaine puis lance le service nmap sur chaque port.

Il est aussi possible de combiner Naabu avec ASNmap;
asnmap -a ASXXXX -silent | naabu -p 22,80 -silent
Cette commande va d’abord récupérer les plages d’adresses IP associées à l’ASN en mode silent et ensuite scanner les ports 22 et 80 avec Naabu.
RustScan est aussi un scanner de ports, écrit en langage Rust, beaucoup plus rapide et capable d’intégrer des outils comme Nmap pour des analyses plus détaillées.
Vous pouvez accéder au dépôt depuis la biliothèque officiel sur Github.
Téléchargez le fichier d’installation depuis le terminal
wget https://github.com/RustScan/RustScan/releases/download/2.0.1/rustscan_2.0.1_amd64.deb
Se déplacer vers le dossier Downloads et modifiez les permissions du fichier installé en le rendant exécutable.
cd Downloads
sudo chmod +x rustscan_2.0.1_amd64.deb
Installez le package Debian
sudo dpkg -i rustscan_2.0.1_amd64.deb
En cas de problèmes, exécutez la commande suivante:
sudo apt update
sudo apt upgrade
Si vous rencontrez des problèmes de dépendances, exécutez la commande suivante :
sudo apt-get install -f
RustScan devrait être maintenant installé .
rustscan -a [DOMAINE/IP] -p [PORT,PORT] -b -g
l’option -a spécifie l’adresse ou le domaine cible
l’option -p permet de spécifier un ou plusieurs ports
l’option -b permet de limiter la bande passante et éviter de surcharger le réseau pendant le scan.
l’option -g simplifie l’analyse qui n'affiche que les ports ouverts détectés, sans les détails de Nmap
rustscan -a [DOMAINE/IP] -- -sV --script vuln
l’option -- termine les arguments de RustScan. Tous les arguments suivants sont directement passés à Nmap
l’option -sV de Nmap pour active la détection des services et leurs versions sur les ports ouverts
l’option --script vuln détecte les vulnérabilités sur les services
Ici on scan les ports 22,80 et 445 de l’adresse 192.168.2.96. Le double-tiret indique les options sont passées à Nmap, avec l’option -sV, pour détecter la version des services.

Pour finir, ces différents outils offrent des fonctionnalitées utiles lors de la reconnaissance dans un test de pénétration. Cependant, il est important de rappeler que l'utilisation de ces outils doit toujours se faire dans un cadre légal.