Junio 21, 2018, 08:20:12 am

Autor Tema: Duda con relleno de shellcode  (Leído 7861 veces)

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

Desconectado metalerk

  • Me das tu IP?
  • *
  • Mensajes: 25
  • Sexo: Masculino
  • Sólo dame una shell y yo haré el resto...
    • Ver Perfil
    • Facebook Oficial
Duda con relleno de shellcode
« en: Diciembre 29, 2015, 02:02:38 am »
Hola amigos que tal.

Vengo a presentar una duda que he buscado pero no entiendo (soy nuevo en el exploiting y el reversing) y no estoy muy seguro si esta es la sección correcta.

Tengo un programa mas o menos asi:

Código: You are not allowed to view links. Register or Login
#include <string.h>
#include <stdio.h>


void func (char *arg)
{
    char nombre[32];
    strcpy (nombre, arg);
    printf ("\nBienvenido %s\n\n", nombre);
}
int main(int argc, char*argv[])
{
    if (argc != 2) {
        printf ("Uso %s NOMBRE", argv[0]);
        exit(0);
    }
    func(argv[1]);
    printf("Fin\n\n");
    return 0;
}

Estoy probando un ejemplo de como sobreescribir el registro EIP para que cuando mi función func se ejecute desde main, ret(el registro IP regresando de la subrutina) use como siguiente valor el mismo que tenía antes de entrar a func y por lo tanto vuelva a entrar a func.

Y para explotarlo se le pasa como argumento algo asi (el ejemplo original era con perl pero prefiero python) Suponiendo que el archivo se llama prog

Código: You are not allowed to view links. Register or Login
$ ./prog `python -c 'print "A"*44 + "\x8b\x84\x04\x08"*4`
La memoria está en formato little endian (0x0804848b)

Esa dirección de memoria se obtuvo de:

Código: You are not allowed to view links. Register or Login
$ objdump -d ./prog | grep func
Se que obviamente esa dirección corresponde a donde se ejecuta el call func, mi duda es porque "A" tiene que repetirse 44 veces exactamente antes de inyectar la dirección de memoria para repetir dos veces la funcion, en función de qué depende la longitud del relleno en un shellcode?

Saludos !!
« Última modificación: Diciembre 29, 2015, 02:05:30 am por metalerk »
¿Me preguntas porque GNU/Linux es mejor que Microsoft Windows?
Simple...porque GNU/Linux hace lo que yo quiero como quiero.

Desconectado OnTheCore

  • Si te metes con CPH
    te metes conmigo
  • ****
  • Mensajes: 1610
  • Sexo: Masculino
    • Ver Perfil
Re:Duda con relleno de shellcode
« Respuesta #1 en: Diciembre 29, 2015, 06:04:37 pm »
La instrucción ret lo que hace es saltar a la dirección que esta siendo apuntada por el stack pointer. Al escribir 44 caracteres estas rellenando el espacio reservado en el stack (32 bytes en este caso) y otros 12 que deben ser otros datos que fueron empujados al stack dentro del procedimiento y luego escribe la dirección donde estaría el stack pointer.
Abrilo con un debugger y anda fijandote el stack.
No me mandes mensajes privados sobre troyanitos,  "crypters" o alguna otra boludez. No voy a ser tu maestro personal ni te voy a vender un curso para ser hacker. Si me envias un mensaje asi, probablemente no te guste la respuesta.

Desconectado mDrinky

  • Si te metes con CPH
    te metes conmigo
  • ****
  • Mensajes: 2868
    • Ver Perfil
Re:Duda con relleno de shellcode
« Respuesta #2 en: Diciembre 31, 2015, 04:52:41 am »
Depende de la cantidad de bytes que tengas que sobreescribir para que estalle la pila.

You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
Que guapo soy!

Desconectado metalerk

  • Me das tu IP?
  • *
  • Mensajes: 25
  • Sexo: Masculino
  • Sólo dame una shell y yo haré el resto...
    • Ver Perfil
    • Facebook Oficial
Re:Duda con relleno de shellcode
« Respuesta #3 en: Enero 03, 2016, 01:46:12 am »
Muchas gracias por sus comentarios  ;)


question
Duda de Buffer Overflow y shellcode

Iniciado por BlackHKR

1 Respuestas
1516 Vistas
Último mensaje Abril 05, 2010, 01:32:26 pm
por soez
question
Como relleno esa parte?

Iniciado por Fake Smile

0 Respuestas
2008 Vistas
Último mensaje Marzo 03, 2010, 10:45:52 pm
por Fake Smile
xx
Diferente relleno que en el desensamblado

Iniciado por apitalio

0 Respuestas
896 Vistas
Último mensaje Octubre 08, 2014, 07:40:13 pm
por apitalio
exclamation
[RETO]Shellcode

Iniciado por mr.blood

4 Respuestas
1765 Vistas
Último mensaje Noviembre 29, 2012, 10:01:52 am
por mr.blood
xx
ShellCode Kernel32

Iniciado por mDrinky

1 Respuestas
1423 Vistas
Último mensaje Abril 15, 2013, 10:47:54 am
por JaAViEr
grin
WMFMaker ShellCode

Iniciado por ronald_el

1 Respuestas
1788 Vistas
Último mensaje Enero 19, 2006, 12:31:42 pm
por ronald_el
xx
Shellcode segmentation fault

Iniciado por Pablo465

2 Respuestas
7628 Vistas
Último mensaje Julio 19, 2015, 04:15:47 pm
por Pablo465
exclamation
Creando Tus propias Shellcode con ASM y C

Iniciado por r007

3 Respuestas
1084 Vistas
Último mensaje Octubre 25, 2011, 09:50:13 am
por bendroide
exclamation
[TUTORIAL] Creando una ShellCode.

Iniciado por mDrinky

4 Respuestas
2398 Vistas
Último mensaje Febrero 09, 2011, 05:06:06 pm
por soez
xx
win32/xp sp3 (Tr) MessageBoxA Shellcode 109 bytes

Iniciado por juh

0 Respuestas
985 Vistas
Último mensaje ſeptiembre 19, 2010, 10:44:17 pm
por juh