Ports NetBios et associés sur IP
(Pour une étude plus générique des ports ouverts sous Windows se reporter ici)

Sous IP, deux catégories de ports, en environnement Windows, sont réputés pour donner accès aux fonctionnalités des machines ou pour provoquer des montées de lignes intempestives sur des routeurs mal configurés. Ce sont le port de "localisation de service" (traduction personnelle de la chose) et les ports Netbios (Pour une étude plus générique des ports ouverts sous Windows se reporter ici).

Ces ports sont 135, 137, 138 et 139 (TCP et UDP). Il est de notoriété publique qu'en principe les protocoles utilisés sont TCP sur 135, 139 et UDP sur 137, 138. Cependant j'ai constaté moi-même en analysant des séquences de trames que cette règle n'était pas absolue. Alors, dans le doute, si vous devez désactiver sur un routeur ou un firewall les protocoles en question, il sera prudent de le faire pour TCP et UDP sur chaque port (abondance de précaution ne peut nuire).


Tableau des ports et usage

Port

Nom court

Nom usuel

Usage

135

EPMAP

Service Location

Service permettant la réalisation des appels de procédures distantes (RPC ou Remote Procedure Call). Tous les actes administratifs distants sous Windows utilisent les RPC.
Ce port est, en réalité, un véritable dispatcher ou plutôt "port-mapper". Lorsqu'une machine cherche à atteindre un service sur une machine distante elle se connecte d'abord via le port 135 pour localiser le port réel sur lequel tourne le service qui l'intéresse. Ensuite elle dialoguera via le numéro de port qui lui aura été communiqué pour le service concerné. D'où le nom de ce port (localisation de service, en français). Dans la réalité c'est beaucoup plus subtile que cela. Voir ici une explication simplifiée du mécanisme de mapping de port.

Sur ce port 135 se situe aussi le gestionnaire de contrôle de services COM (COM SCM). Donc ce port est aussi nécessaire aux mécanisme DCOM.

137

NETBIOS-NS

NetBios Name Service

Utilisé pour enregistrer les noms NetBios dans la base Wins. Une bonne description du mécanisme ici ().
Pour résumer, on peut dire que sur un réseau s'appuyant sur NetBios, c'est le moyen par lequel chaque service peut trouver son ou ses partenaires sur les machines distantes. Ce système permet de trouver un service donné sur une machine donnée sans connaissance préalable d'une quelconque adresse réseau (IP ou autre).
Ceci est possible en utilisant une technique de broacast ou en centralisant les données dans un serveur de noms NetBios (serveur WINS). On peut aussi utiliser les fichiers lmhosts en environnement IP mais cela est déconseillé en terme de maintenance et ne fournit que des informations limitées qui doivent être complétées ensuite en interrogeant directement la machine cible.

Comment peut-on codifier la notion de service à l'intérieur du nom NetBios ? Tout simplement en utilisant un caractère spécial, non affichable, en fin de nom qui va représenter le service. Vous trouverez plus bas la codification des noms NetBios () par le biais du dernier octet.

138

NETBIOS-DGM

NetBios Datagram Service

A son nom, on comprend pourquoi, en principe, seul UDP est utilisé sur ce port.
Ce port est essentiellement utilisé pour diffuser (broadcast) de l'information sur le réseau. En effet, toutes les stations Windows étant en attente de datagramme venant de n'importe où sur ce port, elles reçoivent ensemble tous ceux qui sont émis dans sa direction.

C'est utilisé avant tout par le service explorateur réseau (SMB browser service) qui vous fournit l'information que vous apercevez dans le fameux voisinage réseau.

139

NETBIOS-SSN

NetBios Session Service

A son nom, on comprend pourquoi seul TCP est, utilisé sur ce port.
C'est sur ce port que s'établissent les véritables connexions entre deux machines. C'est par exemple celui qui sera utilisé, lorsque vous aurez découvert une machine par le voisinage réseau, pour accéder à ses ressources (partages de fichiers et d'imprimantes).

Désactiver les ports NetBios sur IP pour une interface réseau donnée
(137, 138 et 139)

Sous NT

Désactiver les liens entre NetBios et une carte réseau suffit à inhiber l'usage des ports 137 à 139 sur cette carte. Dans les propriéts réseau, onglet "Liaisons", sélectionner l'affichage par "Toutes cartes", cliquer droit sur "Client WINS (TCP/IP)" et choisir "Désactiver".

Sous 9x

Dans Propriétés réseau, protocole "TCP/IP-> la_carte_qui_convient" (par exemple carte d'accès distant), Liens, désactivez les liaisons avec client pour les réseaux Microsoft et Partage de fichiers et d'imprimante pour les réseaux Microsoft. Confirmer si un message vous demande si vous êtes bien sûr de ne vouloir relier le protocole à aucun service.
Mon avis : Le réseau local de la maison (ou d'une toute petite structure) est typiquement le type de réseau sur lequel Netbeui convient parfaitement comme protocole pour toutes les "windoseries". Ne conserver TCP/IP que pour les applications internet. Vous gagnerez en sécurité et efficacité.

Sous Window 2000

Paramètres, connexions réseau et accès à distance, clic droit sur la carte réseau puis propriétés.

  • Double-clic sur protocole internet (TCP/IP)

  • Clic sur bouton "Avancé...", puis onglet "WINS"

  • Choisir "Désactiver NetBios avec TCP/IP"


La commande nbtstat -n donnera alors :

D:\Temp>nbtstat -n

Connexion au réseau Gigabit:
Adresse IP du noeud: [192.168.0.100] ID d'étendue: []

    Aucun nom dans le cache


Si au contraire, on laisse NetBIOS sur TC/IP, on obtient ceci a minima :

D:\Temp>nbtstat -n

Connexion au réseau Gigabit:
Adresse IP du noeud: [192.168.0.100] ID d'étendue: []

                Table nom local NetBIOS

       Nom                Type         Statut
    ---------------------------------------------
    DELL3-ED       <00>  UNIQUE      Inscrit
    MAISON         <00>  GROUP       Inscription


On remarque là deux noms dont le premier est le nom NetBIOS de la machine et le second le nom du domaine ou du groupe de travail auquel elle appartient. Mais l'activation de NetBIOS sur IP est en cours et on remarque que le nom de groupe « MAISON » et encours d'inscription. Il en tardera pas à être validé et avec un peu de patience ça se complète :

D:\Temp>nbtstat -n

Connexion au réseau Gigabit:
Adresse IP du noeud: [192.168.0.100] ID d'étendue: []

                Table nom local NetBIOS

       Nom                Type         Statut
    ---------------------------------------------
    DELL3-ED       <00>  UNIQUE      Inscrit
    MAISON         <00>  GROUP       Inscrit
    MAISON         <1E>  GROUP       Inscrit
    MAISON         <1D>  UNIQUE      Inscrit
    ..__MSBROWSE__.<01>  GROUP       Inscrit


Ensuite on remarque qu'il existe deux type de noms : les noms uniques et les noms de groupes. L'usage du couple NetBIOS/NetBEUI est conçu au départ pour être confiné à un fonctionnement en LAN (le protocole NetBEUI) n'est d'ailleurs absolument pas routable. Sur ce LAN deux nom NetBIOS uniques ne peuvent se retrouver à l'identique sur deux postes. A contrario, un nom de groupe peut se trouver sur un nombre quelconque de machines. Attention de bien prendre en compte les 16 caractères du nom en lisant le résultat de la commande précédente. « MAISON <1D> » est un nom unique car il représente le maître explorateur du groupe ou domaine et qu'il ne peut y avoir qu'un seul maître explorateur.

Les noms NetBIOS comportent 16 caractères pas un de plus ni un de moins. Les caractères manquants sont remplacés par des « blancs » (code ascii 32). Dans la machinerie Microsoft, le 16e caractère est utilisé de façon spéciale pour signifier le rôle que joue le nom. Souvent ce sont des codes non affichables et la commande nbtstat vous les affiche donc sous forme de code ascii hexadécimal (exemple : <1E>). Vous trouverez, plus bas, une description des significations les plus courantes.

Avec la commande nbtstat -a <nom_ordinateur_distant>, vous pouvez obtenir des renseignements sur les noms NetBIOS connus d'un ordinateur distant :

D:\Temp>nbtstat -n titi

Connexion au réseau Gigabit:
Adresse IP du noeud: [192.168.0.100] ID d'étendue: []

    Table de noms NetBIOS des ordinateurs distants

       Nom                Type         État
    ---------------------------------------------
    TITI           <00>  UNIQUE      Inscrit
    TITI           <20>  UNIQUE      Inscrit
    MY_HOME        <00>  GROUP       Inscrit
    MY_HOME        <1C>  GROUP       Inscrit
    MY_HOME        <1B>  UNIQUE      Inscrit
    MY_HOME        <1E>  GROUP       Inscrit
    TITI           <03>  UNIQUE      Inscrit
    A DUPOND       <03>  UNIQUE      Inscrit
    MY_HOME        <1D>  UNIQUE      Inscrit
    ..__MSBROWSE__.<01>  GROUP       Inscrit
    TITI           <01>  UNIQUE      Inscrit
    INet~Services  <1C>  GROUP       Inscrit
    IS~TITI........<00>  UNIQUE      Inscrit

    Adresse MAC = 00-48-54-67-8C-D7


Notez que vous récupérez son adresse MAC, en prime. C'est une des multiples façon de l'avoir (pas la plus économique). Sur la sortie précédente, on remarque la présence de noms qui correspondent à des services spécifiques :

Avec la commande nbtstat -r on peut avoir la liste des noms NetBIOS non locaux qui ont été résolus par la machine :

D:\Temp>nbtstat -r

    Statistiques des noms NetBIOS définis et inscrits
    ----------------------------------------------------

    Définis par diffusion        = 3
    Définis par serveur de noms  = 0

    Inscrits par diffusion       = 6
    Inscrits par serveur de noms = 0

    Noms NetBIOS définis par diffusion
---------------------------------------------
           MAISON         <00>
           TAIGA          <00>
           TITI           <00>



Table des noms NetBIOS

 

Nom enregistré

Description

Computername <00>

Enregistré par le service station de travail de l'ordinateur "client". C'est le fameux « nom NetBIOS de l'ordinateur »

Computername <03>

Enregistré par le service de messages (Messenger service). Le service qui permet par exemple de recevoir un message pop-up envoyé par la commande "net send nom_ordi". En général, quand ce service est actif, on retrouve deux noms uniques de ce type : celui de l'utilisateur courant et celui de la machine (cf. ci-dessous).

Username <03>

Enregistré par le service de messages (Messenger service). Le service qui permet par exemple de recevoir un message pop-up envoyé par la commande "net send nom_user". Notez que ce nom est unique ; cela signifie que si quelqu'un se loge avec le même login sur deux machines en même temps, il ne recevra les messages envoyés à son nom que sur la première machine.

Computername

Enregistré par le service serveur. Selon le soft utilisé pour visualiser les nom NetBios il peut apparaître suivi de <20> mais en fait ce caractère hexadécimal 20 correspond à un caractère "espace" qui est le caractère de remplissage normal de fin du nom NetBios. En effet, tous les nom NetBios ont même longueur. Lorsqu'un nom est plus court que le nombre de caractères maxi, il est complété avec des blancs. C'est ce nom qui est utilisé par les "clients" pour établir une connexion à un "serveur" ("serveur" désigne ici toute machine configurée pour partager des ressources, telles que fichiers, imprimantes, ...). C'est par ce nom que sont offerts les services de partage de fichiers et d'imprimantes.

Workgroup or domainname <00>

Ceci est un nom NetBios de groupe. Ce qui le distingue des précédents c'est que plusieurs hôtes peuvent avoir en registré le même dans leur table de nom interne. Les précédents doivent être uniques sur un segment LAN donné. Ce nom NetBios dénote l'appartenance à un groupe de travail ou un domaine.

Workgroup or domainname <1E>

Nom de groupe comme le précédent. Celui-ci est utilisé pour les élections de maître explorateur du domaine ou groupe de travail.

Domainname <1B>

Enregistre l'ordinateur local comme le maître explorateur du domaine ou groupe de travail. De ce fait ce nom-ci est un nom unique, contrairement aux deux précédents.

Domainname <1C>

Enregistre l'ordinateur local comme le contrôleur de domaine. Ne surtout pas confondre la notion de contrôleur de domaine avec celle de maître explorateur (même si c'est le CPD d'un domaine NT qui est normalement élu maître explorateur de son domaine). Ce nom ne distingue pas la nature "principale" ou "secondaire" du contrôleur de domaine. De ce fait, il s'agit évidemment d'un nom de groupe.

Workgroup or domainname <1D>

Enregistre l'ordinateur local comme l'explorateur maître pour le domaine ou le groupe de travail sur le sous-réseau local. En effet, on peut très bien imaginer des domaine ou des groupes de travail "enjambant" des routeurs. Il faut alors un maître explorateur sur chaque sous-réseau pour pouvoir répondre aux requêtes par diffusion (broadcast). C'est encore un nom NetBios unique.

..__MSBROWSE__.<01>

Sert à annoncer le domaine ou le groupe de travail, par un mécanisme de concaténation avec un nom de domaine ou de groupe de travail géré par le protocole, aux masters browsers des autres domaines et groupes de travail.


Vous trouverez la liste complète ici, chez Microsoft : http://www.microsoft.com/resources/documentation/windowsnt/4/server/reskit/en-us/net/sur_apph.mspx

Vous pouvez dorénavant apprécier toute la saveur de l'écran du gestionnaire Wins de Windows NT.


Références :

http://www.microsoft.com/TechNet/network/tcparch.asp

http://www.microsoft.com/TechNet/winnt/winntas/technote/planning/capacityplanning/a05_reg.asp


mailto:etienne.durup@free.fr

Dernière mise à jour : 26.01..2002