elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con SeAssignSecurity
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con SeAssignSecurity  (Leído 1,997 veces)
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Ayuda con SeAssignSecurity
« en: 31 Marzo 2015, 02:51 am »

Hola!

Estoy tratando de cargar un driver en win7, pero el "loader" me devuelve el codigo de error 0xC0000061 - STATUS_PRIVILEGE_NOT_HELD

El driver es un simple driver de prueba.. solo tiene estas rutinas:

Código
  1. NTSTATUS DriverEntry (IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath);
  2. NTSTATUS DriverCreate (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
  3. NTSTATUS DriverClose (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp);
  4. NTSTATUS DriverUnload (IN PDRIVER_OBJECT DriverObject);

Por lo que lei, deberia usar SeAssignSecurity, pero no estoy seguro en donde ni para que..

La sintaxis es esta:

Código
  1. NTSTATUS SeAssignSecurity(
  2.  _In_opt_  PSECURITY_DESCRIPTOR      ParentDescriptor,
  3.  _In_opt_  PSECURITY_DESCRIPTOR      ExplicitDescriptor,
  4.  _Out_     PSECURITY_DESCRIPTOR      *NewDescriptor,
  5.  _In_      BOOLEAN                   IsDirectoryObject,
  6.  _In_      PSECURITY_SUBJECT_CONTEXT SubjectContext,
  7.  _In_      PGENERIC_MAPPING          GenericMapping,
  8.  _In_      POOL_TYPE                 PoolType
  9. );

Donde deberia implementar dicha funcion? DriverEntry quizas? Y que consigo? Elevar los permisos de dicho objeto?

Bueno, eso es lo que me preocupa..

Gracias! Saludos!


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Ayuda con SeAssignSecurity
« Respuesta #1 en: 31 Marzo 2015, 06:01 am »

¿Problemas de privilegios? El token del usuario debe ser alguno del grupo de administradores o del sistema y tener los privilegios habilitados, como administrador:
Código:
    #define SE_LOAD_DRIVER_PRIVILEGE         10L
   
    HANDLE hToken;
    BYTE Privileges[FIELD_OFFSET(TOKEN_PRIVILEGES, Privileges) + sizeof(LUID_AND_ATTRIBUTES)];
    PTOKEN_PRIVILEGES pTokenPrivileges;

    if (OpenProcessToken(
        GetCurrentProcess(),
        TOKEN_ADJUST_PRIVILEGES,
        &hToken))
    {
        pTokenPrivileges = (PTOKEN_PRIVILEGES)Privileges;
        pTokenPrivileges->PrivilegeCount = 1;
        pTokenPrivileges->Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
        pTokenPrivileges->Privileges[0].Luid.HighPart = 0;
        pTokenPrivileges->Privileges[0].Luid.LowPart = SE_LOAD_DRIVER_PRIVILEGE;
        if (AdjustTokenPrivileges(hToken, FALSE, pTokenPrivileges, 0, NULL, NULL))
        {
            // Load driver
           
        }
        CloseHandle(hToken);
    }
   


En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Ayuda con SeAssignSecurity
« Respuesta #2 en: 31 Marzo 2015, 20:01 pm »

Excelente!! Muchas gracias x64Core!

Una pequeña duda mas..

Cual seria el proposito de poner estas restricciones si se puede "evadir" con un poco de codigo?? A lo mejor lo estoy mal interpretando yo,, pero es algo asi como no poner ninguna restricción/control, no?

Saludos! Gracias!
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Ayuda con SeAssignSecurity
« Respuesta #3 en: 1 Abril 2015, 05:33 am »

En realidad para administradores el privilegio está desactivado por defecto pero para usuarios cómunes no esta disponible, osea incluso si ejecutas ese código no podrás habilitar el privilegio. Es una caracteristica de seguridad de Windows, es por eso que se introdujo la UAC desde Windows Vista+. Pero esto puede ser modificado en el panel de control. Más cosas podrian ser hechas por ejemplo creando Tokens con privilegios especificos, programas de seguridad como Antivirus controlan este tipo de acciones, etc. Podes usar alguna herramienta como Process Explorer para analizar los procesos del sistema y usuarios, ejecutar como administrador de preferencia.
En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Ayuda con SeAssignSecurity
« Respuesta #4 en: 1 Abril 2015, 19:02 pm »

Entiendo.. Gracias x64! Asunto resuelto.

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines