NMAP

19 décembre 2018 Non Par nospheratus

Scanner une machine, et surtout un serveur, permet de vérifier la sécurité de base de la machine en identifiant les ports ouverts. Donc susceptibles d’être attaqués.
le scan permet également de tester le bon fonctionnement du firewall et d’adapter les règle en fonction des résultats.

Il existe de nombreux logiciels pour scanner des ports.
Je préfère pour ma part le grand classique :  NMAP qui est open source, et surtout disponible sur Windows, Mac OSX et Linux. 

Dans cette minidoc NAMP nous allons voir les différentes techniques de scan de port.
je vais lister ici les options de base pour faire un scan assez efficace depuis une machine sous Debian.

nmap -options ip_serveur

On peut aussi lancer nmap sans options, mais dans ce cas nmap ne fera qu’un scan SYN  sur le protocole TCP ce qui peut être gênant si la machine scannée est protégée par un Firewall qui bloque les paquets SYN

Pour palier à cela on lance un scan explicite tcp SYN et udp avec la commande : 

nmap -sS -Su ip_serveur

Exemple : 

root@Anakin:~# nmap -sS -sU 192.168.73.24
Starting Nmap 7.01 ( https://nmap.org ) at 2018-12-19 14:35 CET
Nmap scan report for 192.168.73.24
Host is up (0.000066s latency).
Other addresses for 192.168.73.24 (not scanned): ::1
Not shown: 3005 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
443/tcp open https
465/tcp open smtps
53/udp open domain
Nmap done: 1 IP address (1 host up) scanned in 5.86 seconds

On voit ici que les ports ssh, messagerie et Web sont ouverts en tcp et qu’il y a aussi le port UDP utilisé par le DNS. 

Cela peut permettre d’ajuster certaines règles de firewall. par exemple, y a-t-il un réel besoin que le DNS soit ouvert sur l’extérieur ? 

Autre option très utile, c’est -sV car l’option retourne la version du logiciel utilisé. Ceci peut être utilisé par un pirate afin de connaitre la version de votre apache et ainsi exploiter d’éventuelles failles de sécurité. 

Exemple : 

root@Anakin:~# nmap -sS -sU -sV 192.168.73.24
Starting Nmap 7.01 ( https://nmap.org ) at 2018-12-19 14:55 CET
Nmap scan report for 192.168.73.24
Host is up (0.000066s latency).
Other addresses for 192.168.73.24 (not scanned): ::1
Not shown: 3005 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH_7.2p2
443/tcp open https Apache/2.4.18
Nmap done: 1 IP address (1 host up) scanned in 12.86 seconds

Si une faille de sécurité existe dans Apache2.4.18 c’est exploitable ^^ 

La plupart des FireWall surtout ceux des hébergeurs savent très bien lire les scans de ports, du coup on est très vite remarqué si on y va comme une brute. Il est donc possible de faire de la temporisation dans le scan. Ceci permet de passer un peu plus inaperçu ^^ On utilise alors l’option : -Tx 

x étant une valeur comprise entre 0 et 5. Par défaut nmap utilise la valeur 3 si on ne lui change pas. 0 est le scan le plus discret car lent, alors que 5 est le scan le plus agressif et donc moins discret. 

Une autre option peut s’avérer très utile, c’est un scan qui détecte quels sont les protocoles disponibles sur le serveur distant. 

Exemple : 

root@Anakin:~# nmap -sO 192.168.73.24
Starting Nmap 7.01 ( https://nmap.org ) at 2018-12-19 15:01 CET
Nmap scan report for 192.168.73.24
Host is up (0.0015s latency).
Other addresses for 192.168.73.24 (not scanned): ::1
Not shown: 241 closed protocols
PROTOCOL STATE SERVICE
1 open |filtered icmp
2 open igmp
4 open ipv4
6 open tcp
17 open udp
132 open|filtered sctp
136 open|filtered udplite
137 open|filtered mpls-in-ip
Nmap done: 1 IP address (1 host up) scanned in 14.76 seconds

On voit ici que le serveur filtre l’ICMP, c’est pourquoi il répond sans doute pas au ping ^^ 

Voilà de qui devrait vous permettre de bien sécuriser vos équipements et vous protéger un peu. J’aborderai dans un autre article l’utilisation d’un FireWall type iptables couplé à Fail2ban.