Du wifi au contrôle total
de votre machine
Twitter : @EmirFares
Email : b.fares@emi.re | emir.belmahdi@gmail.com
Blog : ht...
Mise en garde
●

Cette présentation est à but éducatif, vous êtes le
seul responsable de vos actes, notez que la loi
conda...
Introduction

3
Introduction
●

●

WIFI veut dire, Wireless (sans fil) et Fidelity (fidélité). C'est la
désignation commerciale de la norm...
Introduction
●

Même si cette solution technique présente de nombreux
avantages, gardons à l'esprit qu'un réseau mal confi...
Filtrage MAC

6
Filtrage des adresses MAC
●

●

●

●

Une adresse MAC (Media Access Control) est un identifiant physique
stocké dans une c...
Filtrage des adresses MAC
●

Lorsque l'on connaît la définition d'une adresse MAC, on se sent
parfaitement protégé par ce ...
Déjouer le filtrage des adresses MAC
●

La personne désireuse de pénétrer une installation protégée par
un filtrage MAC co...
Sécurité WEP

10
Sécurité WEP
●

●

Apparu en 1999, WEP est le plus ancien... et le moins sécurisé des
protocoles de cryptage Wi-Fi. Parado...
Sécurité WEP
Longueur totale de la clef

Longueur des I.V.

Longueur utile de la clef

Nombre de caractères à
saisir

64 b...
Sécurité WEP
●

La faille des IV (pour Initialization Vector , Vecteur
d'initialisation) est le principal « défaut de sécu...
Sécurité WEP
●

Nous utiliserons l'outil : Airmon-ng, Airodump-ng, Aircrack-ng.

root@Unks-dojo:~# apt-get install aircrac...
Sécurité WPA/WPA2

15
Sécurité WPA/WPA2
●

Apparue en 2003, la sécurité WPA (pour Wi-Fi Protected
Access) est basée sur un protocole d'authentif...
Sécurité WPA/WPA2
●

●

●

Wi-Fi Protected Setup (WPS) est un standard de réseau local sans fil simple et sécurisé.
Conçu ...
Sécurité WPA/WPA2
●

Fonctionnement de la méthode PIN
1

2

3

1ère partie composée de 4 chiffres
●

4

5

6

7

2ème part...
Sécurité WPA/WPA2
●

●

Nous en arrivons à la première faille de sécurité. Le nombre de
combinaisons possibles est réduit ...
Sécurité WPA/WPA2
●

●

Dans une norme sans faille, quand un routeur envoie un code PIN au
routeur, celui devrait lui renv...
Sécurité WPA/WPA2
●

●

Cette forme d’authentification fait décroître de façon très importante
le nombre maximal de combin...
Sécurité WPA/WPA2
●

Nous avons besoin d'utiliser reaver-wps

root@Unks-dojo:~# wget http://reaver-wps.googlecode.com/file...
Nmap : Détecter les
machines conntés sur le
réseau
23
Nmap
●

Nmap est un scanner de ports open-source créé par Fyodor et
distribué par Insecure.org. Il est conçu pour détecter...
Nmap - Basics
●

Quelques commandes

●

root@Unks-dojo:~# nmap -sS 192.168.1.30 #Voir tous les ports TCP ouverts sur une m...
Buffer Overflows

26
Buffer Overflow - Introduction
●

●

●

En informatique, un dépassement de tampon ou débordement de
tampon (en anglais, bu...
Buffer Overflow - Introduction
#include <stdio.h>
#include <string.h>
void foo(char *str)
{
char buffer[32];
strcpy(buffer...
Buffer Overflow - Introduction
●

État de la pile avant l'appel à la fonction strcpy

Dépassement de tampon : la fonction ...
Buffer Overflow
●

●

Nous allons utiliser dans nos exemple ''Ability Server'' un serveur
FTP qui est vulnérable au buffer...
Buffer Overflow - Fuzzing
●

●

Le fuzzing (ou test à données aléatoires) est une technique pour
tester des logiciels. L'i...
Buffer Overflow - Fuzzing
●

Ability Server Crash à cause de la commande ''STOR <1024>''

32
Buffer Overflow – Contrôler 'EIP'
●

●

●

Afin de contôler 'EIP' nous devons détecter la position exacte dans
le buffer q...
Buffer Overflow – Contrôler 'EIP'
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●

root@Unks-dojo:~# cd /pentest/exploit...
Buffer Overflow – Contrôler 'EIP'
●

●

Nous allons remplacé la chaine de caractère dans notre PoC, et
comme prévu Ability...
Buffer Overflow – Contrôler 'EIP'
●

Nous allons donc modifier notre PoC grâce aux informations que
nous venons de collect...
Buffer Overflow – Injection du shellcode
●

Maintenant il nous faut trouver une place ou injecter notre shellcode

37
Buffer Overflow – Injection du shellcode
●

●

Super, maintenant que nous avons trouver une place pour notre
shellcode, no...
Conclusion
●
●

Éviter d'utiliser le filtrage MAC afin de sécuriser l'accès au réseau
Utilisez des mots de passe forts (le...
Conclusion – Buffer Overflows
●

●

●

●

●

●

Modifier le compilateur pour qu’il insère des instructions NOP de façon al...
Du wifi au contrôle total
de votre machine
Twitter : @EmirFares
Email : b.fares@emi.re | emir.belmahdi@gmail.com
Blog : ht...
Upcoming SlideShare
Loading in...5
×

Du wifi au controle total de votre machine

973

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
973
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
44
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Du wifi au controle total de votre machine

  1. 1. Du wifi au contrôle total de votre machine Twitter : @EmirFares Email : b.fares@emi.re | emir.belmahdi@gmail.com Blog : http://emi.re AboutMe : http://about.me/EmirFares 1
  2. 2. Mise en garde ● Cette présentation est à but éducatif, vous êtes le seul responsable de vos actes, notez que la loi condamne toute intrusion dans un système informatique. 2
  3. 3. Introduction 3
  4. 4. Introduction ● ● WIFI veut dire, Wireless (sans fil) et Fidelity (fidélité). C'est la désignation commerciale de la norme 802.11, les données sont transmises par ondes radio. La démocratisation des appareils Wi-Fi a grandement simplifié le déploiement des petits réseaux professionnels et domestiques. Grâce à cette technologie, il est désormais possible d'interconnecter de nombreux appareils informatiques (ordinateurs, consoles, PDA, etc.) sans avoir à réaliser le moindre perçage, ou passer l'ombre d'un câble. Poussés par cette relative simplicité d'installation ainsi que par des prix abordables, les réseaux sans fil ont rencontré le succès que l'on connaît. 4
  5. 5. Introduction ● Même si cette solution technique présente de nombreux avantages, gardons à l'esprit qu'un réseau mal configuré constitue une porte d'entrée vers vos données personnelles et/ou professionnelles. Un réseau sans fil peut-il être sûr à 100 % ? Que valent les différentes sécurités ? Quelles sont les règles élémentaires à respecter pour bien protéger son réseau ? Nous apporterons une réponse à ces nombreuses questions en passant en revue les différentes sécurités existantes (filtrage MAC, WEP, WPA/WPA2). 5
  6. 6. Filtrage MAC 6
  7. 7. Filtrage des adresses MAC ● ● ● ● Une adresse MAC (Media Access Control) est un identifiant physique stocké dans une carte réseau ou une interface réseau similaire et utilisé pour attribuer mondialement une adresse unique au niveau de la couche de liaison (couche 2 du modèle Open System Interconnection – OSI). Une adresse MAC-48 est constituée de 48 bits (6 octets) et est généralement représentée sous la forme hexadécimale en séparant les octets par un double point ou un tiret. Par exemple 5E:FF:56:A2:AF:15. En temps normal, l'adresse MAC ne change jamais. Il est normalement impossible de trouver deux cartes réseau signées par une même adresse MAC. 7
  8. 8. Filtrage des adresses MAC ● Lorsque l'on connaît la définition d'une adresse MAC, on se sent parfaitement protégé par ce type de filtrage. On configure son point d'accès pour qu'il autorise uniquement l'adresse des machines légitimes et le tour est joué. Dans la pratique, il en est tout autre. En effet, il est possible de changer l'adresse MAC de la quasi-totalité des cartes réseau par voie logicielle. Sous Windows, l'adresse MAC est modifiable depuis le gestionnaire de périphériques (pour les cartes dont le driver le permet) ou à l'aide d'EtherChange. Linux n'est pas en reste puisque le système permet de modifier nativement une adresse MAC à l'aide de la commande : ● root@Unks-dojo:~# ifconfig wlan0 down root@Unks-dojo:~# ifconfig wlan0 hw ether 00:1c:26:b3:5c:7f root@Unks-dojo:~# ifconfig wlan0 up root@Unks-dojo:~# /etc/init.d/networking restart 8
  9. 9. Déjouer le filtrage des adresses MAC ● La personne désireuse de pénétrer une installation protégée par un filtrage MAC commencera par « écouter » votre réseau à l'aide d'un logiciel de « monitoring » comme WifiScanner ou Airodump-ng. Ce type de programme permet de dresser la liste des points d'accès avoisinant (routeur Wi-Fi, simple borne d'accès, réseaux ad hoc, etc.) et de leurs stations associées (ordinateurs, consoles... ). Après démarrage de l'une de vos machines, ce logiciel affichera en clair l'adresse MAC de chacun des appareils de votre réseau. La personne désireuse de pénétrer votre installation n'aura alors plus qu'à remplacer l'adresse MAC de sa carte Wi-Fi par l'une des vôtres . 9
  10. 10. Sécurité WEP 10
  11. 11. Sécurité WEP ● ● Apparu en 1999, WEP est le plus ancien... et le moins sécurisé des protocoles de cryptage Wi-Fi. Paradoxalement WEP, pour « Wired Equivalent Privacy » signifie : « aussi sécurisé qu'une liaison filaire ». WEP n'est pas seulement le protocole le moins sécurisé, c'est également le moins pratique d'utilisation. En effet, pour ajouter une machine sur votre réseau, vous devrez saisir une clef dénuée de signification (composée 5, 10, 13 ou 26 caractères alphanumériques pour les clefs de sécurité de 64 ou 128 bits). Contrairement au WPA, avec cette méthode de cryptage, il est généralement impossible de choisir une clef compréhensible du type « monmotdepasse » (même si cela N'EST PAS RECOMMANDÉ). 11
  12. 12. Sécurité WEP Longueur totale de la clef Longueur des I.V. Longueur utile de la clef Nombre de caractères à saisir 64 bits 24 bits 40 bits (64-24) 5 (40/8) 128 bits 24 bits 104bits (128-24) 13 (104/8) 256 bits 24 bits 232 bits (256-24) 29 (232/8) 512 bits 24 bits 488 bits (512-24) 61 (488/8) Nombres de caractères de la clé stockée en ASCII Longueur totale de la clef Longueur des I.V. Longueur utile de la clef Nombre de caractères à saisir 64 bits 24 bits 40 bits (64-24) 10 (40/4) 128 bits 24 bits 104bits (128-24) 26 (104/4) 256 bits 24 bits 232 bits (256-24) 58 (232/4) 512 bits 24 bits 488 bits (512-24) 122 (488/4) Nombres de caractères de la clé stockée en Hexadécimale 12
  13. 13. Sécurité WEP ● La faille des IV (pour Initialization Vector , Vecteur d'initialisation) est le principal « défaut de sécurité » du cryptage WEP. Quelle que soit la taille de la clef, dans tous les cas, 24 bits seront alloués aux vecteurs d'initialisation (voir tableau ci-dessus). Le problème est que ces IV contiennent des informations sur le restant de la clef de chiffrement. Les principaux outils comme « Airodump-ng » permettent donc d'en capturer un grand nombre, puis d'effectuer un traitement qui permettra de « casser » la clef de cryptage. 13
  14. 14. Sécurité WEP ● Nous utiliserons l'outil : Airmon-ng, Airodump-ng, Aircrack-ng. root@Unks-dojo:~# apt-get install aircrack-ng root@Unks-dojo:~# airmon-ng start wlan0 root@Unks-dojo:~# airodump-ng mon0 root@Unks-dojo:~# airodump-ng --bssid XX:XX:XX:XX --channel [1-14] --ivs -w name mon0 root@Unks-dojo:~# aircrack-ng name*.ivs ● Une vidéo de démonstration est disponible : http://youtu.be/k6Xm1DTVaZU 14
  15. 15. Sécurité WPA/WPA2 15
  16. 16. Sécurité WPA/WPA2 ● Apparue en 2003, la sécurité WPA (pour Wi-Fi Protected Access) est basée sur un protocole d'authentification et d'acheminement des données nommé TKIP (pour Temporal Key Intergrity Protocol). Ce nouveau procédé comble les nombreuses lacunes du WEP et met fin à la faille des IV (Vecteurs d'Initialisation). Cette fois, la clef de chiffrement est renouvelée dynamiquement à intervalles réguliers. 16
  17. 17. Sécurité WPA/WPA2 ● ● ● Wi-Fi Protected Setup (WPS) est un standard de réseau local sans fil simple et sécurisé. Conçu par la Wi-Fi Alliance, il a été lancé début 2007. Le but du protocole WPS est de simplifier la phase de configuration de la sécurité des réseaux sans fil. Il permet à des particuliers ayant peu de connaissances sur la sécurité de configurer un accès WPA, supporté par les appareils Wi-Fi. Ce standard met l’accent sur l’utilisabilité et la sécurité, et le concept se décline en quatre façons d’établir un réseau domestique. L’utilisateur voulant ajouter un périphérique au réseau peut utiliser au choix : – la méthode PIN (Personal Identification Number), un numéro à lire sur une étiquette (ou un écran) du nouvel appareil, et à reporter sur le « représentant » du réseau (le point d’accès ou le registrar). – la méthode PBC, où l’utilisateur presse un bouton (physique ou virtuel), à la fois sur le point d’accès et sur le nouvel appareil. – la méthode NFC, où l’utilisateur approche le nouvel appareil du point d’accès pour établir une communication en champ proche entre eux. 17
  18. 18. Sécurité WPA/WPA2 ● Fonctionnement de la méthode PIN 1 2 3 1ère partie composée de 4 chiffres ● 4 5 6 7 2ème partie composée de 3 chiffres 0 Checksum Le checksum est calculé à partir des sept premiers chiffres. C’est un chiffre dont le but principal est d’assurer la sécurité et l’intégrité du code PIN qui pourrait se retrouver altérer lors de la phase de communication entre le client et le routeur. 18
  19. 19. Sécurité WPA/WPA2 ● ● Nous en arrivons à la première faille de sécurité. Le nombre de combinaisons possibles est réduit de 10^8 à 10^7 soit tout de même 10.000.000. La seconde faille de sécurité est de loin la plus intéressante car, comme nous allons le voir par la suite, nous permettra de tomber à seulement 11.000 combinaisons possibles soit dix fois rien quand on parle de bruteforce ! 19
  20. 20. Sécurité WPA/WPA2 ● ● Dans une norme sans faille, quand un routeur envoie un code PIN au routeur, celui devrait lui renvoyer le message « OUI, ce code est correct » ou « NON, code incorrect ». Dans ce cas là, nous serions obligés de tester les 10.000.000 de combinaisons jusqu’à temps arrivé au bon code PIN. En réalité, le routeur va nous renvoyer plusieurs messages différents dits personnalisés (M4, M6, M7) selon la validité d’un sous-ensemble de ce code PIN. – Si le client reçoit un message de type M4, il sait que le premier groupe de chiffres est faux; – Si le client reçoit un message de type M6, il sait que le second groupe de chiffres est erroné; – Si le client reçoit un message de type M7, le code PIN est valide. 20
  21. 21. Sécurité WPA/WPA2 ● ● Cette forme d’authentification fait décroître de façon très importante le nombre maximal de combinaisons possibles, le faisant passer de 10^7 à seulement 10^4 + 10^4. Mais comment nous avons précédemment que le dernier chiffre sert pour le checksum, il y a tout au plus 10^4 + 10^3 = 11.000 combinaisons possibles. 21
  22. 22. Sécurité WPA/WPA2 ● Nous avons besoin d'utiliser reaver-wps root@Unks-dojo:~# wget http://reaver-wps.googlecode.com/files/reaver-1.3.tar.gz root@Unks-dojo:~# tar –xvf reaver-1.3.tar.gz root@Unks-dojo:~# cd reaver-1.3/src/ root@Unks-dojo:~# ./configure root@Unks-dojo:~# make ● Une vidéo de démonstration est disponible : http://youtu.be/cCRCV97IRmE 22
  23. 23. Nmap : Détecter les machines conntés sur le réseau 23
  24. 24. Nmap ● Nmap est un scanner de ports open-source créé par Fyodor et distribué par Insecure.org. Il est conçu pour détecter les ports ouverts, identifier les services hébergés et obtenir des informations sur le système d'exploitation d'un ordinateur distant. Ce logiciel est devenu une référence pour les administrateurs réseaux car l'audit des résultats de Nmap fournit des indications sur la sécurité d'un réseau. Il est disponible sous Windows, Mac OS X, Linux, BSD et Solaris. 24
  25. 25. Nmap - Basics ● Quelques commandes ● root@Unks-dojo:~# nmap -sS 192.168.1.30 #Voir tous les ports TCP ouverts sur une machine ● root@Unks-dojo:~# nmap -p 80-300 192.168.1.30 ● root@Unks-dojo:~# nmap -O 192.168.1.30 #Détecter le système d'exploitation de la machine ● root@Unks-dojo:~# nmap 192.168.0-255 #Scanner une plage d'adresses IP ● root@Unks-dojo:~# nmap -sS 192.168.1.1/24 #Scanner les services en cours d“éxécution ● de chaque machine du réseau #Scan des ports 80 à 300 25
  26. 26. Buffer Overflows 26
  27. 27. Buffer Overflow - Introduction ● ● ● En informatique, un dépassement de tampon ou débordement de tampon (en anglais, buffer overflow) est un bug par lequel un processus, lors de l'écriture dans un tampon, écrit à l'extérieur de l'espace alloué au tampon, écrasant ainsi des informations nécessaires au processus. Lorsque le bug se produit non intentionnellement, le comportement de l'ordinateur devient imprévisible. Il en résulte souvent un blocage du programme, voire de tout le système. Le bug peut aussi être provoqué intentionnellement et être exploité pour violer la politique de sécurité d’un système. Cette technique est couramment utilisée par les pirates. La stratégie de l'attaquant est alors de détourner le programme bugué en lui faisant exécuter des instructions qu'il a introduites dans le processus. 27
  28. 28. Buffer Overflow - Introduction #include <stdio.h> #include <string.h> void foo(char *str) { char buffer[32]; strcpy(buffer, str); /* ... */ } int main(int argc, char *argv[]) { if (argc > 1) { /* appel avec le premier argument de la ligne de commandes */ foo(argv[1]); } /* ... */ return 0; } 28
  29. 29. Buffer Overflow - Introduction ● État de la pile avant l'appel à la fonction strcpy Dépassement de tampon : la fonction strcpy copie la chaîne vers la zone mémoire indiquée, dépasse la zone allouée et écrase l'adresse de retour de la fonction foo 29
  30. 30. Buffer Overflow ● ● Nous allons utiliser dans nos exemple ''Ability Server'' un serveur FTP qui est vulnérable au buffer Overflow. Lien de téléchargement : http://ability-server.pcfiles.com/ 30
  31. 31. Buffer Overflow - Fuzzing ● ● Le fuzzing (ou test à données aléatoires) est une technique pour tester des logiciels. L'idée est d'injecter des données aléatoires dans les entrées d'un programme. Si le programme échoue (par exemple en plantant ou en générant une erreur), alors il y a des défauts à corriger. Le script que nous allons utiliser pour le fuzzing est disponible ici : http://pastebin.com/GzRJKFQR 31
  32. 32. Buffer Overflow - Fuzzing ● Ability Server Crash à cause de la commande ''STOR <1024>'' 32
  33. 33. Buffer Overflow – Contrôler 'EIP' ● ● ● Afin de contôler 'EIP' nous devons détecter la position exacte dans le buffer qui l'écrase. Pour celà nous allons envoyé une chaine de caractère unique et récupérer les 4 octets qui écrasent EIP, nous détecterons leurs position dans la chaine après. Nous allons utiliser l'outil ''pattern_create.rb'' de metasploit 33
  34. 34. Buffer Overflow – Contrôler 'EIP' ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● root@Unks-dojo:~# cd /pentest/exploits/framework3/tools root@Unks-dojo:~# ./pattern_create.rb 2000 Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0 Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1 Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2 Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3 Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4 Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5 As6As7As8As9At0At1At2At3At4At5At6At7At8At9Au0Au1Au2Au3Au4Au5Au6Au7Au8Au9Av0Av1Av2Av3Av4Av5Av6 Av7Av8Av9Aw0Aw1Aw2Aw3Aw4Aw5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6Ay7 Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8 Bb9Bc0Bc1Bc2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2Be3Be4Be5Be6Be7Be8Be9 Bf0Bf1Bf2Bf3Bf4Bf5Bf6Bf7Bf8Bf9Bg0Bg1Bg2Bg3Bg4Bg5Bg6Bg7Bg8Bg9Bh0Bh1Bh2Bh3Bh4Bh5Bh6Bh7Bh8Bh9Bi0 Bi1Bi2Bi3Bi4Bi5Bi6Bi7Bi8Bi9Bj0Bj1Bj2Bj3Bj4Bj5Bj6Bj7Bj8Bj9Bk0Bk1Bk2Bk3Bk4Bk5Bk6Bk7Bk8Bk9Bl0Bl1 Bl2Bl3Bl4Bl5Bl6Bl7Bl8Bl9Bm0Bm1Bm2Bm3Bm4Bm5Bm6Bm7Bm8Bm9Bn0Bn1Bn2Bn3Bn4Bn5Bn6Bn7Bn8Bn9Bo0Bo1Bo2 Bo3Bo4Bo5Bo6Bo7Bo8Bo9Bp0Bp1Bp2Bp3Bp4Bp5Bp6Bp7Bp8Bp9Bq0Bq1Bq2Bq3Bq4Bq5Bq6Bq7Bq8Bq9Br0Br1Br2Br3 Br4Br5Br6Br7Br8Br9Bs0Bs1Bs2Bs3Bs4Bs5Bs6Bs7Bs8Bs9Bt0Bt1Bt2Bt3Bt4Bt5Bt6Bt7Bt8Bt9Bu0Bu1Bu2Bu3Bu4 Bu5Bu6Bu7Bu8Bu9Bv0Bv1Bv2Bv3Bv4Bv5Bv6Bv7Bv8Bv9Bw0Bw1Bw2Bw3Bw4Bw5Bw6Bw7Bw8Bw9Bx0Bx1Bx2Bx3Bx4Bx5 Bx6Bx7Bx8Bx9By0By1By2By3By4By5By6By7By8By9Bz0Bz1Bz2Bz3Bz4Bz5Bz6Bz7Bz8Bz9Ca0Ca1Ca2Ca3Ca4Ca5Ca6 Ca7Ca8Ca9Cb0Cb1Cb2Cb3Cb4Cb5Cb6Cb7Cb8Cb9Cc0Cc1Cc2Cc3Cc4Cc5Cc6Cc7Cc8Cc9Cd0Cd1Cd2Cd3Cd4Cd5Cd6Cd7 Cd8Cd9Ce0Ce1Ce2Ce3Ce4Ce5Ce6Ce7Ce8Ce9Cf0Cf1Cf2Cf3Cf4Cf5Cf6Cf7Cf8Cf9Cg0Cg1Cg2Cg3Cg4Cg5Cg6Cg7Cg8 Cg9Ch0Ch1Ch2Ch3Ch4Ch5Ch6Ch7Ch8Ch9Ci0Ci1Ci2Ci3Ci4Ci5Ci6Ci7Ci8Ci9Cj0Cj1Cj2Cj3Cj4Cj5Cj6Cj7Cj8Cj9 Ck0Ck1Ck2Ck3Ck4Ck5Ck6Ck7Ck8Ck9Cl0Cl1Cl2Cl3Cl4Cl5Cl6Cl7Cl8Cl9Cm0Cm1Cm2Cm3Cm4Cm5Cm6Cm7Cm8Cm9Cn0 Cn1Cn2Cn3Cn4Cn5Cn6Cn7Cn8Cn9Co0Co1Co2Co3Co4Co5Co 34
  35. 35. Buffer Overflow – Contrôler 'EIP' ● ● Nous allons remplacé la chaine de caractère dans notre PoC, et comme prévu Ability va saisser de fonctionner, et le EIP sera remplacé par x42x67x32x42 qui l'équivalent hexadécimal de Bg2B. Le script pattern_offset.rb récupère la position des caractères dans le buffer. root@Unks-dojo:~# ./pattern_offset.rb Bg2B 966 root@Unks-dojo:~# ● EIP est donc écrasé par les caractères à partir de la position 966 à 970 35
  36. 36. Buffer Overflow – Contrôler 'EIP' ● Nous allons donc modifier notre PoC grâce aux informations que nous venons de collecter, et nous l'exécuterons après 36
  37. 37. Buffer Overflow – Injection du shellcode ● Maintenant il nous faut trouver une place ou injecter notre shellcode 37
  38. 38. Buffer Overflow – Injection du shellcode ● ● Super, maintenant que nous avons trouver une place pour notre shellcode, nous pouvons donc l'intégrer au script. Commençons par générer un shellcode grâce à metasploit root@Unks-dojo:~# ./msfpayload windows/shell_bind_tcp C ● Maintenant que nous avons notre shellcode, nous allons l'intégrer dans notre PoC et l'exécuter pour avoir une jolie reverse connection. 38
  39. 39. Conclusion ● ● Éviter d'utiliser le filtrage MAC afin de sécuriser l'accès au réseau Utilisez des mots de passe forts (lettres minuscule/majuscile, chiffres, caractères spéciaux) ● Éviter d'utiliser le protocole WEP afin de sécuriser l'accès. ● Désactivez le WPS après configuration de votre routeur. ● Vérifiez constamment les utilisateurs de votre réseau et tentez de détecter tout intrus. 39
  40. 40. Conclusion – Buffer Overflows ● ● ● ● ● ● Modifier le compilateur pour qu’il insère des instructions NOP de façon aléatoire dans le code du noyau et des applications (opérations de routine en Linux). Cela ralentit peu les programmes et complique énormément la tâche de l'attaquant qui ne sait plus quelles adresses il doit viser. Utiliser des options de compilation permettant d'éviter les dépassements de mémoire tampons connus sous le nom de SSP (Stack-Smashing Protector). Utilisation de langages à contexte d'éxecution managée implémentant la vérification de bornes des tableaux (e.g. Java) connu sous le nom de Bounds checking. Utiliser des outils externes qui permettent, en mode développement, de tester les cas litigieux, par exemple la bibliothèque Electric Fence ou Valgrind. Bannir de son utilisation les fonctions dites « non protégées ». Préférer par exemple strncpy à strcpy ou alors fgets à scanf qui effectue un contrôle de taille. Les compilateurs récents peuvent prévenir le programmeur s’il utilise des fonctions à risque, même si leur utilisation demeure possible. Protéger, côté système, la pile d'exécution : – – ● Rendre la pile non exécutable, Mettre en place un mécanisme de vérification de la pile comme la technique du canari. Le principe est de stocker une clé de valeur aléatoire, générée à l’exécution, entre la fin de la pile et l'adresse de retour. Si cette clé est modifiée, l’exécution est avortée (disponible en option dans les compilateurs C récents, éventuellement avec recours à des patchs). La principale critique de cette méthode est que l’appel de fonction est ainsi ralenti. Aucune de ces solutions logicielles ne s’est imposée (en 2008) dans le monde du développement industriel. Pourtant, les dépassements de tampon représentent une part encore importante des failles permettant le développement de vers, de virus et d'attaques manuelles. 40
  41. 41. Du wifi au contrôle total de votre machine Twitter : @EmirFares Email : b.fares@emi.re | emir.belmahdi@gmail.com Blog : http://emi.re AboutMe : http://about.me/EmirFares 41
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×