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"
date: 2022-12-01
tags: ["nmap", "tcpdump", "MitM"]
tags: ["nmap", "tcpdump", "MitM", "SSH"]
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.
## Nmap
map est le couteau suisse du scan de port. Il ppeut être utilisé en attaque mais
aussi en défense préventive (test de sa propre infrasctucture).
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 infrastructure).
### découverte de l'hôte seulement
@ -43,14 +43,14 @@ plus rapide.
## 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.
```
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>`
## TCP dump
@ -62,10 +62,10 @@ sortie standard:
```
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
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
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>
```
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.
`-w <file>` écrit la capture dans le fichier `<file>` en mode binaire
### 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'
@ -104,11 +104,11 @@ http.
## 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
avec l'option `-j REDIRECT`. Cette option s'utilise sur la table `nat`. voici un
exemple pour le traffic http:
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
exemple pour le trafic HTTP.
```
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
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
* `-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`: 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
Le principe: utiliser un serveur pour faire un rebond et ainsi accéder à une
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`
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`):
```
@ -154,14 +154,14 @@ Host mcgonagall
### 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:
```
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
@ -178,8 +178,8 @@ dynamique (avec des applications qui le supporte):
ssh -D 9050 -Nf ssh.domaine.com
```
Il est par exemple possible de configuer son navigateur web afin d'utiliser ce
proxy poyr y faire transiter les données. Le site visité identifira sa source
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
@ -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
ê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:
```
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
### Mettre en place un serveur / client (tester les certificats)
@ -224,7 +226,7 @@ gnutls-cli --x509cafile=<file.pem>
### 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 \
@ -250,8 +252,9 @@ openssl req -new -newkey rsa:<keysize> -sha256 -noenc -out <filename.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é.
```
@ -264,8 +267,8 @@ Quelques commande utiles pour administrer un service Kerberos.
### kadmin.local
Comme la commande le suggère, `kadmin` sert à adminstrer le serveur. Une fois la
commande lancée, un promp apparait.
Comme la commande le suggère, `kadmin` sert à administrer le serveur. Une fois la
commande lancée, un prompt apparait.
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
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