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 :
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.
Documenter la Connexion : Notez les détails de la configuration du tunnel et les tests effectués.
Automatiser le Processus : Créez un script Bash qui démarre le serveur et le client Chisel automatiquement pour simplifier l’accès.
Analyse de Réseau : Utilisez
tcpdump
ouwireshark
pour vérifier le trafic passant par le tunnel.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 :
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.
Surveiller le Trafic : Utilisez des outils comme
iftop
pour surveiller le trafic réseau qui passe par le tunnel.Simuler un Blocage : Essayez de bloquer le trafic SSH avec un pare-feu pour voir comment Sshuttle réagit.
Tester la Vitesse : Utilisez des outils comme
iperf
pour mesurer la vitesse du tunnel créé par Sshuttle.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 :
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.
Surveiller les Journaux : Examinez les journaux SSH (
/var/log/auth.log
) pour voir les enregistrements des tunnels créés.Tester la Sécurité : Modifiez les configurations SSH pour voir si vous pouvez bloquer le tunneling, par exemple en modifiant les paramètres
AllowTcpForwarding
ouPermitTunnel
.Automatiser la Création de Tunnel : Créez un script qui lance automatiquement le tunnel SSH avec les bons paramètres.
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 :
Tester la Connexion : Vérifiez si vous pouvez accéder aux services sur la machine cible via le port redirigé.
Comparer avec d’autres Tunnels : Comparez les performances et la latence du tunnel créé par Revsocks avec Chisel et SSH.
Surveiller les Journaux : Examinez les journaux de Revsocks pour comprendre comment les connexions sont établies et maintenues.
Automatisation : Créez un script pour démarrer automatiquement les serveurs et les clients Revsocks.
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.