Le balayage – Scanning

C’est quoi le balayage du réseau (Scanning) ?


Cela consiste à utiliser un ensemble de procédures utilisées pour identifier des hôtes, des ports et des services qui tournent derrière ces ports.

Le balayage fait partie des techniques de collectes d’information qui sont utilisées pour établir un profil de l’organisation cible.

Le balayage du réseau a pour but de :

  • découvrir les adresses IP et les ports ouverts sur les hôtes actifs.
  • découvrir les systèmes d’exploitation et l’architecture du système cible.
  • trouver les services actifs du réseau
  • découvrir les vulnérabilités du réseau

Les concepts du Balayage


Le balayage repose en général sur le protocole TCP qui fonctionne en mode connecté, parfois le protocole UDP est utilisé. Ce sont deux protocoles de la couche transport.

Le balayage avec le protocole TCP utilise le champ flags de l’entête TCP (SYN, ACK, FIN, RST, PSH et URG) :

  • SYN : pour initier une connexion entre émetteur et récepteur ;
  • ACK : pour l’acquittement ;
  • FIN : pour mettre fin une connexion, avec pré avis ;
  • RST : pour mettre fin brusquement une connexion, sans pré avis ;
  • PSH : pour délivrer les données sans attendre le remplissage des tampons
  • URG : pour signaler qu’un paquet est urgent.

Ces flags sont utilisés pour indiquer un état particulier de connexion ou pour fournir des informations utiles supplémentaires comme des fins de dépannage ou pour gérer un contrôle d’une connexion particulière.

Pour plus comprendre le protocole TCP et ses flags, consultez l’article sur TCP vs UDP.

Personnalisation de paquets en utilisant les flags TCP :

Les paquets personnalisés peuvent être utilisés pour auditer les réseaux afin d’identifier différentes attaques possibles.

Ils peuvent aussi être utilisés pour contourner les pare-feu et les systèmes de détection et de prévention d’intrusion (IDS/IPS) dans un réseau en créant des paquets fragmentés.

La plupart des outils utilisés sont les suivants : NetScanTools Pro, Ostinato, Colasoft Packet Builder, Packeth, WAN killer.

Démonstration avec Packeth :

Le protocole IP est utilisé, à côté des protocoles TCP et UDP, pour désigner la cible du balayage.

Le protocole IPv4 est le plus utilisé dans le domaine des réseaux.

Par contre, il existe un autre protocole qui est né, le protocole IPv6 :

  • Ce protocole, avec une taille de 128 bits, a un espace d’adressage plus large qu’IPv4 (de taille 32 bits)
  • le balayage des réseaux IPv6 est plus difficile et beaucoup plus complexe que celui des réseaux IPv4.
  • Beaucoup d’outils de balayage ne supportent pas le balayage par Ping sur les réseaux IPv6. Donc les attaquants ont seulement besoin de récupérer des données en écoutant le trafic du réseau, de regarder les logs, de voir les adresses IPv6, etc.
  • Vu qu’IPv6 permet d’adresser un très grand nombre d’hôtes dans un sous-réseau, si un hôte dans ce sous-réseau est compromis, cela peut contaminer tous les autres hôtes.

Les outils de balayage du réseau


Dans cette partie, nous allons vous présenter trois (3) outils très efficaces.

  1. Nmap

Nmap est utilisé par les administrateurs réseau pour faire l’inventaire du réseau, la gestion des plannings de mise à niveau des services et le contrôle la disponibilité des hôtes ou des services.

Il est aussi utilisé pour extraire des informations sur la cible telles que les hôtes actifs, les ports ouverts/filtrés, les types de paquet, les pare-feu, les systèmes d’exploitation, etc.

Pour plus de détails, visitez le site officiel de Nmap : https://nmap.org/book/man-port-scanning-techniques.html.

Démo : voir la partie qui traite les techniques de balayage

  1. Hping2 / Hping3

Hping est un outil qui permet de scanner un réseau et de créer des paquets pour le protocole TCP/IP.

Il est très utile dans l’audit de sécurité, le test de pare-feu, le traceroute avancé et l’identification d’un système d’exploitation.

Pour connaitre comment il fonctionne on peut taper la commande suivante : « hping3 –help ».

Une petite démonstration :

  1. NetScanTools Pro

Cet outil aide au dépannage, au diagnostic, à la surveillance et à la découverte de périphériques sur le réseau.

Il répertorie les adresses IPv4/IPv6, les noms d’hôte, les noms de domaine, les adresses email et les URLs.

Une petite démonstration :

Il existe d’autres outils similaires : SuperScan, OmniPeek, Megaping, IPScanner, Fing, FaceNiff.

Techniques de balayage et Contremesures


I. Les techniques de balayage

Le balayage peut être classé en type selon le protocole utilisé pour la communication.

  1. ICMP Scanning (le balayage par ICMP)

Cela consiste à faire des Ping, c’est-à-dire envoyer un paquet ICMP Echo Request à la cible et si cette dernière est active, elle va répondre par un paquet ICMP Echo Reply.

Il aide à déterminer les périphériques qui sont actifs dans un réseau et à savoir si les paquets ICMP sont autorisés à passer à travers un pare-feu.

ICMP est utilisé pour vérifier les systèmes en direct; ping est l’utilitaire le plus connu qui utilise les requêtes ICMP. Le balayage ping est une technique d’analyse ICMP, un exemple de balayage ping est illustré ici  ping <target> :

  1. PING SWEEP (le balayage par PING)

Cela permet de détecter les hôtes allumés en utilisant une plage d’adresses IP.

Cela consiste à envoyer un Ping et les hôtes allumés vont répondre. Alors l’attaquant va utiliser le masque de sous-réseau pour calculer le nombre d’hôtes présents dans le réseau.

dit le Ping Sweep va être utilisé pour faire l’inventaire des systèmes allumés se trouvant dans le réseau.

Outils : AngryIPScanner, NetScanTools pro, ColaSoft Ping Tool.

Démontration avec Angry IP Scanner :

  1. ICMP ECHO SCANNING (le balayage par ICMP ECHO)

ICMP ne se base pas sur les numéros de port. A la base, ce type de balayage ne permet pas de savoir les ports qui sont actifs sur un hôte, mais il est fait pour déterminer les hôtes actifs dans un réseau. Mais en plus de ça, il peut afficher les ports ouverts sur chaque hôte actif dans le réseau ciblé.

Démonstration :

Commande : nmap -P 192.168.2.0/24

  1. TCP Connect (le balayage par connexion TCP)

Le TCP Connect va révéler les ports ouvert après l’établissement de connexion TCP complète (Full Open Scan), c’est-à-dire que l’attaquant va envoyer une demande d’établissement de connexion sur un port à la cible (SYN), la cible va lui répondre avec un SYN-ACK si le port est ouvert et le service disponible et enfin l’attaquant confirme la connexion avec un ACK : c’est ce qu’on appelle 3-way Handshake.

L’établissement de la connexion est complet et la fermeture se fera brusquement en utilisant un paquet RST. Il ne requiert pas de privilèges d’un super utilisateur. Ce genre de scan est souvent détecté par les pare-feu et IDS/IPS qui le bloquent.

Démonstration :

Commande : nmap -sT 192.168.2.128

  1. STEALTH SCANNING (Balayage furtif)

Contrairement au Full TCP Connect, ce type de scan consiste à envoyer un SYN et lorsque la cible répond avec un SYN/ACK, l’attaquant sait que ce port est ouvert et envoie un RST pour interrompre la connexion : c’est ce qu’on appelle balayage semi-ouvert (Half Open Scan).

Il est difficile d’être détecté par un pare-feu. Cela aide à contourner les pare-feu en se cachant sous le trafic réseau.

Démonstration :

Commande : nmap -sS 192.168.2.128

  1. INVERSE TCP FLAG SCANNING

Cela consiste à envoyer des paquets FIN à la cible afin de déterminer les ports ouverts.

D’après le RFC 793, lors d’un envoi de paquet avec le flag FIN sur un port ouvert, il n’y aura pas de réponse. En revanche, si le port est fermé, un paquet RST est renvoyé. Ainsi on saura différencier le comportement d’un port ouvert et d’un port fermé.

Démonstration :

Commande : nmap -sF 192.168.2.128

  1. XMAS SCAN

Cela consiste à envoyer des paquets de sonde TCP contenant les flags FIN, URG, PSH.

Lorsque le port est ouvert, l’attaquant n’obtient aucune réponse de l’hôte cible, tandis que lorsque le port est fermé, il reçoit une réponse RST de l’hôte cible.

Démonstration :

Commande : nmap -sX 192.168.2.128

  1. ACK FLAG PROBE SCANNING

Cela consiste à envoyer des paquets ACK pour vérifier le système de filtrage de la cible.

Les attaquants analysent les informations d’en-tête des paquets RST pour voir si :

  • Le port est filtré : aucune réponse n’est reçue. Cela peut signifier que le pare-feu est activé ;
  • Le port n’est pas filtré : il y a une réponse (paquet RST reçu).

Démonstration :

Commande : nmap -sA 192.168.2.129

  1. UDP SCANNING (balayage UDP)

L’analyse UDP utilise le protocole UDP pour tester si le port est ouvert ou fermé. 

Dans cette analyse, il n’y a aucune manipulation de flags. Par contre, ICMP est utilisé.

Si un paquet est envoyé à un port et que le paquet « ICMP port Unreachable» est renvoyé, cela signifie que le port est fermé. Cependant, s’il n’y a pas de réponse, le port est ouvert.

Les logiciels espions, chevaux de Troie et les applications malveillantes utilisent des ports UDP.

Démonstration :

Commande : nmap -sU 192.168.2.128

  1. SSDP et LIST SCANNING

Le protocole de découverte de service (SSDP) est un protocole réseau qui permet de détecter les périphériques à exécution automatique (UPnP – Plug and Play). Les attaquants utilisent cette analyse pour exploiter les vulnérabilités UPnP et effectuer des dépassements de tampon (Buffer OverFlow) ou des attaques par Déni de service (DoS).

L’analyse de liste (List Scanning) découvre indirectement les hôtes. Cette analyse fonctionne en répertoriant les adresses IP et les noms de domaine sans pinger les hôtes et en effectuant une résolution DNS inverse pour identifier les noms de domaine.

II. Les contremesures

  1. Configurer des règles de pare-feu et des systèmes de détection et prévention d’intrusion (IDS/IPS) pour détecter et bloquer les sondes.
  2. S’assurer que les routeurs, les IDS/IPS, les pare-feu, etc. sont à jours.
  3. Utiliser un ensemble de règles personnalisées pour verrouiller le réseau et bloquer les ports qui ne sont pas utilisés.
  4. Filtrer tous les messages ICMP sur les pare-feu et les routeurs.
  5. Réaliser des scans TCP et UDP de l’organisation pour vérifier l’état des configurations et des ports.
  6. S’assurer que les règles d’anti scanning et d’anti usurpation sont très bien configurées.

Balayage au-delà des pare-feu et IDS


I. Les techniques d’évasion aux IDS et aux pare-feu

Il y a plusieurs techniques qui permettent de contourner les pare-feu et les IDS/IPS.

  1. PACKET FRAGMENTATION (FRAGMENTATION DE PAQUET)

C’est l’envoi de paquets fragmentés à un serveur par exemple. Cela consiste à fragmenter un paquet de sonde en plusieurs petits paquets lors de son envoi vers un réseau.

L’en-tête TCP est divisé en plusieurs petits paquets afin que les filtre de paquets ne soient pas en mesure de détecter ce que le paquet a l’intention de faire.

Exemple de commande : nmap -sS -T4 -A -f -v « @ IP de la cible ».

Regardez la vidéo suivante pour voir ce que cette commande va générer :

  1. SOURCE ROUTING (ROUTAGE PAR LA SOURCE)

C’est la spécification de la route pour que le paquet atteigne le serveur.  Le paquet traverse les nœuds du réseau. D’habitude, chaque routeur va examiner l’adresse IP de destination et choisit le prochain routeur où envoyer le paquet en fonction de sa table de routage.

Mais ici, le Source Routing consiste à envoyer le paquet sur une route spécifiée par l’expéditeur pour échapper aux pare-feu et aux IDS/IPS.

Ces décisions seront prises au niveau du routeur source.

  1. IP ADDRESS DECOY (ADRESSE IP DE LEURRE)

Cela consiste à utiliser beaucoup d’adresses IP (decoy1,decoy2,decoy3,…, etc.) lors du scan. Dans ce cas le pare-feu ou l’IDS/IPS va voir beaucoup d’adresses IP et il sera difficile de savoir qui est réellement en train de scanner et qui sont les leurres. C’est une technique d’évasion très utile.

Exemples de commandes sous nmap : nmap -D RND:10 [IP]

                                                                          nmap -D decoy1,decoy2,decoy3….etc

Démonstration :

Pour plus de details : https://nmap.org/book/man-bypass-firewalls-ids.html.

  1. IP ADDRESS SPOOFING (Usurpation d’adresse IP)

Cela consiste à changer l’adresse IP source et faire croire que ça vient de quelqu’un d’autre. De ce fait, si le destinataire répond, cela va être envoyé à l’adresse usurpée mais pas à l’attaquant.

Les attaquants modifient les informations de l’adresse dans l’en-tête IP.

Exemples de commande : hping3 192.168.2.129 -a 8.8.8.8.

Démonstration :

Les techniques de détection d’usurpation d’adresse IP :

Il existe différentes techniques pour détecter l’IP Spoofing :

  • Envoyer un paquet à l’hôte suspecté d’avoir été usurpé qui va à son tour répondre. Le TTL de cette réponse va être comparé avec celui du paquet suspect ; si ce n’est pas les mêmes, on en conclue qu’il y usurpation. Cette technique ne donne un succès que si l’attaquant et la victime sont dans des sous réseau différents.
  • Envoyer une sonde à l’hôte suspecté d’avoir été usurpé pour déclencher une réponse, puis comparer les ID des IP, s’ils ne sont pas proches alors il y a usurpation. Cette technique réussie même si l’attaquant est dans le même sous réseau que la victime.
  • Méthode de contrôle de flux TCP : les attaquants ne recevront pas de paquets SYN/ACK, donc ils ne seront pas sensibles à la taille de la fenêtre de congestion. Si le trafic continue après l’épuisement de la taille de fenêtre, alors il y a une forte probabilité qu’il ait usurpation.
  1. Les PROXY (Mandataires)
  1. 1. Les serveurs proxy

Un serveur proxy est un serveur qui sert de mandataire pour effectuer une tâche à votre place. Il peut être une application qui sert d’intermédiaire pour se connecter à d’autres ordinateurs de façon anonyme.

Pourquoi utiliser un serveur proxy ?

  • Pour masquer la véritable source du scan et échapper aux restrictions des pare-feu et IDS/IPS.
  • Pour masquer la véritable source de l’attaque en utilisant une adresse source fausse de proxy.
  • Pour accéder à distance à des sites web normalement interdits.
  • Pour mettre en chaîne plusieurs serveurs proxy afin d’éviter la détection
  • Pour interrompre toutes les requêtes envoyées par un utilisateur et les transmettre à un troisième destinataire, donc les victimes ne peuvent identifier que l’adresse du serveur proxy.
  1. 2. Le chainage proxy

Le chainage de proxy se fait comme suit :

1) Le client proxy demande une ressource

2) Sa demande est transmise au serveur proxy

3) Le serveur proxy supprime les informations d’identification de l’utilisateur et transmet la requête au serveur suivant.

4) Cela va être répété en chaine 

5) À la fin, la demande non chiffrée est transmise au serveur Web.

Les outils PROXY : – Proxy Switcher, Proxy Workbench, CyberGhost, TOR, Proxifier,

Pour MOBILES : – Shadowsocks, ProxyDroid, Netshade, Proxy manager.

Démonstration sur Proxy Workbench :

II. Les contremesures

Les contremesures à appliquer :

  • Crypter le trafic réseau en utilisant les protocoles cryptographiques comme IPSec, TLS, SSH, HTTP.
  • Utiliser plusieurs pare-feu
  • Utiliser un numéro de séquence initial aléatoire
  • Filtrer les trafics entrants
  • Filtrer les trafics sortants
  • Ne pas se fier à l’authentification basée sur IP

Les ANONYMISEURS 


Un anonymiseur permet à un utilisateur d’internet de se connecter à d’autres sites sans qu’il soit visible. Un anonymiseur supprime toutes les informations d’identification concernant l’ordinateur d’un utilisateur pendant qu’il surfe sur Internet.

Les anonymiseur rendent l’activité sur Internet non traçables. Ils permettent aussi de contourner les censeurs sur Internet

Pourquoi ?

Les anonymiseurs sont utilisés pour :

  • préserver la confidentialité et l’anonymat ;
  • contourner les règles d’IDS/IPS et des pare-feu ;
  • se protéger des attaques en ligne ;
  • faciliter l’accès au contenu restreint

Exemples d’outils : WHONIX-Desktop (système d’exploitation utilisé pour la sécurité avancée), JonDo, Proxify, Psiphon.

Outils pour mobile : ORBOT, PSIPHON, OPENDOOR.

Les outils de contournement et de censure (ALKASIR et TAILS) :

ALKASIR est un outil multiplateforme permettant de cartographier les modèles de censure du monde entier.

TAILS est un système d’exploitation à utiliser facilement en live via un CD/DVD, USB, carte SD.

La capture de bannière (Banner Grabbing)


Cela est utilisé pour déterminer le système d’exploitation qui tourne sur un système distant.

Il existe deux (2) types de capture de bannière :

  • Active : paquets conçus spécialement, implémentation de pile TCP/IP, détermination du système d’exploitation.
  • Passive : lesmessages d’erreur, renifler le trafic réseau, les extensions de pages (.aspx).

Cela se fait en analysant le TTL (Time To Live) et taille de la fenêtre dans l’entête IP du premier paquet de la session TCP.

Les Contremesures :

Les contremesures à appliquer :

  • Afficher de fausses bannières pour tromper les attaquants
  • Désactiver les services qui ne sont pas nécessaire
  • Masquer le serveur
  • Masquer les technologies web
  • l vaut mieux que les extensions de fichiers ne soient pas utilisées.

Dessin de diagrammes du réseau 


Un diagramme réseau montre le chemin physique or logique vers une cible potentielle, ce qui donne des informations précieuses sur le réseau et son architecture.

Outils de cartographie : NETWORK TOPOLOGY MAPPER, NETBRAIN, OPMANAGER.

Outils pour mobile : SCANY, NETWORK-SWISS ARMY KNIFE, FING, NETWORK MAPPER.

Démonstration sur NETWORK TOPOLOGY MAPPER :

Le balayage pour un test de pénétration


Cela consiste à déterminer la posture de sécurité du réseau en identifiant à distance les systèmes actifs, les ports ouverts, les services qui tournent derrière ces ports, les capture de bannières pour simuler une tentative de piratage du réseau.

Cela aide l’administrateur à :

  • fermer les ports non utilisés
  • Désactiver les services non nécessaires
  • Masquer ou personnaliser les bannières
  • Résoudre les erreurs de configuration des services
  • Calibrer les règles des pare-feu

Comment faire un test de pénétrations étape par étape :

  1. effectuer la découverte d’hôte, avec des outils comme Nmap, Angry Ip scanner.
  2. effectuer un balayage de port, avec des outils comme Nmap, Netscan Tools, etc.
  3. faire un balayage au-delà des IDS/IPS et des pare-feu, en utilisant des techniques comme Packet Fragmentation, Source routing, etc.
  4. effectuer la capture de bannière/empreinte digitale de S.E : en envoyant des paquets spécialement conçus et renifler les réponses.
  5. dessin des diagrammes du réseau en utilisant Topology Mapper, OpManager, etc.
  6. Documenter tous les résultats.