jueves, mayo 03, 2018

Linux Exploit Suggester: ¿Cómo puedo hackear este Linux?

En el pasado hemos hablado de la herramienta Windows Exploit Suggester, como una herramienta interesante que nos permite conocer las vulnerabilidades posibles que un sistema Microsoft Windows dispone cuando estamos en medido de un Ethical Hacking y necesitamos hacer algún Hacking a Windows. Hoy vamos a hablar de Linux Exploit Suggester, una herramienta similar a la anterior que permite encontrar vulnerabilidades en sistemas GNU/Linux, desde el punto de vista el pentester.

Figura 1: Linux Exploit Suggester: ¿Cómo puedo hackear este Linux?

La herramienta puede obtenerse desde su Github. Además, si se quiere descargar de forma rápida se puede utilizar la herramienta wget para obtener el script rápidamente de la siguiente manera:
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh.
El propósito de la herramienta es ayudar al pentester que llega un sistema GNU/Linux fortificado o no encontrar vulnerabilidades con las que elevar privilegio o poder ejecutar código en una máquina.

Figura 2: Linux Exploit Suggester en GitHub


Entonces, encontramos dos escenarios diferenciados, uno es la post-explotación dónde lograr escalar privilegio y el otro es encontrar un vector de ataque que permita ejecutar código remoto en una máquina GNU/Linux. Las características que ofrece la herramienta son:
Modo “Remoto”. Se activa con el parámetro --kernel. En este modo, se debe proporcionar la versión del kernel. Se puede hacer de dos formas con el parámetro --kernel o la salida del comando uname. Se obtiene un listado de exploits candidatos para la versión del kernel indicada. También se puede indicar con el parámetro --pkglist-file vulnerabilidades de las aplicaciones que hay instaladas, siempre que se tenga acceso al listado de paquetes instalados.

Modo “Directo”. Este modo intenta producir una lista más relevante de exploits candidatos. En este modo de ejecución se hacen comprobaciones adicionales.

Modo “CVE List”. Este modo se activa con --clarist-file. En este modo se parte de que el auditor ya dispone de una lista parcial o completa de CVE que afectan al kernel objetivo y quiere verificar si hay exploits conocidos públicamente para lograr su objetivo.
La primera ejecución la podemos ver en la siguiente imagen de nuestro Kali Linux desde el que hacemos los ejercicios de pentesting. Como se puede ver, si se ejecuta el script sin ningún parámetro se hace inferencia en la versión del kernel, la arquitectura, la distribución, se obtiene el listado de paquetes instalados, etcétera. Es realmente sencillo sacarle el jugo al script. Lógicamente, es trabajo del auditor el aprovechar esta información y verificar qué es cierto, ya que una herramienta automática proporcionará falsos positivos.

Figura 3: Ejecución de Linux Exploit Suggester en Kali Linux

En el ejemplo anterior, y debido a que el sistema sobre el que se está haciendo la prueba está desactualizado de varios años, se obtienen 70 exploits de kernel potenciales y 31 exploits de user space. Tocará elegir. Lógicamente, un indicador es la fecha del CVE para ayudarnos a la elección correcta.

Ahora, suponemos que desde la máquina Kali Linux tenemos una sesión en la máquina Ubuntu. Gracias a esa sesión podemos ejecutar código y tenemos una shell en la máquina remota. Descargamos el script de Linux Exploit Suggester en la máquina Ubuntu y lo lanzamos en remoto.

Figura 4: Ejecución en modo remoto de Linux Exploit Suggester

Si se ejecuta el script desde la shell, sin ningún parámetro, se hace inferencia sobre el kernel, la arquitectura, la distribución, el listado de paquetes, etcétera. Vemos que el Ubuntu también es, potencialmente, vulnerable a DirtyCOW, entre otras muchas vulnerabilidades.

Figura 5: Ubuntu vulnerable a DirtyCow, el resto es explotarlo

Teniendo una shell remota en un GNU/Linux, se puede lograr un Meterpreter en Metasploit de manera sencilla, tal y como puede verse en este artículo sobre cómo generar payloads en Base64. Pasar a un Meterpreter en GNU/Linux simplificaría la ejecución de un nuevo exploit o un nuevo código con el objetivo de lograr la escalada de privilegios.


Figura 6: Cómo explotar DirtyCOW en un GNU/Linux para ser root

Sin duda, Linux Exploit Suggester es una herramienta que proporciona ayuda al pentester en su labor y nos puede guiar de varias formas con el objetivo de escalar privilegios. No puede faltar en la mochila del pentester. Y si no hay ningún exploit a la vista, siempre puedes haberte convertido en un "super-guerrero" y buscar tus Zero-days en sistemas GNU/Linux tal y como se explica en el libro de Linux Exploiting, uno de los libros imprescindibles para los pentesters profesionales.

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advance Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths

No hay comentarios:

Publicar un comentario