Dans le protocole TCP et UDP, un port réseau peut être assimilé à une porte à laquelle l’application d’un équipement se connecte à un autre équipement distant par le réseau. Lorsqu’un équipement se connecte à un autre distant :
- Il ouvre un port réseau sur la machine, on parle de port local.
- Puis il se connecte au port d’un équipement distant, on parle alors de port distant.
Quand il s’agit d’une connexion entrant, on inverse, le port local devient le port distant et le port distant est le port local. Par ailleurs, la notion de local et distant s’applique aussi sur l’adresse IP. Chaque adresse réseau a un point de terminaison qui définit le type d’activité de cette adresse réseau.
1- NMAP (Network Mapper)
Sous Linux, l’outil Nmap (Network Mapper) est utilisé pour vérifier l’état d’un système, les périphériques utilisés, les services réseau et la disponibilité des sockets ou des ports. Si vous utilisez Kali Linux, Nmap est préinstallé. Pour les autres systèmes Linux, vous pouvez l’installer et également vérifier la version de nmap avec les commandes suivantes :
$ sudo apt-get install nmap
$ nmap –version
Une fois nmap installé, nous pouvons vérifier les ports TCP de notre adresse local. La plupart du temps, l’adresse IP locale ou localhost est 127.0.0.1.
$ sudo nmap -sT -O localhost
Nous pouvons également vérifier les ports TCP d’une machine distante avec nmap, afin de déterminer les ports disponibles er leurs états. Supposons que nous voulions vérifier les ports de la machine avec l’adresse IP 192.168.13.54, dans un réseau NAT.
$ sudo nmap 192.168.13.54
$ nmap -open 192.168. 13.54
$ nmap hacktu.ci
2- NETCAT
Netcat est un utilitaire permettant d’ouvrir des connexions réseau, que ce soit UDP ou TCP. Sous Linux, il est probablement l’outil le plus puissant pour vérifier les sockets réseau. On peut créer une connexion en écoute (-l) en tant que serveur ou en tant que client sur localhost.
$ nc -l 4444
$ nc localhost 4444
3- NETSTAT
Si vous souhaitez vérifier uniquement les ports UDP User Datagram Protocol, vous pouvez également utiliser les statistiques réseau ou la commande netstat. La commande netstat peut afficher à la fois la réception et l’envoi des données de fin de transmission. Par ailleurs, la troisième commande peut trouver des ports ouverts sous Linux par netstat. Enfin pour trouver tous les ports ouverts sur le système Linux, vous pouvez utiliser la quatrième commande.
$ netstat --listen
$ netstat -lntu
$ netstat -vaun
$ netstat -antplF
Pour trouver l’état d’un port spécifique sous Linux, il existe une commande netstat qui peut afficher tous les ports d’écoute. Supposons qu’on veuille inspecter seulement le port 443.
$ sudo netstat -lntup | grep ":80"
4- LSOF
La commande lsof est utilisée pour voir la liste des fichiers ou répertoires ouverts. Mais nous pouvons également utiliser les commandes lsof pour certaines tâches réseau simples. Nous pouvons trouver la liste de tous les ports ouverts par les commandes lsof. Nous pouvons exécuter les commandes suivantes pour trouver les ports ouverts ou en écoute.
$ lsof -i
$ sudo lsof -i -P -n | grep LISTEN
$ lsof -i TCP| fgrep LISTEN
Si vous souhaitez vérifier l’état d’un port spécifique par rapport à une adresse IP du réseau, vous pouvez utiliser cette commande de terminal dans votre système Linux. Voyons, nous voulons vérifier l’état du port 80.
$ sudo lsof-i :80
5- Socket Statistics
Linux, la commande ss fait référence à socket statistics. Les sockets sont affectés en tant que ports. Ainsi, en utilisant la commande ss, nous pouvons déterminer les ports ouverts dans le système Linux. Si vous n’avez pas installé ss sur votre Linux, vous pouvez rapidement installer ss sur votre machine à partir de la commande apt comme sur l’exple ci-dessous. Exécutez ensuite la commande socksstat dans votre terminal. Dans la sortie, vous trouverez les détails du socket/port.
$ sudo apt installer sockstat
$ sockstat
$ netstat -an |grep LISTEN