Installer Nmap et scanner le réseau
Aller à la navigation
Aller à la recherche
Le wiki : Accueil - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack
Installer Nmap sur Debian
Installer Nmap depuis le dépôt
Installer NMAP :
sudo apt-get install nmap
Installer Zenmap GUI :
sudo apt-get install zenmap
# Installer une alternative à Zenmap qui n'est plus présent dans les dépôts de Linux Mint : sudo apt install nmapsi4
Installer Nmap depuis le site officiel
# Installer nmap depuis le site officiel : https://nmap.org
wget https://nmap.org/dist/nmap-7.80-1.x86_64.rpm wget https://nmap.org/dist/zenmap-7.80-1.noarch.rpm
# Installer Alien pour convertir les .rpm en .deb : sudo apt install alien sudo alien nmap-7.80-1.x86_64.rpm sudo alien zenmap-7.80-1.noarch.rpm
# Installer nmap et zenmap : sudo dpkg --install nmap_7.80-2_amd64.deb sudo dpkg --install zenmap-7.80-2.noarch.deb
# L'installation n'aboutit pas sur Linux Mint 20. # J'utilise nmap et nmapsi4 en tant que alternative. # J'aurais encore du installer subversion et créer un lien symbolique, d'après Geekeries : Source : https://geekeries.org/2016/03/mettre-a-jour-pour-nmap-en-7-10-sous-debian-8/
Les ports reconnus par NMAP
Consulter les 6 états de ports reconnus par NMAP : https://nmap.org/book/man-port-scanning-basics.html
Liste des numéros de port TCP et UDP et correspondance avec les services liés : https://en.m.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
Afficher les interfaces et les routes de l'hôte
nmap --iflist
Scanner avec Nmap
Scanner les ports les plus courants avec top-ports
nmap --top-ports 5 192.168.1.1 nmap --top-ports 10 192.168.1.1
Scanner les ports ouverts
Scann rapide
nmap -v -sS -A -T4 192.168.1.1
Scanner les ports ouverts de l'IP cible
nmap -sS 192.168.1.1 Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 12:50 CEST Nmap scan report for alien (192.168.1.64) Host is up (0.000019s latency). All 1000 scanned ports on alien (192.168.1.64) are closed Nmap done: 1 IP address (1 host up) scanned in 1.68 seconds
Scanner tous les ports : nmap -p "*" 192.168.1.1
Scanner pour savoir si un port est ouvert
nmap -sT -p 3127 127.0.0.1 Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 12:52 CEST Nmap scan report for localhost (127.0.0.1) Host is up (0.000046s latency). PORT STATE SERVICE 3127/tcp closed ctx-bridge Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds
Scanner les services en écoute sur localhost
nmap -sT -O localhost
Tester si le port 80 est ouvert
# Scanner port 80 nmap -p 80 192.168.1.1
# Scanner TCP port 80 nmap -p T:80 192.168.1.1
# Scanner UDP port 53 nmap -p U:53 192.168.1.1
# Scanner deux ports nmap -p 80,443 192.168.1.1
nmap -sT -p 80 127.0.0.1 Starting Nmap 7.40 ( https://nmap.org ) at 2018-01-07 23:13 CET Nmap scan report for localhost (127.0.0.1) Host is up (0.00034s latency). PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
nmap –O 192.168.1.64 -p 80 -sS Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 16:31 CEST Failed to resolve "–O". Nmap scan report for alien (192.168.1.64) Host is up (0.000040s latency). PORT STATE SERVICE 80/tcp closed http Nmap done: 1 IP address (1 host up) scanned in 0.31 seconds
Scanner si le port 3306 est ouvert
nmap -sT -p 3306 127.0.0.1 Starting Nmap 7.40 ( https://nmap.org ) at 2018-01-07 23:10 CET Nmap scan report for localhost (127.0.0.1) Host is up (0.00055s latency). PORT STATE SERVICE 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
Scanner les ports ouverts sur un serveur distant
nmap mysql-base.alwaysdata.net Plus d'informations avec le paramètre -v pour le mode verbeux.
Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 10:49 CEST Nmap scan report for mysql-base.alwaysdata.net (185.31.40.56) Host is up (0.031s latency). Other addresses for mysql-base.alwaysdata.net (not scanned): 2a00:b6e0:1:100:12::1 rDNS record for 185.31.40.56: mysql12.paris1.alwaysdata.com Not shown: 997 closed ports PORT STATE SERVICE 135/tcp filtered msrpc 139/tcp filtered netbios-ssn 3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 7.66 seconds
Trois ports dont celui de MySQL est ouvert. Lors de mes précédents tests, un seul port était ouvert pour le service MySQL de alwaysdata.
Scanner une plage de ports
nmap -p 80-200 192.168.1.1
Scanner un hôte avec un protocole de ping par IP
nmap -PO 192.168.1.1
Scanner un hôte avec un protocole UDP de ping par IP
nmap -PU 192.168.1.1
Scanner les ports ouverts sur un serveur distant avec -A -T4
nmap -A -T4 mysql-base.alwaysdata.net Plus d'informations avec le paramètre -v pour le mode verbeux.
Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 10:51 CEST Nmap scan report for mysql-base.alwaysdata.net (185.31.40.56) Host is up (0.031s latency). Other addresses for mysql-base.alwaysdata.net (not scanned): 2a00:b6e0:1:100:12::1 rDNS record for 185.31.40.56: mysql12.paris1.alwaysdata.com Not shown: 997 closed ports PORT STATE SERVICE VERSION 135/tcp filtered msrpc 139/tcp filtered netbios-ssn 3306/tcp open mysql MySQL 5.5.5-10.1.31-MariaDB | mysql-info: | Protocol: 10 | Version: 5.5.5-10.1.31-MariaDB | Thread ID: 224527878 | Capabilities flags: 65535 | Some Capabilities: Support41Auth, Speaks41ProtocolOld, LongColumnFlag, SupportsTransactions, ConnectWithDatabase, SwitchToSSLAfterHandshake, IgnoreSigpipes, SupportsLoadDataLocal, InteractiveClient, Speaks41ProtocolNew, ODBCClient, SupportsCompression, DontAllowDatabaseTableColumn, IgnoreSpaceBeforeParenthesis, LongPassword, FoundRows, SupportsMultipleStatments, SupportsAuthPlugins, SupportsMultipleResults | Status: Autocommit | Salt: fgSJVT$QPy59^LCH#s>y |_ Auth Plugin Name: 94 Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 8.06 seconds
Trois ports dont celui de MySQL est ouvert. Lors de mes précédents tests, un seul port était ouvert pour le service MySQL de alwaysdata.
Scanner plusieurs réseaux avec NMAP
nmap 192.168.1.1 192.168.1.2 192.168.1.3 nmap 192.168.1.1,2,3 nmap 192.168.1.1-20 nmap 192.168.1.* nmap 192.168.1.0/24
Scanner plusieurs réseaux depuis un fichier texte /tmp/test.txt contenant : visionduweb.fr 192.168.1.0/24 192.168.1.1/24 10.1.2.3 localhost
La commande pour lancer le scann : nmap -iL /tmp/test.txt
Exclure un hôte
nmap 192.168.1.0/24 --exclude 192.168.1.5,192.168.1.254
# Exclure une liste d'hôtes depuis un fichier : nmap -iL /tmp/scanlist.txt --excludefile /tmp/exclude.txt
Vérifier si un hôte est protégé par un firewall
Attention : C'est une adresse IP distante qui doit être interrogée car la boucle local est autorisée dans les règles de pare-feu.
nmap -sA 192.168.1.64 Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 11:32 CEST Nmap scan report for alien (192.168.1.64) Host is up (0.000014s latency). All 1000 scanned ports on alien (192.168.1.64) are unfiltered Nmap done: 1 IP address (1 host up) scanned in 1.69 seconds
# A ce niveau la du scann, on apprend que d'après NMAP, les ports ne sont pas filtrés. # Il serait donc nécessaire de définir des règles complémentaires pour filtrer correctement les données. # Si tous les ports d'un hôte reviennent comme étant filtrés un pare-feu est certainement configuré pour supprimer tout le trafic qui y est dirigé.
# État non filtré : # L'état non filtré signifie qu'un port est accessible, mais NMAP n'est pas en mesure de déterminer s'il est ouvert ou fermé. # Seul l'analyse ACK, utilisée pour mapper les ensembles de règles de pare-feu, classe les ports dans cet état. # L'analyse des ports non filtrés avec d'autres types d'analyse, tels que l'analyse de fenêtre, l'analyse SYN ou l'analyse FIN, peut aider à déterminer si le port est ouvert.
# État filtré : # NMAP ne peut pas déterminer si le port est ouvert car le filtrage de paquets empêche ses sondes d'atteindre le port. # Le filtrage peut provenir d'un dispositif de pare-feu dédié, de règles de routeur ou d'un logiciel de pare-feu basé sur l'hôte. # Ces ports frustrent les attaquants car ils fournissent très peu d'informations. # Parfois, ils répondent avec des messages d'erreur ICMP tels que le code de type 3 code 13 (destination inaccessible: communication interdite par l'administration). # Les filtres qui abandonnent simplement des sondes sans répondre sont beaucoup plus courants. # Cela oblige Nmap à réessayer plusieurs fois au cas où la sonde serait abandonnée à cause de la congestion du réseau plutôt que du filtrage. # Cela ralentit considérablement l’analyse.
# Filtré ou non filtré, est-ce raisonnable ? # Lors du balayage des systèmes non filtrés, les ports ouverts et fermés renverront tous les deux un paquet RST. # NMAP les étiquette alors comme non filtrés, ce qui signifie qu'ils sont accessibles par le paquet ACK, mais qu'ils soient ouverts ou fermés est indéterminé. # Les ports qui ne répondent pas ou renvoient certains messages d'erreur ICMP (type 3, code 0, 1, 2, 3, 9, 10 ou 13) sont étiquetés comme étant filtrés.
# L'état est soit ouvert, filtré, fermé ou non filtré. # - Ouvrir signifie qu'une application sur la machine cible est à l'écoute des connexions / paquets sur ce port. # - Filtré signifie qu'un pare-feu, un filtre ou un autre obstacle réseau bloque le port de sorte que Nmap ne puisse pas dire s'il est ouvert ou fermé. # - Aucune application n'écoute les ports fermés, bien qu'ils puissent s'ouvrir à tout moment. # - Les ports sont classés comme non filtrés lorsqu'ils répondent aux sondes de Nmap, mais Nmap ne peut pas déterminer s'ils sont ouverts ou fermés.
# Nmap signale les combinaisons d'états ouvert | filtré et fermé | filtré lorsqu'il ne peut pas déterminer lequel des deux états décrit un port.
# Il semble que le comportement normal d'un port fermé soit plus proche de l'action iptables REJECT que de DROP.
Scanner un hôte protégé par un firewall
# Connaître l'état d'ouverture des ports : nmap -PN 192.168.1.64 nmap -T4 -n -PN --send-ip 192.168.1.64 Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 12:19 CEST Nmap scan report for 192.168.1.64 Host is up (0.000019s latency). All 1000 scanned ports on 192.168.1.64 are closed Nmap done: 1 IP address (1 host up) scanned in 1.70 seconds
Scanner uniquement les ports ouverts ou potentiellement ouverts
nmap --open 192.168.1.1 Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 16:09 CEST Nmap scan report for livebox (192.168.1.1) Host is up (0.0033s latency). Not shown: 843 closed ports, 148 filtered ports Some closed ports may be reported as filtered due to --defeat-rst-ratelimit PORT STATE SERVICE 53/tcp open domain 80/tcp open http 139/tcp open netbios-ssn 443/tcp open https 445/tcp open microsoft-ds 5060/tcp open sip 9000/tcp open cslistener 49152/tcp open unknown 49153/tcp open unknown MAC Address: 84:A0:6E:86:10:A5 (Unknown) Nmap done: 1 IP address (1 host up) scanned in 10.20 seconds
Scanner une adresse IPv6
nmap -6 ::1 Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 14:33 CEST Nmap scan report for localhost (::1) Host is up (0.000031s latency). Not shown: 999 closed ports PORT STATE SERVICE 631/tcp open ipp Nmap done: 1 IP address (1 host up) scanned in 1.67 seconds
# Ici on observe que cups écoute sur le port 631 de localhost.
Trouver le serveur DHCP avec NMAP
Comment trouver le serveur DHCP avec NMAP : https://memo-linux.com/comment-trouver-le-serveur-dhcp-avec-nmap/
Scanner les protocoles disponibles
nmap -sO 192.168.1.1
Analyser un hôte à l'aide d'un ping TCP ACK (PA) et TCP Syn (PS)
nmap -PS 192.168.1.1 Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 17:13 CEST Nmap scan report for livebox (192.168.1.1) Host is up (0.0029s latency). Not shown: 843 closed ports, 148 filtered ports PORT STATE SERVICE 53/tcp open domain 80/tcp open http 139/tcp open netbios-ssn 443/tcp open https 445/tcp open microsoft-ds 5060/tcp open sip 9000/tcp open cslistener 49152/tcp open unknown 49153/tcp open unknown MAC Address: 84:A0:6E:86:10:A5 (Unknown) Nmap done: 1 IP address (1 host up) scanned in 149.12 seconds
Scanner les ports TCP les plus couramment utilisés avec TCP SYN Scan
# Stealthy scan # nmap -sS 192.168.1.1
# Find out the most commonly used TCP ports using TCP connect scan (warning: no stealth scan) # OS Fingerprinting # nmap -sT 192.168.1.1
# Find out the most commonly used TCP ports using TCP ACK scan nmap -sA 192.168.1.1
# Find out the most commonly used TCP ports using TCP Window scan nmap -sW 192.168.1.1
# Find out the most commonly used TCP ports using TCP Maimon scan nmap -sM 192.168.1.1
Analyser un hôte pour les services UDP
nmap -sU 192.168.1.1
Scanner les versions des services installés
nmap -sV 192.168.1.1
Exporter le résultat d'un scann vers un fichier
nmap 192.168.1.1 > output.txt nmap -oN /path/to/filename 192.168.1.1 nmap -oN output.txt 192.168.1.1
Attaquer sur les ports
Attaquer un site, charger un shell, supprimer un site avec NMAP
Tester si des machines sont encore vulnérables à MS17-010
Il peut être utile de tester si des machines de votre réseau sont vulnérables à WannaCry (Bulletin CVE-2017-0143 ou MS17-010).
nmap -sC -p 445 --script smb-vuln-ms17-010.nse 139.99.173.195 Starting Nmap 7.60 ( https://nmap.org ) at 2019-07-26 17:26 CEST Nmap scan report for visionduweb.fr (139.99.173.195) Host is up (0.41s latency). PORT STATE SERVICE 445/tcp filtered microsoft-ds Nmap done: 1 IP address (1 host up) scanned in 4.97 seconds
Sécurité sur les ports
Détecter et bloquer les attaques de balayage de ports en temps réel avec psad
https://www.cyberciti.biz/faq/linux-detect-port-scan-attacks/
Lister les ports utilisés avec Netstat
Netstat - est un outil de surveillance de réseau en ligne de commande open source qui surveille le trafic des paquets réseau entrants et sortants. http://www.tecmint.com/12-tcpdump-commands-a-network-sniffer-tool/
Netstat permet de connaître les ports en écoute sur votre machine, sur quelles interfaces, avec quels protocoles de transport (TCP ou UDP), les connexions actives et de connaître les routes. Pour voir les connexions actives netstat -nt, pour les ports ouvertsnetstat -ntl
. On peut aussi vérifier s'il existe une route par défaut. Par exemple existe-t-il une route par défaut vers la machine 213.186.xx.xx utilisez alorsnetstat -nr | grep 213.186.xx.xx
.
L'option -a énumère les ports en cours d'utilisation ou ceux qui sont écoutés par le serveur :netstat -a
ounetstat -a |grep ssh
. Retourne la liste avec le nom des services, donne des informations sur les interfaces réseau :netstat -a | grep 'listen' -i
. Des informations, paquets reçus, perdus, forwardés, taille options,..., sur le trafic réseau dans le protocole donné :netstat -p ip
.
-a : Tous les ports -t : Tous les ports TCP -u : Tous les ports UDP -l : Tous les ports en écoute -n : Affiche directement les IP. Pas de résolution de nom. -p : Affiche le nom du programme et le PID associé.
Liste les adresses locales utilisées :
netstat -ltunp
netstat -paunt
netstat -taupeln
netstat -lapute
netstat -anpe
Lister les ports ouverts avec ss
# La commande ss est utilisée pour afficher les statistiques de ports. # Elle permet d'afficher des informations similaires à netstat et peut afficher d'avantage d'informations TCP et d'état que d'autres outils. sudo ss -tulpn
# Afficher les sockets TCP (-t) à l'état LISTEN (-l) avec le numéro de port associé (-n). # Regarder alors quelle est l'adresse (Local Address) associée au port. # Si c'est 127.0.0.1, le socket est en écoute uniquement sur l'interface locale (loopback). ss -ltn State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 127.0.0.53%lo:53 0.0.0.0:* LISTEN 0 5 127.0.0.1:631 0.0.0.0:* LISTEN 0 80 127.0.0.1:3306 0.0.0.0:* LISTEN 0 128 *:80 *:*
Lister les ports ouverts avec netstat
# Utiliser grep pour n'afficher que les ports en écoute : sudo netstat -tulpn | grep LISTEN tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 908/systemd-resolve tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 965/cupsd tcp6 0 0 ::1:631 :::* LISTEN 965/cupsd
Vérifier que le serveur Apache2 écoute bien sur le port 80
# Lancer la commande netstat depuis la machine qui héberge le serveur apache : netstat -ntlp | grep ":80" tcp 0 0 :::80 :::* LISTEN 3996/httpd
Lister les services utilisant un port
netstat -anlp | grep 3000 tcp6 0 0 :::3000 :::* LISTEN 4692/gitea
Vérifier si vous êtes victime d'une attaque DoS
netstat -an | grep SYN
# Si les adresses des attaquants se trouvent dans les logs d'Apache, alors ce n’est pas un SYN flood et l'activation des syncookies est inefficace. # Rappel : # SYN flood = création de connexions semi-ouvertes par l'envoi de paquets SYN seuls sans confirmer la connexion. L'application n’est pas informée. # Présence dans les logs de l'application = conn
Lister les ports ouverts avec lsof
lsof -i -P -n | grep LISTEN systemd-r 908 systemd-resolve 13u IPv4 23440 0t0 TCP 127.0.0.53:53 (LISTEN) cupsd 965 root 6u IPv6 31840 0t0 TCP [::1]:631 (LISTEN) cupsd 965 root 7u IPv4 31841 0t0 TCP 127.0.0.1:631 (LISTEN)
Identifier un port avec /etc/services/ | grep
cat /etc/services | grep 3127
Solutions alternatives à nmap
Masscan
# Masscan est un scanner de port à l'échelle d'Internet. # Il peut analyser l'intégralité d'Internet en moins de 6 minutes, transmettant 10 millions de paquets par seconde, à partir d'une seule machine.
# Son entrée / sortie est similaire à nmap. # Il est flexible, permettant des plages de ports et d'adresses arbitraires. # Il utilise des transmissions asynchrones, similaires aux scanners de ports comme scanrand, unicornscan et ZMap.
# Masscan utilise sa propre pile TCP / IP personnalisée. # Tout autre élément que les simples analyses de port peut provoquer un conflit avec la pile TCP / IP locale.
Dépôt officiel sur Github : https://github.com/robertdavidgraham/masscan # Une tentative de test d'installation sur Kali Linux est restée en échec. # A suivre.
Zmap
# ZMap est un scanner réseau rapide à un seul paquet conçu pour les enquêtes sur le réseau Internet. # Avec une connexion 10gigE et PF_RING, ZMap peut scanner l'espace d'adressage IPv4 en moins de 5 minutes. # Sur un ordinateur de bureau typique avec une connexion Ethernet gigabit, ZMap est capable de numériser tout l'espace d'adressage IPv4 public en moins de 45 minutes.
Le dépôt Github de Zmap : https://github.com/zmap/zmap Site officiel : https://zmap.io
Autres scanners
Les scanner de ports TCP et UDP : https://www.frameip.com/scanner-port-tcp-udp/
Bibliographie
Techniques de scann : https://nmap.org/man/fr/ https://nmap.org/man/fr/man-port-scanning-techniques.html https://www.cyberciti.biz/networking/nmap-command-examples-tutorials https://www.memoinfo.fr/tutoriels-linux/tuto-nmap-scaner-les-ports-ouverts/ https://www.linux.com/learn/zenmap-tutorial-audit-your-networks-using-nmap-gui Introduction à TCP - UDP - NMAP : https://web.archive.org/web/20150619141531/http://openclassrooms.com/courses/introduction-au-scan-de-ports Tester l'ouverture d'un port : https://www.starmate.fr/tester-louverture-dun-port/
NAVIGATION
PARTICIPER ET PARTAGERBienvenue sur le wiki de Amis SH. De nombreuses pages sont partagées sur ce wiki. Créer un compte utilisateur pour participer sur le wiki. Les pages présentées sur le wiki évoluent tous les jours. Certaines recherches sont peu abouties et incluent des erreurs. Utiliser la recherche interne du wiki pour trouver votre contenu. La page de discussion de Amis SH vous permet de poser vos questions. Consulter le site amis-sh.fr pour installer votre propre serveur web. Améliorer le contenu des pages avec vos retours depuis l'onglet discussion. Ce contenu ne doit pas servir à nuire à autrui ou à un système informatique. Protéger votre système Linux ou Windows avec cette page dédiée à la sécurité. |
SOUTENIR CE WIKISoutenir le wiki avec un don en monnaie numérique : AEON - Bitcoins - Bitcoins Cash - Bitcoins Gold - Bitcore - Blackcoins - Basic Attention Token - Bytecoins - Clams - Dash - Monero - Dogecoins - Ğ1 - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash OBTENIR DE LA MONNAIE NUMERIQUEObtenir gratuitement de la monnaie numérique : Miner de la cryptomonnaie. |