From 160b792888a03503a8adc2d996586ed5c57558e3 Mon Sep 17 00:00:00 2001 From: Yorick Barbanneau Date: Thu, 1 Dec 2022 21:54:36 +0100 Subject: [PATCH] Add SSH section --- .../secu_reseaux/99_commandes_utiles/index.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/content/secu_reseaux/99_commandes_utiles/index.md b/content/secu_reseaux/99_commandes_utiles/index.md index 347cd15..2e02b1c 100644 --- a/content/secu_reseaux/99_commandes_utiles/index.md +++ b/content/secu_reseaux/99_commandes_utiles/index.md @@ -114,6 +114,95 @@ exemple pour le traffic http: iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080 ``` +## SSH + +SSH est bien plus qu'un outils pour se connecter sur un TTY à distance de +manière sécurisée. Il est possible de faire des rebonds, de rediriger les +connexions, créer des tunnels etc. + +Certaines options de la ligne de commande peuvent être intéressante: + + * `-f`: passer SSH en tâche de fond et rendre la main. Utile pour les tunnels + * `-N`: ne pas exécuter de commandes, utile lorsqu'on redirige simplement des + ports. + * `-n`: ne rien lire sur l'entrée standard, utile pour juste lancer une + application sur le serveur cible + * `-T`: ne pas allouer de pseudo terminal (mode non interactif) + * `-t`: forcer l'allocation de pseudo terminal + +### Connexion par rebond + +Le principe: utiliser un serveur pour faire un rebond et ainsi accéder à une +machine non accessible + +``` +ssh -J ssh.domain.com leserveur.domain.local +``` + +Je me connecte ainsi à `leserveur.domain.local` en passant par `ssh.domain.com` + +Il est possible d'automatiser le rebond dans le fichier de configuration de ssh +(`~/.ssh/config`): + +``` +# Se connecter à mcgonagall en passant par jaguar +Host mcgonagall + Hostname mcgonagall + ProxyJump @jaguar.emi.u-bordeaux.fr + User +``` + +### Créer un tunnel + +Il est aussi possible de créer un tunnel sécurisé afin d'accéder à une ressource +d'un réseau local en passant par un serveur SSH: + +``` +ssh -L 8443:192.168.0.254:443 ssh.domain.com +``` + +Ici la connections se fait comme suit: + +``` +localhost:8443 -> ssh.domain.com -> 192.168.0.253:443 +``` + +Il est possible de faire l'inverse avec `-R` + +### Proxy SOCKS + +Il est possible de créer un proxy socks afin de faire une redirection de ports +dynamique (avec des applications qui le supporte): + +``` +ssh -D 9050 -Nf ssh.domaine.com +``` + +Il est par exemple possible de configure son navigateur web afin d'utiliser ce +proxy pour y faire transiter les données. Le site visité identifiera sa source +comme `ssh.domain.com`. + +#### proxychains + +Proxychains est un logiciel permettait de "proxyfier" n'importe quel logiciel. +Il est par exemple possible de lancer un scan de port via un proxy socks pour +être au plis près de sa cible. + +La configuration se fait dans le fichier `/etc/proxychains.conf`, dans notre +exemple plus haut il faut ajouter la ligne si elle n'y est pas: + +``` +socks4 127.0.0.1 9050 +``` + +Puis lancer un scan de ports en préfixant la commande de `proxychains`: + +``` +proxychains nmap -sV macible.domain.com +``` + +Il est ainsi possible de scanner les ports d'une machine inaccessible auparavant. + ## Gnutls ### Mettre en place un serveur / client (tester les certificats)