Installer Nmap et scanner le réseau : Différence entre versions

De Analyse Développement Hacking
Sauter à la navigation Sauter à la recherche
 
(Aucune différence)

Version actuelle datée du 10 octobre 2019 à 16:45

Consulter le wiki : Accueil du wiki - Objectifs - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack
Consulter le site : Accueil du site - Annuaire - Blog - Forum - Outils - Utilisateur     Consulter le Redmine : Accueil du Redmine

Sommaire

Installer Nmap sur Debian

Installer NMAP :
sudo apt-get install nmap
Installer Zenmap GUI :
sudo apt-get install zenmap
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 ouverts netstat -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 alors netstat -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 ou netstat -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

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

Scan pour trouver un vpn qui fonctionne

Quand un port est ouvert, on peut configurer le client VPN avec.
Le port doit être ouvert chez eux.
Faire un script pour scanner automatiquement tout les serveur de la liste, retenir celui qui est le plus rapide...

Bibliographie

Ko.png Techniques de scann : https://nmap.org/man/fr/
Ko.png https://nmap.org/man/fr/man-port-scanning-techniques.html
Ko.png https://www.cyberciti.biz/networking/nmap-command-examples-tutorials
Ko.png https://www.memoinfo.fr/tutoriels-linux/tuto-nmap-scaner-les-ports-ouverts/
Ko.png https://www.linux.com/learn/zenmap-tutorial-audit-your-networks-using-nmap-gui
Ko.png Introduction à TCP - UDP - NMAP : https://web.archive.org/web/20150619141531/http://openclassrooms.com/courses/introduction-au-scan-de-ports

NAVIGATION

PARTICIPER ET PARTAGER

Vous êtes sur le wiki de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur ce wiki sont issues d'une recherche personnelle.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

VALORISER LE WIKI

Valoriser le contenu partagé sur 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 NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Gagner des Altcoins - Miner des Altcoins.
Consulter le miroir du wiki depuis Planet Hoster : Le miroir du wiki version du 12 Juillet 2019.