Estimados amigos de Inseguros !!!
Durante una de las clases del curso de Ciberseguridad en entornos Microsoft salió la duda de como evaluar los permisos y privilegios que necesita una aplicación para ejecutarse.
Lo típico de que te llega la consultora y para instalar el aplicativo EQUIS te pide ser miembro de domains admin, agua embotellada del volcan del fiji y 10 esclavos abanicándote...
En esta ocasión vamos a por lo del grupo administrador :-).
Podemos usar Procmon, herramienta de la sysinternals, para monitorizar qué ocurre cuando una aplicación se ejecuta. Nos dice ficheros, carpetas, librerias que carga, claves del registro que consulta, al final, nos da una información valiosa para adaptar esos requisitos a un usuario que los cumpla, y no tener que entregar nuestro preciado "domain" al aplicativo.
Por ejemplo, para facilitarnos la vida, podemos ejecutar el aplicativo sin elevación, como usuarios normales, y ver donde el resultado es negativo, no Success, por ejemplo, usando dos filtros, el del nombre del proceso que queremos analizar ( por ejemplo setup.exe) el campo de estado.
Para esta prueba, voy a levantar un cmd y voy a hacer algo "prohibido" algo sobre lo que no voy a tener permisos. Esta acciones son las que queremos trackear, para saber qué permisos concretos necesitamos.
Si nos fijamos en la siguiente imagen, no tenemos permisos para escribir en c: y nos da el error, y nos dice el permiso que esperaba...
Una vez tenemos controlados los permisos, nos vamos a los privilegios. Como sabéis, es distinto, tener el privilegio de apagar el pc, o tomar pertenencia a un grupo, o debugear programas, o actuar como parte del sistema ( para impersonar...) etc, no es lo mismo que poder escribir en una carpeta.
Para trackear el uso de estos privilegios en la ejecución de un proceso, podemos tirar de eventos. Podemos activar la GPO que nos da la auditoria avanzada de este uso. Pero OJO, esto genera MUUUUCHOS eventos. Habilitarlo para casos concretos.
Por ejemplo aquí vemos el uso del privilegio SeTcBPrivilege