Home » BLOG » Comment auditer les sites Web à l’intérieur des réseaux d’entreprise ?

Comment auditer les sites Web à l’intérieur des réseaux d’entreprise ?

Transformez les URL privées (VPN requis) en URL temporaires qui permettent les modifications de page mais masquent le contenu pour préserver sa confidentialité.

Il existe un problème assez courant pour ceux qui souhaitent faire l’audit d’un site Web à l’intérieur même d’un réseau d’entreprise.

Pour ce faire et si vous travaillez en interne, vous devez d’abord vous connecter au réseau d’entreprise à l’aide d’un client VPN, puis exécuter des outils d’audit pour examiner les pages. 

Malheureusement, seuls des outils que nous pouvons exécuter directement sur son ordinateur fonctionnent. Par exemple, le logiciel d’audit SEO ScreamingFrog fera très bien l’affaire.

Néanmoins, de nombreux sites Web d’entreprises contiennent des milliers voire des centaines de milliers de pages, ce qui rend le traitement à partir d’un ordinateur peu pratique en raison des contraintes de temps ou de vitesse de calcul de la machine.

Par ailleurs, des robots d’exploration basés sur le cloud d’entreprise tels que Oncrawl, DeepCrawl, etc. sont mieux adaptés à ce type de travail. Mais encore une fois, ces derniers ne peuvent pas auditer les sites à l’intérieur des réseaux privés.

De plus, s’ajoutent à ces contraintes des complications liées à la sécurité et à la confidentialité des données de l’entreprise. Pour cela il est courant de devoir passer par des questionnaires et des formulaires à remplir et à signer si vous êtes une agence ou un fournisseur externe.

Présentation des outils d’administration réseau pour le référencement

Voici quelques outils bien pratiques avec lesquels les administrateurs réseaux et systèmes sont familiers : ngrok et mitmproxy.

  • Ngrok peut être utilisé pour transformer les URL privées — cela nécessite un VPN — en URL temporaires et publiques. 
  • Mitmproxy peut être utilisé pour apporter des modifications aux pages, masquer le contenu, et ainsi préserver la confidentialité des données. Pour cela, l’écriture de simples scripts Python est requise.

Proxys et tunnels HTTP

Avant de plonger et de jouer avec les outils, passons en revue leurs concepts sous-jacents. 

Les proxys et les tunnels HTTP sont des approches standard pour relayer les requêtes / pages et les rendre disponibles d’un site source à un autre.

Ngrok crée des tunnels HTTP et mitmproxy est un proxy inverse. 

Ce sont deux cas d’utilisation différents qui conviennent parfaitement pour résoudre les problèmes qui concernent notre approche d’audit de site Web en entreprise.

Utilisation de Ngrok

Ngrok crée des tunnels HTTP et reste relativement simple à configurer et à utiliser.

Supposons que votre site de développement soit  https://semioredaction.com/:8080 et que vous ne puissiez ouvrir la page qu’après vous être connecté à l’aide du client VPN. 

Vous pouvez exposer temporairement ce site afin de pouvoir vérifier Google Search Console et Bing Webmaster Tools, et exécuter les outils d’inspection d’URL (ou les robots d’entreprise) sur les URL exposées.

Plus concrètement, voici comment procéder :

  1. Téléchargez et installez ngrok pour votre Mac ou PC Windows. 
  2. Ouvrez une fenêtre de terminal et lancez ngrok. 

Ngrok est un outil de ligne de commande, vous devez donc l’exécuter dans un shell et passer des paramètres pour le faire fonctionner.

Créons maintenant le tunnel HTTP et l’URL temporaire :

./ngrok http https://semioredaction.com/:8080 > ngrok.log 2>&1 &

À travers cette ligne, nous ordonnons à ngrok d’exposer le serveur Web qui n’est accessible que depuis notre ordinateur au port 8080. Nous y avons ajouté des commandes supplémentaires pour enregistrer les erreurs dans ngrok.log et enfin, nous voulons que le processus s’exécute en arrière-plan et nous laisse taper plus de commandes.

tail ngrok.log

Nous vérifions que le journal ne comporte aucune erreur et dès lors cela signifie que ça fonctionnera correctement. Ensuite, nous devrions obtenir l’URL publique générée.

Nous devons passer un appel API au service, qui renvoie une réponse JSON que nous devons analyser. Nous allons simplifier cette partie en téléchargeant un autre outil de ligne de commande pratique, disponible ici : jq

En supposant que vous ayez également curl, vous pouvez obtenir l’URL temporaire avec cette commande :

curl -s http://localhost:4040/api/tunnels | jq “.tunnels[0].public_url”

Vous devriez obtenir une URL que vous pouvez ouvrir dans votre navigateur Web comme ceci :

” Https://f8139ca0f3b9.ngrok.io “

Après l’avoir ouverte, vous verrez le site interne. Essayez d’utiliser l’outil de test enrichi dessus (l’URL que vous obtenez, pas celui de cet exemple) et cela devrait fonctionner. 

Comme vous ne possédez pas le domaine ngrok.io, vous devez passer par une étape supplémentaire pour vous inscrire à Google Search Console et aux outils Bing pour les webmasters : créer un compte et enregistrer un domaine personnalisé que vous contrôlez. 

Avant de créer le tunnel, vous devez vous authentifier :

./ngrok authtoken <token>

Ensuite, vous ajoutez un autre paramètre pour spécifier le domaine personnalisé pendant que vous créez le tunnel :

./ngrok http -hostname=dev.yourdomain.com https://semioredaction.com/:8080 > ngrok.log 2>&1 &

Vous pourrez alors enregistrer ce sous-domaine et exécuter les outils d’inspection d’URL (ou votre robot d’exploration préféré).

Passons maintenant à Mitmproxy.

Utilisation de Mitmproxy

Nous avons donc appris à exposer les sites de préparation à l’intérieur du réseau d’entreprise à l’aide d’URL publiques temporaires. Mais que se passerait-il si nous ne souhaitions pas risquer de rendre le contenu public et de révéler par mégarde des informations inopinées qui pourraient nuire à une société cotée en bourse ?

Une option consiste à superposer un proxy inverse et à l’utiliser pour masquer toute information privée dans le HTML et / ou les images, afin de préserver les données et la confidentialité de l’entreprise.

Mitmproxy est un proxy HTTPS très pratique qui, entre autres, vous permet de modifier le trafic HTTP qui le traverse.

Vous pouvez effectuer de simples remplacements de texte dans la ligne de commande ou des modifications arbitraires en écrivant de simples scripts Python . 

Mitmproxy peut fonctionner sous plusieurs modes, mais nous nous intéresserons dans notre cas à son reverse proxy

C’est un package Python, vous pouvez donc l’installer en utilisant ce code : 

pip install mitmproxy

Puis l’appeler en écrivant :

mitmproxy -P 8081 –mode reverse:https://semioredaction.com/:8080

Illustrons cette technique puissante avec un exemple. 

Nous allons inverser StackOverflow et changer le texte de leur H1 de “People who code” à “SEOs who code” 

mitmproxy -P 8081 –mode reverse:https://stackoverflow.com/ –modify-body ‘/ people who code/ SEOs who code’


Ouvrons le navigateur sur http://localhost:8081 et voyons s’il fonctionne.

Et le tour est joué ! Maintenant, dites-moi que ce n’est pas un truc excitant ?

L’idée est de remplacer tout texte ou image qui ne devrait pas être exposé publiquement.

Vous devrez ensuite exécuter ngrok pour lui demander de se connecter à ce proxy inverse au port 8081 au lieu de directement au serveur source.

./ngrok http -hostname=dev.yourdomain.com localhost:8081 > ngrok.log 2>&1 &

MIT signifie Man in the middle attack, ou en français l’attaque de l’intercepteur, qui est un concept de sécurité informatique qui signifie qu’il y a un dispositif / élément d’interception dans une conversation bidirectionnelle. Cet appareil peut altérer les informations transmises.

Comme vous pouvez l’imaginer, cela pourrait être utilisé à des fins néfastes. Dans notre cas, nous voulons bien évidemment l’utiliser pour un audit en interne. 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.