La phase d’énumération

C’est quoi l’énumération ?


L’énumération est un processus qui consiste à accéder aux services qui tournent derrière les ports ouverts, découverts lors du scanning, afin d’obtenir plus d’informations sur la cible. Lors de la phase d’énumération, l’attaquant crée une connexion active avec le système cible et effectue directement ses requêtes sur celui-ci. Les informations recueillies sont utilisées pour identifier les vulnérabilités du système afin de les exploiter lors de la phase d’attaque.

Les types d’informations énumérés


La phase d’énumération permet d’accéder à l’environnement Intranet d’un système cible afin d’obtenir des informations sur :

  • les ressources du réseau et partages,
  • les utilisateurs et les groupes,
  • les tables de routage,
  • les noms des machines,
  • les détails SNMP et DNS,
  • les applications et les bannières,
  • les paramètres d’audit et de service,
  • etc.

Les techniques d’énumération


Pour faire de l’énumération, on peut procéder comme suit :

  • Extraire des noms d’utilisateurs à l’aide des emails
  • Extraire des informations en utilisant des mots de passe par défaut
  • Faire une attaque par force brute sur Active Directory
  • Extraire des informations en utilisant les transferts de zone DNS
  • Extraire des groupes d’utilisateurs depuis Windows
  • Extraire des noms d’utilisateurs en utilisant SNMP

Services et ports pour l’énumération


Sur le tableau ci-dessous, vous verrez la plupart des services et ports utilisés lors de l’énumération avec le protocole de transport utilisé.

ServicesPortsProtocoles
DNS (Domaine Name Service)53TCP / UDP
RPC Endpoint Mapper135TCP /UDP
LDAP( Lightweight Directory Access Protocol)389TCP/UDP
Service de Catalogue Global3268TCP/UDP
Service de noms NetBIOS137UDP
NETBIOS ou SMB (Sevrer Message Block)139TCP
SMB (Sevrer Message Block) sur TCP445TCP/UDP
SNMP (Simple Network Management Protocol)161UDP
SMTP (Simple Mail Transfert Protocol)25TCP
Les messages d’alerte (traps) SNMP162TCP/UDP
IKE (Internet Key Exchange)500UDP
SIP (Session Initiation Protocol)5060, 5061TCP/UDP

Différents moyens d’énumération


Il existe différents moyens d’énumération.

1. Enumération NetBios

NetBIOS est un protocole de la couche session (couche 5) du modèle OSI non routable permettant aux applications des ordinateurs de communiquer entre elles via un réseau local (LAN), de partager des fichiers et des imprimantes.

Les noms NetBIOS sont utilisés pour identifier les périphériques du réseau sur TCP / IP (Windows). Un nom NetBIOS doit être unique sur un réseau, limité à 16 caractères où les 15 caractères sont utilisés pour le nom de l’appareil et le 16e caractère est réservé pour identifier le type de service en cours d’exécution ou le type d’enregistrement de nom. Ils fournissent des informations en listant les hôtes appartenant à un domaine, les partages sur les hôtes du réseau, les restrictions et les mots de passe.

Nbstat est un utilitaire sur Windows qui affiche les statistiques du protocole NetBIOS sur TCP / IP, les tables de noms NetBIOS pour l’ordinateur local et les ordinateurs distants, et le cache de noms NetBIOS.

On peut aussi utiliser les outils suivants : Hyena, Nsauditor, superscan, netscantools.com.

2. Enumération avec les comptes d’utilisateurs

PsTools est un ensemble d’outils qui aide à contrôler et à gérer des systèmes à distance depuis la ligne de commande. Les outils inclus dans le package PsTools sont:

  • PsExec – exécute des processus à distance
  • PsFile – affiche les fichiers ouverts à distance
  • PsGetSid – affiche l’ID de session (SID) d’un ordinateur ou d’un utilisateur
  • PsInfo – liste ls informations sur un système
  • PsPing – mesure les performances du réseau
  • PsKill – tue les processus par nom ou ID de processus(PID)
  • PsList – liste des informations détaillées sur les processus
  • PsLoggedOn – permet de voir qui est connecté localement ou via le partage de ressources
  • PsLogList – permet de vider les enregistrements du journal des événements
  • PsPasswd – modifie les mots de passe des comptes
  • PsService – fournit des services de visualisation et de contrôle
  • PsShutdown – arrête ou redémarre un ordinateur
  • PsSuspend – suspend les processus

Netview est utilisé pour lister les ressources partagées d’un hôte distant ou d’un groupe de travail (workgroup).

  • net view \\<nom_ordinateur> : Indique l’ordinateur contenant les ressources partagées que vous souhaitez afficher.
  • net view /workgroup:<nom_workgroup> : Désigne les ordinateurs disponibles d’un workgroup. Si vous omettez nom_workgroup/workgroup affiche tous les groupes de travail du réseau.

3. Enumération SNMP

SNMP (Simple Network Management Protocol) est un protocole de la couche application qui utilise le protocole UDP pour maintenir et gérer les routeurs, concentrateurs, commutateurs et d’autres périphériques réseau. L’énumération SNMP est un processus qui permet d’énumérer les comptes d’utilisateurs et les périphériques d’un système cible en utilisant SNMP.

SNMP se compose d’un gestionnaire et d’un agent ; les agents sont intégrés sur chaque périphérique réseau et le gestionnaire est installé sur un ordinateur distinct.

Les chaînes de communauté sont des chaînes de caractères utilisées pour authentifier les communications entre les gestionnaires et les périphériques réseau sur lesquels les agents SNMP sont hébergés. Deux types de chaînes communautaires:

  • Lecture seule : ce mode permet d’interroger le périphérique et de lire les informations, mais ne permet aucune modification de la configuration. La chaîne de communauté par défaut pour ce mode est «public».
  • Lecture/Ecriture: dans ce mode, les modifications de l’appareil sont autorisées; par conséquent, si l’on se connecte avec cette chaîne de communauté, nous pouvons même modifier les configurations du périphérique distant. La chaîne de communauté par défaut pour ce mode est «private».

Lorsque les chaînes de la communauté sont laissées aux paramètres par défaut, les attaquants en profitent pour extraire des informations afin de trouver des failles. L’attaquant utilise SNMP pour extraire des informations sur les ressources du réseau comme les ables ARP, les tables de routage, le trafic, etc.

Base d’informations de gestion (MIB) :

  • MIB est une base de données virtuelle contenant une description formelle de tous les objets du réseau pouvant être gérés à l’aide de SNMP.
  • La base de données MIB est hiérarchique et chaque objet géré dans une MIB est identifié par un identificateur d’objet (OID).
  • L’OID comprend des objets de la MIB tel que  compteur, chaîne, adresse, le niveau d’accès, les restrictions et les informations de plage.
  • SNMP utilise l’espace de noms hiérarchique de la MIB contenant des identificateurs d’objet (OID) pour traduire les numéros OID en un affichage lisible par l’homme.

Outils SNMP: OpUtils, Engineer’s Toolset, Netscantools pro, SNMP informant, Nsauditor network security Auditor.

4. Enumération LDAP

Le protocole LDAP (Lightweight Directory Access Protocol) est un protocole Internet permettant d’accéder aux services d’annuaire distribués. Les services d’annuaire peuvent fournir des ensembles organisés d’enregistrements comme un annuaire de messagerie d’entreprise.

Un client démarre une session LDAP en se connectant à un agent de système d’annuaire (DSA) sur le port TCP 389 et envoie une demande d’opération au DSA. Les informations sont transmises entre le client et le serveur à l’aide des règles de codage de base (BER).

L’attaquant interroge le service LDAP pour collecter des informations, telles que les noms d’utilisateur valides, les adresses, les détails du service, etc., qui peuvent ensuite être utilisées pour effectuer des attaques.

Outils LDAP: Softerra LDAP Administrator, LDAP admin Tool, LDAP search.

5. Enumération NTP

Le protocole NTP (Network Time Protocol) est conçu pour synchroniser les horloges des ordinateurs en réseau. Il utilise le port UDP 123 comme principal moyen de communication.

NTP peut maintenir le temps à moins de 10 millisecondes (1/100 secondes) sur Internet. Il peut atteindre des précisions de 200 microsecondes ou mieux dans les réseaux locaux dans des conditions idéales.

L’attaquant interroge le serveur NTP pour recueillir des informations telles que :

  • Liste des hôtes connectés au serveur NTP,
  • Les adresses IP des clients dans un réseau,
  • Les IP internes obtenues si le serveur NTP est dans la DMZ.

Commandes d’énumération NTP :

  • ntptrace : Trace une chaîne de serveurs NTP jusqu’à la source principale
    • ntptrace [-vdn] [-r retries] [-t timeout] [server]
  • ntpdc : Surveille le fonctionnement du démon NTP, ntpd
  • ntpdc [ilnps] [-c command] [host] […]
  • ntpq : Surveille les opérations ntpd du démon NTP et détermine les performances
    • ntpq [-inp] [-c command] [host] […]

Outils d’énumération NTP : PRTG NETWORK MONITOR, Nmap, WIRESHARK, NTP TIME SERVER MONITOR.

6. Enumération SMTP

Les attaquants peuvent interagir directement avec SMTP via l’invite Telnet et collecter la liste des utilisateurs valides sur le serveur SMTP.

SMTP fournit trois (3) commandes :

  • VRFY : valide les utilisateurs
  • EXPN : indique les adresses de livraison réelles des alias et des listes de diffusion
  • RCPT TO : définit les destinataires du message

Outils pour l’énumération SMTP : NetScanToolsPro, smtp-user-enum(kali command).

7. Enumération par transferts de zones DNS

L’énumération par transfert de zones DNS est un processus de localisation des serveurs DNS et des enregistrements d’un réseau cible. L’attaquant peut collecter des informations précieuses sur le réseau, telles que les noms de serveur DNS, les noms d’hôte, les noms d’utilisateur, les adresses IP, etc.

Dans une énumération de transfert de zone DNS, l’attaquant tente de récupérer une copie du fichier de zone en entier pour un domaine à partir du serveur DNS.

Parmi les outils qu’on peut utiliser, il y a NSlookup.

8. Enumération IPSEC

Les attaquants peuvent sonder avec un outil tel que ike-scan pour énumérer des informations sensibles telles que le chiffrement, l’algorithme de hachage, le type d’authentification, la durée de vie SA, etc.

Une simple recherche d’ISAKMP sur le port UDP 500 peut indiquer la présence d’une passerelle VPN.

9. Enumération VoIP

La VoIP utilise le protocole SIP pour activer les appels vocaux et vidéo sur un réseau IP. SIP utilise généralement les ports UDP / TCP 2000, 2001, 5050, 5061.

L’énumération VOIP fournit des serveurs de passerelle VoIP, des logiciels clients, des extensions d’utilisateur. Ces informations sont suffisantes pour mener à bien plusieurs attaques comme DOS, l’usurpation d’identité de l’appelant, le spamming par téléphonie, le phishing VoIP (vishing).

Commandes pour faire de l’énumération VoIP :

  • service-isakmp 500/UDP,  
  • command  –  ike-scan -M IP

10. Enumération RPC

Un appel de procédure à distance (RPC) permet au client et au serveur de communiquer dans des programmes distribués de client / serveur.

L’énumération des points de terminaison RPC permettra aux attaquants d’identifier les services vulnérables sur les ports.

11. Enumération avec les utilisateurs LINUX/UNIX

Les commandes suivantes permettent de faire de l’énumération avec les utilisateurs LINUX/UNIX :

  • rusers – /usr/bin/rusers [-a] [-l] [-u] [-i] host
  • rwho – rwho [-a]
  • finger – finger [-l] [-m] [-p] user@host

Contre-mesures face à l’énumération


  1. SNMP

Pour éviter que l’énumération SNMP ne soit utilisée par les attaquants, il faut :

  • Supprimer ou désactiver les agents SNMP sur les hôtes,
  • Si l’arrêt de SNMP n’est pas une option, modifier les communautés par défaut,
  • Utiliser SNMPv3 (plus sécurisé),
  • Implémenter l’option de sécurité de stratégie de groupe appelée «Restrictions supplémentaires pour les connexions anonymes»,
  • S’assurer que l’accès aux canaux de session null, aux partages de session null et au filtrage IPSec est restreint.
  1. DNS

Pour éviter que l’énumération DNS ne soit utilisée par les attaquants, il faut :

  • Désactiver les transferts de zone DNS vers les hôtes non approuvés,
  • S’assurer que les détails d’hôtes privés ne sont pas publiés dans les fichiers de zone DNS des serveurs DNS public,
  • Utiliser des services d’enregistrement DNS premium qui cachent les informations sensibles au public,
  • Utiliser des contacts d’administrateur réseau standard pour les enregistrements DNS afin d’éviter les attaques d’ingénierie sociale.
  1. SMTP

Pour éviter que l’énumération SMTP ne soit utilisée par les attaquants, il faut :

  • Configurer le serveur SMTP pour ignorer les messages électroniques de destinataires inconnus,
  • Ne pas inclure les informations sensibles du serveur de messagerie et de l’hôte local dans les réponses par courrier,
  • Désactiver la fonction de relais ouvert,
  • Limiter le nombre de connexion à accepter.
  1. LDAP

Pour éviter que l’énumération LDAP ne soit utilisée par les attaquants, il faut :

  • Utiliser la technologie SSL ou STARTTLS pour crypter le trafic,
  • Utiliser un nom d’utilisateur différent pour votre adresse e-mail et activer le verrouillage du compte,
  • Utiliser l’authentification NTLM ou de base pour limiter l’accès aux utilisateurs connus uniquement.
  1. SMB

Pour éviter que l’énumération SMB  ne soit utilisée par les attaquants, il faut :

  • Désactiver le protocole SMB sur les serveurs Web et DNS,
  • Désactiver le protocole SMB sur les serveurs Internet,
  • Désactiver les ports TCP 139 et TCP 445 utilisés par le protocole SMB,
  • Restreindre l’accès anonyme via le paramètre « RestrictNullSessAccess » à partir du registre Windows.

L’énumération dans un test de pénétration


Dans un test de pénétration, l’énumération est utilisée pour identifier les comptes d’utilisateurs valides ou les partages de ressources mal protégés à l’aide de connexions actives aux systèmes et de requêtes dirigées.

Les informations peuvent être des noms utilisateurs et des groupes, des ressources et des partages réseau, des applications, etc. Ces informations sont utilisées en combinaison avec les données collectées lors de la phase de reconnaissance.

Les différentes étapes de l’énumération dans un test de pénétration sont :

  1. Rechercher la plage d’adresses du réseau à l’aide d’outils tels que whois, Lookup,
  2. Calculer le masque de sous-réseau à l’aide des calculateurs de masque de sous-réseau,
  3. Découvrir les hôtes à l’aide d’outils tels que Nmap,
  4. Effectuer une analyse de ports à l’aide d’outils tels que Nmap,
  5. Effectuer l’énumération NetBIOS à l’aide d’outils tels que Hyena et network security editor,
  6. Effectuer l’énumération SNMP à l’aide des outils tels que Oputils, Engineer’s toolset,
  7. Effectuer l’énumération LDAP à l’aide d’outils tels que Softerra LDAP Administrator,
  8. Effectuer l’énumération NTP à l’aide de commandes telles que ntptrace, ntpdc et ntpq,
  9. Effectuer l’énumération SMTP à l’aide d’outils tels que NetScanTools Pro,
  10. Effectuer l’énumération DNS à l’aide de NSLookup, des utilitaires Windows,
  11. Effectuer l’énumération avec VoIP, LINUX, IPSEC à l’aide de Nmap, ike-scan, Svmap, et NEtscantool pro,
  12. Documenter les résultats.

Démonstration avec Metasploit