Gatekeeper

Resolución de la Máquina Gatekeeper de TryHackMe de dificultad media abordando contenido de Buffer overflow.

¡Saludos a tod@s!,

En este artículo mostraré la resolución de la máquina Gatekeeper.

Enumeración

Comprobamos que la máquina esté activa.

ping -c1 10.10.20.222             
PING 10.10.20.222 (10.10.20.222) 56(84) bytes of data.
64 bytes from 10.10.20.222: icmp_seq=1 ttl=127 time=45.4 ms

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

Relizamos un escaneo de nmap para ver lor servicios y puertos expuestos de la máquina, en este caso debemos fijarnos en el puerto 445.

sudo nmap -sS --min-rate 5000 -n -v -p- 10.10.20.222 
[sudo] contraseña para shadoow: 
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-12 12:10 CEST
Initiating Ping Scan at 12:10
Scanning 10.10.20.222 [4 ports]
Completed Ping Scan at 12:10, 0.07s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 12:10
Scanning 10.10.20.222 [65535 ports]
Discovered open port 445/tcp on 10.10.20.222
Discovered open port 135/tcp on 10.10.20.222
Discovered open port 3389/tcp on 10.10.20.222
Discovered open port 139/tcp on 10.10.20.222
Discovered open port 49153/tcp on 10.10.20.222
Discovered open port 49154/tcp on 10.10.20.222
Discovered open port 49161/tcp on 10.10.20.222
Discovered open port 49167/tcp on 10.10.20.222
Discovered open port 31337/tcp on 10.10.20.222
Discovered open port 49155/tcp on 10.10.20.222
Discovered open port 49152/tcp on 10.10.20.222
Completed SYN Stealth Scan at 12:10, 13.95s elapsed (65535 total ports)
Nmap scan report for 10.10.20.222
Host is up (0.043s latency).
Not shown: 65524 closed tcp ports (reset)
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
3389/tcp  open  ms-wbt-server
31337/tcp open  Elite
49152/tcp open  unknown
49153/tcp open  unknown
49154/tcp open  unknown
49155/tcp open  unknown
49161/tcp open  unknown
49167/tcp open  unknown

Con SMBMap podemos descargarnos un ejecutable.

Buffer Overflow

Testeamos con python para comprobar si se produce un desbordamiento.

Creamos un patrón cíclico con msfpattern y lo aplicamos a la variable “payload”.

Con mona encontramos el offset exacto del EIP.

Modificando el exploit, en la variable offset = 146 y en la variable retn = BBBB , podemos ver que tenemos el control def flujo sobre esa instrucción.

Con !mona generamos un bytearray para encontrar los badchars.

Con python los generamos y los ponemos en la variable “payload”.

Script Badchars:

Encontramos los bad chars, en este caso son \x00 y \x0a.

Buscamos los puntos de salto para ello podemos usar la siguiente sintaxis con mona.

Generamos una reverse shell con msfvenom, y lo agregamos a la variable “payload”.

Escalada de privilegios

Explorando la máquina y haciendo un poco de investigación vemos que “ljfn812a.default-release” es un directorio que puede guardar credenciales guardadas en el navegador.

Para poder transferirnos los archivos nos podemos descargar nc.exe y nos lo pasamos a la máquina Windows con certutil.

En windows:

En nuestro kali:

Nos descargamos firepwd.py, es una herramienta que nos permite extraer las credenciales guardadas de un navegador con los archivos transferidos anteriormente.

Nos pasamos los archivos descargados anteriormente a la carpeta “firepwd”.

Lo ejecutamos:

Accedemos por RDP y obtenemos la flag.

Última actualización