Autor
|
Tema: SeDebugPrivilege y OpenProcess (Leído 2,939 veces)
|
kub0x
Enlightenment Seeker
Colaborador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
Muy buenas,
llevo un tiempo investigando sobre la suplantación de tokens, elevación de privilegios y la injección en procesos de sesiones y usuarios distintos.
El tema es que tengo que ejecutar mi aplicación en modo administrador para obtener el handle a un proceso ejecutado por un usuario ajeno (SYSTEM - winlogon.exe), ya que los privilegios del usuario normal no permiten la depuración de elementos del sistema.
Al ejecutarse, mi aplicación es capaz de obtener el handle, pero el privilegio SeDebugPrivilege está desactivado, cosa que podemos comprobar al iniciar cmd en modo admin si escribimos el comando "whoami /all".
He leído en muchos foros de programación que SeDebugPrivilege debe de estar activo para poder interactuar con los elementos descritos al principio del post, pero no entiendo porque me deja acceder a un handle de un proceso de otro usuario cuando en el cmd me dice que el privilegio esta desactivado.
La pregunta es:
¿Si corres una aplicación en modo administrador es necesario activar el privilegio SeDebugPrivilege para obtener un handle de un proceso lanzado por otro usuario?
Gracias y saludos!
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
OpenProcess functiondwDesiredAccess [in] The access to the process object. This access right is checked against the security descriptor for the process. This parameter can be one or more of the process access rights. If the caller has enabled the SeDebugPrivilege privilege, the requested access is granted regardless of the contents of the security descriptor.Remarks To open a handle to another local process and obtain full access rights, you must enable the SeDebugPrivilege privilege.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
kub0x
Enlightenment Seeker
Colaborador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
If the caller has enabled the SeDebugPrivilege privilege, the requested access is granted regardless of the contents of the security descriptor.
Remarks To open a handle to another local process and obtain full access rights, you must enable the SeDebugPrivilege privilege.
Gracias por el dato pero eso era bien sabido, me muevo bien por la WinAPI y msdn. Es raro que sin activar el privilegio pueda utilizar OpenProcess sobre un proceso SYSTEM corriendo la aplicación en modo administrador. De todas formas activaré el privilegio por si causa errores en otros OS. Saludos!
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Gracias por el dato pero eso era bien sabido, me muevo bien por la WinAPI y msdn.
Es raro que sin activar el privilegio pueda utilizar OpenProcess sobre un proceso SYSTEM corriendo la aplicación en modo administrador. De todas formas activaré el privilegio por si causa errores en otros OS. Si es sabido entonces no es comprendido completamente, no hay nada raro, lo dice con claridad: sin el privilegio SeDebugPrivilege dependes del SECURITY_DESCRIPTOR del proceso. Supongo que estaras probando con alguna version antigua de Windows, en 7 x64 no abre sin SeDebugPrivilege habilitado ...
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
kub0x
Enlightenment Seeker
Colaborador
Desconectado
Mensajes: 1.486
S3C M4NI4C
|
[..] Supongo que estaras probando con alguna version antigua de Windows, en 7 x64 no abre sin SeDebugPrivilege habilitado ...
Una máquina virtual con Windows 7 recien instalado x64 y otra x86. Supongo que será eso, si me he hecho estas preguntas es porque entiendo que el privilegio sirve para poder interactuar con procesos de sesiones distintas Puedes dar el tema como resuelto, gracias por la ayuda!
|
|
|
En línea
|
|
|
|
|
|