📘Servicios vulnerables en Windows
Es posible que podamos escalar privilegios en sistemas bien configurados y con parches adecuados si se permite a los usuarios instalar software o si se utilizan aplicaciones o servicios de terceros vulnerables en toda la organización. Es habitual encontrar una multitud de aplicaciones y servicios diferentes en estaciones de trabajo de Windows durante nuestras evaluaciones. Veamos un ejemplo de un servicio vulnerable que podríamos encontrar en un entorno del mundo real. Algunos servicios o aplicaciones pueden permitirnos escalar a SYSTEM. Por el contrario, otros podrían provocar una condición de denegación de servicio o permitir el acceso a datos confidenciales, como archivos de configuración que contienen contraseñas.
Enumeración de programas instalados
Como se mencionó anteriormente, comencemos enumerando las aplicaciones instaladas para tener una idea del asunto.
El resultado parece ser en su mayoría estándar para una estación de trabajo con Windows 10. Sin embargo, se destaca la aplicación Druva inSync
. Una búsqueda rápida en Google muestra que la versión 6.6.3
es vulnerable a un ataque de inyección de comandos a través de un servicio RPC expuesto. Es posible que podamos usar esta PoC de explotación para escalar nuestros privilegios. En esta publicación del blog que detalla el descubrimiento inicial de la falla, podemos ver que Druva inSync es una aplicación que se usa para "copia de seguridad integrada, eDiscovery y monitoreo de cumplimiento", y la aplicación cliente ejecuta un servicio en el contexto de la cuenta privilegiada NT AUTHORITY\SYSTEM
. La escalada es posible al interactuar con un servicio que se ejecuta localmente en el puerto 6064.
Enumeración de puertos locales
Realicemos una enumeración adicional para confirmar que el servicio se está ejecutando como se espera. Un vistazo rápido con netstat
muestra un servicio ejecutándose localmente en el puerto 6064
.
Enumeración del ID del proceso
A continuación, asignamos el ID del proceso (PID) 3324
al proceso en ejecución.
Enumeración de servicios en ejecución
En este punto, tenemos suficiente información para determinar que la aplicación Druva inSync está efectivamente instalada y funcionando, pero podemos hacer una última comprobación utilizando el cmdlet Get-Service
.
Ejemplo: Escalada de privilegios locales en el cliente Windows de Druva inSync
PoC de PowerShell de Druva inSync
Con esta información en la mano, probemos el exploit PoC, que es este breve fragmento de PowerShell.
Modificación de PowerShell PoC
Para nuestros propósitos, queremos modificar la variable $cmd
con el comando deseado. Podemos hacer muchas cosas aquí, como agregar un usuario administrador local (que es un poco ruidoso y queremos evitar modificar cosas en los sistemas cliente siempre que sea posible) o enviarnos un shell inverso. Probemos esto con Invoke-PowerShellTcp.ps1 . Descargue el script en nuestro cuadro de ataque y cámbiele el nombre por algo simple como shell.ps1
. Abra el archivo y agregue lo siguiente en la parte inferior del archivo del script (cambiando la IP para que coincida con nuestra dirección y el puerto de escucha también):
Modifique la variable $cmd
en el script PoC del exploit Druva inSync para descargar nuestro shell inverso de PowerShell en la memoria.
Iniciar un servidor web Python
A continuación, inicie un servidor web Python en el mismo directorio donde script.ps1
reside nuestro script.
Captura de un shell SYSTEM
Por último, inicie un listener de Netcat
en la máquina de atacante y ejecute el script de PowerShell de PoC en el host de destino (después de modificar la política de ejecución de PowerShell con un comando como Set-ExecutionPolicy Bypass -Scope Process
). Obtendremos una conexión de reverse shell con privilegios SYSTEM
si todo sale según lo planeado.
Este ejemplo muestra lo arriesgado que puede ser permitir que los usuarios instalen software en sus máquinas y cómo siempre debemos enumerar el software instalado si nos encontramos en un servidor o un host de escritorio de Windows. Las organizaciones deben restringir los derechos de administrador local en las máquinas de los usuarios finales siguiendo el principio del mínimo privilegio. Además, una herramienta de lista blanca de aplicaciones puede ayudar a garantizar que solo se instale software debidamente examinado en las estaciones de trabajo de los usuarios.
Caso práctico
Siga los pasos anteriores para aumentar los privilegios en el sistema de destino mediante la falla
Druva inSync
. Envíe el contenido de la flag en la carpetaVulServices
en el escritorio del administrador.
Comprobar privilegios del usuario
Última actualización
¿Te fue útil?