Some corrections
This commit is contained in:
parent
a1ec10255f
commit
b3b8be6e38
1 changed files with 34 additions and 31 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue