¿Hay alguna alternativa a LogonUser y para suplantar la cuenta dada para acceder a los recursos de red? Estoy buscando el método de suplantación que me permita conectarme a la máquina en dominios extranjeros (o máquinas de grupos de trabajo para el mismo asunto).Alternativas a LogonUser para suplantación de red (C++)
Para los datos iniciales que tengo: nombre de la máquina, nombre de usuario (o dominio \ nombre de usuario), contraseña de texto claro.
Sé que hay una forma de establecer una conexión usando WNetAddConnection a \\ machinename \ ipc $, entonces la mayoría de las funciones de red se ejecutarán en un contexto de esa cuenta, sin embargo win2008 agregó otro giro y algunas funciones aún usan la cuenta, que hilo se está ejecutando en.
También sé que hay alguna forma de obtener un token de suplantación utilizando SSPI. ¿Alguien ha experimentado con esos tokens, son buenos para acceder a acciones, SCM, registro remoto y esas cosas? ¿Qué es lo que usa WNetAddConnection?
EDIT: Para aclarar, la razón por la que no puedo utilizar LogonUser es porque necesito al suplantar al usuario en un dominio que no sea de confianza o un grupo de trabajo
Edit2: Otra aclaración: el tema que estoy tratando de implementar es similar a psexec, por ejemplo:
- programa no debe modificar la configuración de host o directorio activo (por ejemplo: crear usuarios locales temporales, etc.). Por otra parte suposición no se puede decir que se está ejecutando en DC o no
- no puede haber supuestos acerca de qué software está preinstalado en la máquina remota, única condición dada es que el intercambio de archivos de Windows está habilitado en el blanco
- Cuenta Se sabe que la contraseña funciona en el destino, pero la máquina de destino puede estar en el dominio local, en el dominio externo, no en el dominio.
Edit3: realmente me gustaría saber más acerca de la opción de SSPI InitializeSecurityContext/AcquireCredentialsHandle. ¿Hay alguien que haya trabajado extensivamente con esta API? ¿Es posible utilizar los tokens devueltos con suplantación, para que un hilo pueda acceder a los recursos compartidos de red y copiar archivos, etc.? ¿Alguien puede publicar un fragmento de código que funcione?
EDIT4: Gracias a Marsh Ray, el problema se resolvió. Si alguien está buscando para ver el código de prueba de concepto, it is here
guau, suena como un gran enfoque! Nunca pensé en usar esto. Déjame darle una prueba rápida para ver si funciona – galets
amigo, ¡eso fue todo! Muchas gracias, esto fue exactamente lo que he estado buscando – galets
¡genial! ¡alegra oírlo! –