Some corrections

This commit is contained in:
Yorick Barbanneau 2022-12-01 22:59:48 +01:00
parent a1ec10255f
commit b3b8be6e38

View file

@ -1,17 +1,17 @@
--- ---
title: "Sécurité des réseaux : Commandes utiles" title: "Sécurité des réseaux : Commandes utiles"
date: 2022-12-01 date: 2022-12-01
tags: ["nmap", "tcpdump", "MitM"] tags: ["nmap", "tcpdump", "MitM", "SSH"]
categories: ["Sécurité des réseaux", "TD"] categories: ["Sécurité des réseaux", "TD"]
--- ---
Le but de cet article est de répertorier les commandes uiles que nous avons Le but de cet article est de répertorier les commandes utiles que nous avons
utilisés lors de différents TD et d'expliquer le contexte d'utilisation. utilisés lors de différents TD et d'expliquer le contexte d'utilisation.
## Nmap ## Nmap
map est le couteau suisse du scan de port. Il ppeut être utilisé en attaque mais Nmap est le couteau suisse du scan de port. Il peut être utilisé en attaque mais
aussi en défense préventive (test de sa propre infrasctucture). aussi en défense préventive (test de sa propre infrastructure).
### découverte de l'hôte seulement ### découverte de l'hôte seulement
@ -43,14 +43,14 @@ plus rapide.
## Spoof ARP ## Spoof ARP
La command `arpspoof` permet de faire de l'*ARP* cache poisoning en utilisant la La commande `arpspoof` permet de faire de l'*ARP cache poisoning* en utilisant la
technique du *flood* afn de noyer les hôtes du réseau d'annonces. technique du *flood* afn de noyer les hôtes du réseau d'annonces.
``` ```
arpspoof -i <dev> -r -t <addr_target> <host> arpspoof -i <dev> -r -t <addr_target> <host>
``` ```
Empoisoser le cache de `<addr_target>` -- ou de tout le reseau si `-t` n;est pas Empoisser le cache de `<addr_target>` -- ou de tout le réseau si `-t` n'est pas
utilisé -- pour détourner le trafic de `<host>` utilisé -- pour détourner le trafic de `<host>`
## TCP dump ## TCP dump
@ -62,10 +62,10 @@ sortie standard:
``` ```
tcpdump -i <dev> -n tcpdump -i <dev> -n
``` ```
* `-i` périphériue à écouter * `-i` périphérie à écouter
* `-n` ne résout pas les adresse IP vers le nom d'hôte * `-n` ne résout pas les adresse IP vers le nom d'hôte
Dans le cadre d'un TD cette méthode peut suffire, mais dès que le traffic réseau Dans le cadre d'un TD cette méthode peut suffire, mais dès que le trafic réseau
devient plus important, il est plus difficile de suivre. On peut alors capturer devient plus important, il est plus difficile de suivre. On peut alors capturer
le trafic pour l'analyse avec un outils comme *Wireshark*: le trafic pour l'analyse avec un outils comme *Wireshark*:
@ -73,14 +73,14 @@ le trafic pour l'analyse avec un outils comme *Wireshark*:
tcpump -i <dev> -n -s 1500 -w <file> tcpump -i <dev> -n -s 1500 -w <file>
``` ```
Ici `-s 1500` limite la taille des paquets à capturer à 1500 bits hitoire de ne Ici `-s 1500` limite la taille des paquets à capturer à 1500 bits histoire de ne
pas tronquer les trames. On peut spécifier `-s0` pour ne pas donner de limite. pas tronquer les trames. On peut spécifier `-s0` pour ne pas donner de limite.
`-w <file>` écrit la capture dans le fichier `<file>` en mode binaire `-w <file>` écrit la capture dans le fichier `<file>` en mode binaire
### requête ### requête
Il est aussi possible de faire en sorte de filter le traffic capturé. Il est aussi possible de faire en sorte de filtre le trafic capturé.
``` ```
tcpdump -i <dev> 'tcp and src <ip> and 80' tcpdump -i <dev> 'tcp and src <ip> and 80'
@ -104,11 +104,11 @@ http.
## Iptables ## Iptables
### rediriger le traffic sur la machine locale ### rediriger le trafic sur la machine locale
Lors d'un forward, il est possible de rediriger le traffic sur la machine locale Lors d'un forward, il est possible de rediriger le trafic sur la machine locale
avec l'option `-j REDIRECT`. Cette option s'utilise sur la table `nat`. voici un avec l'option `-j REDIRECT`. Cette option s'utilise sur la table `nat`. Voici un
exemple pour le traffic http: exemple pour le trafic HTTP.
``` ```
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080 iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
@ -120,19 +120,19 @@ 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 manière sécurisée. Il est possible de faire des rebonds, de rediriger les
connexions, créer des tunnels etc. connexions, créer des tunnels etc.
Certaines options de la ligne de commande peuvent être interessante: 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 * `-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 * `-N`: ne pas exécuter de commandes, utile lorsqu'on redirige simplement des
ports. ports.
* `-n`: ne rien lire sur l'entrée standard, utile pour juste lancer une * `-n`: ne rien lire sur l'entrée standard, utile pour juste lancer une
application sur le serveur cible application sur le serveur cible
* `-T`: ne pas allouer de pseudo terminal (mode non-interactif) * `-T`: ne pas allouer de pseudo terminal (mode non interactif)
* `-t`: forcer l'allocation de pseudo terminal * `-t`: forcer l'allocation de pseudo terminal
### Connexion par rebond ### Connexion par rebond
Le principe: utiliser un serveur pour faire un rebond et ainsi accèder à une Le principe: utiliser un serveur pour faire un rebond et ainsi accéder à une
machine non accessible machine non accessible
``` ```
@ -141,7 +141,7 @@ ssh -J ssh.domain.com leserveur.domain.local
Je me connecte ainsi à `leserveur.domain.local` en passant par `ssh.domain.com` Je me connecte ainsi à `leserveur.domain.local` en passant par `ssh.domain.com`
Il est possible d'automatiser le rebond dans le fochoer de configuration de ssh Il est possible d'automatiser le rebond dans le fichier de configuration de ssh
(`~/.ssh/config`): (`~/.ssh/config`):
``` ```
@ -154,14 +154,14 @@ Host mcgonagall
### Créer un tunnel ### Créer un tunnel
Il est aussi possible de créer un tunnel sécurisé afin d'accéder à une resource 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: d'un réseau local en passant par un serveur SSH:
``` ```
ssh -L 8443:192.168.0.254:443 ssh.domain.com ssh -L 8443:192.168.0.254:443 ssh.domain.com
``` ```
Ici la connection se fait commme suit: Ici la connections se fait comme suit:
``` ```
localhost:8443 -> ssh.domain.com -> 192.168.0.253:443 localhost:8443 -> ssh.domain.com -> 192.168.0.253:443
@ -178,8 +178,8 @@ dynamique (avec des applications qui le supporte):
ssh -D 9050 -Nf ssh.domaine.com ssh -D 9050 -Nf ssh.domaine.com
``` ```
Il est par exemple possible de configuer son navigateur web afin d'utiliser ce Il est par exemple possible de configure son navigateur web afin d'utiliser ce
proxy poyr y faire transiter les données. Le site visité identifira sa source proxy pour y faire transiter les données. Le site visité identifiera sa source
comme `ssh.domain.com`. comme `ssh.domain.com`.
#### proxychains #### proxychains
@ -188,19 +188,21 @@ 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 Il est par exemple possible de lancer un scan de port via un proxy socks pour
être au plis près de sa cible. être au plis près de sa cible.
La configucation se fait dans le fichier `/etc/proxychains.conf`, dans notre 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: exemple plus haut il faut ajouter la ligne si elle n'y est pas:
``` ```
socks4 127.0.0.1 9050 socks4 127.0.0.1 9050
``` ```
Puis lancer un scan de ports en préficant la commande de `proxychains`: Puis lancer un scan de ports en préfixant la commande de `proxychains`:
``` ```
proxychains nmap -sV macile.domain.com proxychains nmap -sV macible.domain.com
``` ```
Il est ainsi possible de scanner les ports d'une machine inaccessible auparavant.
## Gnutls ## Gnutls
### Mettre en place un serveur / client (tester les certificats) ### Mettre en place un serveur / client (tester les certificats)
@ -224,7 +226,7 @@ gnutls-cli --x509cafile=<file.pem>
### Création de sa propre CA ### Création de sa propre CA
Voici la commande pour générer la clé et le certificate de notre CA. Voici la commande pour générer la clé et le certificat de notre CA.
``` ```
openssl req -x509 -new -newkey rsa:<keysize> -noenc \ openssl req -x509 -new -newkey rsa:<keysize> -noenc \
@ -250,8 +252,9 @@ openssl req -new -newkey rsa:<keysize> -sha256 -noenc -out <filename.csr> \
``` ```
### Signer la CSR ### Signer la CSR
Voici la commande pour signer lea requête en signature avec la clé de notre
autorité. C'est ici que nous alons définir la durée de validiter du certificat Voici la commande pour signer la requête en signature avec la clé de notre
autorité. C'est ici que nous allons définir la durée de validités du certificat
signé. signé.
``` ```
@ -264,8 +267,8 @@ Quelques commande utiles pour administrer un service Kerberos.
### kadmin.local ### kadmin.local
Comme la commande le suggère, `kadmin` sert à adminstrer le serveur. Une fois la Comme la commande le suggère, `kadmin` sert à administrer le serveur. Une fois la
commande lancée, un promp apparait. commande lancée, un prompt apparait.
La commande suivante créée une clé pour l'hôte `<host>`: La commande suivante créée une clé pour l'hôte `<host>`:
@ -276,7 +279,7 @@ kadmin: addprinc -randkey host/<host>.example.com
`-randkey` permet de générer une clé aléatoire en lieu et place d'un mot de `-randkey` permet de générer une clé aléatoire en lieu et place d'un mot de
passe. passe.
Il est ensuite de créer une clé supplémentaire pour le service nfs par exemple: Il est ensuite de créer une clé supplémentaire pour le service NFS par exemple:
Ou encore de rajouter un utilisateur à notre royaume Ou encore de rajouter un utilisateur à notre royaume