Métodos de enumeración de Linux para escalar privilegios

Enumerar es una de las principales etapas de las pruebas de penetración. Es lo primero que hace cuando piratea un sistema objetivo como probador de penetración. Aunque existe una plétora de herramientas para automatizar este proceso, siempre es una buena idea buscar manualmente en el sistema y verificar dos veces en busca de posibles vectores de escalada.

A medida que el sistema define el proceso de extracción de información, como nombres de usuario, nombres de máquinas, recursos de red, recursos compartidos, enumeración y servicios. En la fase de enumeración, el pirata informático establece conexiones activas con el sistema y dirige consultas para obtener más información sobre el sistema de destino. Utiliza la información recopilada para identificar lagunas o debilidades en el sistema de seguridad y luego intenta explotarlas. Las técnicas de censo tienen lugar en un entorno conectado. Esto incluye establecer comunicaciones activas con el sistema de destino.

Veamos las diferentes formas de enumerar manualmente Linux para la escalada de privilegios. Verificar Las mejores herramientas de prueba de penetración para profesionales de seguridad cibernética.

Métodos de enumeración de Linux para la escalada de privilegios - Linux

¿Por qué es importante la enumeración para la escalada de poderes?

La escalada de privilegios, también conocida como escalada de privilegios (EOP), es un componente y una metodología esenciales para las pruebas de penetración. Como sugiere el nombre, es una etapa en la que intenta elevar sus privilegios al administrador o, en los sistemas Linux, al usuario raíz.

Para obtener privilegios de root, primero debe encontrar una vulnerabilidad en el sistema. Aquí es donde el censo puede ser útil. Aunque existen herramientas para automatizar la enumeración, muchas veces, una enumeración manual minuciosa puede revelar errores de configuración y otras vulnerabilidades que las herramientas no capturan.

1. Enumeración del sistema

Métodos de enumeración de Linux para la escalada de privilegios - Linux

Lo primero que debe hacer después de obtener un punto de apoyo inicial es familiarizarse con el sistema al que ha establecido acceso. Esto lo ayudará a optimizar sus cargas útiles para que coincidan con la arquitectura y garantizar la máxima compatibilidad de sus cargas útiles con el sistema de destino.

Por ejemplo, si tiene un exploit de 64 bits, deberá modificarlo si su sistema de destino solo admite software de 32 bits, ya que existe una diferencia entre los sistemas de 32 y 64 bits.

Además, conocer la versión del kernel lo ayudará a buscar exploits en la web en caso de que descubra que la versión está desactualizada y es vulnerable a exploits públicos. Aquí hay algunos comandos que lo ayudarán a obtener información del sistema:

Para encontrar información del sistema como la versión del kernel, la versión del sistema operativo, etc., escriba:

cat /etc/cpuinfo 

uname -a

Si desea saber más sobre la arquitectura de la CPU, utilice el comando lscpu:

lscpu

2. Enumeración de procesos

Métodos de enumeración de Linux para la escalada de privilegios - Linux

Los procesos están ejecutando software. Conocer la lista completa de procesos en Linux, junto con algunos de los otros métodos de enumeración mencionados en esta guía, lo ayudará a identificar procesos potencialmente vulnerables y aprovecharlos para aumentar los privilegios.

Por ejemplo, si encuentra un proceso que se está ejecutando con privilegios de root, puede insertar código arbitrario en él que puede escalar el privilegio con éxito.

Puedes usar el comando ps con signos o a las Para listar todos los procesos en el sistema:

ps aux

Verificar Gestión de procesos de Linux: la guía definitiva.

3. Enumeración de usuarios y grupos

Métodos de enumeración de Linux para la escalada de privilegios - Linux

La enumeración de usuarios y grupos es importante para saber quién tiene acceso a qué parte del sistema. Saber esto le permite medir de manera eficiente sus objetivos y construir una estrategia de ataque efectiva. Además, puede crear asignaciones apropiadas y comprender profundamente los roles y privilegios de cada cuenta.

La visibilidad de las cuentas premium le permite probar combinaciones conocidas de nombre de usuario y contraseña. Puede imprimir el contenido de los archivos /etc/passwd y /etc/group para acceder a la lista de usuarios. Alternativamente, también puede usar el comando Gerente.

Para obtener una lista de usuarios en Linux:

getent passwd

Para obtener una lista de grupos:

getent group

4. Investigue los archivos confidenciales

Métodos de enumeración de Linux para la escalada de privilegios - Linux

Los archivos confidenciales como /etc/passwd y /etc/shadow pueden filtrar mucha información. Desde /etc/shadow , puede encontrar el hash de la contraseña de los usuarios e intentar descifrarlo con un cracker de hash como Hashcat o John the Ripper.

También hay un archivo /etc/sudoers que, si puede modificarlo de alguna manera, permitirá modificar los permisos de sudo para usuarios y grupos.

5. Verifique los permisos de sudo

Métodos de enumeración de Linux para la escalada de privilegios - Linux

La gestión adecuada de los permisos de sudo es fundamental para la integridad del sistema Linux. El análisis de los permisos de sudo le dará una idea de los enrutadores potenciales para la escalada de privilegios. Si hay configuraciones incorrectas, como ciertas aplicaciones con un nivel de privilegio alarmante, es posible que pueda explotarlas para acceder a la raíz.

Este es solo un ejemplo de las muchas rutas de ataque que pueden abrirse una vez que los permisos de sudo están claros en Linux. Otro ejemplo es el abuso del mecanismo de precarga de la biblioteca LD_PRELOAD, que puede enumerar mirando los permisos de sudo.

sudo -l

Verificar La mayoría de las razones por las que Linux no necesita un antivirus o un firewall.

6. Encuentra cualquier exploit en el kernel de Linux

Métodos de enumeración de Linux para la escalada de privilegios - Linux

Los exploits del kernel de Linux son mortales porque atacan el núcleo del sistema operativo que se ejecuta en el sistema de destino. Con una falla grave en el núcleo, podrá hacer casi cualquier cosa con el sistema.

Para encontrar vulnerabilidades del kernel, primero, averigüe la versión del kernel y luego use una herramienta como searchsploit o Google Dorks, encuentre un exploit adecuado que afecte la versión exacta del kernel que se ejecuta en el sistema.

7. Explotar binarios SUID

Métodos de enumeración de Linux para la escalada de privilegios - Linux

SUID significa Establecer ID de usuario de propietario en ejecución. Es un tipo especial de permiso de archivo que, cuando se establece, ejecuta un programa con los privilegios de su propietario.

Si el usuario root crea un programa y el bit SUID está establecido para él, entonces el programa, cuando se ejecute, tendrá privilegios de root. ¿Cómo se puede abusar de SUID? es fácil.

Debe enumerar todos los archivos binarios con el conjunto de bits SUID, buscar en la lista, encontrar un archivo binario para el que tenga acceso de escritura y modificar su fuente para agregar su carga útil. Puede usar el comando de búsqueda para buscar binarios SUID y redirigir la salida estándar a /dev/null:

find / -perm -4000 2>/dev/null

8. Secuestro de bibliotecas

A veces puede haber programas ejecutándose en el sistema que usan bibliotecas que no están protegidas contra escritura. En tal escenario, puede sobrescribir fácilmente la biblioteca utilizada y controlar la funcionalidad del programa.

Si tiene suerte y encuentra un programa rooteado, puede secuestrar la biblioteca de la que depende y posiblemente obtener acceso de root.

9. Investigar y secuestrar variables de entorno

Métodos de enumeración de Linux para la escalada de privilegios - Linux

Las variables de entorno son tipos especiales de variables que, hasta cierto punto, determinan cómo funcionan el sistema y los programas. La variable de entorno importante es la variable PATH.

Almacena la ubicación de todos los binarios ejecutables en el sistema. Puede manipular la variable PATH y vincularla a otras vulnerabilidades, como el secuestro de bibliotecas para el acceso de root.

Por ejemplo, suponga que hay un archivo ejecutable con el conjunto de bits SUID. Para funcionar correctamente, llama a un binario sin especificar su ruta completa.

Puede aprovechar esto creando un duplicado malicioso del binario y actualizando la variable PATH con la ubicación del binario malicioso, de modo que cuando ejecute el ejecutable SUID, el binario malicioso se ejecutará como root y usted también. Podrá producir un shell raíz.

Además, también existe una buena posibilidad de encontrar claves y contraseñas secretas con solo mirar las variables de entorno. Puede imprimir todas las variables de entorno con el comando env:

env

10. Buscar rastros en el historial de Bash

A menudo, el historial de usuario actual no se eliminará. Puede abusar de esto para acceder a información confidencial o volver a ejecutar comandos anteriores con parámetros modificados.

Si bien es probable que esto no conduzca a una escalada de privilegios, es una buena fuente de fugas de información para aclarar lo que el usuario suele hacer en el sistema.

11. Secuestrar trabajos vulnerables de Cron

Métodos de enumeración de Linux para la escalada de privilegios - Linux

Los trabajos cron son una característica integrada y con muchos recursos de Linux. Si migra desde Windows, el trabajo cron se puede comparar directamente con una tarea programada en Windows.

Trabaja regularmente y realiza pedidos. Tanto la hora a la que se ejecutará como los comandos a ejecutar están predefinidos por el usuario. A veces, puede encontrar que algunos trabajos cron son vulnerables a ataques como la inyección de comodines o el usuario con el que ha iniciado sesión puede escribirlos.

Puede abusar de estas vulnerabilidades para obtener acceso de root en el sistema. Para explotar un trabajo de Cron, primero debe encontrar un trabajo vulnerable. Estos son los comandos para enumerar los trabajos Cron que se están ejecutando actualmente y otros datos relevantes:

ls /etc/cron.d/

crontab -l -u <username>

12. Inserta paquetes viejos

Métodos de enumeración de Linux para la escalada de privilegios - Linux

Cuando tiene acceso a un sistema, uno de los primeros pasos que debe tomar es enumerar todos los paquetes de software instalados y sus versiones instaladas junto con sus últimas versiones.

Existe la posibilidad de que se instalen algunos paquetes oscuros que pueden no usarse mucho todavía y son altamente vulnerables a un ataque de escalada de privilegios. Luego puede explotar este paquete para el acceso de root.

Usa el comando dpkg con el indicador -l para listar los paquetes instalados en sistemas basados ​​en Debian y Ubuntu:

dpkg -l

Para los sistemas RHEL/CentOS/Fedora, use este comando para enumerar los paquetes instalados:

rpm -qa

Verificar Razones del aumento de los ataques a la cadena de suministro.

Ahora sabe cómo enumerar manualmente Linux para escalar privilegios

La escalada de poderes depende únicamente de la enumeración. Cuanta más información tenga acceso, mejor podrá planificar estrategias de ataque.

Una enumeración efectiva es clave para establecer un punto de apoyo, aumentar los privilegios y sobrevivir con éxito en su sistema de destino. Aunque hacer las cosas manualmente ayuda, algunas tareas se pueden asignar a herramientas automatizadas para ahorrar tiempo y esfuerzo. Debe conocer las mejores herramientas de seguridad para escanear el sistema en busca de vulnerabilidades. Puedes ver ahora Cómo instalar y configurar Snort IDS en Linux para proteger su red.

Ir al botón superior