problema con shellcode demasiado larga

Iniciado por black_flowers, 20 Abril 2011, 13:32 PM

0 Miembros y 1 Visitante están viendo este tema.

black_flowers

hola, he estado debugueando por que no funciona miexploit y he llegado a la conclusion de que es porque es demasiado larga, ya que si la corto por la mitad, parece que si se ejecuta (aunque por supuesto n hace nada ya que no esta completa), Entonces tengo la duda, de ¿cómo puedo calcular el tamaño maximo que puede ocupar mi shellcode, ytambien que es lo que sucede cuando se exceden esos valores,para que el programa se estrelle.

un saludo.

Garfield07

Pues sencillamente mira el espacio que tienes. Si es muy pequeño puedes meter la shellcode después de la dirección de  retorno...
BASURA + RET + NOP + SHELLCODE

En vez de...
NOP + SHELLCODE + NOP + RET


PS: Qué espacio tienes? Dame alguna pista jeje


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

black_flowers

he comprobado que la shellcode se corta casi al final (es decir al principio  ;D) de la pila donde pone como comentario: "pointer to next seh register" que no se que será. Y sucede tambien que la shellcode no la puedo reducir ya que hasta ahí, justo lo que hace es buscar la dirección de getprocaddress en kernel32.dll con lo cual es el paso esencial en la shellcode (no se si me explico). Entonces las dos opciones son, obien encontrar un codigo mas corto para buscar la dirección de getprocaddress, o aumentar si fuera posible el tamaño de la pila aunque esta ultima opcion... no se yo.

un saludo.

black_flowers

#3
ya he conseguido resolver eso, en lugar de en el main, el overflow lo hago en una funcion y declaro un par de variables basura para dejar sitio en lapila para la shellcode.
De todas formas sigue sin funcionar, empiezo a pensar que esto ya es imposible que funcione en los sitemas de hoy en día (hablo de windows por supuesto).