Découvrir les failles de sécurité avec nmap

Découvrir les failles de sécurité avec nmap

  1. Objectifs

    • Être capable de découvrir les failles de sécurité avec nmap
  2. Présentation

    • En utilisant des programmes d’analyse de réseau, vous pouvez obtenir un aperçu des faiblesses possibles de votre réseau d’entreprise. Ce guide présente trois techniques d’analyse de base à l’aide du scanner de ports nmap. Ils sont conçus pour identifier les terminaux et découvrir les services qu’ils fournissent. Nous montrons ensuite deux techniques que vous pouvez utiliser pour sécuriser les points faibles trouvés.
    • En utilisant le programme nmap, vous pouvez explorer la structure de votre réseau. Il s’agit essentiellement d’un outil de piratage, car il utilise des outils de mise en œuvre de divers protocoles réseau. Il trouve les terminaux sur le réseau, les analyse pour exécuter des programmes de serveur et détermine quels programmes sont utilisés. De cette façon, nmap fournit une grande quantité de détails sur votre réseau d’entreprise.
  3. Résumé des options

    • Ce résumé des options est affiché quand Nmap est exécuté sans aucun argument; la plus récente version est toujours disponible sur http://www.insecure.org/nmap/data/nmap.usage.txt.
    • Il sert d’aide-mémoire des options les plus fréquemment utilisées, mais ne remplace pas la documentation bien plus détaillée de la suite de ce manuel. Les options obscures n’y sont pas incluses.
    • SPÉCIFICATIONS DES CIBLES:
      • Les cibles peuvent être spécifiées par des noms d’hôtes, des adresses IP, des adresses de réseaux, etc.
        Exemple: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0-255.0-255.1-254
        -iL <inputfilename>: Lit la liste des hôtes/réseaux cibles à partir du fichier
        -iR <num hosts>: Choisit les cibles au hasard
        --exclude <host1[, host2][,host3],...>: Exclut des hôtes/réseaux du scan
        --excludefile <exclude_file>: Exclut des hôtes/réseaux des cibles à partir du fichier
    • DÉCOUVERTE DES HÔTES:
      • -sL: List Scan – Liste simplement les cibles à scanner
        -sP: Ping Scan – Ne fait que déterminer si les hôtes sont en ligne -P0: Considère que tous les hôtes sont en ligne — évite la découverte des hôtes
        -PN: Considérer tous les hôtes comme étant connectés — saute l’étape de découverte des hôtes
        -PS/PA/PU [portlist]: Découverte TCP SYN/ACK ou UDP des ports en paramètre
        -PE/PP/PM: Découverte de type requête ICMP echo, timestamp ou netmask
        -PO [num de protocole]: Ping IP (par type)
        -n/-R: Ne jamais résoudre les noms DNS/Toujours résoudre [résout les cibles actives par défaut]
        --dns-servers <serv1[,serv2],...>: Spécifier des serveurs DNS particuliers
    • TECHNIQUES DE SCAN:
      • -sS/sT/sA/sW/sM: Scans TCP SYN/Connect()/ACK/Window/Maimon
        -sN/sF/sX: Scans TCP Null, FIN et Xmas
        -sU: Scan UDP
        --scanflags <flags>: Personnalise les flags des scans TCP
        -sI <zombie host[:probeport]>: Idlescan (scan passif)
        -sO: Scan des protocoles supportés par la couche IP
        -b <ftp relay host>: Scan par rebond FTP
        --traceroute: Détermine une route vers chaque hôte
        --reason: Donne la raison pour laquelle tel port apparait à tel état
    • SPÉCIFICATIONS DES PORTS ET ORDRE DE SCAN:
      • -p <plage de ports>: Ne scanne que les ports spécifiés
        Exemple: -p22; -p1-65535; -pU:53,111,137,T:21-25,80,139,8080
        -F: Fast – Ne scanne que les ports listés dans le fichier nmap-services
        -r: Scan séquentiel des ports, ne mélange pas leur ordre
        --top-ports <nombre>: Scan <nombre> de ports parmis les plus courants
        --port-ratio <ratio>: Scan <ratio> pourcent des ports les plus courants
    • DÉTECTION DE SERVICE/VERSION:
      • -sV: Teste les ports ouverts pour déterminer le service en écoute et sa version
        --version-light: Limite les tests aux plus probables pour une identification plus rapide
        --version-intensity <niveau>: De 0 (léger) à 9 (tout essayer)
        --version-all: Essaie un à un tous les tests possibles pour la détection des versions
        --version-trace: Affiche des informations détaillées du scan de versions (pour débogage)
    • SCRIPT SCAN:
      • -sC: équivalent de –script=safe,intrusive
        --script=<lua scripts>: <lua scripts> est une liste de répertoires ou de scripts séparés par des virgules
        --script-args=<n1=v1,[n2=v2,...]>: passer des arguments aux scripts
        --script-trace: Montre toutes les données envoyées ou recues
        --script-updatedb: Met à jour la base de données des scripts. Seulement fait si -sC ou –script a été aussi donné.
    • DÉTECTION DE SYSTÈME D’EXPLOITATION:
      • -O: Active la détection d’OS
        --osscan-limit: Limite la détection aux cibles prométeuses –osscan-guess: Détecte l’OS de façon plus agressive
        --osscan-guess: Devine l’OS de facon plus agressive
    • TEMPORISATION ET PERFORMANCE:
      • Les options qui prennent un argument de temps sont en milisecondes a moins que vous ne spécifiiez ‘s’ (secondes), ‘m’ (minutes), ou ‘h’ (heures) à la valeur (e.g. 30m).
      • -T[0-5]: Choisit une politique de temporisation (plus élevée, plus rapide)
        --min-hostgroup/max-hostgroup <msec>: Tailles des groupes d’hôtes à scanner en parallèle
        --min-parallelism/max-parallelism <nombre>: Parallélisation des paquets de tests (probes)
        --min_rtt_timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Spécifie le temps d’aller-retour des paquets de tests
        --min_rtt_timeout/max-rtt-timeout/initial-rtt-timeout <msec>: Spécifie le temps d’aller-retour des paquets de tests
        --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Précise le round trip time des paquets de tests.
        --max-retries <tries>: Nombre de retransmissions des paquets de tests des scans de ports.
        --host-timeout <msec>: Délai d’expiration du scan d’un hôte
        --scan-delay/--max_scan-delay <msec>: Ajuste le délai de retransmission entre deux paquets de tests
        --scan-delay/--max-scan-delay <time>: Ajuste le delais entre les paquets de tests.

    • ÉVASION PARE-FEU/IDS ET USURPATION D’IDENTITÉ:
      • -f; --mtu <val>: Fragmente les paquets (en spécifiant éventuellement la MTU)
        -D <decoy1,decoy2[,ME],...>: Obscurci le scan avec des leurres
        -S <IP_Address>: Usurpe l’adresse source
        -e <iface>: Utilise l’interface réseau spécifiée
        -g/--source-port <portnum>: Utilise le numéro de port comme source
        --data-length <num>: Ajoute des données au hasard aux paquets émis
        --ip-options <options>: Envoi des paquets avec les options IP spécifiées.
        --ttl <val>: Spécifie le champ time-to-live IP
        --spoof-mac <adresse MAC, préfixe ou nom du fabriquant>: Usurpe une adresse MAC
        --badsum: Envoi des paquets TCP/UDP avec une somme de contrôle erroné.
    • SORTIE:
      • -oN/-oX/-oS/-oG <file>: Sortie dans le fichier en paramètre des résultats du scan au format normal, XML, s|<rIpt kIddi3 et Grepable, respectivement
        -oA <basename>: Sortie dans les trois formats majeurs en même temps
        -v: Rend Nmap plus verbeux (-vv pour plus d’effet)
        -d[level]: Sélectionne ou augmente le niveau de débogage (significatif jusqu’à 9)
        --packet-trace: Affiche tous les paquets émis et reçus
        --iflist: Affiche les interfaces et les routes de l’hôte (pour débogage)
        --log-errors: Journalise les erreurs/alertes dans un fichier au format normal
        --append-output: Ajoute la sortie au fichier plutôt que de l’écraser
        --resume <filename>: Reprend un scan interrompu
        --stylesheet <path/URL>: Feuille de styles XSL pour transformer la sortie XML en HTML
        --webxml: Feuille de styles de références de Insecure.Org pour un XML plus portable
        --no_stylesheet: Nmap n’associe pas la feuille de styles XSL à la sortie XML
    • DIVERS:
      • -6: Active le scan IPv6
        -A: Active la détection du système d’exploitation et des versions
        --datadir <dirname>: Spécifie un dossier pour les fichiers de données de Nmap
        --send-eth/--send-ip: Envoie des paquets en utilisant des trames Ethernet ou des paquets IP bruts
        --privileged: Suppose que l’utilisateur est entièrement privilégié -V: Affiche le numéro de version
        --unprivileged: Suppose que l’utilisateur n’a pas les privilèges d’usage des raw socket
        -h: Affiche ce résumé de l’aide
    • EXEMPLES:
      • nmap -v -A scanme.nmap.org
        nmap -v -sP 192.168.0.0/16 10.0.0.0/8
        nmap -v -iR 10000 -P0 -p 80



  4. Rechercher des terminaux dans le réseau

    • Détection de machines
      • Trouvez tous les dispositifs terminaux situés dans les mêmes domaines de diffusion.
      • Il permet de lister les machines disponibles sur le réseau, et retourne leur IP, leur adresse MAC, et éventuellement leur nom d’hôte.
      • Découvrir les failles de sécurité avec nmap

      • Le scan se fait à l’aide de requêtes ARP sur toutes les IP possibles, à condition qu’elles soient dans notre sous-réseau.
      • Si les IP de destination sont dans un autre sous réseau, des requêtes de Ping sont utilisées.
      • Des requêtes DNS inverses sont ensuite lancées pour les IP des machines qui ont répondu.
      • Les requêtes sont envoyées au serveur DNS.
      • Il est possible de lancer un scan légèrement différent avec l’option « sL ».
    • Scan de ports



      • Maintenant que nous avons connaissance des hôtes présents sur le réseau, il peut être intéressent d’en savoir un peu plus sur ceux–ci.
      • Le port est ce qui permet à l’ordinateur de rediriger les données venant du réseau vers la bonne application.
      • Sur une machine, les ports peuvent avoir 3 états :Ouverts, Fermés ou Filtrés
        • Si le port est ouvert, c’est qu’une application écoute sur ce port. Par exemple, si le port 80 est ouvert, c’est qu’il y a probablement un serveur Web qui est hébergé sur la machine. Un port ouvert accepte les connections TCP ou les messages UDP.
        • Si le port est fermé, c’est qu’aucune application n’écoute sur ce port. Le port est tout de même joignable. Il indique par des messages que le port est fermé.
        • Si le port est filtré, c’est qu’un Firewall bloque le port. Le port ne répond alors à aucun message.
      • Scan TCP SYN
        • nmap -sS 192.168.1.4
      • Recherche de ports UDP ouverts
        • Trouver des ports UDP ouverts est nettement plus difficile. Contrairement à TCP, UDP n’est pas basé sur la connexion. Puisqu’il n’y a pas de poignée de main à trois, la réponse de l’autre extrémité ne peut pas être prédite.
        • nmap -sU 1 192.168.1.4
      • Recherche de ports TCP et UDP ouverts dans la même exécution
        • Pour trouver les deux ports TCP et UDP ouverts en même temps, vous pouvez également combiner les commandes :
        • nmap -sS -sU 192.168.1.4
    • Détermination du système d’exploitation et des programmes serveur
      • Pour savoir quels services s’exécutent sur un terminal, nmap peut analyser les réponses des ports ouverts. Ces programmes envoient souvent eux-mêmes une grande quantité d’informations, par exemple leur numéro de version ou les protocoles qu’ils prennent en charge. Nmap évalue ces informations et les résume.
      • nmap -Sv 192.168.1.4