Accueil » Cours » Administration sécurité » Gestion de la cybersécurité » TP07 – Tunneling & Port Forwarding avec Chisel, Sshuttle, SSH Tunnelling et Revsocks

Objectifs du TP

Ce TP a pour objectif de vous enseigner différentes méthodes de tunneling et de redirection de port pour accéder à des réseaux distants de manière sécurisée ou pour contourner des restrictions réseau. Vous allez apprendre à utiliser :

  • Chisel : Un outil rapide et léger pour créer des tunnels entre des machines.

  • Sshuttle : Un outil de type VPN pour transporter du trafic sur SSH.

  • SSH Tunnelling : Un classique pour rediriger du trafic réseau sécurisé via SSH.

  • Revsocks : Une alternative légère pour rediriger des connexions.

Prérequis

  • Un système Linux ou Windows pour exécuter les tests, avec au moins deux machines (réelles ou virtuelles).

  • Droits d’accès sur le système cible (idéalement un accès utilisateur).

  • Accès à un terminal (Bash ou PowerShell).

  • Installations de Chisel, Sshuttle, SSH et Revsocks.

Étape 1 : Installation des Outils

Chisel

Pour installer Chisel, vous pouvez télécharger la dernière version depuis GitHub. Sur Linux, exécutez :

curl -L https://github.com/jpillora/chisel/releases/download/v1.7.7/chisel_1.7.7_linux_amd64.gz | gunzip > chisel
chmod +x chisel

Sur Windows, téléchargez l’exécutable depuis le dépôt GitHub et placez-le dans un répertoire accessible.

Sshuttle

Pour installer Sshuttle, exécutez la commande suivante sur une machine Linux :

sudo apt-get install sshuttle -y

SSH (OpenSSH)

OpenSSH est souvent déjà installé sur les systèmes Linux. Pour vérifier, exécutez :

sudo apt-get install openssh-client openssh-server -y

Revsocks

Pour installer Revsocks, vous pouvez le télécharger directement depuis GitHub :

git clone https://github.com/revsocks/revsocks.git
cd revsocks
chmod +x revsocks

Étape 2 : Utilisation de Chisel pour le Tunneling

Chisel est un outil efficace pour créer des tunnels entre des machines, ce qui est utile pour contourner des pare-feux ou accéder à des services restreints.

Action 1 : Démarrer un Serveur Chisel

Sur la machine d’attaque (ou la machine contrôlée), démarrez un serveur Chisel pour écouter sur le port 8000 :

./chisel server -p 8000 --reverse

Action 2 : Connecter un Client à Chisel

Sur la machine cible, exécutez la commande suivante pour établir une connexion à la machine d’attaque :

./chisel client <IP_de_l'attaquant>:8000 R:8080:127.0.0.1:80

Cela redirigera le port 80 de la machine cible vers le port 8080 de la machine d’attaque.

Actions à Réaliser :

  1. Tester l’Accès : Une fois le tunnel établi, vérifiez si vous pouvez accéder à un service web sur le port 8080 de la machine d’attaque.

  2. Documenter la Connexion : Notez les détails de la configuration du tunnel et les tests effectués.

  3. Automatiser le Processus : Créez un script Bash qui démarre le serveur et le client Chisel automatiquement pour simplifier l’accès.

  4. Analyse de Réseau : Utilisez tcpdump ou wireshark pour vérifier le trafic passant par le tunnel.

  5. Tester la Sécurité : Vérifiez si les pare-feux peuvent détecter ou bloquer la connexion Chisel, et évaluez la sécurité du tunnel.

Étape 3 : Utilisation de Sshuttle pour Transporter du Trafic

Sshuttle est un outil de type VPN qui permet de transporter du trafic réseau sur SSH.

Action 1 : Démarrer un Tunnel avec Sshuttle

Sur la machine d’attaque, utilisez la commande suivante pour créer un tunnel avec la machine cible :

sshuttle -r user@<IP_de_la_cible> 0/0 -vv

Cette commande redirigera tout le trafic réseau vers la machine cible via SSH.

Actions à Réaliser :

  1. Vérifier la Connexion : Vérifiez si la machine d’attaque peut accéder à des sites web ou à d’autres services à travers la machine cible.

  2. Surveiller le Trafic : Utilisez des outils comme iftop pour surveiller le trafic réseau qui passe par le tunnel.

  3. Simuler un Blocage : Essayez de bloquer le trafic SSH avec un pare-feu pour voir comment Sshuttle réagit.

  4. Tester la Vitesse : Utilisez des outils comme iperf pour mesurer la vitesse du tunnel créé par Sshuttle.

  5. Documenter le Comportement : Notez les performances et les éventuels problèmes rencontrés lors de l’utilisation de Sshuttle.

Étape 4 : SSH Tunnelling Classique

Le tunneling SSH est une méthode couramment utilisée pour rediriger des ports via une connexion sécurisée.

Action 1 : Créer un Tunnel SSH Local

Sur la machine d’attaque, exécutez la commande suivante pour rediriger le port 8080 de la machine locale vers le port 80 de la machine cible :

ssh -L 8080:127.0.0.1:80 user@<IP_de_la_cible>

Cela vous permet d’accéder au port 80 de la cible en vous connectant au port 8080 de votre propre machine.

Action 2 : Créer un Tunnel SSH Inversé

Pour rediriger un port de la machine cible vers la machine d’attaque, utilisez :

ssh -R 9090:127.0.0.1:22 user@<IP_de_la_cible>

Cela permettra à la machine d’attaque d’accéder au port 22 de la cible via le port 9090.

Actions à Réaliser :

  1. Tester l’Accès : Une fois le tunnel créé, essayez d’accéder aux services de la machine cible à partir de la machine d’attaque.

  2. Surveiller les Journaux : Examinez les journaux SSH (/var/log/auth.log) pour voir les enregistrements des tunnels créés.

  3. Tester la Sécurité : Modifiez les configurations SSH pour voir si vous pouvez bloquer le tunneling, par exemple en modifiant les paramètres AllowTcpForwarding ou PermitTunnel.

  4. Automatiser la Création de Tunnel : Créez un script qui lance automatiquement le tunnel SSH avec les bons paramètres.

  5. Documenter les Tests : Notez les configurations testées et les résultats obtenus lors de chaque test de tunnel SSH.

Étape 5 : Utilisation de Revsocks pour Rediriger les Connexions

Revsocks est une alternative légère pour rediriger des connexions réseau.

Action 1 : Démarrer un Serveur Revsocks

Sur la machine d’attaque, lancez Revsocks pour écouter sur un port spécifique :

./revsocks server -p 5555

Action 2 : Connecter un Client à Revsocks

Sur la machine cible, connectez-vous au serveur Revsocks en utilisant la commande suivante :

./revsocks client -s <IP_de_l'attaquant>:5555 -l 8080 -r 127.0.0.1:80

Cela redirigera le port 80 de la machine cible vers le port 8080 de la machine d’attaque.

Actions à Réaliser :

  1. Tester la Connexion : Vérifiez si vous pouvez accéder aux services sur la machine cible via le port redirigé.

  2. Comparer avec d’autres Tunnels : Comparez les performances et la latence du tunnel créé par Revsocks avec Chisel et SSH.

  3. Surveiller les Journaux : Examinez les journaux de Revsocks pour comprendre comment les connexions sont établies et maintenues.

  4. Automatisation : Créez un script pour démarrer automatiquement les serveurs et les clients Revsocks.

  5. Tester la Détection : Vérifiez si des outils de surveillance réseau peuvent détecter le tunnel Revsocks et évaluer son efficacité pour éviter la détection.

Conclusion

Ce TP vous a permis d’explorer plusieurs techniques de tunneling et de redirection de ports en utilisant Chisel, Sshuttle, SSH Tunnelling, et Revsocks. Ces techniques sont très utiles pour accéder à des ressources à travers des réseaux sécurisés ou restreints. Comme toujours, ces méthodes doivent être utilisées de manière éthique et légale.

Actions Finales :

  • Récapitulatif des Outils et Techniques : Listez les outils et techniques utilisés pour chaque méthode de tunneling.

  • Retour d’Expérience : Notez les différences de performances et de facilité d’utilisation entre les différents outils.

  • Documentation et Partage : Documentez toutes les étapes et partagez-les avec votre équipe pour discuter des résultats et des améliorations potentielles.

 

Retour en haut