buffer overflow n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Buffer Overflow PowerPoint Presentation
Download Presentation
Buffer Overflow

Loading in 2 Seconds...

play fullscreen
1 / 18

Buffer Overflow - PowerPoint PPT Presentation


  • 98 Views
  • Uploaded on

Buffer Overflow. Anatomy of an exploit. Introduction. Le cas du Buffer Overflow Connu et documenté depuis 1978 Fonctionnement de la mémoire Corruption de la mémoire Création d’un ‘Shell-code’. Fonctionnement de la mémoire.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Buffer Overflow' - gabi


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
buffer overflow

Buffer Overflow

Anatomy of an exploit

introduction
Introduction
  • Le cas du Buffer Overflow
  • Connu et documenté depuis 1978
  • Fonctionnement de la mémoire
  • Corruption de la mémoire
  • Création d’un ‘Shell-code’
fonctionnement de la m moire
Fonctionnement de la mémoire
  • Le buffer est une quantité de mémoire réservée pour être rempli par des données
  • Le pointer est une adresse qui sert à référencer un endroit de la mémoire.
  • La mémoire plate est un espace de mémoire continu (virtuel) qui permet au programme de n’avoir qu’un seul emplacement mémoire
la pile
La pile
  • A chaque appel de fonction, la place est réservée et le pointeur se déplace
fonctionnement de la m moire1
Fonctionnement de la mémoire
  • Registres :
    • nSP (rsp) = Stack Pointer ( haut de la pile )
    • nIP = Instruction Pointer ( point d’éxécution)
  • Bigendian Vs Littleendian
  • NUL Terminated Strings 0x00
    • « Texte » = 0x54 0x65 0x78 0x74 0x65 0x00
    • Le programme écrit jusqu’à arriver au NUL contenu dans la String
prise de contr le
Prise de contrôle
  • Test des limites non effectués
  • Ecriture sur les données suivantes dont les pointeurs.
  • But est de faire pointer sur un endroit sur lequel l’attaquant peut écrire.
exemple1
Exemple
  • On veut voir ce qu’il se passe lors du déroulement
  • On met un break point avant l’allocation de mémoire et on compare.
exemple2
Exemple
  • Avant
  • Continue
  • Apres
stack smaching corruption de variables
StackSmachingCorruption de variables
  • La variable loggedin est initialisé avant la string password
  • La valeur de loggedin est sous la string password dans la pile.

loggedin

Pointeur retour

stack smaching corruption des pointeurs
StackSmachingCorruption des pointeurs
  • Pointeur de retour sauvé en fin de fonction
  • Idée : Repointer vers un endroit ou l’on peut écrire, par exemple l’espace alloué à password
  • Sous unix, utiliser les variables d’environnement
  • En pratique on ne pointe pas directement sur le code malicieux
nop sled
NOP sled
  • NOP = No-Operation
  • Permet de déplacer le pointeur d’instruction vers le code à exécuter.
  • Exemple : On ne sait pas ou l’on commence :

1 : continue 6 : continue

2 : continue 7 : continue

3 : continue 8 : continue

4 : continue 9 : continue

5 : Exécuter 10 : Aller en 1

shell code
Shell-code
  • Shell-code généralement écrit en assembleur pour obtenir des OPCODES
  • But : Faire apparaitre un rootshell.
  • Contraintes :
    • Caractères non utilisables ( 0x00 )
    • Taille restreinte ( souvent par le ou les buffers )
d un code machine un shell code
D’un code machine à un shell-code
  • Peut-on encore définir des variables au milieu du code ?
probl mes
Problèmes
  • Ne fonctionne pas dans un buffer overflow
  • Enlever les ‘NUL’ un à un
autres mauvais caract res
Autres mauvais caractères
  • 0x0a retour à la ligne
  • 0x09 tabulation
  • Remplaçable par 0x0d ( pas tout le temps )
  • Résultat :
conclusion
conclusion
  • Marche a suivre en 4 points :
    • Identification des vulnérabilités
    • Découverte des emplacements des objets et stabilisation
    • Construction du payload
    • Exploitation
  • Faille propre à l’utilisation de la mémoire