Privilegios necesarios para realizar inyecciones de proceso

2

Estoy leyendo sobre técnicas de inyección de procesos en máquinas Windows (originalmente surgió de esto a partir de una investigación de escalamiento de privilegios). Aunque utilicé Windows durante la mayor parte de mi vida, creo que entiendo mejor los esquemas de privilegios / permisos de Linux, y agradecería una aclaración sobre la suposición de algunos de los métodos comunes.

  1. Vaciado del proceso: un programa necesita iniciar uno diferente, los ejemplos comunes son explorer.exe o svhosts.exe, que se encuentran en la carpeta de Windows
  2. Secuestro de DLL: haga que un proceso diferente cargue algún archivo DLL o escríbalo en una carpeta alta en la ruta de búsqueda
  3. Otros similares

Esos métodos generalmente dependen de las API del sistema de llamada y de la asignación y copia de memoria en ubicaciones estratégicas. No parece que un usuario estándar con pocos privilegios pueda realizar este ataque, ¿o sí? (Un ejemplo de "bajo privilegio" sería un usuario corporativo estándar). Quiero decir, si pueden, ¿no sería un defecto de diseño en el sistema operativo o simplemente mucho más difícil de lo que muestran los manuales?

Referencia: Ten Process Injection Técnicas: un estudio técnico de técnicas de inyección de procesos comunes y tendencias , el texto y los diagramas muestran un proceso que manipula fácilmente la memoria de otro proceso.

    
pregunta Anton.P 28.08.2018 - 14:09
fuente

2 respuestas

0

De lo que recuerdo (podría estar equivocado) para hacer esto debes tener una cuenta administrativa. Los usuarios normales no pueden hacerlo. Hace un tiempo escribí un troyano que usaba el proceso de autorización, pero debe ejecutarse como administrador para que funcione.

    
respondido por el Adrian Rudy Dacka 28.08.2018 - 18:24
fuente
0

No piense en privilegios en términos de cuentas de usuarios aquí, los permisos que se requieren son SeDebug. SeDebug se otorga a la cuenta de administrador / raíz en la que se ejecuta el proceso.

Como usuario normal, no podrá inyectar en un proceso que se ejecuta como SISTEMA. Como atacante, solo podrá realizar inyecciones iniciales en el mismo contexto de proceso.

El proceso le permite comenzar un subproceso como un proceso inicial pero en estado de pausa. Luego borra la memoria y la reemplaza con un proceso que desea ocultar. Todo el tiempo que tenga el control de este proceso, simplemente está ocultando otro bajo el pretexto del original.

El secuestro de dll requiere que pueda crear una carpeta y escribir un binario en el disco, ya que el proceso de llamada cargará la ruta cuando busque bibliotecas para cargar. Entonces, potencialmente, si este es un servicio, necesitará permisos para iniciarlo / detenerlo.

    
respondido por el McMatty 27.09.2018 - 22:31
fuente

Lea otras preguntas en las etiquetas