secres:https-interception
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
secres:https-interception [2017/11/24 15:13] – orel | secres:https-interception [2024/03/18 15:06] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 3: | Line 3: | ||
Nous allons mettre en oeuvre le mécanisme d' | Nous allons mettre en oeuvre le mécanisme d' | ||
- | |||
- | === Démo === | ||
Considérons le réseau suivant : | Considérons le réseau suivant : | ||
- | Client Web < | + | Client Web < |
- | | + | |
+ | === Proxy SSL === | ||
+ | |||
+ | Voici le code de notre proxy SSL : | ||
<code python sslproxy.py> | <code python sslproxy.py> | ||
Line 18: | Line 19: | ||
import ssl | import ssl | ||
import sys | import sys | ||
- | import OpenSSL | ||
import time | import time | ||
import datetime | import datetime | ||
Line 126: | Line 126: | ||
</ | </ | ||
+ | === Génération des faux certificats === | ||
- | Génération du certificat //fake// certificat : | + | Commençons par générer un //fake CA// : |
+ | |||
+ | $ certtool --generate-privkey --outfile fake-ca-key.pem | ||
+ | $ certtool --generate-self-signed --load-privkey fake-ca-key.pem --outfile fake-ca-cert.pem | ||
+ | |||
+ | Voici les réponses à donner strictement : | ||
+ | |||
+ | * La plupart des champs peuvent rester vides. | ||
+ | * Common name: FAKECA | ||
+ | * The certificate will expire in (days): 255 | ||
+ | * Does the certificate belong to an authority? (y/N): y | ||
+ | * Will the certificate be used to sign other certificates? | ||
+ | * CRL signing: y | ||
+ | * All other extensions: NO (required) | ||
+ | |||
+ | Pour afficher le contenu de son certificat | ||
+ | |||
+ | $ certtool --infile fake-ca-cert.pem -i | ||
+ | |||
+ | Générons maintenant le //fake// certifcat de notre serveur. | ||
+ | |||
+ | $ certtool --generate-privkey --outfile fake-server-key.pem | ||
+ | $ certtool --generate-certificate --load-privkey fake-server-key.pem --outfile fake-server-cert.pem --load-ca-certificate fake-ca-cert.pem --load-ca-privkey fake-ca-key.pem | ||
+ | |||
+ | Voici les réponses à donner strictement : | ||
+ | |||
+ | * La plupart des champs peuvent rester vides | ||
+ | * CN=nile.metal.fr | ||
+ | * DNSName=nile.metal.fr | ||
+ | * IP address=10.0.0.2 | ||
+ | * The certificate will expire in (days): 255 | ||
+ | * Will the certificate be used for signing (required for TLS)? (y/N): y | ||
+ | * Will the certificate be used for encryption (not required for TLS)? (y/N): y | ||
+ | |||
+ | Vous pouvez également utiliser le script suivant pour générer automatiquent le //fake// certificat | ||
./ | ./ | ||
Line 137: | Line 172: | ||
import sys | import sys | ||
import pprint | import pprint | ||
- | import OpenSSL | + | import OpenSSL |
import time | import time | ||
import datetime | import datetime | ||
import os | import os | ||
import struct | import struct | ||
- | |||
# this certificate must be trusted by the client victim! | # this certificate must be trusted by the client victim! | ||
Line 246: | Line 280: | ||
</ | </ | ||
| | ||
+ | |||
+ | === Lancement du Proxy HTTPS === | ||
+ | |||
Lancement du proxy : | Lancement du proxy : | ||
Line 252: | Line 289: | ||
./ | ./ | ||
+ | === Mise en oeuvre avec un client === | ||
Sur le client : | Sur le client : | ||
Line 259: | Line 297: | ||
Pour ajouter le //fake// CA dans le store du client, il faut faire : | Pour ajouter le //fake// CA dans le store du client, il faut faire : | ||
- | | + | |
cp ca-cert.crt / | cp ca-cert.crt / | ||
dpkg-reconfigure ca-certificates | dpkg-reconfigure ca-certificates | ||
| | ||
+ | Puis, il suffit de faire : | ||
+ | | ||
+ | wget -4 https:// | ||
+ | | ||
+ | |||
+ | Video de démo par A. Guermouche : https:// | ||
+ | |||
==== Documentation ==== | ==== Documentation ==== | ||
- | Le code et la documentation du projet sont ici : https:// | + | Le code et la documentation du projet |
About HTTPS interception: | About HTTPS interception: |
secres/https-interception.1511536415.txt.gz · Last modified: 2024/03/18 15:05 (external edit)