====== Etude de cas ======
===== Analyse de cas « classiques » =====
Commençons par voir ce qu'il se passe sur une machine « propre », c'est-à-dire non infectée par des chevaux de Troie, ou toute application destinée à en prendre le contrôle à distance.
==== Un poste « classique » sous Windows 98 ====
L'expérience est tentée sur deux postes Windows 98, l'un avec le partage de fichiers activé et l'autre non. Nous faisons un scan de ports TCP et UDP avec nmap depuis un poste Linux situé sur le réseau :
== Ports TCP : ==
Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Interesting ports on michele.maison.mrs (192.168.0.2):
(The 1522 ports scanned but not shown below are in state: closed)
Port State Service
139/tcp open netbios-ssn
TCP Sequence Prediction: Class=trivial time dependency
Difficulty=2 (Trivial joke)
Remote operating system guess: Windows NT4 / Win95 / Win98
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
== Ports UDP : ==
Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Warning: No TCP ports found open on this machine,
OS detection will be MUCH less reliable
Interesting ports on michele.maison.mrs (192.168.0.2):
(The 1446 ports scanned but not shown below are in state: closed)
Port State Service
137/udp open netbios-ns
138/udp open netbios-dgm
Too many fingerprints match this host for me to give an accurate OS guess
Nmap run completed -- 1 IP address (1 host up) scanned in 8 seconds
Ce qu'il est intéressant de constater au premier abord, c'est que les mêmes ports sont ouverts, que l'on ait activé le partage des fichiers ou non. La seule chose qui diffère, c'est que le poste sur lequel le partage n'a pas été activé n'est pas visible dans le voisinage réseau.
Les seuls ports ouverts sont ceux utilisés par NetBIOS.
==== Un poste de travail Windows 2000 ====
Prenons un autre exemple un peu plus compliqué, mon poste de travail sous Windows 2000. (Je vous rappelle qu'il n'est pas directement connecté à l'Internet, j'ai une passerelle Linux entre les deux :-)
Ce poste est considéré comme une station de travail et en aucun cas comme un serveur. Il ne doit donc théoriquement pas y avoir de ports à l'écoute sur l'Internet.
Sur ce poste, j'utilise Frontpage 2000, j'ai donc un serveur web personnel (proposé par Windows 2000). Voici ce que donne un scan de ports TCP avec Nmap depuis ma passerelle Linux:
Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Interesting ports on chris.maison.mrs (192.168.0.10):
(The 1517 ports scanned but not shown below are in state: closed)
Port State Service
80/tcp open http
135/tcp open loc-srv
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
TCP Sequence Prediction: Class=random positive increments
Difficulty=14803 (Worthy challenge)
Remote operating system guess: Windows 2000 RC1 through final release
Nmap run completed -- 1 IP address (1 host up) scanned in 1 second
Comme vous le constatez, il y a 5 ports ouverts en écoute sur cette machine. Parmi ceux-ci, il y en a un bon nombre qui présentent des dangers.
== Le port 80 ==
C'est normal, PWS est actif (Personal Web Server). Ce serveur HTTP est utile pour la composition de sites avec Frontpage, pour la mise à disposition de documents sur le réseau privé, en revanche, il pourrait être dangereux de le laisser visible sur l'Internet...
== Le port 135 ==
Celui-ci doit présenter quelques dangers...
C'est le serveur RPC (Remote Procedure Call), c'est-à-dire le mécanisme qui permet à distance de déclencher l'exécution de procédures sur ma machine (par un administrateur uniquement). Il est clair que ce port ne doit pas être accessible depuis l'Internet.
== Le port 139 ==
Ah, celui là est bien connu. C'est un des mécanismes de service de noms NetBIOS (le voisinage réseau). Absolument rien à faire sur l'Internet...
== Le port 443 ==
HTTP « sécurisé » (HTTPS). Ouvert également par PWS.
== Le port 445 ==
Celui-ci, c'est une originalité de Windows 2000. Pour le service de noms, Microsoft a toujours utilisé son système WINS, basé sur NetBIOS. Depuis Windows 2000, il existe également un service de noms basé sur un DNS dynamique, qui n'utilise pas NetBIOS. Ce port est ouvert pour ce nouveau service et ne devrait se rencontrer que sur les machines Windows 2000 et suivants
Passons maintenant à un scan de ports UDP:
Starting nmap V. 2.53 by fyodor@insecure.org ( www.insecure.org/nmap/ )
Warning: No TCP ports found open on this machine,
OS detection will be MUCH less reliable
Interesting ports on chris.maison.mrs (192.168.0.10):
(The 1442 ports scanned but not shown below are in state: closed)
Port State Service
135/udp open loc-srv
137/udp open netbios-ns
138/udp open netbios-dgm
445/udp open microsoft-ds
500/udp open isakmp
3456/udp open vat
Too many fingerprints match this host for me to give an accurate OS guess
Nmap run completed -- 1 IP address (1 host up) scanned in 9 seconds
Nous avons déjà vu le port 135. Les ports 137 et 138 sont des services NetBIOS toujours pour la résolution des noms et les ouvertures de sessions. Nous avons également déjà rencontré le port 445, spécifique à Windows 2000.
Le port 500 est utilisé par HTTPS, pour la négociation de clés de cryptage. Encore un port ouvert par PWS.
==== Un poste de travail Windows XP SP3 ===
== Pare-feu désactivé ==
IIS n'est pas installé. Un scan TCP :
Starting Nmap 4.53 ( http://insecure.org ) at 2008-05-26 09:30 CEST
Initiating ARP Ping Scan at 09:30
Scanning 172.16.129.250 [1 port]
Completed ARP Ping Scan at 09:30, 0.01s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 09:30
Completed Parallel DNS resolution of 1 host. at 09:30, 0.00s elapsed
Initiating SYN Stealth Scan at 09:30
Scanning 172.16.129.250 [1714 ports]
Discovered open port 3389/tcp on 172.16.129.250
Discovered open port 135/tcp on 172.16.129.250
Discovered open port 139/tcp on 172.16.129.250
Discovered open port 445/tcp on 172.16.129.250
Completed SYN Stealth Scan at 09:30, 1.29s elapsed (1714 total ports)
Initiating Service scan at 09:30
Scanning 4 services on 172.16.129.250
Completed Service scan at 09:30, 6.00s elapsed (4 services on 1 host)
Initiating OS detection (try #1) against 172.16.129.250
Retrying OS detection (try #2) against 172.16.129.250
Retrying OS detection (try #3) against 172.16.129.250
Retrying OS detection (try #4) against 172.16.129.250
Retrying OS detection (try #5) against 172.16.129.250
SCRIPT ENGINE: Initiating script scanning.
SCRIPT ENGINE: rpcinfo.nse is not a file.
SCRIPT ENGINE: Aborting script scan.
Host 172.16.129.250 appears to be up ... good.
Interesting ports on 172.16.129.250:
Not shown: 1710 closed ports
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn
445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds
3389/tcp open microsoft-rdp Microsoft Terminal Service
MAC Address: 00:11:2F:41:C7:57 (Asustek Computer)
No exact OS matches for host (If you know what OS is running on it, see http://insecure.org/nmap/submit/ ).
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=258 (Good luck!)
IP ID Sequence Generation: Incremental
Service Info: OS: Windows
Read data files from: /usr/share/nmap
OS and Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 17.615 seconds
Raw packets sent: 1938 (88.840KB) | Rcvd: 1800 (85.270KB)
Avec le pare-feu actif, en autorisant les exceptions suivantes :
* Bureau à distance ;
* Partage de fichiers et d'imprimantes.
Starting Nmap 4.53 ( http://insecure.org ) at 2008-05-26 09:36 CEST
Initiating ARP Ping Scan at 09:36
Scanning 172.16.129.250 [1 port]
Completed ARP Ping Scan at 09:36, 0.01s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 09:36
Completed Parallel DNS resolution of 1 host. at 09:36, 0.00s elapsed
Initiating SYN Stealth Scan at 09:36
Scanning 172.16.129.250 [1714 ports]
Discovered open port 3389/tcp on 172.16.129.250
Discovered open port 135/tcp on 172.16.129.250
Discovered open port 139/tcp on 172.16.129.250
Discovered open port 445/tcp on 172.16.129.250
Completed SYN Stealth Scan at 09:36, 8.66s elapsed (1714 total ports)
Initiating Service scan at 09:36
Scanning 4 services on 172.16.129.250
Completed Service scan at 09:36, 6.00s elapsed (4 services on 1 host)
Initiating OS detection (try #1) against 172.16.129.250
Retrying OS detection (try #2) against 172.16.129.250
SCRIPT ENGINE: Initiating script scanning.
SCRIPT ENGINE: rpcinfo.nse is not a file.
SCRIPT ENGINE: Aborting script scan.
Host 172.16.129.250 appears to be up ... good.
Interesting ports on 172.16.129.250:
Not shown: 1710 filtered ports
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn
445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds
3389/tcp open microsoft-rdp Microsoft Terminal Service
MAC Address: 00:11:2F:41:C7:57 (Asustek Computer)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose|authentication server
Running (JUST GUESSING) : Microsoft Windows XP|2000|2003 (98%), Juniper Windows 2000 (90%)
Aggressive OS guesses: Microsoft Windows XP SP2 (98%), Microsoft Windows 2000 SP4 or Windows XP SP2 (93%),
Microsoft Windows 2003 Small Business Server (93%), Microsoft Windows XP Professional SP2 (93%),
Microsoft Windows Server 2003 SP0 or Windows XP SP2 (93%), Microsoft Windows Server 2003 SP1 or SP2 (91%),
Microsoft Windows XP SP 2 (91%), Microsoft Windows XP SP2 (firewall disabled) (91%),
Microsoft Windows XP Professional SP2 (firewall enabled) (91%), Microsoft Windows Server 2003 SP2 (90%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=260 (Good luck!)
IP ID Sequence Generation: Incremental
Service Info: OS: Windows
Read data files from: /usr/share/nmap
OS and Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 19.020 seconds
Raw packets sent: 3493 (157.302KB) | Rcvd: 31 (2132B)
Pas grand chose de changé ici.
Voyons maintenant avec le pare-feu actif, sans aucune exception :
Starting Nmap 4.53 ( http://insecure.org ) at 2008-05-26 09:45 CEST
Initiating ARP Ping Scan at 09:45
Scanning 172.16.129.250 [1 port]
Completed ARP Ping Scan at 09:45, 0.02s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 09:45
Completed Parallel DNS resolution of 1 host. at 09:45, 0.00s elapsed
Initiating SYN Stealth Scan at 09:45
Scanning 172.16.129.250 [1714 ports]
Completed SYN Stealth Scan at 09:45, 36.54s elapsed (1714 total ports)
Initiating Service scan at 09:45
Initiating OS detection (try #1) against 172.16.129.250
Retrying OS detection (try #2) against 172.16.129.250
SCRIPT ENGINE: Initiating script scanning.
SCRIPT ENGINE: rpcinfo.nse is not a file.
SCRIPT ENGINE: Aborting script scan.
Host 172.16.129.250 appears to be up ... good.
All 1714 scanned ports on 172.16.129.250 are filtered
MAC Address: 00:11:2F:41:C7:57 (Asustek Computer)
Too many fingerprints match this host to give specific OS details
Network Distance: 1 hop
Read data files from: /usr/share/nmap
OS and Service detection performed. Please report any incorrect results at http://insecure.org/nmap/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 39.523 seconds
Raw packets sent: 3477 (157.546KB) | Rcvd: 18 (936B)
La moralité de l'histoire, c'est que dans ce cas, plus aucun port n'est accessible, ce qui est plutôt une bonne nouvelle si votre machine est directement connectée à l'internet.
==== Conclusions ====
Il est clair qu'il y a toujours quelques ports ouverts sur un hôte, sauf dans le cas de Windows XP (SP3 ici), avec le pare-feu actif sans aucune exception. Si les ports UDP ne présentent pas trop de dangers encore que...), les ports TCP sont plus inquiétants.
Par ailleurs, certaines machines de marque comme Compaq ou Hewlett Packard installent des dispositifs d'administration distante qui ouvrent également des ports à l'écoute et l'utilisateur ne le sait pas forcément.
Il importe donc de savoir avec le plus de précision possible qu'est ce qui est installé sur sa machine, volontairement ou involontairement.