GREY-X // WINDOWS LAB
netsh — WINHTTP PROXY
netsh est un outil natif de Windows permettant de configurer et d’inspecter différents composants réseau.
Dans un laboratoire de cybersécurité, une partie particulièrement intéressante est :
netsh winhttpCette fonctionnalité permet de gérer la configuration WinHTTP Proxy utilisée par certaines applications et certains services Windows.
Il faut cependant faire une distinction importante :
netsh
≠
proxy completnetsh permet principalement de configurer le client WinHTTP pour utiliser un proxy existant.
Il ne transforme pas à lui seul une machine Windows en serveur proxy HTTP comme pourrait le faire Squid ou mitmproxy.
01 // Afficher la configuration actuelle
#
La première commande à retenir :
netsh winhttp show proxyExemple :
Current WinHTTP proxy settings:
Direct access (no proxy server).Ou :
Proxy Server(s) : proxy.lab.local:8080
Bypass List : localhost;127.0.0.1Cette commande permet donc de répondre rapidement à la question :
Windows utilise-t-il actuellement
un proxy WinHTTP ?02 // Configurer un proxy
#
Dans un laboratoire, on peut configurer un proxy existant :
netsh winhttp set proxy proxy.lab.local:8080Avec une adresse IP :
netsh winhttp set proxy 192.168.56.20:8080Le fonctionnement devient :
WINDOWS
│
│ HTTP/HTTPS
▼
PROXY
192.168.56.20:8080
│
▼
INTERNETLe proxy doit évidemment être réellement présent et accepter les connexions.
netsh ne crée pas le service proxy.
03 // Ajouter une liste d'exclusion
#
On peut également définir des destinations qui ne doivent pas utiliser le proxy :
netsh winhttp set proxy proxy.lab.local:8080 "localhost;127.0.0.1;*.lab.local"La logique devient :
Application
│
├── destination exclue
│ ↓
│ DIRECT
│
└── autre destination
↓
PROXYCette notion est importante dans les environnements d’entreprise.
04 // Vérifier après modification
#
Après avoir configuré le proxy :
netsh winhttp show proxyIl faut vérifier que Windows retourne bien la configuration attendue.
Exemple :
Proxy Server(s) : 192.168.56.20:8080
Bypass List : localhost;127.0.0.1On peut alors comparer :
AVANT
Direct access
↓
CONFIGURATION
↓
APRÈS
192.168.56.20:808005 // Réinitialiser le proxy
#
Pour revenir au comportement direct :
netsh winhttp reset proxyLa configuration revient généralement à :
Direct access (no proxy server)Puis vérifier :
netsh winhttp show proxyCette étape est importante dans un laboratoire afin de ne pas laisser une configuration réseau temporaire derrière soi.
06 // WinHTTP ≠ navigateur
#
Une confusion fréquente consiste à penser que :
netsh winhttp set proxy ...configure automatiquement tous les navigateurs.
Ce n’est pas le cas.
WinHTTP possède sa propre configuration.
On peut donc avoir :
Navigateur
↓
Proxy navigateur
Service Windows
↓
WinHTTP ProxyLes deux configurations peuvent être différentes.
07 // Importer la configuration Internet
#
Windows fournit également :
netsh winhttp import proxy source=ieCette commande permet d’importer la configuration proxy des paramètres Internet du système vers WinHTTP.
Pour vérifier ensuite :
netsh winhttp show proxyCela peut être utile dans certains environnements où les paramètres proxy sont déjà définis au niveau Windows.
08 // Pourquoi c'est intéressant en Red Team ?
#
Lors d’un audit Windows, la configuration proxy peut révéler une partie de l’architecture réseau :
POSTE
│
▼
PROXY ENTREPRISE
│
▼
INTERNETLa commande :
netsh winhttp show proxypeut donc révéler :
adresse du proxy
port
liste d'exclusion
architecture réseauPar exemple :
Proxy Server(s) : 10.20.30.40:8080Cette information peut être utile pour comprendre :
comment les applications sortent du réseau09 // Proxy dans un laboratoire
#
On peut construire un laboratoire simple :
┌──────────────┐
│ Windows VM │
│ 10.10.10.10 │
└──────┬───────┘
│
│ HTTP
▼
┌──────────────┐
│ Proxy │
│ 10.10.10.20 │
│ :8080 │
└──────┬───────┘
│
▼
InternetSur Windows :
netsh winhttp set proxy 10.10.10.20:8080Puis :
netsh winhttp show proxyLe proxy doit être configuré séparément sur la machine 10.10.10.20.
Par exemple, dans un laboratoire contrôlé, on peut utiliser un outil de proxy HTTP prévu à cet effet.
10 // Observer le trafic
#
Une fois le proxy configuré, l’intérêt du laboratoire est d’observer le chemin réseau :
Application
│
▼
WinHTTP
│
▼
Proxy
│
▼
DestinationOn peut alors comparer :
DIRECTavec :
PROXYet observer les différences avec un analyseur réseau comme Wireshark.
11 // HTTPS : point important
#
Configurer un proxy ne signifie pas automatiquement que celui-ci peut lire le contenu HTTPS.
Avec :
HTTPSla communication est chiffrée.
On peut avoir :
Windows
│
│ TLS
▼
Proxy
│
│ TLS
▼
ServerLe proxy peut alors relayer la connexion sans nécessairement voir le contenu applicatif.
L’interception HTTPS nécessite un mécanisme supplémentaire, notamment une configuration TLS appropriée et, dans un laboratoire autorisé, une infrastructure de certificat de test.
12 // Côté Blue Team
#
Le proxy est également un élément important de la défense.
Un administrateur peut vérifier :
netsh winhttp show proxyet rechercher :
proxy inconnu
adresse inattendue
port inhabituel
bypass trop large
configuration persistante non documentéeUne configuration comme :
Proxy Server(s) : 10.10.10.50:8080doit être cohérente avec l’architecture réseau de l’organisation.
13 // Mini-lab GREY-X
#
Étape 1 — Vérifier #
netsh winhttp show proxyÉtape 2 — Configurer le proxy du laboratoire #
netsh winhttp set proxy 192.168.56.20:8080Étape 3 — Vérifier #
netsh winhttp show proxyÉtape 4 — Générer du trafic avec une application utilisant WinHTTP #
Observer ensuite le trafic côté proxy et avec Wireshark.
Étape 5 — Restaurer la configuration #
netsh winhttp reset proxyPuis :
netsh winhttp show proxyL’objectif est de comprendre :
APPLICATION
↓
WinHTTP
↓
PROXY
↓
NETWORK14 // Commandes à retenir
#
netsh winhttp show proxy→ afficher la configuration.
netsh winhttp set proxy 192.168.56.20:8080→ configurer un proxy WinHTTP.
netsh winhttp set proxy proxy.lab.local:8080 "localhost;127.0.0.1"→ configurer un proxy avec exclusions.
netsh winhttp reset proxy→ supprimer la configuration proxy WinHTTP.
netsh winhttp import proxy source=ie→ importer une configuration proxy Internet vers WinHTTP.
15 // La vision pentest
#
Une simple commande :
netsh winhttp show proxypeut révéler une information importante sur le chemin réseau d’une machine :
WINDOWS
│
▼
WinHTTP
│
┌───────┴───────┐
│ │
DIRECT PROXY
│
▼
INTERNETDans un pentest, l’intérêt est donc moins de « créer un proxy avec netsh » que de comprendre comment Windows est configuré pour utiliser un proxy.
netshconfigure le client WinHTTP. Le serveur proxy, lui, doit être fourni par un autre composant.
GREY-X — Configure. Observe. Understand.