IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Remote buffer overflow


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Par défaut Remote buffer overflow
    Bonjour à tous

    Dans le cadre d'un exposé, je dois exploiter un remote buffer overflow.
    J'ai codé un simple serveur ayant cette faille, et je dois l'exploiter à distance afin d'executer un shell à distance sur le pc victime.

    Ce que je me demande c'est comment connaitre l'adresse de notre code arbitraire, afin ensuite d'ecraser EIP car cette adresse.

    J'ai utilisé GDB pour la connaitre, mais elle change à chaque execution, donc impossible de taper au bon endroit

    Voilà j'espere que vous pourrez me donner quelques pistes car pour le moment ma note risque de ne pas être très élevée

    Merci
    Sorry

  2. #2
    Membre éclairé Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Par défaut
    Bon je m'auto reponds

    Apres pas mal de recherches, j'ai trouvé que sur les noyaux > 2.6, il y a une protection contre les BOF.
    En effet la stack est "randomized", donc son adresse change à chaque éxécution, rendant impossible de trouver l'adresse d'un buffer par avance.

    Voici un exemple d'execution, ce programme affiche l'adresse memoire de son 1er argument :

    $ ./aff_stk toto
    Adresse argument : 0xbfaf99cc
    $ ./aff_stk toto
    Adresse argument : 0xbff2b9cc
    $ ./aff_stk toto
    Adresse argument : 0xbfba39cc
    Voilà on constate que les adresses sont bien loin les unes des autres.

    Je vous donne la commande pour désactiver cette protection :

    en root
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo 0 > /proc/sys/kernel/randomize_va_space
    Reprenons le programme plus haut :

    $ ./aff_esp toto
    Adresse argument : 0xbffff9cc
    $ ./aff_esp toto
    Adresse argument : 0xbffff9cc
    $ ./aff_esp toto
    Adresse argument : 0xbffff9cc
    Et voilà l'adresse ne change plus

    Sans cette protection j'ai reussis direct mon BOF
    Donc je vous conseille de laisser cette protection

    en root
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo 1 > /proc/sys/kernel/randomize_va_space

    A noter que sur la derniere version d'ubuntu (me rappelle plus le nom..) il y a une autre protection en plus qui stop tout programme debordant un buffer.
    Mais je n'ai constaté ceci que hier sur le PC d'un ami donc je n'ai pas encore eut le temps de chercher des infos à ce sujet.

  3. #3
    Membre éclairé
    Avatar de Blo0d4x3
    Inscrit en
    Octobre 2003
    Messages
    593
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 593
    Par défaut
    Ca m'interesserai plus d'infos sur les buffer overflow sous linux.
    Tu dis qu'on ne peut trouver l'adresse de la stack est introuvable. Or il y a bien des exploits qui utilise des buffers overflows (j'ai pas étudié comment il fonctionnent en profondeur).

    Pourrais-tu me montrer le code de ton prog ?

  4. #4
    Membre éclairé Avatar de sorry60
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    802
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 802
    Par défaut
    Citation Envoyé par Blo0d4x3
    Ca m'interesserai plus d'infos sur les buffer overflow sous linux.
    Tu dis qu'on ne peut trouver l'adresse de la stack est introuvable. Or il y a bien des exploits qui utilise des buffers overflows (j'ai pas étudié comment il fonctionnent en profondeur).

    Pourrais-tu me montrer le code de ton prog ?
    Biensur qu'on peut utiliser un BOF même si il y a cette protection mais en utlisant d'autres techniques.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Se protéger contre les buffers overflows
    Par pharaonline dans le forum C
    Réponses: 2
    Dernier message: 11/06/2006, 22h25
  2. Buffer overflow ?
    Par Albator5151 dans le forum Général Java
    Réponses: 6
    Dernier message: 08/02/2006, 01h23
  3. [oracle 9i] ORU-10027: buffer overflow
    Par jejam dans le forum Oracle
    Réponses: 7
    Dernier message: 01/09/2005, 13h05
  4. Erreur ORU-10027 : buffer overflow
    Par valerie90 dans le forum Oracle
    Réponses: 3
    Dernier message: 14/02/2005, 08h40
  5. [Erreur] buffer overflow
    Par cmoulin dans le forum Administration
    Réponses: 8
    Dernier message: 04/08/2004, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo