13 nov 2017

KernelPop: Si haces pop...puede que tu Linux sea vulnerable

Cuando te encuentras en un proyecto de Ethical Hacking y llegas a una máquina GNU/Linux no fortificada que has tomado explotando alguna vulnerabilidad y tienes el control de ella, puedes necesitar elevar privilegios para lograr un mayor grado de control en la red o en la propia máquina.

Ya hemos visto en otras ocasiones herramientas que ayudan a encontrar esos fallos de seguridad que la máquina no tiene solventada, como, por ejemplo, AutoLocal Privilege para encontrar bugs de máquinas GNU/Linux, Windows Exploit Suggester, si el entorno es un sistema Microsoft Windows, OSB-Rastreator para encontrar bugs en funciones inseguras de repositorios de código abierto o, directamente, conocer la vulnerabilidad que afecta al sistema, el temido, en su día, dirtyCOW.

Hoy hablaremos de una herramienta que permite ahondar y verificar las vulnerabilidades que puede presentar un sistema, con las que conseguiríamos elevar privilegio. La herramienta se llama Kernelpop y está disponible en su GitHub para su descarga. A día de hoy, la herramienta solo permite comprobar vulnerabilidades en entornos GNU/Linux, aunque viendo algunas carpetas puede que en el futuro ayude a detectar vulnerabilidades en sistemas macOS y MS Windows.
Uno de los requisitos que tiene la herramienta es que se necesita Python3. Podemos decir que Kernelpop es un pequeño framework que permite enumerar las potenciales y, en algunos casos, las reales vulnerabilidades que tiene un kernel. Como se mencionó anteriormente, la herramienta encuentra bugs en entornos GNU/Linux, pero se prevé que pueda encontrar vulnerabilidades en macOS y Windows. La herramienta propone varios modos de ejecución, los cuales se muestran a continuación:
  • Por defecto.
  • Modo de enumeración por fuerza bruta.
  • Input mode.
El modo por defecto es ejecutado con python kernelpop.py. Este modo compara la información recopilada del sistema de la máquina con los exploits para kernel disponibles hasta la fecha para esa versión concreta. Lo primero es identificar la versión exacta del kernel. Se identifican los CVE que afectan a esa versión del kernel y se confirma si existe la vulnerabilidad.

¿Cómo o dónde está el código que detecta la vulnerabilidad?

Dentro del repositorio de kernelpop se encuentra una carpeta denominada exploits. Esta carpeta es la que consta de un módulo llamado exploit.py con el que se invoca a los ficheros Python que implementan la detección de los diferentes CVE. Sistema interesante, sin duda.

El modo brute-enumeration permite realizar las mismas comprobaciones, pero detecta además los prerrequisitos del sistema, es decir, si el sistema operativo está configurado en un estado vulnerable.

El modo input, permite introducir un ‘uname –a’ que nos interese evaluar. Por ejemplo, podemos ejecutar la instrucción kernelpop.py -i y nos solicitarán que introduzcamos la información para su evaluación. En la siguiente imagen, se muestra como, primero obtenemos el uname –a que nos interese, y después, se lo pasamos a la herramienta en modo input. Los resultados obtenidos son similares a las pruebas anteriores, porque el uname –a es el de la máquina, pero si quisiéramos evaluar otro obtendríamos los resultados.
Una buena herramienta para llevar en la mochila y tener en cuenta en el proceso de post-explotación. La herramienta está muy actualizada, ya que los últimos commits constan de hace menos de una semana. Proyecto interesante y que seguiremos de cerca. Además, propone una forma sencilla de aumentar el número de módulos para la detección de vulnerabilidades locales.

Descarga KernelPop

Fuente: El Lado del Mal

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!