Instructeur : Jusqu'à présent, nous avons vu un certain nombre
de choses que nous pouvons faire une fois que nous sommes devenus l'homme du milieu.
Nous avons donc vu comment nous pouvons voir tout ce que l'ordinateur cible fait
sur le réseau.
Nous avons donc pu voir les sites Web, les noms
d'utilisateur, les mots de passe, les images, tout ce qu'ils
chargent sur leur navigateur.
Nous avons également vu que puisque nous sommes l'homme
du milieu, nous sommes en mesure de les rediriger vers d'autres sites Web.
Ainsi, chaque fois qu'ils demandent
un domaine, nous pouvons les rediriger vers
un autre endroit en effectuant une attaque d'usurpation DNS.
Une autre chose vraiment intéressante que nous pouvons
faire est de modifier le code HTML, de modifier les pages, au fur
et à mesure qu'elles se chargent sur le navigateur cible.
Évidemment, tout cela est possible parce
que nous sommes l'homme du
milieu, parce que nous sommes capables d'intercepter toutes ces données.
Nous pouvons donc attendre le code
HTML, qui est le code responsable du chargement des pages Web.
Et au fur et à mesure qu'il
traverse notre ordinateur, nous pouvons insérer n'importe quel morceau de code
que nous voulons, et le navigateur exécutera ce code.
Désormais, HTML n'est responsable que du rendu des éléments que vous voyez
sur la page Web.
Donc il s'occupe des boutons, des forums, du
texte, ça ne nous
permet pas vraiment de faire grand chose.
Mais les navigateurs modernes peuvent exécuter du code JavaScript.
JavaScript est un langage de programmation puissant que nous pouvons
utiliser pour faire tellement de choses, nous pouvons en fait
modifier toute la page, supprimer des
éléments ou ajouter des éléments dans la page, nous
pouvons remplacer des liens.
Et c'est en fait ce que
j'ai fait lorsque j'ai modifié le plugin HSTS.
J'ai donc ajouté du code qui remplacera le HTTPS par HTTP.
Et j'ai également ajouté du code qui remplacera le lien réel, le
nom de domaine réel par le nom de domaine frauduleux, par
celui avec le point
corn, ou tout ce que vous définissez dans le script.
Vous pouvez même l'utiliser pour connecter le navigateur à d'autres
frameworks d'exploitation de navigateur, que nous
pouvons utiliser pour exploiter davantage la cible et
même obtenir un contrôle total sur leur ordinateur.
Et nous verrons cela plus tard dans le cours.
Mais pour l'instant, je vais vous montrer comment injecter un
code JavaScript très simple dans les pages chargées.
Et puis nous développerons cela dans de futures
conférences et verrons à quel point cela peut être puissant et utile.
Alors ici, j'ai ma machine Kali.
Et avant de lancer Better Cap et
de vous montrer comment
injecter du JavaScript, tout d'abord, nous devons avoir du
code JavaScript à injecter dans le navigateur cible.
Je vais donc ouvrir un éditeur de texte.
Et je vais écrire un code JavaScript très, très simple.
Comme je l'ai dit, nous verrons comment nous pouvons l'utiliser
pour exécuter un code plus utile.
Mais pour l'instant, nous gardons cela simple juste
pour voir comment nous pouvons réellement exécuter du code JavaScript.
Donc tout ce que je vais faire est d'alerter, d'ouvrir un
crochet, un guillemet et je vais dire un test JavaScript.
Je vais fermer le guillemet et fermer le
crochet et ajouter un point-virgule.
Donc ici, ce code, tout
ce qu'il va faire, c'est afficher un message d'avertissement, un
message d'alerte disant du code JavaScript.
Donc, puisque nous allons essayer d'injecter ce code dans toutes les pages, chaque fois
que nous chargeons une page
Web, nous devrions voir un message indiquant JavaScript test.
Maintenant, je vais sauver ça.
Je vais donc aller dans Fichier, Enregistrer.
Et je vais le mettre dans mon répertoire racine.
Et je vais juste l'appeler alerte. js, je vais appuyer
sur Entrée.
Et cela est maintenant enregistré dans ma racine, donc si
je le quitte, nous pouvons voir que nous avons le fichier ici.
C'est donc le fichier qui contient le
code que nous voulons injecter dans n'importe quelle page Web qui se
charge sur l'ordinateur cible.
La prochaine étape consiste à accéder à notre plugin de piratage HSTS.
Donc, comme je vous l'ai déjà montré, c'était dans user,
local, share, bettercap, caplets, HSTS hijack, assurez-vous d'utiliser celui
que j'ai inclus dans les ressources, pas
celui qui est intégré à bettercap,
car le on ne fonctionnera pas comme vous le vouliez.
Donc ici, nous avons le hstshijack. fichier cap.
Il s'agit du fichier de configuration de l'ensemble du plugin.
Je vais donc faire un
clic droit dessus et l'ouvrir avec mon éditeur de texte.
Et ici, ce que nous voulons
modifier, ce sont les charges utiles ici.
Donc, comme vous
pouvez le voir ici, il injecte déjà
un fichier JavaScript appelé keylogger. js, mais nous voulons aussi
injecter notre propre code.
Je vais donc ajouter une virgule ici.
Et je vais ajouter une étoile suivie de deux points.
Nous avons ajouté cette étoile ici pour dire que
je veux injecter mon script dans n'importe quelle page que la cible charge.
Si vous souhaitez injecter votre code dans des
domaines spécifiques, vous pouvez supprimer l'étoile et simplement répertorier
les domaines dans lesquels vous souhaitez injecter ce code ici.
Mais comme je l'ai dit, nous voulons injecter cela dans toutes les pages.
Alors je vais mettre ça en vedette.
Et après les deux points, je vais mettre l'emplacement du
fichier JavaScript que je veux injecter dans
le navigateur.
Donc, si nous regardons en arrière ici,
c'est le fichier que nous venons de créer, qui
est à la racine de ma maison, et il s'appelle alert. js.
Donc je vais mettre ici, je vais juste dire
racine barre oblique, suivie d'alerte. js.
Et c'est tout.
Je vais enregistrer ce Ctrl S et le quitter Ctrl Q,
et nous sommes prêts à partir.
Je vais donc aller sur mon terminal, je vais lancer bettercap en utilisant
exactement la même commande que nous avons utilisée.
Nous lui donnons donc simplement l'interface eth0, et nous lui
donnons notre fichier spool pour exécuter automatiquement une attaque d'usurpation d'identité
ARPX, nous mettant au milieu de la connexion.
Et comme vous pouvez le voir, cela fonctionne
sans erreur, donc tout est parfait.
Ce que je veux aussi faire en
ce moment, c'est exécuter mon plugin de piratage HSTS.
Et comme vous le savez, tout ce que nous avons à faire est de taper
H S et de tabuler, cela se terminera automatiquement, je vais appuyer
sur Entrée, et tout fonctionne sans aucune erreur.
Donc tout est parfait.
Et comme vous pouvez le voir ici, cela dit que
les charges utiles, c'est le chargement des charges utiles JavaScript sont le keylogger.
C'est la valeur par défaut que le fichier était déjà en train de charger.
Et celui que nous venons de spécifier, qui se
trouve dans les alertes racine. js.
Alors maintenant, à chaque fois que notre cible charge n'importe quelle page Web, quel que soit le
code que nous avons mis dans l'alerte. js doit
être injecté dans la page chargée et
il doit être exécuté.
Le résultat de cela devrait nous montrer un
message simple disant test JavaScript.
Allons donc à la cible.
Et comme d'habitude, une bonne idée est juste de supprimer
les données de navigation juste pour s'assurer que rien n'est mis en cache.
Et j'aime toujours tester d'abord avec le cas le plus simple,
puis passer à des scénarios plus complexes.
Alors tout d'abord, je vais le tester par rapport à une page
HTTP normale, afin qu'il n'y ait rien à contourner,
aucun cryptage que ce soit.
Donc on va juste aller sur volnweb. com.
Et parfait, comme vous pouvez le voir, nous
avons un message d'alerte ici nous indiquant le test JavaScript.
Donc, en gros, cela signifie le code
JavaScript dans mon alerte. js a été injecté dans cette page.
Alors maintenant que nous avons vérifié qu'il fonctionne avec des pages HTTP normales,
allons-y et testons-le avec une page qui utilise HTTPS
telle que stackoverflow. com.
Parfait, il fonctionne comme prévu.
Un autre exemple serait linkedin. com.
Gardez à l'esprit que ces sites Web utilisent HTTPS.
Et comme vous pouvez le voir, nous sommes en mesure de les charger
sans HTTPS ici, donc sur HTTP uniquement.
Ainsi, même si vous vous connectez ici, vous
pourrez obtenir le nom d'utilisateur
et le mot de passe comme indiqué précédemment.
Enfin, allons-y et testons le site Web HSTS en utilisant
la méthode de contournement HSTS partiel que je vous ai montrée.
Donc, pour que cela fonctionne, nous devons d'abord aller sur
Google et nous devons aller sur un domaine Google qui
n'utilise pas HSTS, similaire à google. c'est à dire.
Il s'agit en fait du site Web local de Google pour l'Irlande.
Et comme vous pouvez le voir, le code fonctionne.
C'est bon.
De toute façon, Google n'utilise que HTTPS.
Mais cherchons Facebook.
Nous savons maintenant que Facebook utilise HSTS.
Et parce que HSTS est utilisé, nous ne devrions pas pouvoir injecter quoi que
ce soit sur le site Web,
car le navigateur ne le chargera que via HTTPS.
Mais en utilisant notre méthode de contournement partiel.
Si je clique sur Facebook à partir d'ici, comme vous pouvez le
voir, le code est exécuté.
Parce que ce que nous chargeons en ce moment, c'est Facebook. maïs, pas facebook.
com.
Et comme vous pouvez le voir, nous obtenons à nouveau une page
Facebook normale, qui semble identique.
Et si vous vous connectez, vous pourrez obtenir le nom d'utilisateur et
le mot de passe.
Donc, comme vous pouvez le voir, cela
fonctionnera contre les pages HTTP et HTTPS et même HSTS si la cible
recherche ce site Web, pas si elle y met le nom de domaine.
Donc, si la cible entre et tape littéralement facebook. com manuellement et appuyez sur
Entrée, le navigateur forcera la connexion HTTPS comme vous pouvez le voir
ici, car comme je l'ai dit, il a
une liste préchargée de sites Web qu'il ne peut
charger que via HTTPS et parce que le navigateur établit une connexion
HTTPS, le les données seront cryptées,
et donc nous voulons pouvoir y injecter n'importe quoi.