Un shellcode es basicamente una serie de ordenes en ensamblador que hace algo de lo que podemos sacar provecho: ejecutar /bin/sh para obtener una shell, copiar una shell y ponerle un suid root, etc. Tienen características de programacion un tanto especiales.
Se usa para poder ejecutar código después de haber sobreescrito la direccion de retorno de un programa/función mediante un overflow, o mediante cualquier otro método válido. Es decir, el valor de la dirección de retorno que se sobreescribira será la de nuestra shellcode. Simplemente decir que cuando se produzca el desbordamiento y el salto se ejecutará nuestra shellcode.
Aquí les dejo algunos links de los códigos de algunos shellcodes y una breve descripción de lo que hacen.
- Shellcode que deja una shell abierta en el puerto 8721. Funciona en NT, 2000 y XP:
http://www.terra.es/personal3/fistror/e/win32_bind.c
- Shellcode que te conecta al puerto 8721 y te manda shell. Necesitas poner Netcat a la escucha y modificar la scode para poner tu IP.
http://www.terra.es/personal3/fistror/e/win32_reverse.asm
-
Shellcode que crea un usuario "X" con password "X" y lo une al grupo "Administrators".
http://www.terra.es/personal3/fistror/e/win32_adduser.asm
No hay comentarios:
Publicar un comentario