Page cover

🧨Metasploit - Atacando Windows

En esta sección veremos distintos ataques con Metasploit en un entorno controlado, atacando la máquina Metasploitable 3 Windows.

Tutorial completo

Setup inicial

Vamos a atacar la máquina Metasploitable 3 Windows. Si no la tienes instalada en tu software de virtualización puedes seguir los pasos en esta sección:

💣Metasploitable 3

Modo de red

  • Tenemos que poner tanto la máquina Metasploitable como nuestro Kali Linux en modo bridged para poder conectarnos desde Kali como una máquina dentro de la misma red.

  • Una vez hecho esto comprobamos la conectividad desde nuestro Kali Linux:

Conectar base de datos de Metasploit

Esto nos lanzará Metasploit con la base de datos habilitada.


Escaneo de puertos e importación

Habría 2 formas de importar hosts, puertos abiertos y vulnerabilidades en Metasploit:

  • Importando un archivo de escaneo con nmap o Nessus

  • Usando db_nmap directamente con Metasploit

Importar escaneo de Nessus en Metasploit

Desde Nessus le damos a exportar escaneo. Esto nos guarda un reporte en formato .nessus.

Importar escaneo de Nmap en Metasploit

Escaneando puertos con Metasploit

Podemos usar Nmap directamente desde msfconsole. Para escanear directamente desde la consola sin tener que pasar a segundo plano o salir del proceso, use el comando db_nmap.

Vamos a analizar la información obtenida.


Analizar resultados

La base de datos no solo almacena información, sino que también te permite usarla en tus ataques:

Hosts

Servicios

Con estos datos ya podríamos buscar exploits para estos servicios.


Atacando Metasploitable

Configurar host global

Con la variable setg podemos indicarle un RHOST (la máquina objetivo) y un LHOST (nuestra máquina Kali Linux) lo guardará de manera global para todos los exploits que queramos probar contra esta máquina:

Vamos a crear 2 wordlists con los usuarios existentes en la máquina y los password conocidos para explotar esta máquina, con el objetivo de hacer fuerza bruta a distintos servicios: users.txt y pass.txt

Además estas 2 wordlists las podríamos añadir también como variables globales para usarlas con los módulos de fuerza bruta de FTP, SSH, SMB, etc... Lo podemos hacer de la siguiente manera:

Estas wordlists se podrían sustituir por listas más extensas como el diccionario Rockyou o algún diccionario de las Seclists, pero como conocemos los 2 usuarios y la contraseña lo haremos así para este ejemplo.


Atacando FTP

Vamos a hacer bruteforce a distintos servicios de la máquina con los módulos propios de Metasploit, ya que de esa manera si consigue credenciales válidas podríamos verlas rápidamente con el comando creds.

Para hacer bruteforce del servicio FTP vamos a usar el módulo módulo ftp_login:

Tenemos 2 usuarios, por lo que vamos a probar a conectarnos por SSH como administrator:

Conseguimos acceso por FTP con ambos usuarios y podríamos tanto descargarnos los archivos como subir archivos maliciosos.

Atacando SSH

Vamos a hacer bruteforce del servicio SSH con el módulo ssh_login:

Conseguimos acceder por SSH con el usuario vagrant


Atacando SMB

Vamos a explotar el servicio SMB, y como es una máquina antigua vamos a comprobar si la máquina es vulnerable a EternalBlue:

Explotación manual

Tenemos 2 usuarios válidos, por lo que vamos a listar los recursos compartidos:

Accdemos a los recursos compartidos en ADMIN$:

Explotación automática

Como es una máquina antigua, lo más normal es que sea vulnerable a EternalBlue, una vulnerabilidad crítica en el protocolo SMB de Microsoft, identificada oficialmente como CVE-2017-0144. Descubierta por la Agencia de Seguridad Nacional de Estados Unidos (NSA) y filtrada por el grupo de hackers Shadow Brokers, EternalBlue explotó esta falla permitiendo a atacantes remotos ejecutar código malicioso en sistemas Windows afectados sin autenticación previa.

Comprobación

Para ver si la máquina es vulnerable podemos usar ese módulo:

Explotación

Tenemos un Meterpreter como SYSTEM. Desde este punto podríamos llevarnos la session al background para ejecutar un exploit suggester que nos permitiría identificar otros exploits interesantes en la máquina:


Exploit Suggester

El Exploit Suggester de Metasploit es una herramienta post-explotación diseñada para identificar posibles vulnerabilidades adicionales en el sistema objetivo. Después de abrir una sesión, típicamente con Metasploit usando un exploit como EternalBlue, se puede ejecutar el módulo Local Exploit Suggester.

Este módulo revisa una variedad de exploits conocidos que podrían aplicarse al sistema de destino, basándose en características como la versión del sistema operativo y el software instalado. El objetivo es sugerir exploits locales que el usuario puede utilizar para escalar privilegios, obtener acceso más profundo o persistir en el sistema comprometido. Esto permite maximizar el control sobre el sistema atacado y posiblemente descubrir nuevas debilidades que no fueron explotadas en la fase inicial de penetración.

Podríamos probar todos estos script contra la máquina objetivo


Usando Meterpreter

Ya que tenemos una sesión abierta de Meterpreter en la máquina, vamos a volver a la sesión para enumerar cosas interesantes:

Ver información de usuario y equipo

Podemos usar getuid y sysinfo para obtener información sobre nuestro usuario actual y sobre el equipo:

Si no tuvieramos permisos de administrador podríamos intentar elevar nuestros privilegios directamente con getsystem:

Hashdump

Desde Meterpreter con privilegios SYSTEM podemos hacer un volcado de todos los hashes de los usuarios del sistema con hashdump:

Importar Mimikatz

Desde Meterpreter también podemos importar Mimikatz con load kiwi para extraer aún más información:

Dumpeo de SAM desde Mimikatz

Dumpeo de LSA Secrets desde Mimikatz


Explotación con Msfvenom

Vamos a ver otro caso de uso con el que podemos explotar una máquina Windows creando un payload con Msfvenom que nos devuelva un Meterpreter a un listener Multi Handler en Metasploit.

☠️Msfvenom

Crear payload con Msfvenom

Vamos a crear un payload que pueda eludir antivirus aplicando una codificación Shikata Ga Nai y con un nombre que pueda pasar desapercibido en el sistema objetivo:

Vamos a utilizar la arquitectura x86 porque es un sistema antiguo, pero para sistemas Windows modernos deberíamos especificar la arquitectura x64

También podemos automatizar este proceso con MSF Build, un script en python que nos genera automáticamente el ejecutable con la codificación Shikata Ga Nai:

Abrir listener Multi Handler

Como nos vamos a devolver una conexión con Meterpreter, necesitamos usar un listener que lo acepte. Para ello vamos a usar el módulo multi/handler de Metasploit:

También puedes ejecutar todos esos comandos en una sola línea en la terminal de Kali Linux utilizando && para encadenar los comandos en msfconsole:

  • msfconsole -q → Inicia Metasploit en modo silencioso (sin el banner).

  • -x → Permite ejecutar una secuencia de comandos.

  • "comando1; comando2; comando3" → Los comandos de Metasploit encadenados dentro de las comillas.

Esto se queda a la escucha y al abrir el exploit en la máquina recibiríamos la conexión de Meterpreter.

Envio del exploit a la máquina

Lo más sencillo sería levantar un servidor local con python en Kali Linux y si la máquina Metasploitable tiene conexión a internet podríamos acceder a través del navegador por nuestra IP:

Recibimos el Meterpreter

Al ejecutar el exploit recibimos correctamente la sesión de Meterpreter:


Exportar y analizar datos

Decir que todos los datos que vamos encontrando en la máquina se almacenan en la base de datos. Por ejemplo, en este punto podríamos ver todas las credenciales que hemos conseguido con creds:

Exportar información de la base de datos

Puedes guardar los datos recopilados en un formato xml reutilizable que podemos importar en otras herramientas para gestionar los datos:

También permite usar el formato .pwdump, en el que se almacenan todas las credenciales obtenidas:

Limpiar la base de datos

Si necesitas limpiar información para comenzar un nuevo análisis:

Última actualización

¿Te fue útil?