kirill_makarov - Fotolia

Réseau : identifiez les failles avec l’outil Open source Masscan

Masscan permet d’évaluer rapidement les ports ouverts et les services à l’écoute, mais il est utile de l’associer à d’autres outils de scan, tels que Nmap.

Les scanners de ports sont des outils importants qui permettent aux administrateurs et au personnel de sécurité (ainsi qu'aux acteurs malveillants) d'identifier les services ouverts et à l'écoute sur un réseau et, par conséquent, de déterminer les points d'entrée potentiels dans les ordinateurs.

Masscan est un logiciel open source très populaire. Contrairement à Nmap, sans doute le scanner de ports le plus connu, Masscan est un scanner rapide qui identifie les ports ouverts sans fournir d’informations excédentaires, ce qui le rend idéal pour les grands réseaux, y compris Internet.

Cet article explique comment utiliser Masscan pour les tests de pénétration, l'audit réseau et le dépannage de manière générale.

L'importance du balayage des ports

Le balayage des ports est un élément crucial de l'administration et de la sécurité des systèmes. L'utilisation de scanners de ports permet aux professionnels de l'informatique de déterminer les éléments suivants :

  • Les ports ouverts et les services disponibles.
  • Les vulnérabilités potentielles liées à des configurations incorrectes ou à des politiques obsolètes.
  • Les inventaires des périphériques et des actifs réseau.
  • Les paramètres du pare-feu.
  • Les modifications apportées aux configurations réseau.

Masscan fait partie des nombreux scanners de ports disponibles, parmi lesquels Nmap, qui peut être plus détaillé, complexe et lent que ne l'exigent certains cas d'utilisation, et Angry IP Scanner, un scanner de ports rapide et convivial conçu pour identifier les ports ouverts et les hôtes actifs sur les petits réseaux.

La vitesse de Masscan sur les grands réseaux en fait une option intéressante pour les administrateurs qui souhaitent effectuer une analyse rapide et basique des hôtes disponibles et des ports ouverts. Il évite les analyses plus approfondies, telles que la détection du système d'exploitation ou les scripts d'analyse, ce qui lui permet d'atteindre ses objectifs d'analyse de base.

Comment compiler et exécuter Masscan

Masscan fonctionne sous Linux, macOS et Windows. Selon votre système d'exploitation préféré, vous devrez peut-être le compiler vous-même. Attendez-vous à obtenir les meilleures performances sous Linux, en particulier pour les tâches d'analyse très volumineuses. Selon le fournisseur, macOS et Windows n'envoient qu'environ 300 000 paquets par seconde, tandis que Linux peut en envoyer 1,5 million par seconde.

Plusieurs options s'offrent à vous pour obtenir Masscan. Si vous ne vous sentez pas capable de le compiler vous-même, vous pouvez trouver des versions précompilées en ligne. Assurez-vous que la source est fiable et recherchez toujours la version la plus récente.

Pour le compiler sur un système Linux, tapez :

sudo apt-get --assume-yes install git make gcc

git clone https://github.com/robertdavidgraham/masscan

cd masscan

make

make install

Utilisez des processus similaires sur macOS et Windows. L'application étant écrite en C, elle est portable. Vous pouvez également utiliser Kali Linux, ParrotOS ou BlackArch pour exécuter Masscan.

Exemples d'analyses Masscan

La simplicité de Masscan signifie qu'il n'y a pas beaucoup d'options ou de variations à apprendre. Lorsque vous apprendrez à utiliser Masscan, vous constaterez que son exécution nécessite principalement de spécifier les adresses et les ports cibles. Vous pouvez également rediriger la sortie standard vers un fichier.

Utilisez les exemples suivants pour créer vos propres analyses.

Analysez un seul port sur un segment de réseau IPv4 en tapant :

masscan -p80 10.0.0.0/8

Screenshot des résultats d'un scan Masscan sur un seul port.
Résultats d'un scan Masscan sur un seul port.

Les résultats s'affichent à l'écran, mais vous pouvez rediriger la sortie vers un fichier pour une analyse ultérieure (plus d'informations à ce sujet ci-dessous).

Analysez plusieurs ports à l'aide de l'option -p et en séparant les numéros de port souhaités par des virgules. Par exemple, pour analyser les services Web, tapez -p80,443.

masscan -p80,443 10.0.0.0/8

Analysez une plage de ports à l'aide d'une valeur telle que -p6000-7000 pour couvrir tous les ports compris entre 6000 et 7000. Cette fonctionnalité est particulièrement utile si vous disposez de plusieurs applications utilisant des ports personnalisés ou non standard.

masscan -p6000-7000 10.0.0.0/8

Utilisez un fichier de configuration pour des analyses répétables. Masscan propose plusieurs options de base pour modifier les capacités d'analyse. Par exemple, définissez une valeur --max-rate pour définir le nombre de paquets par seconde envoyés lors de l'analyse. La valeur par défaut est de seulement 100 paquets par seconde, il peut donc être intéressant de la modifier en --max-rate 100000 ou plus. N'oubliez pas que Windows et macOS sont plus limités que Linux à cet égard.

Vous pouvez également utiliser un fichier texte pour exclure des ports particuliers si vous devez effectuer des analyses très spécifiques ou éviter certains ports. Soyez particulièrement prudent si vous analysez Internet, car votre analyse pourrait vous faire figurer sur une liste noire.

Spécifiez un fichier exclude.txt à l'aide du drapeau --excludefile.

masscan 0.0.0.0/0 -p-65365 --excludefile exclude.txt

Une fois encore, mettez soigneusement à jour ce fichier afin de spécifier les zones d'Internet à éviter. Évitez d'analyser Internet lui-même et effectuez plutôt des évaluations plus ciblées à l'intérieur des limites de votre propre réseau.

Étant donné que l'analyse du réseau est souvent une tâche récurrente dans l'audit et la détection des vulnérabilités, vous pouvez spécifier des paramètres détaillés dans un fichier de configuration, puis appeler ce fichier lorsque vous êtes prêt à effectuer l'analyse. Vous pouvez même planifier cette tâche à l'aide de cron, un planificateur basé sur le temps dans les systèmes d'exploitation de type Unix qui vous permet de planifier l'exécution de commandes à des dates et heures spécifiques.

Commencez par créer le fichier de configuration :

# Basic scan ports 0-1023 for my internal network

rate = 100000

output-format = xml

output-status = all

output-filename = internal-scan.xml

ports = 0-1023

range = 0.0.0.0-255.255.255.255

excludefile = exclude-ports.txt

Nommez le fichier customscan.conf ou tout autre nom de votre choix. Ensuite, spécifiez le fichier de configuration dans votre commande masscan :

masscan -c customscan.conf

Analysez des plages d'adresses IPv6 sans aucun indicateur supplémentaire. N'oubliez pas que les réseaux IPv6 peuvent être immenses, alors planifiez soigneusement vos analyses et limitez-les.

Comment définir les formats de sortie

Masscan peut générer des résultats dans plusieurs formats courants. Utilisez le résumé suivant pour déterminer l'option qui correspond le mieux à vos besoins :

  • Binaire. Format par défaut, lisible à l'aide de l'option --readscan.
  • Filtrable par grep. Utilisez l'option -oG <nom de fichier.txt> pour générer la sortie dans un format facilement consultable avec grep et des outils similaires.
  • Liste. Utilisez l'option -oL <nom de fichier.txt> pour afficher la sortie sous forme de liste ligne par ligne contenant l'hôte et un port.
  • XML. Utilisez l'option -oX <nom de fichier.xml> pour afficher la sortie au format XML.
  • JSON. Utilisez l'option -oJ <nom de fichier.json> pour afficher la sortie au format JSON.
Obtenez les résultats de numérisation Masscan dans le format de votre choix.
Obtenez les résultats de numérisation dans le format de votre choix.

N'oubliez pas que ces fichiers peuvent être volumineux selon les options d'analyse sélectionnées.

Masscan ou Nmap ?

La plupart des professionnels des réseaux et de la sécurité ont déjà utilisé Nmap ; Masscan imite délibérément cet outil omniprésent. Nmap offre beaucoup plus d'options et de flexibilité, mais Masscan s'appuie sur de nombreux paramètres et approches parallèles. Considérez les points suivants :

  • Nmap est capable de résoudre les noms ; Masscan ne l'est pas.
  • Masscan nécessite le paramètre -p<numéro de port>.
  • Les options de sortie, telles que -oX ou -oG, sont identiques.

Utilisez la commande masscan --nmap pour afficher la liste des paramètres spécifiques communs aux deux outils.

Masscan offre des analyses simples et rapides des grands réseaux. Si des outils tels que Nmap offrent davantage d'options, ils sont également plus lents et plus complexes à utiliser. La plupart des professionnels des réseaux et de la sécurité utiliseront probablement les deux outils, afin de tirer le meilleur parti des atouts de chacun.

Pour approfondir sur Administration de réseaux