Il existe différentes techniques de prise de contrôle à distance, je vais vous présenter celles mettant en oeuvre Virtual Network Computing ou VNC pour les intimes…
À la fermeture de ce laboratoire, l'équipe de développement de VNC a souhaité poursuivre sur une version open source du projet. C'est grâce à cette démarche que vous disposez aujourd'hui de plusieurs logiciels VNC libres et gratuits.
VNC utilise le protocole RFB (Remote Framebuffer) pour partager le bureau d'un environnement graphique. Ce protocole est basé sur le Framebuffer (ou mémoire tampon d'une image, en bon français...) contenu dans les cartes vidéos des ordinateurs. Chaque pixel qui doit s'afficher sur l'écran est défini de manière précise, notamment au niveau des informations de couleurs le caractérisant, dans ce Framebuffer.
![Illustration de la localisation du framebuffer de la carte vidéo sur une tour d'ordinateur. On voit qu'elle se situe juste avant la sortie vers le cable de l'écran.](https://user.oc-static.com/upload/2018/09/27/15380467289261_image36.png)
Ainsi, vous pourrez l'utiliser indifféremment sous Windows, macOS ou encore Linux.
Cependant, VNC et donc RFB ont également un inconvénient : ils ne sont que de simples vecteurs de pixels bruts, et ne seront pas aussi intelligents que des protocoles concurrent. Parmi ceux-ci, on peut citer les protocoles natifs comme RDP (Remote Desktop Protocol) pour Windows ou X11 pour les systèmes Unix.
Les 3 composants d'une prise de contrôle avec VNC
Pour prendre le contrôle à distance d'un poste Windows / Linux, il vous faut 3 composants indispensables.
Le serveur VNC installé sur la machine cible de la prise de contrôle ;
Le client VNC installé sur la machine avec laquelle vous souhaitez prendre le contrôle ;
Un protocole d'échange, RFB.
Le serveur VNC
Ce logiciel ouvre un port sur le réseau permettant au client de s'y connecter. Vous devez donc disposer des droits d'exécuter un programme ouvrant un port sur cette machine. En règle générale, ce port est configuré par défaut sur 5900.
Le client VNC
Lors de cette connexion, vous allez indiquer à ce client l'adresse IP (ou le nom de domaine résolu) du serveur, ainsi que son port d'écoute, en général 5900.
La communication grâce au protocole RFB
Le serveur enverra par la suite des informations directement issues du Framebuffer de la carte vidéo, représentant le bureau graphique.
Le client enverra toutes les informations d'interaction avec le matériel sur ce bureau, comme par exemple, déplacement du pointeur de la souris, le clic sur le bouton gauche, ou encore la frappe sur une touche du clavier.
![Illustration de la prise de contrôle d'un poste à distance avec VNC. Il faut le serveur VNC installé sur la machine cible du contrôle, le client VNC sur la machine prenant le contrôle, et un canal de communication grâce au protocole RFB.](https://user.oc-static.com/upload/2018/10/02/15384920330272_01.png)
Il existe également quelques options intéressantes, telles que le mot de passe de protection pour se connecter au serveur, ou encore la compression des pixels pour optimiser la bande passante. Ces options sont éventuellement proposées en fonction des différents logiciels VNC du marché, je vous propose de les résumer dans le chapitre suivant.
En résumé
VNC (Virtual Network Computing)utilise le protocole RFB (Remote Framebuffer), qui transmet les images du bureau indépendamment du système d'exploitation.
VNC nécessite trois éléments : un serveur VNC sur l'ordinateur cible, un client VNC sur l'ordinateur utilisateur, et le protocole RFB pour la liaison.
Le serveur VNC ouvre un port réseau pour la connexion, et le client VNC s'y connecte via une adresse IP ou un nom de domaine.
Des options de prise de commande à distance comme la protection par mot de passe ou le mode de compression des pixel sont configurables.
Vous avez à présent une meilleure connaissance du fonctionnement de la prise de contrôle à distance. Identifions dans le prochain chapitre les différents outils VNC.