jueves, 7 de septiembre de 2017

AutoLocalPrivilegeEscalation: Automatizando la escalada de privilegios de sistemas GNU/Linux

Compartir este artículo:
La automatización es una de las situaciones necesarias en muchos ámbitos de la vida y en el tema del pentesting no es menos. En otras ocasiones hemos comentado como automatizar el uso de los payloads en un pentest a través de herramientas como WinPayloads, como se puede automatizar ataques de Pharming con dispositivos de red o como automatizar la búsqueda de vulnerabilidades en repositorios de código fuente a través de la detección de funciones potencialmente vulnerables.  


Es muy común, en el día a día, buscar la posibilidad de llevar a cabo la automatización de situaciones y como he comentado anteriormente, en el pentesting no se es menos. Debe ser el auditor o el pentester el que aporte esa inteligencia y ese rigor a la hora de tomar decisiones, de interpretar resultados, de confirmar lo que una herramienta sugiere o afirma. El auditor debe controlar en todo momento el proceso que lleva a cabo, apoyándose en las herramientas automáticas solo para mejorar el alcance y posibilidades reales que la estimación de jornadas le ha proporcionado. En otras palabras, no vale con lanzar escáneres y ya está.


En el artículo de hoy, hablaremos de una herramienta interesante como es AutoLocalPrivilegeEscalation. Esta herramienta, disponible en un script de bash o en un script de python, proporciona al auditor la posibilidad de buscar en un repositorio de exploits, como es exploit-db, exploits potenciales que se aprovechen de vulnerabilidades que provoquen la escalada de privilegios en sistemas GNU/Linux.

AutoLocalPrivilegeEscalation utiliza por debajo la herramienta searchsploit, disponible con Kali Linux. Searchsploit permite realizar búsquedas de exploits sobre la base de datos en local de exploit-db, es decir, si nos damos cuenta en Kali Linux, en la ruta /usr/share/exploit-db se tiene almacenado todos los exploits disponibles en la web, cada uno escrito en el lenguaje original en el que fue escrito. Por ejemplo, la mayoría de los exploits locales para Linux estarán escritos en lenguaje C, pero si echamos un ojo también encontraremos algunos escritos en Ruby. Estos escritos en Ruby realmente son módulos escritos para Metasploit y el aprovechamiento de las sesiones remotas y escalada de privilegios.

Instalando AutoLocalPrivilegeEscalation

Para obtener esta herramienta de automatización podemos utilizar git clone para descargarlo y obtenerlo. No requiere instalación, solamente descargarlo y podemos ejecutar tanto el script en bash auto_priv_exploit.sh y el script en python auto_searchsploit.py.


Una vez descargado tenemos disponible la herramienta, cuyo uso es prácticamente trivial. De todos modos, se puede consultar la ayuda en el sitio de github de la propia herramienta. Hay que tener en cuenta que searchsploit debería estar lo más actualizado posible.

Buscando los exploits potencialmente válidos

La herramienta tiene un parámetro de entrada que es la versión del kernel del que se quiere encontrar un exploit potencialmente válido. Para mirar la versión del kernel, se puede ejecutar en una consola de Linux el comando uname -a o uname -r.


Para realizar búsquedas, simplemente, se debe ejecutar el script con el parámetro de la versión del kernel de Linux sobre el que queremos obtener exploits potenciales. Como se puede ver en la imagen, tras indicar una versión del kernel, se obtiene un listado de exploits, la mayoría en lenguaje C. Es importante mantener actualizada la base de datos de exploit-db, y por ello se recomienda actualizar searchsploit.


Lógicamente, esto nos ofrece una ayuda a la hora de buscar los exploits adecuados, pero al final debemos mirar la información adecuada para cada caso. En el caso de DirtyCow, la cual ya la hemos visto en este blog, es sencillo. Con el uso de la herramienta AutoLocalPrivilegeEscalation nos sale la posibilidad y llevamos a cabo la compilación.


Además, hay que tener en cuenta que AutoLocalPrivilegeEscalation proporciona la posibilidad de obtener los exploits para dicha versión del kernel y nos preguntará si queremos llevar a cabo la compilación.


En definitiva, como vimos en su día con herramientas como Exploit Suggester, la automatización o simplificación de procesos puede ayudar. Esta herramienta nos permite optimizar o automatizar el uso de searchsploit y la búsqueda de exploits. Sin duda, otra herramienta que debemos tener a mano en la mochila en un pentesting ante la posibilidad de tener una shell en Linux y no disponer de una shell como root.

No hay comentarios:

Publicar un comentario