Instructeur : Dans la
conférence précédente, nous avons vu comment rétrograder des sites Web HTTPS en HTTP.
Et cela nous a permis de voir essentiellement tout ce qu'un utilisateur fait
sur ces sites Web, car les données HTTP
sont envoyées en texte brut.
Par conséquent, nous avons pu voir les noms d'utilisateur,
les mots de passe, les URL et tout ce qu'ils font sur les sites Web HTTPS.
À la fin de la conférence, je vous ai
également montré que la méthode ne fonctionnera pas contre Facebook, Twitter et d'autres
sites Web qui utilisent HSTS.
La raison pour laquelle cela ne fonctionnera pas contre
ces sites Web, car les navigateurs Web modernes sont livrés avec une liste de sites
Web qu'ils ne doivent charger que via HTTPS.
Voyez ce que nous faisions dans la conférence précédente.
Chaque fois qu'un navigateur demande un site Web, nous chargeons ce site Web,
même s'il utilise HTTPS, ce
que nous lui rendons toujours la version HTTP.
Dans HSTS, le navigateur sait que ce site
Web, par exemple, facebook. com, doit toujours être chargé via HTTPS.
Donc avant même de nous envoyer cette
requête, il l'enverra toujours en HTTPS.
Et il ne sera toujours accepté que s'il revient en HTTPS.
Il n'y a donc rien que nous puissions faire vraiment, une
fois que nous sommes devenus l'homme du milieu.
Étant donné que le navigateur effectue cette
vérification localement, il la compare à une liste
stockée sur l'ordinateur lui-même.
Par conséquent, la seule solution pratique pour le moment
pour contourner le HSTS est de faire croire au navigateur qu'il
charge un autre site Web.
Pour ce faire, nous allons remplacer tous les liens HSTS des
pages chargées par des liens similaires, mais ce
ne sont pas les mêmes liens.
Par exemple, nous pouvons remplacer facebook. com avec Facebook. maïs.
Maintenant, je sais que cela semble très suspect, mais
croyez-moi quand il entre dans la barre d'URL,
le RN ici au milieu, cela semblera très similaire à
la lettre M.
Une autre façon de faire cela, vous pouvez remplacer twitter. com
avec twitter. com, mais avec un seul T ici
au lieu d'un double T.
Je sais que cela semble un peu déroutant en
ce moment, mais laissez-moi le faire pratiquement, et
vous verrez comment cela va fonctionner.
Alors ici, j'ai ma machine Kali.
Et nous allons en fait utiliser le caplet HSTS que nous
utilisons dans la conférence précédente.
Comme mentionné dans la conférence
précédente, ce caplet est déjà installé dans le Kali personnalisé,
si vous souhaitez l'utiliser avec le Kali
d'origine, vous devrez le
télécharger manuellement et le placer
dans le bon chemin, en user, local, share , bettercap, caplets.
J'ai le caplet ici.
Comme je l'ai dit, c'est déjà
le bon car j'utilise le Kali personnalisé, si nous
y allons, nous avons un fichier appelé hstshijack. casquette.
C'est le fichier de configuration du couplet.
Alors je vais faire un
clic droit dessus, je vais l'ouvrir avec une autre
application, je vais cliquer sur voir toutes les applications.
Et vous voulez choisir n'importe quel éditeur de texte dont vous disposez.
Donc je vais garder ça à Leafpad.
Vous devrez peut-être faire défiler vers le
bas pour le trouver, mais je l'ai ici, je vais sélectionner.
Et comme vous pouvez le voir, nous avons un fichier texte
normal avec toutes les configurations que nous pouvons définir.
Et je l'ai déjà pré-configuré pour vous.
Les principales choses que vous voulez comprendre et peut-être
changer sont les cibles et les remplaçants.
Les cibles sont donc les domaines qui utilisent HSTS
que vous souhaitez remplacer.
Par exemple, j'ai Twitter. com ici, et j'ai
aussi une étoile. Twitter. com.
Fondamentalement, lorsque vous utilisez une étoile, il s'agit d'un joker.
Et cela signifie essentiellement n'importe quel sous-domaine. Twitter. com est
également une cible.
Et le remplacement, vous voulez dire au
programme, par quoi remplacer cette cible.
Par exemple, chaque fois que nous voyons Twitter. com, nous allons
le remplacer par Twitter. maïs.
Il en va de même pour Facebook et Apple,
et quelques autres domaines que j'ai mentionnés.
Vous pouvez également jouer avec les
options d'obscurcissement et d'encodage.
J'ai défini les deux sur
false, car fondamentalement, ce
qu'ils feront, ils obscurciront le code et encoderont.
Mais j'ai remarqué que certains navigateurs comme Firefox bloquent
le code obscurci ou codé.
C'est pourquoi j'ai défini les deux sur false
afin que le code reste tel quel.
Ici, dans la charge utile, vous pouvez définir tout
autre code JavaScript que vous souhaitez
injecter, laissez-le inchangé, nous parlerons de l'injection JavaScript dans une prochaine conférence.
Enfin, vous voulez vous assurer que les domaines d'usurpation
DNS sont définis exactement de la même manière que les remplacements ici.
Donc je copie littéralement cette ligne et la colle ici.
Maintenant, je vais vraiment garder tout cela de la même manière, je
n'ai pas besoin de modifier quoi que ce soit.
Mais comme je l'ai dit, si vous ciblez différents sites Web,
ou si vous souhaitez utiliser différents remplacements, par exemple, si vous
souhaitez utiliser un Twitter avec un seul T et
conserver ce fichier . com, vous pouvez le faire ici.
Si vous vouliez utiliser un Facebook avec un seul O, et gardez
ce fichier . com, encore une fois, au lieu de . maïs, vous
pouvez le faire ici.
Une fois terminé, assurez-vous d'enregistrer et de quitter ce fichier.
Et nous sommes prêts à lancer l'attaque.
Donc, exécuter cette attaque sera en fait identique à ce
que nous avons fait dans la
conférence précédente, vous voulez juste vous assurer que vous modifiez correctement ce fichier.
Donc, pour revenir à bettercap, je vais effacer l'écran, exécuter bettercap
avec la même commande, en chargeant
ce caplet de preuve.
Nous pouvons donc exécuter toutes les commandes d'usurpation
AARP et exécuter le renifleur automatiquement.
Et parfait, comme vous pouvez le voir, tout
fonctionne comme prévu, sans erreur.
Si vous exécutez ceci et que
vous obtenez une erreur, quittez et exécutez à nouveau bettercap.
Ensuite, nous voulons exécuter le couplet, le caplet de détournement HSTS, exactement comme indiqué dans
la conférence précédente, tout ce que
nous avons à faire est de taper l'onglet HS,
il se terminera automatiquement pour nous et appuyez sur Entrée pour l'exécuter.
Encore une fois, comme vous ne
pouvez voir aucune erreur, tout fonctionne comme prévu.
Allons à la machine
cible et voyons comment cela va fonctionner.
J'ai donc ma machine Windows ici.
Il s'agit de Chrome, la dernière version.
Et avant de faire quoi que ce soit,
comme je l'ai dit, c'est une bonne idée de toujours supprimer les données de navigation.
Et avant de charger des sites Web,
il est très important de comprendre que même avec tout ce que
nous faisons en ce moment, si vous essayez d'aller sur Facebook
et de taper . com à la fin ici, cela ne
fonctionnera pas, ce que nous faisons en ce moment ne fonctionnera pas.
Parce que Chrome ici a une liste stockée sur cet ordinateur qui
dit de ne pas charger Facebook. com à moins qu'il
ne soit chargé via HTTPS.
Donc, si vous dites à Facebook ici comme ça,
cela ne fonctionnera pas.
La seule façon de le faire est que l'utilisateur accède d'abord au
moteur de recherche, par exemple Google. c'est-à-dire pour l'Irlande.
Et puis dans Google, comme vous pouvez le voir, Google n'utilise pas le HSTS.
Nous contournons donc cela en utilisant le contournement HTTPS normal.
Et puis si l'utilisateur ici recherche son site
Web cible, par exemple
Facebook, alors notre script s'exécutera en arrière-plan.
Et ça va remplacer tous les liens de cette
page pour facebook. com avec facebook. maïs.
Donc, si je passe la souris dessus, vous verrez
dans la barre d'état que le site Web
qui sera chargé est Facebook. maïs, pas
facebook. com.
C'est bien ici, c'est toujours dit facebook. com.
Mais uniquement dans le code de la
page HTML facebook. com a été remplacé par facebook. maïs.
Donc, si je clique sur ce lien, encore une fois, comme vous pouvez le
voir, nous obtenons une page Facebook normale.
Mais si vous regardez ici en haut, vous verrez qu'il n'y a pas de HTTPS.
Et si vous regardez le nom de domaine, vous
verrez qu'il dit . le maïs non. com.
Encore une fois, comme je l'ai dit, vous pouvez réellement garder ceci. com et utilisez
Facebook avec un O ou vous pouvez ajouter un O supplémentaire, vous
pouvez être aussi créatif que vous le souhaitez avec cela.
C'est juste un exemple que je vous donne.
Maintenant, une fois que nous sommes ici, nous pouvons nous connecter normalement
avec mon nom d'utilisateur donc z@zsecurity. org et mettre mon mot de passe 1234567890.
Appuyez sur Entrée, et si nous revenons en arrière, faites défiler vers le haut.
Parfait, comme vous pouvez le voir, nous
avons les noms d'utilisateur, z@zsecurity. org et le mot de passe
jusqu'à neuf zéro.
Maintenant, comme je l'ai dit, la seule façon pour que
cela fonctionne est que l'utilisateur accède à Facebook via un autre
site Web qui n'utilise pas HSTS.
S'ils vont sur la barre d'URL et tapez facebook. com eux-mêmes, nous ne pourrons pas
le faire, c'est pourquoi cela
est considéré comme une solution partielle et non comme
une solution complète.