Add cheatsheet for net security exam
This commit is contained in:
parent
4eda9008dd
commit
9791aabf17
1 changed files with 172 additions and 0 deletions
172
content/secu_reseaux/99_commandes_utiles/index.md
Normal file
172
content/secu_reseaux/99_commandes_utiles/index.md
Normal file
|
@ -0,0 +1,172 @@
|
|||
---
|
||||
title: "Sécurité des réseaux : Commandes utiles"
|
||||
date: 2022-12-01
|
||||
tags: ["nmap", "tcpdump", "MitM"]
|
||||
categories: ["Sécurité des réseaux", "TD"]
|
||||
---
|
||||
|
||||
Le but de cet article est de répertorier les commandes uiles 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).
|
||||
|
||||
### découverte de l'hôte seulement
|
||||
|
||||
```
|
||||
nmap -sn <adresse>
|
||||
```
|
||||
|
||||
### déterminer les versions
|
||||
|
||||
```
|
||||
nmap -A -sV <adresse>
|
||||
```
|
||||
|
||||
* `-sV`: lance un scan en essayant de déterminer la version des services en
|
||||
écoute
|
||||
* `-A`: affiche plus d'informations
|
||||
|
||||
### Les différents type de scan
|
||||
|
||||
* `nmap -sS <addr>`: *SYN* scan
|
||||
* `nmap -sX <addr>`: *XMAS* scan
|
||||
* `nmap -sF <addr>`: *FIN* scan
|
||||
|
||||
### Temporiser
|
||||
|
||||
Il est possible de temporiser les différents scan afin de se rendre un peu plus
|
||||
discret avec l'option `-T <num>`. `<num>` étant un chiffre de 0 (plus lent) à 5
|
||||
plus rapide.
|
||||
|
||||
## Spoof ARP
|
||||
|
||||
La command `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
|
||||
utilisé -- pour détourner le trafic de `<host>`
|
||||
|
||||
## TCP dump
|
||||
|
||||
`tcpdump` est un outils de capture de trame réseau en ligne de commande. Il est
|
||||
possible de le lancer simplement afin qu'il affiche les informations sur la
|
||||
sortie standard:
|
||||
|
||||
```
|
||||
tcpdump -i <dev> -n
|
||||
```
|
||||
* `-i` périphériue à é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
|
||||
devient plus important, il est plus difficile de suivre. On peut alors capturer
|
||||
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
|
||||
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é.
|
||||
|
||||
```
|
||||
tcpdump -i <dev> 'tcp and src <ip> and 80'
|
||||
```
|
||||
|
||||
Ici on capture les trames *TCP* donc la source est `<ip>` et sur le port 80.
|
||||
|
||||
### Utiliser les outils usuel
|
||||
|
||||
Pour utiliser les outils usuels tels que `grep`, `awk` ou `sed` avec *tcpdump*,
|
||||
il faut activer le mode *buffered line* avec le drapeau `-l`, il est aussi
|
||||
conseillé d'activer le mode verbeux avec `-v` (ou `-vv` pour avoir plus de
|
||||
détails):
|
||||
|
||||
```
|
||||
tcpdump -v -l -n 'port http' | grep 'Host\|User-Agent'
|
||||
```
|
||||
|
||||
L'exemple ci-dessus affiche le champs `Host` et `User-Agent` d'une connexion
|
||||
http.
|
||||
|
||||
## Iptables
|
||||
|
||||
### rediriger le traffic 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:
|
||||
|
||||
```
|
||||
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
|
||||
```
|
||||
|
||||
## Gnutls
|
||||
|
||||
### Mettre en place un serveur / client (tester les certificats)
|
||||
|
||||
Il est possible d'utiliser gnutls pour tester des certificats et s'assurer que
|
||||
tout fonctionne correctement (le certificat de l'autorité de certification par
|
||||
exemple).
|
||||
|
||||
|
||||
```
|
||||
# sur le serveur
|
||||
gnutls-serv --x509keyfile=<file.key> --x509certfile=<file.crt>
|
||||
```
|
||||
|
||||
```
|
||||
# le client
|
||||
gnutls-cli --x509cafile=<file.pem>
|
||||
```
|
||||
|
||||
## Openssl
|
||||
|
||||
### Création de sa propre CA
|
||||
|
||||
Voici la commande pour générer la clé et le certificate de notre CA.
|
||||
|
||||
```
|
||||
openssl req -x509 -new -newkey rsa:<keysize> -noenc \
|
||||
-key $CANAME.key -sha256 -days 1826 \
|
||||
-out <ca.crt> \
|
||||
-keyout <ca.key> \
|
||||
-subj '<subject>'
|
||||
```
|
||||
|
||||
NMous allons pouvoir fournir le certificat aux machines voulues pour qu'elle
|
||||
acceptent nos certificats et signer les requêtes en signature.
|
||||
|
||||
### Création de certificat
|
||||
|
||||
Il est d'abord nécessaire de créer une clé et une requête en signature. Ces deux
|
||||
étapes sont réalisable en une seule commande:
|
||||
|
||||
```
|
||||
# générer la clé
|
||||
openssl req -new -newkey rsa:<keysize> -sha256 -noenc -out <filename.csr> \
|
||||
-keyout <filename.key>
|
||||
-subj <subject>
|
||||
```
|
||||
|
||||
### 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
|
||||
signé.
|
||||
|
||||
```
|
||||
openssl x509 -req -days 365 -in <filename.csr> -out <filename.crt> -signkey <ca.key>
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue