Sigo publicando soluciones enviadas para su posterior procesamiento desde el sitio de HackTheBox .En este artículo, explotaremos RCE en OpenNetAdmin, profundizaremos en las configuraciones del servidor web, perforaremos el puerto con SSH Forwarding, descifraremos la contraseña de la clave SSH y usaremos la técnica GTFOBins para aumentar los privilegios.La conexión al laboratorio es a través de VPN. Se recomienda no conectarse desde una computadora de trabajo o desde un host donde los datos importantes para usted estén disponibles, ya que ingresa a una red privada con personas que saben algo en el campo de la seguridad de la información :)Información organizacional, ,
Telegram . , ,
.
. , - , .
Recon
Esta máquina tiene una dirección IP 10.10.10.171, que agrego a / etc / hosts.10.10.10.171 openadmin.htb
Primero, escaneamos puertos abiertos. Como lleva mucho tiempo escanear todos los puertos con nmap, primero haré esto con masscan. Escaneamos todos los puertos TCP y UDP desde la interfaz tun0 a una velocidad de 500 paquetes por segundo.masscan -e tun0 -p1-65535,U:1-65535 10.10.10.171 --rate=500
Ahora, para obtener información más detallada sobre los servicios que operan en los puertos, realizaremos un análisis con la opción -A.nmap openadmin.htb -p22,80
Por lo tanto, el servicio ejecuta SSH y el servidor web Apache. Echa un vistazo a lo que se encuentra en el sitio.
Nos encontramos con la página principal de Apache. En tales casos, los sitios pueden no estar ubicados en el directorio de inicio del servicio. Para encontrarlos, debe ordenar los directorios. Para hacer esto, use el programa gobuster (supuestamente el escáner más rápido). Seleccionamos el modo de exploración del directorio (dir), el diccionario (-w), el número de secuencias (-t), extensiones de página (-x), también la salida expandida de páginas (-e) y URL (-u).gobuster dir -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 120 -x php,html,conf,txt -e -u http://openadmin.htb
En la salida, hay demasiada respuesta con el código 403 para filtrarlos, indicamos los códigos de respuesta (-s) que necesitamos.gobuster dir -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -t 120 -x php,html,conf,txt -e -u http://openadmin.htb -s “200,204,301,302,307,401”
Y encontramos varios directorios. Ahora revisaremos todo para descubrir qué se encuentra allí.

Y solo en uno de estos sitios, hay una función de inicio de sesión. Pero si intenta hacer esto, vamos a la página de OpenNetAdmin.
En este caso, como puede ver, se utiliza la versión 18.1.1.Punto de entrada
Busquemos exploits para esta versión.
Y para esta versión hay un exploit RCE. El código ya está en la base de datos local, echemos un vistazo.
Por lo tanto, el script toma un parámetro: esta es la URL. (Al inicio, tuve errores, por lo que puede abrir el archivo a través de mcedit y eliminar ^ M caracteres).
USUARIO1
Estamos en el directorio de inicio.
Y estamos rodeados por una gran cantidad de archivos.
Algunos de ellos pueden contener credenciales. Veamos todos los archivos de forma recursiva nombres de usuario.
Y no hay resultados. Pero habrá muchos resultados al buscar la palabra "pasar".
Ahora eche un vistazo a toda la configuración.
Esta es la contraseña para conectarse a la base de datos. Probémoslo para los usuarios. E iniciamos sesión con éxito como usuario jimmy.
USUARIO2
Primero, ejecute el script de enumeración base de LinEnum .
¡La conclusión debe analizarse con mucho cuidado, cada línea! Y lo único a lo que puede aferrarse en el resultado del script es la pertenencia a grupos.
Jimmy y Joanna están en el mismo grupo interno. Veamos los archivos que pertenecen a este grupo.
A juzgar por la ubicación, este es el sitio. Analizamos archivos. El primero en mirar es principal.
Si estamos autorizados, nos mostrarán la clave SSH privada del usuario joanna. Del archivo de índice se desprende que iremos a main después de una autorización exitosa. También contiene un hash de contraseña SHA512.
El hash se rompe fácilmente con la ayuda de este sitio .
Queda por aprender cómo llegar al sitio. Los puertos para acceder a cada sitio se pueden encontrar en el archivo de configuración correspondiente para cada sitio en el directorio / etc / apache2 / sites-available para apache.
Como puede ver, hay una configuración interna que nos interesa. Ahora reenvíe el puerto SSH.
Desde la configuración, está claro que podemos acceder al sitio desde la máquina local en el puerto 52846 bajo el dominio internal.openadmin.htb. Hagamos que el puerto se ejecute, es decir, redirija nuestro puerto local 52846 al puerto remoto 52846. Esta técnica se llama reenvío de puertos SSH.
Ahora, en la máquina local, haga una entrada en el archivo / etc / hosts.127.0.0.1 internal.openadmin.htb
Y nos dirigiremos a través del navegador a la dirección internal.openadmin.htb : 52846 / index.php.
Inicie sesión con credenciales conocidas y obtenga una clave SSH privada.
Guardamos en un archivo y asignamos derechos.
Pero cuando intentan conectarse, nos piden la contraseña de la clave, porque está encriptada.
Podemos desplazarnos por la tecla. Para hacer esto, lo llevaremos al formato John'a, y luego le daremos el archivo con la clave ya convertida al formato bruto.
Y encuentra con éxito la contraseña. Ya estamos conectados con la clave y la contraseña.
RAÍZ
Una de las cosas que debe verificar es la configuración de sudo para ejecutar comandos sin contraseña.
La línea NOPASSWD dice que podemos ejecutar este comando bajo sudo sin contraseña. En este caso, se invoca el comando nano. Existe una técnica como GTFOBins, que permite usar varias utilidades para leer, escribir archivos o ejecutar comandos completos. Puede encontrar una lista completa de utilidades y sus capacidades aquí . Echemos un vistazo a cómo obtener shell usando nano.
Ejecute nuestro comando con sudo.
Ahora, siguiendo el orden de los comandos, seleccione la opción para leer el archivo.
Ahora la opción de ejecutar comandos.
E ingrese la última línea de la instrucción.
Y obtenemos el shell en nombre de la raíz.
Puedes unirte a nosotros en Telegram. Allí puede encontrar materiales interesantes, cursos combinados, así como software. Formemos una comunidad en la que haya personas con conocimientos en muchas áreas de TI, para que siempre podamos ayudarnos mutuamente en cualquier problema de seguridad de la información y TI.