This page looks best with JavaScript enabled

Hack The Box - Teacher

 •  ✍️ sckull

Encontramos credenciales en un fichero y con burpsuite obtuvimos el caracter faltante para acceder a Moodle. Explotamos una vulnerabilidad en Moodle lo que nos dio acceso, y que con credenciales de la base de datos de esta plataforma accedimos a un segundo usuario crackeando los Hashes encontrados. Obtuvimos la flag root creando un link simbolico.

Nombre Teacher box_img_maker
OS

Linux

Puntos 20
Dificultad Facil
IP 10.10.10.153
Maker

Gioo

Matrix
{
   "type":"radar",
   "data":{
      "labels":["Enumeration","Real-Life","CVE","Custom Explotation","CTF-Like"],
      "datasets":[
         {
            "label":"User Rate",  "data":[7.2, 4.9, 6.1, 3.9, 5.1],
            "backgroundColor":"rgba(75, 162, 189,0.5)",
            "borderColor":"#4ba2bd"
         },
         { 
            "label":"Maker Rate",
            "data":[7, 6, 7, 3, 4],
            "backgroundColor":"rgba(154, 204, 20,0.5)",
            "borderColor":"#9acc14"
         }
      ]
   },
    "options": {"scale": {"ticks": {"backdropColor":"rgba(0,0,0,0)"},
            "angleLines":{"color":"rgba(255, 255, 255,0.6)"},
            "gridLines":{"color":"rgba(255, 255, 255,0.6)"}
        }
    }
}

NMAP

Escaneo de puertos TCP

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
Nmap 7.70 scan initiated Thu Apr 18 22:50:41 2019 as: nmap -sT -A -sV -o nmap.scan 10.10.10.153
Nmap scan report for 10.10.10.153
Host is up (0.31s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.25 ((Debian))
|_http-server-header: Apache/2.4.25 (Debian)
|_http-title: Blackhat highschool
Device type: WAP
Running: Linux 2.4.X
OS CPE: cpe:/o:linux:linux_kernel:2.4.20
OS details: Tomato 1.28 (Linux 2.4.20)
Network Distance: 2 hops

TRACEROUTE (using proto 1/icmp)
HOP RTT       ADDRESS
1   296.09 ms 10.10.12.1
2   300.57 ms 10.10.10.153

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Thu Apr 18 22:52:41 2019 -- 1 IP address (1 host up) scanned in 120.38 seconds

GOBUSTER

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
gobuster -u http://10.10.10.153 -w /usr/share/wordlists/dirb/common.txt -q -np -x php,html,txt,js -t 15
/css (Status: 301)
/fonts (Status: 301)
/gallery.html (Status: 200)
/images (Status: 301)
/index.html (Status: 200)
/index.html (Status: 200)
/javascript (Status: 301)
/js (Status: 301)
/manual (Status: 301)
/moodle (Status: 301)
/phpmyadmin (Status: 403)
/server-status (Status: 403)

HTTP

Pagina Principal
image

/Moodle

image

Login

image

/phpmyadmin

image

/gallery.html

En gallery.html encontramos codigo javascript que imprime un mensaje.

image

image

Junto al codigo hay una imagen, pero no podemos verla.
image

Descargamos la imagen con curl y nos muestra un mensaje que contiene la imagen.

image

Nos dice que debemos de encontrar el caracter faltante para la contraseña Th4C00lTheacha del usuario Giovanni.

BURPSUITE - Giovanni Password

Vamos a utilizar burpsuite para encontrar el caracter faltante de la contraseña, utilizando el login de moodle. Para los caracteres utilizamos /usr/share/wordlists/dirb/stress/alphanum_case_extra.txt.

Encontramos que el caracter faltante para la contraseña es #.

image

Moodle

Utilizando las credenciales Giovanni y Th4C00lTheacha# logramos ingresar a Moodle.

image

Evil Teacher - Reverse Shell

Para nuestra version de moodle encontramos una vulnerabilidad que puede injectar codigo, para ello vamos a crear un Quiz en el curso de Algebra y vamos a agregar una formula de matematica la cual nos va a ayudar a inyectar codigo.

image

Obtenemos una shell como www-data.

USER - Giovanni

Revisamos los archivos de configuracion para posibles contraseñas de base de datos y encontramos las credenciales de una base de datos en el archivo de configuracion de moodle.

image

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$CFG->dbtype    = 'mariadb';
$CFG->dblibrary = 'native';
$CFG->dbhost    = 'localhost';
$CFG->dbname    = 'moodle';
$CFG->dbuser    = 'root';
$CFG->dbpass    = 'Welkom1!';
$CFG->prefix    = 'mdl_';
$CFG->dboptions = array (
  'dbpersist' => 0,
  'dbport' => 3306,
  'dbsocket' => '',
  'dbcollation' => 'utf8mb4_unicode_ci',
);

Nos conectamos a la base de datos

1
mariadb -u root -p'Welkom1!' -D moodle

Encontramos una tabla con usuarios y contraseña.

1
select username,password from mdl_user;select username,password from mdl_user;

image

Crackeamos la contraseña de Giovanibak en https://crackstation.net/.

1
7a860966115182402ed06375cf0a22af => expelled

image

Utilizamos la contraseña con el usuario Giovanni y obtenemos nuestra bandera user.txt.
image

ROOT - flag

Utilizamos pspy para ver los cron que se ejecutan y encontramos un archivo que se ejecuta cada minuto y realiza un backup de la carpeta courses en el directorio de Giovanni.

image

1
2
3
4
5
6
7
/usr/bin/backup.sh
#!/bin/bash
cd /home/giovanni/work;
tar -czvf tmp/backup_courses.tar.gz courses/*;
cd tmp;
tar -xf backup_courses.tar.gz;
chmod 777 * -R;

Para obtener nuestra bandera root.txt vamos a untilizar un symlink y lo vamos a apuntar hacia el directorio /root/ donde esta nuestra bandera para que el archivo cuando se ejecute comprima lo que esta en /root/ al archivo backup_courses.tar.gz y poder descomprimirlo, para ello vamos a renombrar courses.

image

Luego de un minuto se crea el archivo backup_courses.tar.gz lo descomprimimos y obtenemos nuestra bandera root.txt.

image

Share on

Dany Sucuc
WRITTEN BY
sckull
RedTeamer & Pentester wannabe