Sécuriser Windows 2003 Server Web Edition
Par Yoann, jeudi 21 décembre 2006 à 10:49 :: Wind0Z :: #60 :: rss
La version Web Edition de Microsoft Windows 2003 Server est une version allégé de Windows 2003 Server.
Elle est destiné à l'hébergement de site Web.
Ce billet à pour but d'expliquer comment sécuriser un minimum un system Windows 2003 Server isolé.
Conditions :
Les recommendations présentes dans ce document ne peuvent être utilisées seulement sur un system Windows 2003 Server isolé. (Sur un system ne faisant pas partie d'un domain Active Directory)
Les commandes très utiles :
netstat
Netstat permet de lister les services reseaux en fonctionnement. Nous utiliserons régulièrement les options -ano :
- -a : Affiche tous les connexions et les ports d'écoute
- -n : Affiche les ports et les adresses dans un format numérique
- -o : Affiche le PID. (Le numero du process, que l'on pourra retrouver avec tasklist)
tasklist
Tasklist afficher la translation entre les PID (numero de process) et nom du process
Les ports TCP et UDP utilisés par default :
C:\>netstat -ano Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:25 0.0.0.0:0 LISTENING 1200 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1500 TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 640 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 452 TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING 932 TCP 0.0.0.0:1028 0.0.0.0:0 LISTENING 1200 TCP 0.0.0.0:1029 0.0.0.0:0 LISTENING 1200 TCP 0.0.0.0:1030 0.0.0.0:0 LISTENING 1200 TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 692 TCP 0.0.0.0:8098 0.0.0.0:0 LISTENING 1500 TCP 0.0.0.0:8099 0.0.0.0:0 LISTENING 1500 TCP 10.1.10.143:139 0.0.0.0:0 LISTENING 4 UDP 0.0.0.0:135 *:* 640 UDP 0.0.0.0:445 *:* 4 UDP 0.0.0.0:500 *:* 452 UDP 0.0.0.0:1027 *:* 840 UDP 0.0.0.0:1031 *:* 1200 UDP 0.0.0.0:3456 *:* 1200 UDP 0.0.0.0:4500 *:* 452 UDP 10.1.10.143:123 *:* 932 UDP 10.1.10.143:137 *:* 4 UDP 10.1.10.143:138 *:* 4 UDP 127.0.0.1:123 *:* 932 UDP 127.0.0.1:3456 *:* 1200
Nous allons voir maintenant à quel services ces ports TCP ou UDP servent, comment les couper, ou faire en sorte de sécuriser leurs utilisations au maximum.
IPSEC Services (PolicyAgent) Ports UDP/500, UDP/4500:
Le service IPSEC ouvert deux socket UDP :
- UDP/500 : ISAKMP
- UDP/4500 : NET-T
Nous pouvons voir ci-dessus que ces deux sockets ont le meme PID soit 452. Avec la command tasklist nous pouvons récupérer le nom, et les services associé au PID.
C:\>tasklist /svc /fi "pid eq 452" Image Name PID Services ========================= ====== ================================================ lsass.exe 452 HTTPFilter, PolicyAgent, ProtectedStorage, SamSs
Pour fermer ces deux socket il faut arreter le service PolicyAgent.
C:\>net stop policyagent The IPSEC Services service is stopping. The IPSEC Services service was stopped successfully.
Pour que le service PolicyAgent ne se relance pas au demarrage de la machine, il faut spécifier que le lancement de ce service ce fait sûr demande et non en automatique.
C:\>sc config policyagent start= demand [SC] ChangeServiceConfig SUCCESS
Windows Time service (w32time) Ports UDP/123:
Le service Time ouvre un socket UDP (port 123) sur chaque interface réseau.
Pour fermer tous ces socket il faut arreter le service w32time
C:\>net stop w32time The Windows Time service is stopping. The Windows Time service was stopped successfully.
Pour que le service w32time ne se relance pas au demarrage de la machine, il faut spécifier que le lancement de ce service ce fait sûr demande et non en automatique.
C:\>sc config w32time start= demand [SC] ChangeServiceConfig SUCCESS
NetBIOS over TCP/IP driver (NetBT support) Ports UDP/137, UDP/138, TCP/139 :
NetBIOS over TCP/IP ouvre trois socket sur chaque adresse IP de chaque interface réseau. Ces trois socket correspondent aux trois services de NetBIOS over TCP/IP.
- UDP/137 : Résolution de nom NetBIOS
- UDP/138 : Datagrame NetBIOS
- TCP/139 : Session NetBIOS
Pour fermer tous ces socket il faut arrêter le service NetBIOS over TCP/IP sur chaque interface réseau. Pour cela choissiez Désactiver NetBIOS over TCP/IP dans l'onglet "WINS" dans les parametres TCP/IP avancés de chaque interface réseau.

NetBIOS over TCP/IP driver (SMB support) Port UDP/445, TCP/445:
SMB ouvre deux socket.
- UDP/445 :
- TCP/445 :
Pour fermer ces socket il faut arrêter les services Server, Workstation, et NetBT.
Arreter le service Server :
C:\>net stop /y srv The following services are dependent on the Server service. Stopping the Server service will also stop these services. Distributed File System Computer Browser The Distributed File System service is stopping. The Distributed File System service was stopped successfully. The Computer Browser service is stopping. The Computer Browser service was stopped successfully. The Server service is stopping. The Server service was stopped successfully.
Arreter le service Workstation :
C:\>net stop /y rdr The Workstation service is stopping. The Workstation service was stopped successfully.
Arreter le service NetBT :
C:\>net stop /y netbt The following services are dependent on the NetBios over Tcpip service. Stopping the NetBios over Tcpip service will also stop these services. TCP/IP NetBIOS Helper The TCP/IP NetBIOS Helper service was stopped successfully. The NetBios over Tcpip service was stopped successfully.
Pour eviter que ces services ne redemarre au prochain demarrage du system, il faut spécifier que le lancement de ces services ce fait sûr demande et non en automatique.
C:\>sc config netbt start= demand [SC] ChangeServiceConfig SUCCESS C:\>sc config lmhosts start= demand [SC] ChangeServiceConfig SUCCESS C:\>sc config dfs start= demand [SC] ChangeServiceConfig SUCCESS C:\>sc config browser start= demand [SC] ChangeServiceConfig SUCCESS C:\>sc config lanmanserver start= demand [SC] ChangeServiceConfig SUCCESS C:\>sc config lanmanworkstation start= demand [SC] ChangeServiceConfig SUCCESS
Nous pouvons également désactiver le lancement du service Remote Regitry, parce que quand le service Server (lanmanserver) est désactivé il n'est plus possible d'accèder à distance à la base de registre.
C:\>sc config remoteregistry start= demand [SC] ChangeServiceConfig SUCCESS
DNS Client service (Dnscache) Port UDP/1029 :
Pour arreter le service Dnscache :
C:\>net stop dnscache The DNS Client service is stopping. The DNS Client service was stopped successfully.
Pour ne pas qu'il se relance automatiquement après le redemarrage :
C:\>sc config dnscache start= demand [SC] ChangeServiceConfig SUCCESS
Services RPC Port TCP/135, TCP/1025, TCP/1026, ... :
On trouve le service MSRPC sur le port TCP/135 :
* TCP/135
Les autres services RPC peuvent ouvrir plusieurs socket entre les ports TCP/1025 et TCP/5000 (Voir la command rpccfg pour changer la plage de port).
Il n'est pas possible de désactiver les services RPC !
Par default les services RPCRPC écoute sur toutes les interfaces réseaux.
C:\>netsh -c rpc netsh rpc>show interface Subnet Interface Status Description 10.1.10.0 10.1.10.143 Enabled 3Com 3C920 Integrated Fast Ethernet Controller (3C905C-TX Compatible) 127.0.0.0 127.0.0.1 Enabled MS TCP Loopback interface netsh rpc>show settings Default
Il est possible de restreindre les services RPC à seulement écouter sur l'adresse de loopback (127.0.0.1).
C:\>netsh -c rpc netsh rpc>add 127.0.0.1
netsh rpc>show settings Add List 127.0.0.1
Après le redemarrage du system tous les services RPC ecouterons uniquement sur l'interface de loopback.
TCP 127.0.0.1:135 0.0.0.0:0 LISTENING 616 TCP 127.0.0.1:1025 0.0.0.0:0 LISTENING 440 TCP 127.0.0.1:1026 0.0.0.0:0 LISTENING 820
Le resultat après avoir appliqué toutes ces recommendations :
Le service SMTP :
Proto Local Address Foreign Address State PID TCP 0.0.0.0:25 0.0.0.0:0 LISTENING 1184
Le service HTTP :
Proto Local Address Foreign Address State PID TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1340
Le service de prise en main a distance du bureau :
Proto Local Address Foreign Address State PID TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 676
L'interface d'administration par le web en HTTPS :
Proto Local Address Foreign Address State PID TCP 0.0.0.0:8098 0.0.0.0:0 LISTENING 1340
L'interface d'administration par le web en HTTP
Proto Local Address Foreign Address State PID TCP 0.0.0.0:8099 0.0.0.0:0 LISTENING 1340
Les services RPC (qui ecoute bien seulement sur l'interface de loopback) :
Proto Local Address Foreign Address State PID TCP 127.0.0.1:135 0.0.0.0:0 LISTENING 616 TCP 127.0.0.1:1025 0.0.0.0:0 LISTENING 440 TCP 127.0.0.1:1026 0.0.0.0:0 LISTENING 820 TCP 127.0.0.1:1027 0.0.0.0:0 LISTENING 1184 TCP 127.0.0.1:1028 0.0.0.0:0 LISTENING 1184 TCP 127.0.0.1:1029 0.0.0.0:0 LISTENING 1184 UDP 127.0.0.1:135 *:* 616 UDP 127.0.0.1:1030 *:* 1184 UDP 127.0.0.1:3456 *:* 1184
IISADMIN (inetinfo.exe)
Proto Local Address Foreign Address State PID UDP 0.0.0.0:3456 *:* 1184
Un NMAP de l'extérieur (depuis une machine linux) :
Scan TCP :
# nmap -p T:1-10000 10.1.10.143 Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-21 14:18 CET Not shown: 9995 closed ports PORT STATE SERVICE 25/tcp open smtp 80/tcp open http 3389/tcp open ms-term-serv 8098/tcp open unknown 8099/tcp open unknown
Scan UDP :
# nmap -sU -p U:0-10000 -P0 -T Aggressive 10.1.10.143 Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-21 14:20 CET Not shown: 10000 closed ports PORT STATE SERVICE 3456/udp open|filtered IISrpc-or-vat
Commentaires
1. Le lundi 20 août 2007 à 18:44, par AlexB
2. Le jeudi 20 septembre 2007 à 23:04, par jojo l'admin
Ajouter un commentaire