¿Hay alguna manera de sobrescribir un archivo que está siendo utilizado por un servicio sin los permisos de administración del servicio?

1

Estoy tratando de demostrar una vulnerabilidad y aquí está el escenario:

Un servicio se está ejecutando con los privilegios del SISTEMA donde el ejecutable que ejecuta (binpath) puede ser modificado por cualquier usuario. El exploit consiste en reemplazar el binario de destino por uno malicioso para que, al iniciar la máquina, el ejecutable malintencionado se inicie con privilegios de SISTEMA en lugar del original. Sin embargo, el problema aquí es que el binario del servicio no se puede reemplazar ya que está siendo utilizado por el servicio en cuestión mientras la computadora está funcionando. Por lo general, solo los administradores pueden detener los servicios, por lo que detener el servicio antes de cambiar los binarios haría que la demostración fuera un poco discutible.

Mi pregunta es:

¿Hay alguna forma de reemplazar el binario (al que tengo permisos completos) sin permisos para detener el servicio?

    
pregunta trallgorm 17.09.2018 - 17:38
fuente

3 respuestas

2

En general, los binarios se pueden renombrar mientras se ejecutan, a menos que el proceso (o algún otro proceso) lo impida explícitamente. Simplemente cambie el nombre del binario y luego suelte uno malicioso con el nombre antiguo. Cuando la computadora se reinicie (o el servicio se reinicie), ejecutará su versión.

Otro enfoque es la plantación de DLL. Encuentre una DLL que usa la aplicación (idealmente no una DLL del sistema, y definitivamente no una que se cargue solo como un archivo de recursos) que no se esté cargando por una ruta explícita, y reemplácela con una versión maliciosa. Puede usar el truco de cambio de nombre mencionado anteriormente, o simplemente tomar una DLL que normalmente se carga desde otra ubicación (como System32) y colocar su copia maliciosa en el directorio de instalación del servicio (o directorio de trabajo, si es diferente, se puede escribir).

En realidad, armar esto se deja como un ejercicio para el lector, por supuesto, pero creo que es importante publicar esta respuesta porque muchas personas no se dan cuenta de que ejecutar un binario de Windows NO Evita intrínsecamente que se cambie el nombre del binario.

    
respondido por el CBHacking 18.09.2018 - 10:26
fuente
0

Desde una perspectiva infosec, sí, hay varias maneras de lograr esto dependiendo del nivel de acceso al servidor. No puede confiar en que los binarios permanezcan estáticos una vez instalados, por lo que HIPS / HIDS o las listas blancas son importantes capas de defensa.

Los permisos incorrectos en el ejecutable ya permiten que cualquiera lo sobrescriba si el servicio se detiene normalmente o se bloquea.

Dado que este sitio desalienta las preguntas / respuestas que facilitan el uso inapropiado, no voy a entrar en detalles sobre otros métodos. Esta pregunta es un excelente ejemplo de por qué la defensa en profundidad y la amenaza interna son principios básicos de seguridad.

    
respondido por el DoubleD 18.09.2018 - 00:25
fuente
0

Bueno, ¿necesitas sobrescribir el archivo en primer lugar?

  • ¿La ruta binaria tiene espacios & es sin comillas?
  • ¿El servicio le permite realizar secuestro dll?

¿Puede bloquear el servicio, el sistema operativo o realizar un reinicio del sistema para que las opciones anteriores sean viables?

    
respondido por el McMatty 18.09.2018 - 01:44
fuente

Lea otras preguntas en las etiquetas