La collecte d'information Les outils nécessaire pour la collecte d'informations à distance.

Introduction

Cet article va décrire les outils permettant de récupérer des informations à distance. Ces utilitaires sont fréquemment utilisés par les pirates pour préparer de futures attaques. C'est pour cette raison qu'il est indispensable de les connaitre dès le début. Attention: Le scanning de port est considéré comme une intrusion. Il est donc interdit de scanner un réseau qui ne nous appartient pas.

Le Scanner

L'objectif du pirate est de repérer les serveurs offrant des services particuliers et de les identifier. Pour obtenir ces informations, le pirate va utiliser un scanner. Le but de ce paragraphe est de présenter des méthodes de protections contre le scan (en utilisant des règles de firewalling sous iptables/ipchains par exemple) et de savoir utiliser un scanner pour anticiper les futures attaques. Le scanner décrit dans ce chapitre est `Nmap`, un des scanners les plus utilisés et un des plus performants. Nmap est disponible sous Windows et Linux en paquet dans toutes les distributions majeures. La version décrite dans ce chapitre étant celle disponible sous Linux. Je décrirai dans une première partie ce qu'est un scanner. Ensuite, je me focaliserai sur Nmap et je le présenterai d'un point de vue un peu plus technique, permettant de comprendre les différentes méthodes de protection.

Qu'est ce qu'un scanner

C'est très simple : lorsqu'un serveur offre un service particulier (Web, messagerie, mail), il exécute un programme assurant ce service. Ce programme est en attente de connexions. Les clients devant accéder à ce service doivent connaître l'adresse IP du serveur et le numéro de port associé au service. Ce numéro de port a été attribué suivant le document standard RFC10102 au programme exécutant ce service. Sur les systèmes Unix, Linux et BSD la liste de ces numéros est disponible dans le fichier /etc/services. La plupart des services ont un numéro de port bien défini. Par exemple, un serveur de messagerie utilise le port 25, un serveur Web le port 80, WEB SSL le port 443 ... Lorsqu'un service est en écoute sur un port, on dit que le numéro de port associé à ce service est ouvert. L'intérêt du scanner est très simple : il permet de trouver dans un délai très court, tous les ports ouverts sur une machine distante. Il existe différents types de scanner, certains se contentent juste de donner : la liste des ports ouverts, le type et la version de l'OS tournant sur le serveur. D'autres scanners comme Nessus3 permettent de tester différentes failles connues sur ces services.

Quel est l'intêret d'utiliser
un scanner (comme Nmap) ?

Nmap permet de pouvoir prévoir les futures attaques, et aussi de pouvoir connaître quels services tournent sur une machine. Une installation faite un peu trop vite peut laisser des services en écoute (donc des ports ouverts sans que cela ne soit nécessaire) et donc vulnérables à une attaque. N'hésitez pas à utiliser Nmap contre vos serveurs pour savoir quels ports sont en écoute.

Nmap est un logiciel très complet et très évolutif, et il est une référence dans le domaine du scanning.

Comment marche Nmap:

Pour connaître les ports ouverts sur une machine, Nmap procède à l'envoi de paquets sur tous les ports de cette machine et analyse les réponses. Bien sûr, il y a différents types de scans, donc différents types d'envois et donc, différents types de réponses.

Scans utilisant le protocole TCP (les scans UDP et ICMP étant possibles eux aussi). :

  • Le scan vanilla TCP connect:Nmap procède à l'appel de la fonction connect() sur tous les ports de la machine. Ce type de scan est facilement repérable. Le scan en vanilla TCP connect est le scan par défaut avec Nmap
  • Les scans furtifs:une classe de scans plus difficiles à détecter; Le scan en connexion demi-ouverte ou Syn-scan Nmap envoie sur chaque port un paquet TCP avec le flag SYN armé ; si un port est ouvert, il renverra un paquet avec les flags SYN et ACK armés.

Comment s'en protéger ?

Configurer votre pare-feu pour empêcher les scans:
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Cette commande permet de détecter l'envoi un grand nombre de paquets TCP avec les flags FIN et/ou SYN et/ou ACK et/ou RST armé(s). Vérifiez que votre pare-feu (si ce n'est pas iptables) supporte la détection de scans.

Avoir autrement devant vos serveurs un IDS qui va blacklister l'adresse ip à l'origine du scan, dans notre exemple on lance un scan sur l'adresse externe de ce serveur.

image de blocage de scan nmap

La machine ayant lancé le scan n'aura aucun retour d'information.

image de scan Nmap sur debian
image d'adresse blacklisté pfsense suite à Nmap.

Identifier les versions
des logiciels en écoute

Maintenant que notre pirate connaît les différents services en écoute, son objectif va être de découvrir les noms et les versions des logiciels utilisés pour assurer ces services. L'objectif est de présenter une parade pour éviter de donner trop d'informations sur votre système.

Le pirate peut déjà essayer de se connecter sur différents ports grâce aux programmes clients associés pour glaner des informations. Rien que telnet donne beaucoup d'informations :
# telnet 22
Trying ...
Connected to

.
Escape character is "CTRL-]".
SSH-2.0-OpenSSH_6.7p1 Debian-5+deb8u3
Connection closed by foreign host.

Nmap parvient à déterminer le système d'exploitation tournant sur la machine cible. La machine cible utilise un noyau Linux en debian 8.3.La version du logiciel nous est donnée. Le pirate va alors rechercher des informations sur les faiblesses de sécurité de celui-ci. Cependant, sur certains services, le client telnet sera inefficace. Le pirate peut alors utiliser un programme conçu pour écrire et lire de données sur machine cible et sur le port voulu. Ces programmes permettent d'envoyer des scripts directement sur le logiciel souhaité sans se soucier des limites protocolaires. Le plus réputé de ces programmes est sans doute Netcat.

Netcat

Netcat permet d'établir une connexion (TCP ou UDP) sur un port souhaité et d'y envoyer ou d'y recevoir des données.

Comment s'en protéger ? Retirer les bannières donnant les versions de logiciel et les messages d'aide ou de bienvenue d'un service réseau en écoute qui peuvent donner des informations sur votre système. Utilisez netcat contre vos serveurs pour repérer les services trop «bavards».

Nos coordonnées :
Nous contacter (+33) 02 90 38 04 42
Numéro non surtaxé

Vous pouvez nous joindre à ce numéro à nos heures de bureau. N'hésitez pas à utiliser l'interface de tchat en bas à droite, nous répondrons à vos interrogations.

Par Email contact@uxware.bzh

Vous pouvez nous joindre par email. N'hésitez pas à détailler au maximum votre demande, c'est indispensable pour établir un devis précis. Nous vous reconctactons trés rapidement.

Notre Support Support Technique

Vous pouvez contactez le support technique par le biais du numéros figurant sur votre interface. Vous pouvez également ouvrir un ticket pour toute demande technique.