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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Permisos acceso a clave de registro PC remoto
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Permisos acceso a clave de registro PC remoto  (Leído 10,817 veces)
jarpon

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Permisos acceso a clave de registro PC remoto
« en: 30 Enero 2022, 20:18 pm »

Hola a todos

Intento poder leer unos registros entre los PC's de 2 maquinas con vbscript. El script de lectura en la maquina local funciona correctamente, pero cuando quiero acceder al registro de la maquina remota siempre obtengo el error:
No se puede abrir el acceso  HKEY_LOCAL_MACHINE. Un error impide abrir la clave.
Los dos PC's tienen:
- Activados el servicio Registro remoto.
- Puedo conectar los registros remotos con regedit.
- me conecto como usuario administrador con permisos totales.
- Firewall estan desactivados.
- Escritorio remoto habilitados.
- Archivos e impresoras compartidas en redes publicas i privadas

He buscado por internet mil soluciones de permisos y directivas si exito.

Alguna idea?

Gracias por adelantado



En línea

.xAk.


Desconectado Desconectado

Mensajes: 397


F0r3v3R NeWbI3


Ver Perfil WWW
Re: Permisos acceso a clave de registro PC remoto
« Respuesta #1 en: 4 Febrero 2022, 23:12 pm »

puedes utilizar runas para el usuario autorizado ¿cual es el error?  ¿Cómo los intentas abrir? ¿has autorizado en la máquina local al usuario y su máquina remota que puede acceder? RemoteRegistry debe estar habilitado.

How to Connect to a Remote Registry How to Enable the Remote Registry Service in Windows


« Última modificación: 4 Febrero 2022, 23:44 pm por .xAk. » En línea


jarpon

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Permisos acceso a clave de registro PC remoto
« Respuesta #2 en: 6 Febrero 2022, 22:20 pm »

Hola

Gracias por tu aporte, todo lo que dice el link lo hice, creo que bien pero siempre me deniega el acceso.
Set objShell = CreateObject("WScript.Shell")

sPRUEBA="\\XXX\HKEY_LOCAL_MACHINE\SOFTWARE\PRUEBA\PRUEBA"
VALOR=objShell.RegRead(sPRUEBA)
MsgBox("The value is " & VALOR)

VALOR=4
MsgBox(sPRUEBA)
objShell.RegWrite sPRUEBA,VALOR,"REG_DWORD"

NUEVOVALOR=objShell.RegRead(sPRUEBA)
MsgBox("The value is " & NUEVOVALOR)
Set objShell = Nothing

Este es el código que utilizo y me funciona en local, pero en remoto he probado de mil formas y siempre me da error de raíz no valida en la clave de registro.

Veo los registro remotos desde regedit haciendo "Conectar al registro de red..."

No se si la ruta en remoto red local la escribo bien. Las siguientes rutas no me funcionan

XXX\HKEY_LOCAL_MACHINE\SOFTWARE\PRUEBA
\\XXX\HKEY_LOCAL_MACHINE\SOFTWARE\PRUEBA
\\WORKGROUP\XXX\HKEY_LOCAL_MACHINE\SOFTWARE\PRUEBA

no se que mas probar :-(

En línea

.xAk.


Desconectado Desconectado

Mensajes: 397


F0r3v3R NeWbI3


Ver Perfil WWW
Re: Permisos acceso a clave de registro PC remoto
« Respuesta #3 en: 7 Febrero 2022, 03:46 am »

En local te funciona. ¿si lo escribes en local con el nombre de máquina también te va? No tengo el escenario remoto para probar pero suponiendo que es de tipo "REG_SZ" esto tendría que funcionar:

Código
  1. Const HKEY_LOCAL_MACHINE = &H80000002
  2. strComputer = "El nombre de la maquina remota"
  3.  
  4. Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
  5. & strComputer & "\root\default:StdRegProv")
  6.  
  7. strKeyPath = "Software\Microsoft\Windows\CurrentVersion\Tablet PC"
  8. strValueName = "Ident"
  9.  
  10. oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, ver
  11. Wscript.Echo "Su valor es: " & ver
« Última modificación: 7 Febrero 2022, 19:03 pm por .xAk. » En línea


EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.165



Ver Perfil
Re: Permisos acceso a clave de registro PC remoto
« Respuesta #4 en: 8 Febrero 2022, 14:28 pm »

Me parece que RegRead y RegWrite no soportan máquinas remotas, por eso siempre te manda error de que la Raíz no es válida, entiéndase raíz a: HKLM o HKCU o HKEY_LOCAL_MACHINE o HKEY_CURRENT_USER

La opción de usar WMI como comenta .xAk. requiere bastante configuración de permisos. Supongo que lo más sencillo es usar Regedit.exe con su interfaz gráfica, pero si lo quieres hacer por Scripting lo más sencillo sería usar Reg.exe en un Batch o llamar al Batch desde VBScript o llamar solo a Reg.exe, el único requisito adicional es tener activado y con contraseña la cuenta de Administrador en la PC remota (PC servidor), y poner las credenciales en la PC cliente. Si se quiere usar un usuario en particular no funciona por la UAC, a no ser que se desactive dicha UAC. Últimamente se usa PSExec para este tipo de cosas pero ya es un programa externo.

Para mi ejemplo voy a optar con activar y usar la cuenta de Administrador, se detallaran todos los requisitos para tenerlo claro:

En la PC Remota/Servidor (192.168.0.102):

Código
  1. :: Activar la cuenta de Administrador y ponerle un password (12345)
  2. Net User Administrador /Active:Yes
  3. Net User Administrador 12345
  4.  
  5. :: Ejecutar el servicio de Registro Remoto
  6. Net Start RemoteRegistry
  7.  
  8. :: Activar Compartir Archivos e Impresoras en el Firewall
  9. NetSh Firewall Set Service FileAndPrint Enable

En la PC Cliente:

Código
  1. :: Establecer las credenciales en el Administrador de Credenciales
  2. CmdKey /Add:192.168.0.102 /User:Administrador /Pass:12345
  3.  
  4. :: Usar Reg.exe para solicitar la versión del Sistema Operativo remoto
  5. Reg Query "\\192.168.0.102\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /V "ProductName"
  6.  
  7. :: Usar Reg.exe para agregar una clave "CLAVE" con valor "VALOR", tipo de dato "REG_DWORD" y dato "1"
  8. Reg Add "\\192.168.0.102\HKLM\SOFTWARE\CLAVE" /V "VALOR" /T REG_DWORD /D "1" /F

:: Opcionalmente se puede terminar eliminando las credenciales
CmdKey /Delete:192.168.0.102

Con eso debería funcionar perfectamente para operaciones de Lectura y Escritura en el Registro remoto. El problema fundamental siempre son los permisos y credenciales.
En línea

jarpon

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Permisos acceso a clave de registro PC remoto
« Respuesta #5 en: 15 Febrero 2022, 10:48 am »

Hola .Xack. EePC

Muchas gracias por vuestra ayuda no había podido probar hasta ahora, debo ser muy torpe porque no me funciona. Prefiero hacerlo por VBscript porque necesito guardar el contenido en una variable del PC local que utilizaran otras rutinas de VBscript.

Si leo el registro del usuario local, funciona sin problemas, pero cuando pongo el PC remoto me da el siguiente error:

Linea:4
El servidor remoto no existe o no esta disponible: GetObject
Código: 800A01CE

Registro remoto esta activado en ambos PC's.
Veos los equipos de red en ambos PC's y puedo abrir carpetas compartidas.
He dado todos los permisos al usuario del pc remoto que ya es administrador.
PC local puedo conectar al registro de red pero no puedo verlos.
Si cambio el nombre PCREMOTO por el PCLOCAL funciona.


Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "PCREMOTO"
 
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
 
strKeyPath = "SOFTWARE\WOW6432Node\PRUEBA"
strValueName = "PRUEBAString"
 
oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, ver
Wscript.Echo "Su valor es: " & ver


Supongo que se trata de permisos, pero no consigo que funcione.

Alguna idea?

Gracias por adelantado
En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.165



Ver Perfil
Re: Permisos acceso a clave de registro PC remoto
« Respuesta #6 en: 17 Febrero 2022, 13:27 pm »

El nuevo método que estás implementando no requiere del servicio de Registro Remoto, sin embargo a nivel básico requiere tener habilitado el usuario Administrador con contraseña y puesto en el Firewall la Administración Remota. PERO lo más importante es el envío de credenciales que desde VBScript puro no lo vas a poder hacer, tendrías que usar RunAs.exe para hacer el envío de credenciales, por ejemplo:

En la PC Remota/Servidor (192.168.0.102):

Código
  1. :: Activar la cuenta de Administrador y ponerle un password (12345)
  2. Net User Administrador /Active:Yes
  3. Net User Administrador 12345
  4.  
  5. :: Activar la Administración Remota en el Firewall
  6. NetSh Firewall Set Service RemoteAdmin Enable

En la PC Cliente:

Código
  1. :: Crear el Script, por ejemplo "RemoteRegRead.vbs":
  2. Const HKLM = &H80000002
  3. pc = "192.168.0.102"
  4. Set oReg = GetObject("winmgmts:\\" & pc & "\root\default:StdRegProv")
  5. key = "SOFTWARE\Microsoft\Windows NT\CurrentVersion"
  6. value = "ProductName"
  7. oReg.GetStringValue HKLM, key, value, rpta
  8. Wscript.Echo "Rpta: " & rpta
  9.  
  10. :: Usar RunAs para usar las credenciales y ejecutar el script
  11. RunAs /NetOnly /User:Administrador "WScript C:\Users\EdSon\Desktop\RemoteRegRead.vbs"

Ahora bien, si no quieres usar RunAs.exe tendrías que dejar prácticamente sin protección al Servidor para deshabilitar toda obstrucción, esto incluso es algo complejo porque no suele venir fácilmente documentado.

Citar
Prefiero hacerlo por VBscript porque necesito guardar el contenido en una variable del PC local que utilizaran otras rutinas de VBscript.

Si tu intención es solo guardar el resultante en una variable, puedes usar un método sencillo, por ejemplo el primero que planteé con Reg.exe o este último con RunAs.exe o usando herramientas de terceros como PSExec. El ejemplo para hacerlo con Reg.exe sería el siguiente:

En la PC Remota/Servidor (192.168.0.102):

Código
  1. :: Activar la cuenta de Administrador y ponerle un password (12345)
  2. Net User Administrador /Active:Yes
  3. Net User Administrador 12345
  4.  
  5. :: Ejecutar el servicio de Registro Remoto
  6. Net Start RemoteRegistry
  7.  
  8. :: Activar Compartir Archivos e Impresoras en el Firewall
  9. NetSh Firewall Set Service FileAndPrint Enable

En la PC Cliente:

Código
  1. ' Crear el Script, por ejemplo "RemoteRegQuery.vbs":
  2. pc = "192.168.0.102"
  3. Set sh = WScript.CreateObject("WScript.Shell")
  4. cmd = "CmdKey /Add:" & pc & " /User:Administrador /Pass:12345"
  5. sh.Exec(cmd)
  6. cmd = "Reg Query ""\\" & pc & "\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"" /V ProductName"
  7. Set rpta = sh.Exec(cmd)
  8. variable = rpta.StdOut.ReadAll()
  9. Call WScript.Echo(variable)

Con ello obtendrías en variable el resultado de usar el comando Reg.exe, en mi caso:

Citar

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
    ProductName    REG_SZ    Windows 7 Ultimate


Obviamente el Script debe ser ejecutado como administrador, a partir de ahí puedes parsear el resultado por ejemplo con Split:

Código
  1. value = Split(Split(variable, vbCrLf)(2), "    ")(3)
  2. Call WScript.Echo("_" & value & "_")

Bueno, esa sería la idea de usar comandos externos y recuperar su salida.
En línea

jarpon

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Permisos acceso a clave de registro PC remoto
« Respuesta #7 en: 23 Febrero 2022, 10:58 am »

Buenos dias EdePC

Muchas gracias por tu ayuda al final lo conseguí con tu ultima aportación.

El problema era que yo utilizaba un usuario con credenciales de administrador, pero veo que debe ser si o si el usuario administrador activado como bien dijiste.

Solo tuve que modificar esta linea, no se porque pero ejecutando desde windows funcionaba pero desde la plataforma de la maquina no.

Set sh = WScript.CreateObject("WScript.Shell")  por  Set sh = CreateObject("WScript.Shell")

Si quisiera añadir una clave seria con Reg Add  correcto?

También hice la prueba en local, pero Reg query no funciona, es normal?

Otra vez mil gracias

Un saludo


En línea

EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.165



Ver Perfil
Re: Permisos acceso a clave de registro PC remoto
« Respuesta #8 en: 23 Febrero 2022, 12:50 pm »

1. El problema era que yo utilizaba un usuario con credenciales de administrador, pero veo que debe ser si o si el usuario administrador activado como bien dijiste.

2. Solo tuve que modificar esta linea, no se porque pero ejecutando desde windows funcionaba pero desde la plataforma de la maquina no.

Set sh = WScript.CreateObject("WScript.Shell")  por  Set sh = CreateObject("WScript.Shell")

3. Si quisiera añadir una clave seria con Reg Add  correcto?

4. También hice la prueba en local, pero Reg query no funciona, es normal?

1. Esto es debido al UAC (Control de Cuentas de Usuario) que se introdujo desde Windows Vista. Por defecto solo el usuario "Administrador" tiene permitido saltarse el UAC. Si quieres usar otro Usuario tienes que deshabilitar la UAC o configurar para que TODOS los usuarios con permisos de administrador puedan saltársela.

2. Depende del Intérprete que estés utilizando, Script.exe y WScript.exe (.vbs) tienen innato el objeto WSCript, pero si usas otro intérprete como mshta.exe (.hta .htm, etc) u otro, pues ellos tienen otro objeto o directamente usar CreateObject como lo has hecho.

3. Si, como puse en mi primer mensaje, solo que tienes que considerar escapar las comillas si las vas a necesitar.

4. El script que puse está hecho para PCs remotas con IP válidas porque así lo requiere Reg.exe y CmdKey.exe, aunque puedes poner la IP de tu PC local (no loopback) pero debes iniciar el servicio de registro remoto. Lo mejor sería usar: pc = "." de esa manera Reg entenderá que es tu propia PC local y no requerirá nada de permisos remotos, CmdKey dará un error interno oculto pero el script funcionará sin problemas.
En línea

jarpon

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Re: Permisos acceso a clave de registro PC remoto
« Respuesta #9 en: 26 Febrero 2022, 07:19 am »

Muchos Gracias EdePC

Una última consulta.

Cual seria la forma mas rapida de verificar la comunicación o pérdida de comunicación con el PC remoto?. Lo hago con un ping pero tarda 2 seg. Necesitaría algo mucho más rápido milisegundos

Gracias
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como hacer un registro remoto
Programación Visual Basic
rembolso 3 2,412 Último mensaje 27 Mayo 2009, 17:10 pm
por burbu_1
Permisos desactivados en registro de Windows 7 « 1 2 3 »
Windows
oskoa 25 25,950 Último mensaje 29 Noviembre 2011, 06:43 am
por Randomize
Permisos myslq remoto OpenBSD
Unix/Unix-Like
Joe Fraddy 0 9,204 Último mensaje 28 Mayo 2015, 19:48 pm
por Joe Fraddy
clave wifi sin permisos
Wireless en Windows
draxus3150 1 3,459 Último mensaje 14 Octubre 2015, 08:32 am
por simorg
permisos en editor de registro
Windows
zuposi 1 2,435 Último mensaje 10 Agosto 2017, 19:27 pm
por Randomize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines