Hack The Box - Tutorial AI. SQLi en API Text To Sreach, SSH Forwarding y RCE en JDWP

imagen

Sigo publicando soluciones enviadas para su posterior procesamiento desde el sitio HackTheBox . Espero que esto ayude al menos a alguien a desarrollarse en el campo de la seguridad de la información. En este artículo, aprenderemos sobre la conversión de texto a voz y encontraremos la inyección de SQL en la API, nos permitirá portar a través de SSH y también realizar RCE utilizando el protocolo Java Debug Wire Protocol para la depuración remota.

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 termina en una red privada con personas que saben algo en el campo de la seguridad de la información :)

Información organizacional
Especialmente para aquellos que desean aprender algo nuevo y desarrollarse en cualquiera de las áreas de información y seguridad informática, escribiré y hablaré sobre las siguientes categorías:

  • PWN;
  • criptografía (criptografía);
  • tecnologías de red (Red);
  • inversa (ingeniería inversa);
  • esteganografía (Stegano);
  • búsqueda y explotación de vulnerabilidades WEB.

Además de esto, compartiré mi experiencia en informática forense, análisis de malware y firmware, ataques a redes inalámbricas y redes de área local, realización de pentests y escritura de exploits.

Para que pueda conocer nuevos artículos, software y otra información, creé un canal en Telegram y un grupo para discutir cualquier problema en el campo de ICD. Además, consideraré personalmente sus solicitudes personales, preguntas, sugerencias y recomendaciones personalmente y responderé a todos .

Toda la información se proporciona solo con fines educativos. El autor de este documento no tiene ninguna responsabilidad por los daños causados ​​a alguien como resultado del uso del conocimiento y los métodos obtenidos como resultado de estudiar este documento.

Inteligencia


Escaneo de puertos


Esta máquina tiene una dirección IP de 10.10.10.163, que agrego a / etc / hosts.

10.10.10.163 ai.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 1000 paquetes por segundo.

 masscan -e tun0 -p1-65535,U:1-65535 10.10.10.163 --rate=1000 

imagen

A continuación, debe recopilar más información sobre los puertos conocidos. Para hacer esto, use nmap con la opción -A.

 nmap -A ai.htb -p22,80 

imagen

Como se desprende del informe nmap, SSH y un servidor web se ejecutan en el host. Al ir al sitio y pasear un poco por las páginas, seleccionamos el más interesante: del formulario para enviar un archivo WAV.

imagen

Pero por si acaso, revisé los directorios con gobuster. En los parámetros, especifique el número de secuencias 128 (-t), URL (-u), diccionario (-w) y extensiones que nos interesan (-x).

dir gobuster -t 128 -u ai.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html, php, conf, txt

imagen

La página db.php no dio nada, pero intelligence.php nos proporciona información sobre el sitio.

imagen

El sitio utiliza un intérprete de voz. Es decir, el archivo que enviamos se interpretará en texto. Probemos la suposición con el siguiente intérprete de texto en línea en WAV .

imagen

imagen

Las suposiciones son correctas: el sitio interpreta el texto.

Punto de entrada


Por alguna razón, estaba seguro de SSTI, pero después de la falla, recordando sobre db.h le enviaremos una cotización. Pero solo el envío no funciona, ya que el sitio usa API, que interpreta los caracteres de manera diferente. La lista completa se puede encontrar aquí .

imagen

imagen

Y obtenemos el error de SQL. Ahora haz la inyección.

Usuario


imagen

imagen

imagen

imagen

Y de la misma manera obtenemos la contraseña.

imagen

Y con las credenciales nos conectamos a través de SSH.

imagen

RAÍZ


Como de costumbre, enumeramos usando el script LinEnum.

imagen

Después de ver la salida del script, nos detenemos en un proceso interesante que se ejecuta como root: un programa Java.

imagen

Pero lo más interesante es que el programa admite una conexión a un puerto 8000.

imagen

Esto también está confirmado por la lista de compuestos activos.

imagen

También puede ver que usa el Java Debug Wire Protocol (JWDB), un protocolo para la comunicación entre el depurador remoto y la JVM. Después de buscar exploits, encontramos un script que ayuda a crear RCE .

imagen

Este script toma como argumento la dirección del host, el puerto y el comando que se ejecutará.

imagen

Comencemos con el puerto 8000.

 ssh -L 8000:localhost:8000 alexa@10.10.10.163 

Se abrirá una consola ssh normal en esta ventana, pero ahora todas las llamadas al puerto 8000 del host local se transferirán automáticamente al puerto 8000 de la máquina remota.

Verifiquemos: en otra terminal estamos tratando de conectarnos a este puerto usando jdb.

imagen

Como la conexión pasa, escribiremos un shell inverso en el host, que se ejecutará como un equipo.

imagen

Ejecute el script descargado con todos los parámetros necesarios.

imagen

Y después del mensaje sobre el comando ejecutado con éxito, observamos la conexión.

imagen

Como puede ver, tenemos acceso administrativo.

Puedes unirte a nosotros en Telegram . 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.

Source: https://habr.com/ru/post/485522/


All Articles