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 msRelizamos 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 unknownCon 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