WriteUp - HackTheBox

Empece haciendo un escaneo con Nmap para detectar puertos abiertos.

┌─[root@parrot]─[/home/wackyhacker/Desktop]
└──╼ nmap -sS --min-rate=5000 -p- -v -Pn -n 10.10.10.138 -oG allports
Starting Nmap 7.80 ( https://nmap.org ) at 2021-07-13 19:35 CEST
Initiating SYN Stealth Scan at 19:35
Scanning 10.10.10.138 [65535 ports]
Discovered open port 22/tcp on 10.10.10.138
Discovered open port 80/tcp on 10.10.10.138
Completed SYN Stealth Scan at 19:36, 26.41s elapsed (65535 total ports)
Nmap scan report for 10.10.10.138
Host is up (0.050s latency).
Not shown: 65533 filtered ports
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 26.54 seconds
           Raw packets sent: 131088 (5.768MB) | Rcvd: 27 (1.444KB)

Efectúe otro escaneo para detectar la versión y servicio de cada puerto abierto.

┌─[root@parrot]─[/home/wackyhacker/Desktop]
└──╼ nmap -sC -sV -p80,22 10.10.10.138 -oN targeted               
Starting Nmap 7.80 ( https://nmap.org ) at 2021-07-13 19:38 CEST
Nmap scan report for writeup.htb (10.10.10.138)
Host is up (0.035s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.4p1 Debian 10+deb9u6 (protocol 2.0)
| ssh-hostkey: 
|   2048 dd:53:10:70:0b:d0:47:0a:e2:7e:4a:b6:42:98:23:c7 (RSA)
|   256 37:2e:14:68:ae:b9:c2:34:2b:6e:d9:92:bc:bf:bd:28 (ECDSA)
|_  256 93:ea:a8:40:42:c1:a8:33:85:b3:56:00:62:1c:a0:ab (ED25519)
80/tcp open  http    Apache httpd 2.4.25 ((Debian))
| http-robots.txt: 1 disallowed entry 
|_/writeup/
|_http-title: Nothing here yet.
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: 1 IP address (1 host up) scanned in 13.82 seconds

Tenía dos puertos abiertos, uno SSH y el otro un servidor http, esto es lo que tenía el servidor web.

writeup

Intente hacer “fuzzing” a la página web, pero al parecer se estába aplicando algún tipo de regla a nivel de iptables y no me dejaba, mire el robots.txt y encontré una ruta interesante llamada writeup.

robots

Esto es lo que tenía la página.

writeupdirect

Hice un whatweb a la página y vi que tenía un CMS Made Simple

┌─[root@parrot]─[/home/wackyhacker/Desktop]
└──╼ whatweb http://10.10.10.138/writeup/                                                                                                        
http://10.10.10.138/writeup/ [200 OK] Apache[2.4.25], CMS-Made-Simple, Cookies[CMSSESSID9d372ef93962], Country[RESERVED][ZZ], HTML5, HTTPServer[Debian Linux][Apache/2.4.25 (Debian)], IP[10.10.10.138], MetaGenerator[CMS Made Simple - Copyright (C) 2004-2019. All rights reserved.], Title[Home - writeup]

Busque si había algún exploit de CMS Made Simple y encontré uno que se aprovechaba de SQLi –> 46635.py, me pidió un diccionario, le puse el rockyou.txt y empezó el ataque, me craqueo la contraseña en cuestión de 1 minuto más o menos.

cracked

La máquina tenía SSH abierto por lo que probé a autenticarme con la contraseña que había conseguido haciendo uso del usuario jkr y funciono, ya pude visualizar la “flag” del usuario.

sshauthernit


ESCALADA DE PRIVILEGIOS

Ahora solo faltaba la escalada de privilegios, para ello me demoré un tiempo investigando la máquina hasta que encontré que se estaba ejecutando una tarea a intervalos regulares de tiempo al iniciar SSH, la tarea se llama run-parts, básicamente lo que hace es solicitarte un directorio y ejecutara cada “script” que haya dentro, pero lo importante no es esto, sino que la tarea esta ejecutándose sin hacer uso de la ruta absoluta, por lo que esto era un PATH hijacking.

run-parts

Para conseguir root le hice un which a run-parts para ver su ruta absoluta y seguidamente me dirigí a ese directorio para crearme un archivo llamado run-parts que le asigne privilegios SUID a la bash, le di permisos de ejecución, copie el archivo run-parts creado por mí a la ruta absoluta de la tarea run-parts, reinicie la sesión de SSH y volví a conectarme y me converti en root asignando el comando bash -p, ya pude visualizar la “flag” de root.

rut

Leave a comment