Nous sommes le 19 Avr 2014, 09:59

Heures au format UTC + 1 heure [ Heure d'été ]





Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 
  Imprimer le sujet Sujet précédent | Sujet suivant 
Auteur Message
 Sujet du message: Comment trouver la bonne addresse..
MessagePosté: 19 Oct 2011, 02:58 
Hors ligne

Inscription: 19 Oct 2011, 02:45
Messages: 1
Bonjour, une petite question...

Comment retrouver l'addresse ou sauter...

Je ne parle meme pas d'aslr... , sans cela, De base je peine... j'ai toujours un furieux décalage entre les addresse du stack pour un overflow avec ou sans gdb... et je ne peux pas forcément mettre 4 K de nop a chaque fois...

Existe t'il de la litérature a ce sujet... comment faites vous ? qui a un calcul savant ?

D'avance merci.


Haut
 Profil  
 
 Sujet du message: Re: Comment trouver la bonne addresse..
MessagePosté: 19 Oct 2011, 19:42 
Hors ligne
Avatar de l'utilisateur

Inscription: 05 Juin 2009, 00:40
Messages: 1482
T'as pas un JMP / CALL ESP quelque part ?


Haut
 Profil  
 
 Sujet du message: Re: Comment trouver la bonne addresse..
MessagePosté: 25 Mai 2012, 00:13 
Hors ligne

Inscription: 12 Fév 2010, 22:23
Messages: 36
C'est vraiment Old mais ca peut servir a d'autre.

Concernant le décalage entre tes adresses avec et sans GDB c'est lié a deux choses:
* GDB lance le programme avec son PATH absolu => (/tmp/prog au lieu de ./prog)
* GDB rajoute des variables dans ton env. (Chez moi LINES et COLUMNS)

Donc pour obtenir les même adresses avec et sans GDB de façon simple:
* exporte les variables que utilisent GDB
* lance le programme avec son PATH absolu


Haut
 Profil  
 
 Sujet du message: Re: Comment trouver la bonne addresse..
MessagePosté: 25 Mai 2012, 02:05 
Hors ligne
Administrateur
Administrateur
Avatar de l'utilisateur

Inscription: 22 Mar 2008, 22:45
Messages: 1714
Y'a un exec-wrapper dans gdb qu'on peut mettre à "env -i" pour supprimer toutes les variables d'environnement.
Et bien entendu on peut utiliser "env -i" aussi hors de gdb. Du coup on a le même environnement (vide) dans gdb et hors de gdb.
La commande env permet aussi de rajouter des variables d'environnement juste pour le programme. Au cas où le programme en aurait besoin (ou si on s'en sert pour y stocker le shellcode/whatever ;))


Haut
 Profil  
 
 Sujet du message: Re: Comment trouver la bonne addresse..
MessagePosté: 25 Mai 2012, 14:52 
Hors ligne

Inscription: 11 Avr 2008, 11:22
Messages: 101
yop,
en mettant ton shellcode en variable d'environemment tu peux connaitre l'adresse de celle ci avec le bout de code suivant. L'adresse ne sera pas modifiée tant que tu restes dans le même shell

Code:
// getenvaddress.c
// thanks Niklos !!
// usage: inject 'NOMDELAVARIABLEDENVIRONNEMENT'
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char **argv) {
char *ptr;
ptr = getenv(argv[1]);
if( ptr == NULL )
printf("%s not found\n", argv[1]);
else printf("%s found at %08x\n", argv[1], (unsigned int)ptr);
return 0;
}

_________________
Sous les octets, la plage


Haut
 Profil  
 
 Sujet du message: Re: Comment trouver la bonne addresse..
MessagePosté: 26 Mai 2012, 17:22 
Hors ligne
Administrateur
Administrateur
Avatar de l'utilisateur

Inscription: 22 Mar 2008, 22:45
Messages: 1714
jahman a écrit:
yop,
en mettant ton shellcode en variable d'environemment tu peux connaitre l'adresse de celle ci avec le bout de code suivant. L'adresse ne sera pas modifiée tant que tu restes dans le même shell

Sans ASLR oui.

Code:
$ ./a.out PATH
PATH found at fff1fd95
$ ./a.out PATH
PATH found at ff97dd95


Haut
 Profil  
 
 Sujet du message: Re: Comment trouver la bonne addresse..
MessagePosté: 28 Mai 2012, 10:50 
Hors ligne
Avatar de l'utilisateur

Inscription: 05 Juin 2009, 00:40
Messages: 1482
(sur Windows, au moins, ça ne change que quand on reboot. :D)


Haut
 Profil  
 
Afficher les messages précédents:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 7 messages ] 

Heures au format UTC + 1 heure [ Heure d'été ]


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 7 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron



HZV WILL NEVER DIE !!