Easy Peasy es una maquina de TryHackMe, presenta retos de Esteganografia y Crackeo de hashes para obtener user. Un CronJob permitio obtener acceso privilegiado.
Room
Titulo |
Easy Peasy |
Descripción |
Practice using tools such as Nmap and GoBuster to locate a hidden directory to get initial access to a vulnerable machine. Then escalate your privileges through a vulnerable cronjob. |
Puntos |
630 |
Dificultad |
Facil |
Maker |
kral4 |
NMAP
Escaneo de puertos tcp, nmap nos muestra el puerto http (80), ssh (6498) y http (65524) abierto.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# Nmap 7.80 scan initiated Wed Aug 5 01:17:20 2020 as: nmap -p- -T4 -o nmap_scan -v easy.thm
Increasing send delay for 10.10.162.162 from 0 to 5 due to 21 out of 52 dropped probes since last increase.
Nmap scan report for easy.thm (10.10.162.162)
Host is up (0.26s latency).
Not shown: 65532 closed ports
PORT STATE SERVICE
80/tcp open http
6498/tcp open unknown
65524/tcp open unknown
Read data files from: /usr/bin/../share/nmap
# Nmap done at Wed Aug 5 01:39:35 2020 -- 1 IP address (1 host up) scanned in 1335.29 seconds
# Nmap 7.80 scan initiated Wed Aug 5 01:46:14 2020 as: nmap -sV -p 80,6498,65524 -o services_scan easy.thm
Nmap scan report for easy.thm (10.10.162.162)
Host is up (0.29s latency).
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.16.1
6498/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
65524/tcp open http Apache httpd 2.4.43 ((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 Aug 5 01:46:30 2020 -- 1 IP address (1 host up) scanned in 15.45 seconds
|
HTTP
Encontramos una pagina web en el puerto 80.
GOBUSTER
Utilizamos gobuster para busqueda de directorios y archivos.
1
2
3
4
|
root@upset:~/thm/easypeasy gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://easy.thm/ -q -t 250 -x php,html,txt
/index.html (Status: 200)
/robots.txt (Status: 200)
/hidden (Status: 301)
|
Encontramos el archivo robots.txt
el cual no contiene ninguna url excluida, tambien la pagina hidden
donde encontramos una imagen de fondo.
Ejecutamos nuevamente RUSTUBUSTER pero ahora en el directorio/pagina hidden
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
root@upset:~/thm/easypeasy /opt/rustbuster/rustbuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --url http://easy.thm/hidden/ -t 155 -e php,html,txt -o out_hidden.txt
~ rustbuster v3.0.3 ~ by phra & ps1dr3x ~
_ _ _ _ _ _ _ _ _ _
/\ \ /\_\ / /\ /\ \ / /\ /\_\ / /\ /\ \ /\ \ /\ \
/ \ \/ / / _ / / \ \_\ \ / / \ / / / _ / / \ \_\ \ / \ \ / \ \
/ /\ \ \ \ \__ /\_\/ / /\ \__ /\__ \ / / /\ \ \ \ \__ /\_\/ / /\ \__ /\__ \ / /\ \ \ / /\ \ \
/ / /\ \_\ \___\ / / / / /\ \___\/ /_ \ \ / / /\ \ \ \ \___\ / / / / /\ \___\/ /_ \ \ / / /\ \_\ / / /\ \_\
/ / /_/ / /\__ / / / /\ \ \ \/___/ / /\ \ \/ / /\ \_\ \ \__ / / / /\ \ \ \/___/ / /\ \ \/ /_/_ \/_/ / / /_/ / /
/ / /__\/ / / / / / / / \ \ \ / / / \/_/ / /\ \ \___\ / / / / / / \ \ \ / / / \/_/ /____/\ / / /__\/ /
/ / /_____/ / / / / / _ \ \ \ / / / / / / \ \ \__// / / / / _ \ \ \ / / / / /\____\/ / / /_____/
/ / /\ \ \ / / /___/ / /_/\__/ / / / / / / / /____\_\ \ / / /___/ / /_/\__/ / / / / / / / /______ / / /\ \ \
/ / / \ \ \/ / /____\/ /\ \/___/ / /_/ / / / /__________/ / /____\/ /\ \/___/ / /_/ / / / /_______/ / / \ \ \
\/_/ \_\/\/_________/ \_____\/ \_\/ \/_____________\/_________/ \_____\/ \_\/ \/__________\/_/ \_\/
[?] Started at : 2020-08-05 00:52:23
GET 200 OK http://easy.thm/hidden/
GET 200 OK http://easy.thm/hidden/index.html
GET 301 Moved Permanently http://easy.thm/hidden/whatever
=> http://easy.thm/hidden/whatever/
GET 200 OK http://easy.thm/hidden/
^C
|
En una de las paginas encontradas vemos base64, el cual contiene una flag.
HTTP 65524
Encontramos la pagina de apache en el puerto 65524.
Encontramos en el codigo fuente una flag.
Además un parrafo escondido, con una cadena de caracteres “codificado”.
Ejecutamos rustbuster en este puerto al igual que en el puerto 80.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
root@upset:~/thm/easypeasy /opt/rustbuster/rustbuster dir -u http://easy.thm:65524/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 150 -e php,html,txt -o high_port.txt
~ rustbuster v3.0.3 ~ by phra & ps1dr3x ~
_ _ _ _ _ _ _ _ _ _
/\ \ /\_\ / /\ /\ \ / /\ /\_\ / /\ /\ \ /\ \ /\ \
/ \ \/ / / _ / / \ \_\ \ / / \ / / / _ / / \ \_\ \ / \ \ / \ \
/ /\ \ \ \ \__ /\_\/ / /\ \__ /\__ \ / / /\ \ \ \ \__ /\_\/ / /\ \__ /\__ \ / /\ \ \ / /\ \ \
/ / /\ \_\ \___\ / / / / /\ \___\/ /_ \ \ / / /\ \ \ \ \___\ / / / / /\ \___\/ /_ \ \ / / /\ \_\ / / /\ \_\
/ / /_/ / /\__ / / / /\ \ \ \/___/ / /\ \ \/ / /\ \_\ \ \__ / / / /\ \ \ \/___/ / /\ \ \/ /_/_ \/_/ / / /_/ / /
/ / /__\/ / / / / / / / \ \ \ / / / \/_/ / /\ \ \___\ / / / / / / \ \ \ / / / \/_/ /____/\ / / /__\/ /
/ / /_____/ / / / / / _ \ \ \ / / / / / / \ \ \__// / / / / _ \ \ \ / / / / /\____\/ / / /_____/
/ / /\ \ \ / / /___/ / /_/\__/ / / / / / / / /____\_\ \ / / /___/ / /_/\__/ / / / / / / / /______ / / /\ \ \
/ / / \ \ \/ / /____\/ /\ \/___/ / /_/ / / / /__________/ / /____\/ /\ \/___/ / /_/ / / / /_______/ / / \ \ \
\/_/ \_\/\/_________/ \_____\/ \_\/ \/_____________\/_________/ \_____\/ \_\/ \/__________\/_/ \_\/
[?] Started at : 2020-08-05 01:14:24
GET 200 OK http://easy.thm:65524/
GET 403 Forbidden http://easy.thm:65524/.html
GET 200 OK http://easy.thm:65524/index.html
GET 200 OK http://easy.thm:65524/robots.txt
C^
|
En robots.txt
encontramos un hash MD5, utilizamos md5hashing para obtener el texto plano el cual es una flag.
Rustbuster no nos dio mas que errores, por lo que nos concentramos en el texto “codificado” que encontramos. Utilizamos CyberChef para poder decodificar el texto. Encontramos que es posiblo utilizando base62, el cual nos devolvio lo que parece ser un directorio.
Encontramos en este nuevo directorio lo que parece ser un hash SHA-256.
Utilizamos nuevamente md5hashing el cual nos mostró una “contraseña”.
Descargamos la imagen de la pagina, utilizando steghide
y la contraseña que encontramos logramos encontrar un archivo que contiene codificado en binario un texto y el nombre de un usuario.
Nuevamente con CyberChef logramos obtener el texto.
BORING - USER
Con las credenciales que encontramos ingresamos por medio del servicio SSH de la maquina en el puerto 6498.
Encontramos nuestra flag user.txt
la cual esta ‘rotada’.
PRIVILEGE ESCALATION
Hacemos una pequeña enumeracion con cat /etc/crontab
y vemos cron que se ejecuta con el usuario root y que ejecuta el archivo .mysecretcronjob.sh
en /var/www/
.
El archivo no contiene ningun comando por lo que agregamos una shell inversa al archivo.
Ejecutamos netcat para esperar la conexion de nuestra shell, obtuvimos una shell con usuario root y nuestra flag root.txt
.