Vous êtes sur la page 1sur 35

Méthode

Outils

https://github.com/digitalbond/Redpoint

Nmap Scripting Engine

- Envoyer des commandes ICS légitimes pour énumérer des périphériques et des applications
ICS spécifiques
- Identifier ICS sur le réseau d’entreprise
- Création pour la création et la maintenance de l’inventaire

Nmap est un scanner et un outil d’exploration de sécurité réseau en ligne de


commande populaire, puissant et multiplateforme. Il peut également vous
aider à obtenir une vue d’ensemble des systèmes qui ont connecté votre
réseau; vous pouvez l’utiliser pour connaître toutes les adresses IP des hôtes
en direct, analyser les ports ouverts et les services exécutés sur ces hôtes, et
bien plus encore.
L’une des caractéristiques intéressantes de Nmap est le moteur de script
Nmap (NSE), qui lui apporte encore plus de flexibilité et d’efficacité. Il vous
permet d’écrire vos propres scripts en langage de programmation Lua, et
éventuellement de partager ces scripts avec d’autres utilisateurs Nmap.
Lire aussi: 29 exemples pratiques de commandes nmap pour Linux
Il existe quatre types de scripts NSE, à savoir :

 Scripts de pré-règle – sont des scripts qui s’exécutent avant


l’une des opérations d’analyse de Nmap, ils sont exécutés lorsque
Nmap n’a pas encore collecté d’informations sur une cible.
 Scripts hôtes – sont des scripts exécutés après que Nmap a
effectué des opérations normales telles que la découverte d’hôte,
l’analyse de port, la détection de version et la détection de
système d’exploitation sur un hôte cible.
 Scripts de service – scripts exécutés sur des services
spécifiques écoutant sur un hôte cible.
 Scripts postrule – sont des scripts exécutés après que Nmap a
analysé tous ses hôtes cibles.
Ensuite, ces scripts sont regroupés sous diverses catégories, y compris ceux
pour l’authentification (auth), la découverte d’hôtes (diffusion), les attaques
par force brute pour deviner les informations d’authentification (brute), la
découverte d’un réseau (découverte), la provocation d’un déni de service
(dos), l’exploitation de certaines vulnérabilités (exploit), etc. Un certain
nombre de scripts appartiennent à la catégorie par défaut.
Remarque: Avant d’aller plus loin, vous devriez prendre note de ces points
clés:
 N’exécutez pas de scripts de tiers sans les examiner de manière
critique ou seulement si vous faites confiance aux auteurs. En
effet, ces scripts ne sont pas exécutés dans un bac à sable et
pourraient donc endommager votre système de manière
inattendue ou malveillante ou envahir votre vie privée.
 Deuxièmement, beaucoup de ces scripts peuvent éventuellement
s’exécuter en tant que script de pré-règle ou de post-
règle. Compte tenu de cela, il est recommandé d’utiliser une règle
préalable à des fins de cohérence.
 Nmap utilise la base de données scripts/scripts.db pour
déterminer les scripts et les catégories par défaut disponibles.
Pour afficher l’emplacement de tous les scripts NSE disponibles,
exécutez l’utilitaire de localisation sur le terminal, comme ceci :

$ locate *.nse

/usr/share/nmap/scripts/acarsd-info.nse
/usr/share/nmap/scripts/address-info.nse
/usr/share/nmap/scripts/afp-brute.nse
/usr/share/nmap/scripts/afp-ls.nse
/usr/share/nmap/scripts/afp-path-vuln.nse
/usr/share/nmap/scripts/afp-serverinfo.nse
/usr/share/nmap/scripts/afp-showmount.nse
/usr/share/nmap/scripts/ajp-auth.nse
/usr/share/nmap/scripts/ajp-brute.nse
/usr/share/nmap/scripts/ajp-headers.nse
/usr/share/nmap/scripts/ajp-methods.nse
/usr/share/nmap/scripts/ajp-request.nse
/usr/share/nmap/scripts/allseeingeye-info.nse
/usr/share/nmap/scripts/amqp-info.nse
/usr/share/nmap/scripts/asn-query.nse
...

Les scripts NSE sont chargés à l’aide de l’indicateur, qui vous permet
également d’exécuter vos propres scripts en fournissant des catégories, des
noms de fichiers de script ou le nom des répertoires où se trouvent vos
scripts.--script
La syntaxe d’activation des scripts est la suivante :

$ nmap -sC target #load default scripts


OR
$ nmap --script filename|category|directory|expression,...
target

Vous pouvez afficher la description d’un script avec l’option. En outre, vous
pouvez passer des arguments à certains scripts via les options et, ce dernier
est utilisé pour fournir un nom de fichier plutôt qu’un arg de ligne de
commande.--script-help--script-args--script-args-file
Pour effectuer une analyse avec la plupart des scripts par défaut, utilisez
l’indicateur ou utilisez comme indiqué.-sC--script=default

$ nmap -sC scanme.nmap.org


OR
$ nmap --script=default scanme.nmap.org
OR
$ nmap --script default scanme.nmap.org

Exemple de sortie
Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15
10:36 IST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.0027s latency).
Not shown: 999 filtered ports
PORT STATE SERVICE
80/tcp open http
|_http-title: Go ahead and ScanMe!
Nmap done: 1 IP address (1 host up) scanned in 11.74
seconds

Pour utiliser un script dans un but approprié, vous pouvez, tout d’abord,
obtenir une brève description de ce qu’il fait réellement, par exemple, des en-
têtes https

$ nmap --script-help http-headers scanme.nmap.org

Exemple de sortie

Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15


10:37 IST
http-headers
Categories: discovery safe
https://nmap.org/nsedoc/scripts/http-headers.html
Performs a HEAD request for the root folder ("/") of a
web server and displays the HTTP headers returned.
Chargement de scripts NSE pour effectuer des
analyses Nmap
Vous pouvez sélectionner ou charger des scripts pour effectuer une analyse
selon différentes méthodes expliquées ci-dessous.

Utilisation du nom de script


Une fois que vous savez ce que fait un script, vous pouvez effectuer une
analyse à l’aide de celui-ci. Vous pouvez utiliser un script ou entrer une liste
de noms de script séparés par des virgules. La commande ci-dessous vous
permettra d’afficher les en-têtes HTTP configurés sur le serveur Web de l’hôte
cible.

$ nmap --script http-headers scanme.nmap.org

Analyser les en-têtes HTTP

Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15


10:39 IST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.27s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
| http-headers:
| Date: Wed, 15 Nov 2017 05:10:04 GMT
| Server: Apache/2.4.7 (Ubuntu)
| Accept-Ranges: bytes
| Vary: Accept-Encoding
| Connection: close
| Content-Type: text/html
|
|_ (Request type: HEAD)
179/tcp filtered bgp
31337/tcp open Elite

Nmap done: 1 IP address (1 host up) scanned in 20.96


seconds

Utilisation des catégories


Vous pouvez également charger des scripts à partir d’une catégorie ou d’une
liste de catégories séparées par des virgules. Dans cet exemple, nous
utilisons tous les scripts de la catégorie par défaut et diffusion pour effectuer
une analyse sur l’hôte 192.168.56.1.

$ nmap --script default,broadcast 192.168.56.1

Analyser un hôte

Utilisation de * Wildcard
Ceci est utile lorsque vous souhaitez sélectionner des scripts avec un modèle
de nom donné. Par exemple, pour charger tous les scripts dont le nom
commence par ssh, exécutez la commande ci-dessous sur le terminal :
$ nmap --script "ssh-*" 192.168.56.1

Charger des scripts à l’aide de caractères génériques-

Utilisation d’expressions booléennes


Vous pouvez également sélectionner des scripts à l’aide d’expressions
booléennes que vous pouvez générer à l’aide des opérateurs and, or et non.
Et les noms dans une expression booléenne peuvent être une catégorie, un
nom de fichier de script.db, ou tous.
La commande suivante charge les scripts à partir des catégories par défaut ou
de diffusion.

$ nmap --script "default or broadcast" 192.168.56.10

Ce qui équivaut à :

$ nmap --script default,broadcast 192.168.56.10

Pour charger tous les scripts en omettant ceux de la catégorie vuln, exécutez


cette commande sur le terminal.
$ nmap --script "not vuln" 192.168.56.10

La commande suivante semble un peu compliquée mais elle est facile à


comprendre, elle sélectionne les scripts dans les catégories par défaut ou de
diffusion, en laissant de côté ceux dont le nom commence par ssh-:

$ nmap --script "(default or broadcast) and not ssh-*"


192.168.56.10

Il est important de noter qu’il est possible de combiner des catégories, des
noms de script, un répertoire contenant vos scripts personnalisés ou une
expression booléenne pour charger des scripts, comme ceci :

$ nmap --script
broadcast,vuln,ssh-auth-methods,/path/to/custom/scripts
192.168.56.10

Transmission d’arguments aux scripts NSE


Vous trouverez ci-dessous un exemple montrant comment passer des
arguments à des scripts avec l’option –script-args :

$ nmap --script mysql-audit --script-args "mysql-


audit.username='root', \
mysql-audit.password='password_here', mysql-
audit.filename='nselib/data/mysql-cis.audit'"

Pour transmettre un numéro de port, utilisez l’option -p nmap :$

mysql-audit.password='password_here' , mysql-
audit.filename='nselib/data/mysql-cis.audit'"

La commande ci-dessus exécute un audit de la configuration de sécurité du


serveur de base de données MySQL par rapport à certaines parties du banc
d’essai CIS MySQL v1.0.2. Vous pouvez également créer vos propres fichiers
d’audit personnalisés utiles pour d’autres audits MySQL.
C’est tout pour l’instant. Vous trouverez plus d’informations sur la page de
manuel Nmap ou consultez Utilisation de NSE.
Pour commencer à écrire vos propres scripts NSE, consultez ce
guide : https://nmap.org/book/nse-tutorial.html
Conclusion
Nmap est un outil vraiment puissant et utile dont chaque administrateur
système ou réseau a besoin dans son arsenal de sécurité – NSE ajoute
simplement plus d’efficacité.
Dans cet article, nous vous avons présenté le moteur de script Nmap et
avons examiné comment trouver et utiliser les différents scripts disponibles
dans différentes catégories. Si vous avez des questions, n’hésitez pas à nous
écrire via le formulaire de commentaire ci-dessous.

29 exemples pratiques de commandes


nmap pour les administrateurs
système/réseau Linux
Tarunika Shrivastava3 janvier 2015 CatégoriesCommandes Linux 37 Commentaires

Le Nmap aka Network Mapper est un open source et un outil très polyvalent


pour les administrateurs système / réseau Linux. Nmap est utilisé
pour explorer les réseaux, effectuer des analyses de sécurité, auditer le
réseau et trouver des ports ouverts sur une machine distante. Il recherche
les hôtes Live, les systèmes d’exploitation, les filtres de paquets et les ports
ouverts exécutés sur des hôtes distants.

Commandes Nmap et
exemples
Je vais couvrir la plupart de l’utilisation de NMAP dans deux parties différentes
et c’est la première partie de nmap sérieux. Ici, dans cette configuration, j’ai
utilisé deux serveurs sans pare-feu pour tester le fonctionnement de la
commande Nmap.
 192.168.0.100 – server1.tecmint.com
 192.168.0.101 – server2.tecmint.com
Utilisation de la commande Nmap

# nmap [Scan Type(s)] [Options] {target specification}

Comment installer NMAP sous Linux


La plupart des distributions Linux actuelles comme Red
Hat, CentOS, Fedoro, Debian et Ubuntu ont inclus Nmap dans leurs dépôts
de gestion de paquets par défaut appelés Yum et APT. Les deux outils sont
utilisés pour installer et gérer les packages logiciels et les mises à jour. Pour
installer Nmap sur une distribution spécifique, utilisez la commande suivante.

# yum install nmap [on Red Hat based systems]

$ sudo apt-get install nmap [on Debian based systems]

Une fois que vous avez installé la dernière application nmap, vous pouvez
suivre les instructions d’exemple fournies dans cet article.

1. Analyser un système avec un nom d’hôte et


une adresse IP
L’outil Nmap propose différentes méthodes pour analyser un système. Dans
cet exemple, j’effectue une analyse en utilisant le nom d’hôte
comme server2.tecmint.com pour trouver tous les ports ouverts, les services
et l’adresse MAC sur le système.
Numérisation à l’aide du nom d’hôte
[root@server1 ~]# nmap server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 15:42 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.415


seconds
You have new mail in /var/spool/mail/root

Numérisation à l’aide de l’adresse IP


[root@server1 ~]# nmap 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-18 11:04 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
958/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.465


seconds
You have new mail in /var/spool/mail/root

2. Numérisez en utilisant l’option « -v »


Vous pouvez voir que la commande ci-dessous avec l’option « -v » donne des
informations plus détaillées sur la machine distante.

[root@server1 ~]# nmap -v server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 15:43 EST
Initiating ARP Ping Scan against 192.168.0.101 [1 port] at
15:43
The ARP Ping Scan took 0.01s to scan 1 total hosts.
Initiating SYN Stealth Scan against server2.tecmint.com
(192.168.0.101) [1680 ports] at 15:43
Discovered open port 22/tcp on 192.168.0.101
Discovered open port 80/tcp on 192.168.0.101
Discovered open port 8888/tcp on 192.168.0.101
Discovered open port 111/tcp on 192.168.0.101
Discovered open port 3306/tcp on 192.168.0.101
Discovered open port 957/tcp on 192.168.0.101
The SYN Stealth Scan took 0.30s to scan 1680 total ports.
Host server2.tecmint.com (192.168.0.101) appears to be
up ... good.
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.485


seconds
Raw packets sent: 1681 (73.962KB) | Rcvd:
1681 (77.322KB)

Analyser plusieurs hôtes


Vous pouvez analyser plusieurs hôtes en écrivant simplement leurs adresses
IP ou leurs noms d’hôte avec Nmap.

[root@server1 ~]# nmap 192.168.0.101 192.168.0.102


192.168.0.103

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 16:06 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 3 IP addresses (1 host up) scanned in 0.580
seconds

4. Analyser un sous-réseau entier


Vous pouvez analyser tout un sous-réseau ou une plage IP avec Nmap en
fournissant * wildcard avec celui-ci.

[root@server1 ~]# nmap 192.168.0.*

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 16:11 EST
Interesting ports on server1.tecmint.com (192.168.0.100):
Not shown: 1677 closed ports
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
851/tcp open unknown

Interesting ports on server2.tecmint.com (192.168.0.101):


Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 256 IP addresses (2 hosts up) scanned in


5.550 seconds
You have new mail in /var/spool/mail/root

Sur la sortie ci-dessus, vous pouvez voir que nmap a scanné un sous-réseau
entier et a donné les informations sur les hôtes qui sont en haut dans
le réseau.
5. Analyser plusieurs serveurs en utilisant le
dernier octet d’adresse IP
Vous pouvez effectuer des analyses sur plusieurs adresses IP en spécifiant
simplement le dernier octet de l’adresse IP. Par exemple, ici, j’effectue une
analyse sur les adresses IP 192.168.0.101, 192.168.0.102 et 192.168.0.103.
[root@server1 ~]# nmap 192.168.0.101,102,103

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 16:09 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 3 IP addresses (1 host up) scanned in 0.552


seconds
You have new mail in /var/spool/mail/root

6. Analyser la liste des hôtes d’un fichier


Si vous avez d’autres hôtes à analyser et que tous les détails de l’hôte sont
écrits dans un fichier, vous pouvez directement demander à nmap de lire ce
fichier et d’effectuer des analyses. Voyons comment faire.

Créez un fichier texte appelé « nmaptest.txt » et définissez toutes les


adresses IP ou le nom d’hôte du serveur que vous souhaitez analyser.

[root@server1 ~]# cat > nmaptest.txt

localhost
server2.tecmint.com
192.168.0.101

Ensuite, exécutez la commande suivante avec l’option « iL » avec la


commande nmap pour analyser toutes les adresses IP répertoriées dans le
fichier.

[root@server1 ~]# nmap -iL nmaptest.txt

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-18 10:58 EST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1675 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
111/tcp open rpcbind
631/tcp open ipp
857/tcp open unknown

Interesting ports on server2.tecmint.com (192.168.0.101):


Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
958/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Interesting ports on server2.tecmint.com (192.168.0.101):


Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
958/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 3 IP addresses (3 hosts up) scanned in


2.047 seconds

7. Analyser une plage d’adresses IP


Vous pouvez spécifier une plage d’adresses IP lors de l’analyse avec Nmap.

[root@server1 ~]# nmap 192.168.0.101-110

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 16:09 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 10 IP addresses (1 host up) scanned in


0.542 seconds

8. Analyser le réseau à l’exclusion des hôtes


distants
Vous pouvez exclure certains hôtes lors d’une analyse complète du réseau ou
lorsque vous effectuez une analyse avec des caractères génériques avec
l’option « –exclude ».

[root@server1 ~]# nmap 192.168.0.* --exclude 192.168.0.100

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 16:16 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 255 IP addresses (1 host up) scanned in


5.313 seconds
You have new mail in /var/spool/mail/root

9. Analyser les informations du système


d’exploitation et Traceroute
Avec Nmap, vous pouvez détecter quel système d’exploitation et quelle
version s’exécutent sur l’hôte distant. Pour activer la détection du système
d’exploitation et de la version, l’analyse des scripts et traceroute, nous
pouvons utiliser l’option « -A » avec NMAP.

[root@server1 ~]# nmap -A 192.168.0.101


Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at
2013-11-11 16:25 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.3 (protocol 2.0)
80/tcp open http Apache httpd 2.2.3 ((CentOS))
111/tcp open rpcbind 2 (rpc #100000)
957/tcp open status 1 (rpc #100024)
3306/tcp open mysql MySQL (unauthorized)
8888/tcp open http lighttpd 1.4.32
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is
running on it, see http://www.insecure.org/cgi-bin/nmap-
submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu
%D=11/11%Tm=52814B66%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E
%UCK=E%ULEN=134%DAT=E)

Uptime 0.169 days (since Mon Nov 11 12:22:15 2013)

Nmap finished: 1 IP address (1 host up) scanned in 22.271


seconds
You have new mail in /var/spool/mail/root

Dans la sortie ci-dessus, vous pouvez voir que nmap est fourni avec
l’empreinte TCP / IP du système d’exploitation exécuté sur des hôtes
distants et étant plus précis sur le port et les services exécutés sur les hôtes
distants.
10. Activer la détection du système
d’exploitation avec Nmap
Utilisez l’option « -O » et « -osscan-guess » permet également de découvrir
des informations sur le système d’exploitation.
[root@server1 ~]# nmap -O server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 17:40 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
No exact OS matches for host (If you know what OS is
running on it, see http://www.insecure.org/cgi-bin/nmap-
submit.cgi).
TCP/IP fingerprint:
SInfo(V=4.11%P=i686-redhat-linux-gnu
%D=11/11%Tm=52815CF4%O=22%C=1%M=080027)
TSeq(Class=TR%IPID=Z%TS=1000HZ)
T1(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T2(Resp=N)
T3(Resp=Y%DF=Y%W=16A0%ACK=S++%Flags=AS%Ops=MNNTNW)
T4(Resp=Y%DF=Y%W=0%ACK=O%Flags=Option -O and -osscan-guess
also helps to discover OS
R%Ops=)
T5(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
T6(Resp=Y%DF=Y%W=0%ACK=O%Flags=R%Ops=)
T7(Resp=Y%DF=Y%W=0%ACK=S++%Flags=AR%Ops=)
PU(Resp=Y%DF=N%TOS=C0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E
%UCK=E%ULEN=134%DAT=E)

Uptime 0.221 days (since Mon Nov 11 12:22:16 2013)

Nmap finished: 1 IP address (1 host up) scanned in 11.064


seconds
You have new mail in /var/spool/mail/root

11. Analyser un hôte pour détecter le pare-feu


La commande ci-dessous effectuera une analyse sur un hôte distant pour
détecter si des filtres de paquets ou un pare-feu sont utilisés par l’hôte.
[root@server1 ~]# nmap -sA 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 16:27 EST
All 1680 scanned ports on server2.tecmint.com
(192.168.0.101) are UNfiltered
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.382


seconds
You have new mail in /var/spool/mail/root

12. Analyser un hôte pour vérifier qu’il est


protégé par un pare-feu
Pour analyser un hôte s’il est protégé par un logiciel de filtrage de paquets ou
des pare-feu.

[root@server1 ~]# nmap -PN 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 16:30 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.399


seconds

13. Trouver des hôtes Live dans un réseau


Avec l’aide de l’option « -sP », nous pouvons simplement vérifier quels hôtes
sont actifs et en haut dans le réseau, avec cette option, nmap ignore la
détection de port et d’autres choses.

[root@server1 ~]# nmap -sP 192.168.0.*


Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at
2013-11-18 11:01 EST
Host server1.tecmint.com (192.168.0.100) appears to be up.
Host server2.tecmint.com (192.168.0.101) appears to be up.
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 256 IP addresses (2 hosts up) scanned in
5.109 seconds

14. Effectuez une analyse rapide


Vous pouvez effectuer une analyse rapide avec l’option « -F » pour rechercher
les ports répertoriés dans les fichiers nmap-services et quitter tous les autres
ports.

[root@server1 ~]# nmap -F 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 16:47 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1234 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.322


seconds

15. Trouver la version de Nmap


Vous pouvez connaître la version de Nmap que vous utilisez sur votre
machine avec l’option « -V ».

[root@server1 ~]# nmap -V

Nmap version 4.11 ( http://www.insecure.org/nmap/ )


You have new mail in /var/spool/mail/root

16. Analyser les ports consécutivement


Utilisez l’indicateur « -r » pour ne pas randomiser.

[root@server1 ~]# nmap -r 192.168.0.101


Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at
2013-11-11 16:52 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.363


seconds

17. Imprimer les interfaces hôtes et les


itinéraires
Vous pouvez trouver des informations sur l’interface hôte et l’itinéraire avec
nmap en utilisant l’option « –iflist ».

[root@server1 ~]# nmap --iflist

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 17:07 EST
************************INTERFACES************************
DEV (SHORT) IP/MASK TYPE UP MAC
lo (lo) 127.0.0.1/8 loopback up
eth0 (eth0) 192.168.0.100/24 ethernet up
08:00:27:11:C7:89

**************************ROUTES**************************
DST/MASK DEV GATEWAY
192.168.0.0/0 eth0
169.254.0.0/0 eth0

Dans la sortie ci-dessus, vous pouvez voir que la carte répertorie les
interfaces attachées à votre système et leurs itinéraires respectifs.

18. Rechercher un port spécifique


There are various options to discover ports on remote machine with Nmap.
You can specify the port you want nmap to scan with “-p” option, by default
nmap scans only TCP ports.

[root@server1 ~]# nmap -p 80 server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 17:12 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT STATE SERVICE
80/tcp open http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) sca

19. Scan a TCP Port


You can also specify specific port types and numbers with nmap to scan.

[root@server1 ~]# nmap -p T:8888,80 server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 17:15 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT STATE SERVICE
80/tcp open http
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.157


seconds

20. Scan a UDP Port


[root@server1 ~]# nmap -sU 53 server2.tecmint.com

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 17:15 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT STATE SERVICE
53/udp open http
8888/udp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)
Nmap finished: 1 IP address (1 host up) scanned in 0.157
seconds

21. Analyser plusieurs ports


Vous pouvez également analyser plusieurs ports à l’aide de l’option « -p ».

[root@server1 ~]# nmap -p 80,443 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-18 10:56 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT STATE SERVICE
80/tcp open http
443/tcp closed https
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.190


seconds

22. Ports d’analyse par plage réseau


Vous pouvez analyser les ports avec des plages à l’aide d’expressions.

[root@server1 ~]# nmap -p 80-160 192.168.0.101

23. Trouver les numéros de version des


services hôtes
Nous pouvons trouver les versions du service qui s’exécutent sur des hôtes
distants avec l’option « -sV ».

[root@server1 ~]# nmap -sV 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 17:48 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.3 (protocol 2.0)
80/tcp open http Apache httpd 2.2.3 ((CentOS))
111/tcp open rpcbind 2 (rpc #100000)
957/tcp open status 1 (rpc #100024)
3306/tcp open mysql MySQL (unauthorized)
8888/tcp open http lighttpd 1.4.32
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 12.624


seconds

24. Analyser les hôtes distants à l’aide de TCP


ACK (PA) et TCP Syn (PS)
Parfois, les pare-feu de filtrage de paquets bloquent les requêtes ping
ICMP standard, dans ce cas, nous pouvons utiliser les méthodes
TCP ACK et TCP Syn pour analyser les hôtes distants.

[root@server1 ~]# nmap -PS 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 17:51 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.360


seconds
You have new mail in /var/spool/mail/root

25. Analyser l’hôte distant pour des ports


spécifiques avec TCP ACK
[root@server1 ~]# nmap -PA -p 22,80 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 18:02 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.166


seconds
You have new mail in /var/spool/mail/root

26. Analyser l’hôte distant pour des ports


spécifiques avec TCP Syn
[root@server1 ~]# nmap -PS -p 22,80 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 18:08 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.165


seconds
You have new mail in /var/spool/mail/root

27. Effectuez un scan furtif


[root@server1 ~]# nmap -sS 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 18:10 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.383


seconds
You have new mail in /var/spool/mail/root
28. Vérifiez les ports les plus couramment
utilisés avec TCP Syn
[root@server1 ~]# nmap -sT 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 18:12 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
957/tcp open unknown
3306/tcp open mysql
8888/tcp open sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 0.406


seconds
You have new mail in /var/spool/mail/root

29. Effectuez une analyse tcp null pour


tromper un pare-feu
[root@server1 ~]# nmap -sN 192.168.0.101

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at


2013-11-11 19:01 EST
Interesting ports on server2.tecmint.com (192.168.0.101):
Not shown: 1674 closed ports
PORT STATE SERVICE
22/tcp open|filtered ssh
80/tcp open|filtered http
111/tcp open|filtered rpcbind
957/tcp open|filtered unknown
3306/tcp open|filtered mysql
8888/tcp open|filtered sun-answerbook
MAC Address: 08:00:27:D9:8E:D7 (Cadmus Computer Systems)

Nmap finished: 1 IP address (1 host up) scanned in 1.584


seconds
You have new mail in /var/spool/mail/root
C’est tout avec NMAP pour l’instant, je vais venir plus d’options créatives
de NMAP dans notre deuxième partie de ce sérieux. D’ici là, restez à l’écoute
avec nous et n’oubliez pas de partager vos précieux commentaires.

IDS/SCADA

Numérisation de périphériques ICS/SCADA


 ICS signifie Industrial Control Systems (Systèmes de contrôle industriel)
 SCADA signifie Supervisory Control And Data Acquisition.

En un mot, les systèmes de contrôle industriel (ICS) sont des « ordinateurs » (PLC) qui
Contrôlez le monde qui vous entoure. Ils sont responsables de la gestion de l’air le
conditionnement dans votre bureau, les turbines d’une centrale électrique, l’éclairage
au Théâtre ou les robots dans une usine

Exemples de dispositifs et d’applications ICS/SCADA

Ici, nous rapportons certains des systèmes SCADA les plus courants avec des cas
d’utilisation relativement communs et une requête utilisée sur shodan pour les
trouver.

 BACnet (port 47808) : est un protocole de communication pour les réseaux


d’automatisation et de contrôle des bâtiments. Il a été conçu pour permettre la
communication des systèmes d’automatisation et de contrôle des bâtiments pour des
applications telles que le chauffage, la climatisation, l’éclairage et les systèmes de
détection d’incendie.
 Codesys: plus de 250 fabricants d’appareils de différents secteurs industriels
proposent des appareils d’automatisation avec une interface de programmation
CODESYS. Par conséquent, des milliers d’utilisateurs tels que les constructeurs de
machines ou d’installations du monde entier utilisent CODESYS pour les tâches
d’automatisation.
 DNP3 (port 20000) : Le protocole de réseau distribué est un ensemble de protocoles
de communication utilisés entre les composants des systèmes d’automatisation des
processus. Son utilisation principale est dans les services publics tels que les
compagnies d’électricité et d’eau.
 EtherNet/IP (port 44818) : a été introduit en 2001 et est une solution de réseau
Ethernet industriel disponible pour l’automatisation de la fabrication. General Electric
(produit:"general electric »)
 GE Industrial Solution : Le protocole GE-SRTP (Service Request Transport Protocol)
est développé par GE Intelligent Platforms (anciennement GE Fanuc) pour le transfert
de données à partir d’automates.
 HART IP: Le protocole de communication HART (Highway Addressable Remote
Transducer Protocol) est une implémentation précoce de Fieldbus, un protocole
d’automatisation industrielle numérique. Son avantage le plus notable est qu’il peut
communiquer sur un câblage hérité.
 CEI 60870–5–104
 IEC-104 (port 2404) : est l’une des normes CEI 60870 qui définissent les systèmes
utilisés pour le SCADA dans les applications d’ingénierie électrique et
d’automatisation des systèmes électriques.
 Mitsubishi Electric (produit:"Mitsubishi »): La série MELSEC-Q utilise un protocole
réseau propriétaire pour la communication. Les appareils sont utilisés par les
équipements et les installations de fabrication pour fournir un traitement de données
et un contrôle de machine à grande vitesse et à grand volume.
 Modbus (port 502) : un protocole populaire pour les systèmes de contrôle industriel
(ICS). Il fournit un accès facile et brut au système de contrôle sans nécessiter
d’authentification.
 Omron: Factory Interface Network Service (FINS), est un protocole réseau utilisé
par les automates Omron, sur différents réseaux physiques comme Ethernet,
Controller Link, DeviceNet et RS-232C.
 PCWorx: est un protocole et un programme de Phoenix Contact utilisé par un large
éventail d’industries. Nous pouvons les trouver en effectuant les requêtes suivantes:
port:20547,1962 PLC Port:2455 Système d’exploitation port:code de réponse 9600
 ProConOS: un moteur d’exécution PLC haute performance conçu pour les
applications de contrôle embarquées et basées sur PC.
 Red Lion (port 789 product:"Red Lion Controls »): protocole du logiciel de bureau
Crimson v3.0 utilisé lors de la communication avec l’interface homme-machine (IHM)
Red Lion Controls G306a.
 Siemens S7 (port 102) : S7 Communication, un protocole propriétaire qui s’exécute
entre des automates programmables (PLC) de la famille Siemens S7.
 Tridium Niagara Fox (ports 1911 et 4911): le protocole Fox, développé dans le
cadre du cadre Niagara à partir de Tridium, est le plus souvent observé dans les
systèmes d’automatisation des bâtiments (bureaux, bibliothèques, universités, etc.).

Numérisation de périphériques ICS/SCADA

Les systèmes SCADA ICS jouent un rôle important dans les infrastructures critiques
que l’on trouve dans centrales électriques, usines chimiques, raffineries de pétrole et
aussi grands complexes.

Il est conseillé d’exécuter des analyses -sT pour ouvrir et fermer chaque connexion,
car ces Les appareils peuvent être très sensibles.

L’analyse par défaut que nous pouvons effectuer est la suivante :


nmap -Pn -sT --scan-delay 1s --max-parallelism 1 \
-p
80,102,443,502,530,593,789,1089-
1091,1911,1962,2222,2404,4000,4840,4843,4911,9600,19999,20000,20547,34962-
34964,34980,44818,46823,46824,55000-55003 \
<target>
Chacun de ces ports correspond à un protocole SCADA ICS connu.

De diverses sources, voici ce que nous savons sur les ports utilisés par les systèmes
SCADA:

BACnet/IP -- UDP/47808 Siemens S7 -- TCP/102 DNP3 -- TCP/20000, UDP/20000


EtherCAT -- UDP/34980 Ethernet/IP -- TCP/44818, UDP/2222, UDP/44818 FL-net --
UDP/55000 à 55003 Foundation Fieldbus HSE -- TCP/1089 à 1091, UDP/1089 à 1091
ICCP -- TCP/102 Modbus TCP -- TCP/502 OPC UA binary -- Spécifique à l’application
du fournisseur Serveur de découverte OPC UA -- TCP/4840 OPC UA XML -- TCP/80,
TCP/443 PROFINET -- TCP/34962 à 34964, UDP/34962 à 34964 ROC PLus -- TCP/UDP
4000 Lion rouge -- TCP/789 Niagara Fox -- TCP/1911, TCP/4911 IEC-104 -- TCP/2404
Codesys -- Spécifique à l’application du fournisseur PCWorx -- TCP/20547, TCP/2455,
TCP//9600

Quoi qu’il en soit, il existe un grand nombre de protocoles utilisés par différents types
de les vendeurs qui ne publient pas de documentation sur les ports utilisés, de toute
façon en ligne là-bas sont des compilations de ports trouvés tels que:

ABB Ranger 2003: * TCP/10307, TCP/10311, TCP/10364 à 10365, TCP/10407,


TCP/10409 à 10410, TCP/10412, * TCP/10414 à 10415, TCP/10428, TCP/10431 à
10432, TCP/10447, TCP/10449 à 10450, * TCP/12316, TCP/12645, TCP/12647 à 12648,
TCP/13722, TCP/13724, TCP/13782 à 13783, * TCP/38589, TCP/38593, TCP/38600,
TCP/38971, TCP/39129, TCP/39278

Emerson / Fisher ROC Plus : * TCP/UDP/4000


Foxboro/Invensys Foxboro DCSFoxApi * TCP/UDP/55555
Foxboro/Invensys Foxboro DCS AIMAPI * TCP/UDP/45678
Foxboro/Invensys Foxboro DCS Informix * TCP/UDP/1541
Iconiques Genesis32GenBroker (TCP): * TCP/18000
Johnson contrôle MetasysN1 : * TCP/UDP/11001
Johnson contrôle MetasysBACNet: * UDP/47808
Serveur OSIsoft PI : * TCP/5450
Siemens Spectrum Power TG : * TCP/50001 à 50016, TCP/50018 à 50020, *
UDP/50020 à 50021, TCP/50025 à 50028, * TCP/50110 à 50111
SNC GENe * TCP/38000 à 38001, TCP/38011 à 38012, * TCP/38014 à 38015,
TCP/38200, * TCP/38210, TCP/38301, TCP/38400, * TCP/38700, TCP/62900,
TCP/62911, * TCP/62924, TCP/62930, TCP/62938, * TCP/62956 à 62957, TCP/62963, *
TCP/62981 à 62982, TCP/62985, * TCP/62992, TCP/63012, TCP/63027 à 63036, *
TCP/63041, TCP/63075, TCP/63079, * TCP/63082, TCP/63088, TCP/63094, TCP/65443
L’ADN de Telvent OASyS : * UDP/5050 à 5051, TCP/5052, TCP/5065, * TCP/12135 à
12137, TCP/56001 à 56099
Nous pouvons généralement utiliser plcscan pour trouver des automates en ligne.
Trouver une IHM (interface homme-machine)

Sielco Sistemi Winlog


nmap -Pn -sT -p46824 <target>
Il peut être exploitable à distance avec la vulnérabilité de métasploit. winlog_runtime_2

Automates Siemens SIMATIC S7


Ces appareils de la famille S7 300/400 utilisent le protocole S7comm pour PLC
programmation, échange de données entre automates et systèmes SCADA et
diagnostics.

Ces automates écoutent généralement sur le port 102. Nous pouvons vérifier la
présence d’un automate à l’aide du protocole s7comm avec le Lancement suivant le
NMAP:

nmap -Pn -sT -p102 --script s7-info <target>

Périphériques Modbus
Modbus TCP/IP est le protocole de communication le plus couramment utilisé pour
transmettre informations entre les périphériques SCADA.

Nous pouvons découvrir un appareil Modbus avec nmap en faisant quelque chose
comme:

nmap -Pn -sT -p502 --script modbus-discover <target>


Il existe également un script plus spécifique appelé modscan qui découvre réellement
Appareils modscan.

Nous pouvons également essayer d’énumérer tous les ID esclaves en définissant


l’argument script agressif, comme ceci:

nmap -sT -Pn -p502 --script modbus-discover --script-args modbus-


discover.aggressive=true <target>

Appareils BACnet
Les appareils BACnet sont très courants pour l’interconnexion et le contrôle du CVC,
de l’alimentation et les systèmes de ventilation et autres éléments d’automatisation
des bâtiments.
Nous pouvons recueillir beaucoup d’informations sur ces appareils avec:

nmap -Pn -sU -p47808 --script bacnet-info <target>


Si le protocole n’est pas correct, nous pouvons recevoir un message comme:

BACNetADPU Type: Error (5)


mais c’est encore un signe que nous communiquons avec un appareil BACnet.

Nous pouvons également découvrir BACnet Broadcast Management Device (BBMD),


qui est installé pour autoriser les demandes de diffusion sur les réseaux. Cependant,
cette se trouve dans un script appelé BACnet-discover-enumerate.nse.

Périphériques SCADA Ethernet/IP


Ethernet/IP est un protocole populaire utilisé dans l’industrie qui utilise Ethernet
comme couche de transport et CIP pour fournir les services et les profils nécessaires
pour Applications.

Les périphériques Ethernet / IP fonctionnent sur le port UDP 44818 et nous pouvons
collecter des informations Par l’intermédiaire de nmap avec :

nmap -Pn -sU -p44818 --script enip-info <target>

Appareils Niagara Fox


Le protocole Niagara Fox fonctionne sur les ports TCP 1911 et 4911. Nous pouvons
les découvrir et interroger des informations avec nmap en émettant:

nmap -Pn -sT -p1911,4911 --script fox-info <target>

Appareils ProConOS
ProConOS est un moteur d’exécution PLC conçu pour le contrôle embarqué ou basé
sur PC Applications.

Avec nmap, nous pouvons faire:

nmap -Pn -sT -p20547 --script proconos-info <target>


REMARQUE: Considérez que les applications ProConOS de Phoenix Contact Software
n’ont pas un système d’authentification, de sorte qu’ils sont considérés comme
vulnérables, puisque l’ensemble du La logique de l’échelle peut être modifiée à
distance.

Dispositifs Omrom PLC


Ces périphériques utilisent le protocole FINS qui utilise les ports TCP ou UDP 9600
pour communiquer sur le réseau avec d’autres machines.

nmap -Pn -sU -p9600 --script omrom-info <target>


Ces périphériques peuvent également fonctionner sur le port TCP, de sorte que nous
pouvons exécuter en plus le Analyse suivante :

nmap -Pn -sT -p9600 --script omrom-info <target>


Ces appareils transmettent généralement des informations en texte brut, donc si nous
sommes dans le Même réseau, nous devrions permettre une sorte de reniflage de
paquets.

Périphériques PCWorx
Les périphériques PCWorx permettent des requêtes non aunthenticées qui
interrogent le système information.

Avec nmap, nous pouvons les énumérer avec:

nmap -Pn -sT -p1962 --script pcworx-info <target>

Utilisation de Nmap pour analyser SCADA/ICS

Nmap fournit plusieurs scripts, et sa fonction permet également aux utilisateurs de


créer plusieurs scripts personnalisés pour identifier les systèmes SCADA présents
dans un réseau. Cela permet à un analyste de créer des cas de test spécifiques pour
tester les systèmes SCADA. Certains des scripts disponibles par défaut dans la
dernière bibliothèque de scripts Nmap sont les suivants :
 s7-info.nse: permet d’énumérer les dispositifs Siemens S7 PLC et de collecter des
informations telles que le nom du système, la version, le module et le type. Ce script
fonctionne de la même manière que celui de l’utilitaire PLCScan.
 modbus-discover.nse: énumère les ID esclaves SCADA Modbus (SIDS) et collecte
des informations telles que le numéro de sid et les données d’ID d’esclave. Modbus
est un protocole utilisé par divers systèmes PLC et SCADA.

Nous verrons la syntaxe et l’utilisation de ces scripts dans les recettes suivantes.

Prépare

Pour effectuer cette activité, vous devrez remplir les conditions préalables suivantes
sur votre machine :
1. Nmap doit être installé.
2. Vous devez disposer d’un accès réseau aux hôtes sur lesquels les analyses doivent
être effectuées.
Pour installer Nmap, vous pouvez suivre les instructions fournies dans le Chapitre
2, Présentation des outils d’analyse réseau. Cela vous permettra de télécharger une
version compatible de Nmap et d’installer tous les plugins requis. Pour vérifier si
Nmap est installé sur votre machine, ouvrez l’invite de commandes et tapez . Si
Nmap est installé, vous verrez un écran semblable au suivant :Nmap

Si vous ne voyez pas l’écran précédent, réessayez la même étape en déplaçant le


contrôle d’invite de commandes dans le dossier où Nmap est installé (). Si vous ne
voyez pas l’écran après cela, supprimez et réinstallez Nmap.C:\Program Files\Nmap
Pour remplir les ports ouverts sur les hôtes pour lesquels l’analyse doit être
effectuée, vous devez disposer d’un accès au niveau du réseau à cet hôte particulier.
Un moyen simple de vérifier si vous avez accès à un hôte particulier consiste à
envoyer des paquets ping à l’hôte. Toutefois, cette méthode ne fonctionne que si
ICMP et ping sont activés dans ce réseau. Dans les cas où ICMP est désactivé, les
techniques de détection de l’hôte actif varient. Nous examinerons cela en détail dans
d’autres sections de ce livre.
De plus, pour créer un banc d’essai, installez Conpot, qui est un pot de miel bien
connu sur les systèmes d’exploitation Kali, en suivant les instructions fournies
à https://github.com/mushorg/conpot.
Une fois Conpot installé, exécutez Conpot sur le système à l’aide de la commande
suivante :

Sudo conpot --template default

Comment faire...

Procédez comme suit :

1. Ouvrez nmap dans l’invite de commandes.


2. Entrez la syntaxe suivante dans l’invite de commandes pour obtenir les résultats de
l’analyse du script :scripts7-info.nse
Nmap --script s7-info.nse -p 102 192.168.75.133

Vous pouvez observer que l’analyseur a détecté le système en tant


qu’appliance.Siemens, SIMATIC, S7-200
3. Entrez la syntaxe suivante dans l’invite de commandes pour obtenir les résultats de
l’analyse du script :modbu-discover.nse
Nmap --script modbus-discover.nse --script-args='modbus-discover.aggressive=true' -p 502

192.168.75.133

Ce module a également découvert que le périphérique était .Siemens, SIMATIC, S7-


200

Comment ça marche...
Ces scripts Nmap permettent à l’utilisateur d’identifier les ports spécifiques qui ont
été utilisés par les systèmes SCADA. Par exemple, comme indiqué dans la recette
de procédure, les ports et sont des ports spécifiques qui peuvent être utilisés pour
déterminer s’il y a des périphériques SIMATIC dans le réseau. Un analyste peut
analyser l’ensemble du réseau à la recherche de ports et, une fois trouvé, il peut
effectuer une analyse de service pour vérifier si l’un d’entre eux exécute un logiciel
SCADA associé.102502102502

Il y a plus...
Dans une instance donnée, si les scripts par défaut présents dans Nmap n’ont pas
fait le travail, l’utilisateur peut télécharger les scripts Nmap personnalisés développés
par d’autres développeurs à partir de GitHub ou de n’importe quelle ressource et les
coller dans le dossier scripts du dossier d’installation Nmap pour les utiliser. Par
exemple, clonez le dossier à partir de la https://github.com/jpalanco/Nmap-scada de
liaison pour plusieurs autres systèmes SCADA et collez-les dans le dossier scripts
afin de pouvoir les exécuter à l’aide de Nmap :

Activity Corporate IT Environment SCADA ICS


Environment
Identification des Ping Sweep ( e.g NMAP) -Examine CAM Tables
réseaux, # nmap -sp -Examine config Files
192.100.1.1/24 $ sudo nmap --max-rtt-timeout C:\Windows\
de l’hôte et # nmap -sL System>ipconfig /all
192.100.1.1/24 - Effectuer des
des nœuds 100ms -n -vv -sn 192.168.1.1- vérifications physiques
255 -oG - | grep -i 'up'
- Écoute passive

Identification des Port Scan (e.g NMAP) -Port verification


services ( netsat)
-Port scan in a duplicate
test environment
Identifier les Vulnerability scanning (e.g Saisie de bannières
vulnérabilités Nessus) openvas locales
Analyse d’un
environnement de test
dupliqué
Obtenir des accès Exploits tested (e.g Review of local security
password configs. Only perform
guessing/cracking) this stage in a test
environment
Elevate Privileges Undertake further exploits Only perform in a test
environment
Place Backdoors and Install programs and delete Only perform in a test
Cover Tracks logs and log files environment

Vous aimerez peut-être aussi