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.
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
.
Esto es lo que tenía la página.
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.
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.
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
.
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
.
Leave a comment