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 organizacionalEspecialmente 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

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

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.

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

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

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 .


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í .


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




Y de la misma manera obtenemos la contraseña.

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

RAÍZ
Como de costumbre, enumeramos usando el script LinEnum.

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

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

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

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 .

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

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.

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

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

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

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.