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.