Tags Palabras claves

Script para desactivar (y mantener desactivado) RPCSS.EXE

14/03/2005 - 00:43 por Miguel Mollejo Sánchez | Informe spam
Hola a todos :-)

Acabo de terminar de hacer un pequeño Script VBS que sirve para desactivar y mantener desactivado el componente DCOM/RPC (que RPCSS.EXE no este activo aceptando conexiones remotas de Internet, vaya) en Windows 95, 98 o ME.

El Script se ejecutaria en cada arranque del ordenador y comprobaria si este componente esta desactivado. Si esta activado, mostraria un mensaje dando opcion a desactivarlo.

En mi equipo parece ejecutar correctamente, pero dado que lo estoy haciendo para que funcione en el ordenador de una amiga (que no sabe ni quiere saber de esto, y que tampoco tiene un firewall, de ahi que yo prefiera que este componente este desactivado), me gustaria que quienes pudierais le echarais un vistazo, por si veis alguna forma de mejorarlo o veis algun error que haya cometido yo.


El Script es el siguiente:

Set WshShell = WScript.CreateObject("Wscript.Shell")
strDCOMLocal = "N"
strDCOMRemote = "N"

On Error Resume Next
strDCOMLocal = WshShell.RegRead("HKLM\Software\Microsoft\OLE\EnableDCOM")
strDCOMRemote = WshShell.RegRead("HKLM\Software\Microsoft\OLE\EnableRemoteConnect")
On Error Goto 0

if ((strDCOMLocal = "Y") or (strDCOMRemote = "Y")) then
intButton = WshShell.Popup("El servicio DCOM sobre RPC está activado y/o admitiendo conexiones remotas desde otros equipos de Internet." & vbCR & vbCR & "Se recomienda que detenga el servicio inmediatamente, salvo que sepa que lo requerirá algún programa durante esta sesión." & vbCR & vbCR & "¿Desea detener este servicio ahora (Requiere reiniciar Windows)?", 60, "Servicio DCOM/RPC activo", 52)

if intButton = 6 then
On Error Goto 0
WshShell.RegWrite "HKLM\Software\Microsoft\OLE\EnableDCOM", "N"
WshShell.RegWrite "HKLM\Software\Microsoft\OLE\EnableRemoteConnect", "N"
WshShell.Run "RUNDLL32.EXE shell32.dll,SHExitWindowsEx 2"
end if

if intButton = -1 then
On Error Goto 0
WshShell.RegWrite "HKLM\Software\Microsoft\OLE\EnableDCOM", "N"
WshShell.RegWrite "HKLM\Software\Microsoft\OLE\EnableRemoteConnect", "N"
WshShell.Run "RUNDLL32.EXE shell32.dll,SHExitWindowsEx 2"
end if
end if


Si alguien ve que el programa es correcto y quiere utilizarlo en su propio equipo, tambien hay un instalador y desinstalador automatico: http://www.miguelms.com/dcomchk.exe


Muchas gracias y un saludo. Miguel.

Preguntas similare

Leer las respuestas

#1 fermu
14/03/2005 - 16:46 | Informe spam
Hash: SHA1

Miguel Mollejo Sánchez wrote:

| Hola a todos :-)
|
| Acabo de terminar de hacer un pequeño Script VBS que sirve para
desactivar y mantener desactivado el componente DCOM/RPC (que RPCSS.EXE
no este activo aceptando conexiones remotas de Internet, vaya) en
Windows 95, 98 o ME.
|
| El Script se ejecutaria en cada arranque del ordenador y
comprobaria si este componente esta desactivado. Si esta activado,
mostraria un mensaje dando opcion a desactivarlo.
|
| En mi equipo parece ejecutar correctamente, pero dado que lo estoy
haciendo para que funcione en el ordenador de una amiga (que no sabe ni
quiere saber de esto, y que tampoco tiene un firewall, de ahi que yo
prefiera que este componente este desactivado), me gustaria que quienes
pudierais le echarais un vistazo, por si veis alguna forma de mejorarlo
o veis algun error que haya cometido yo.
|



Gracias por el Script, Miguel... hay que ver como te lo curras!!! :-))

Para los neofitos:, con tener un firewall que impida la entra al puerto
RPCSS estaremos a salvo, este ejecutable es el encargado de las Llamadas
a Procedimiento Remoto, no es instalado por defecto por Win98, pero es
requerido por multiples aplicaciones que requieres el modelo DCOM para
su correcto funcionamiento, entre las cuales caben destacar, MS Visual
Studio, Visual Basic, Interdev, y en general multiples apliciones que
basan en modelos de bases de datos su funcionamiento. Normalmente el
servicio RPCSS corre bajo el puerto 135, es decir, que si tenemos este
puerto abierto, es muy posible que tengamos este servicio en
ejecución... no obstante, cerrarlo, a mi me implica alguna duda:

¿no verán perjudicado su rendimiento las aplicaciones que requieran este
servicio para su correcto funcionamiento?

Hay que destacar, que, aunque en win98 este no es un servicio básico, en
winxp, si que lo es, y cerrarlo causaría una seria inestabilidad en el
sistema en win98, presumo que esta inestabilidad no se produciría,
pero las aplicaciones que basasen su funcionamiento en el modelo DCOM,
si que se verían afectadas, no?

En fin, gracias otra vez por el script, lo probaré en mi casa, a ver
como va y comento conclusiones :-)

Saludos
Fernando M. / Registered Linux User #367696
Respuesta Responder a este mensaje
#2 Miguel Mollejo Sánchez
14/03/2005 - 20:09 | Informe spam
Hola Fermu, gracias por responder :-)

Continuo la respuesta debajo:


"fermu" <> escribió en el mensaje news:OSr$
Hash: SHA1


Gracias por el Script, Miguel... hay que ver como te lo curras!!! :-))



Bueno... el Script no es gran cosa y de todas formas me ha costado lo mio... asi que no creo que me merezca demasiado esa frase... pero gracias :-)


Para los neofitos:, con tener un firewall que impida la entra al puerto
RPCSS estaremos a salvo, este ejecutable es el encargado de las Llamadas
a Procedimiento Remoto, no es instalado por defecto por Win98, pero es
requerido por multiples aplicaciones que requieres el modelo DCOM para
su correcto funcionamiento, entre las cuales caben destacar, MS Visual
Studio, Visual Basic, Interdev, y en general multiples apliciones que
basan en modelos de bases de datos su funcionamiento. Normalmente el
servicio RPCSS corre bajo el puerto 135, es decir, que si tenemos este
puerto abierto, es muy posible que tengamos este servicio en
ejecución... no obstante, cerrarlo, a mi me implica alguna duda:



Perdon por no aclarar esto, ahora pienso que deberia haberlo dicho (aunque esta puesto en el LEAME del instalador) para no alarmar a nadie innecesariamente: el servicio DCOM/RPC actualizado, en Windows 95/98 o ME no tiene actualmente vulnerabilidades conocidas, por lo que supuestamente aun estando activo y sin firewall, no deberia pasar nada (teniendo un firewall, ya si que no pasa nada en absoluto). Sin embargo, como todo servicio TCP, si no se necesita, conviene cerrarlo para evitar que pueda ser mal utilizado en caso de que en un futuro se descubiriera alguna nueva vulnerabilidad. Precisamente ese es el objetivo de todo esto, intentar que DCOM/RPC se mantenga desactivado si no se necesita.

En Windows 95 y 98, creo que inicialmente DCOM/RPC no esta instalado (como mucho esta RPC, desactivado, no DCOM), pero lo mas habitual es que se instale con Internet Explorer 5.0 o posterior. Sin embargo NO esta activo (se instala, pero no se activa), con lo cual no hay problema. En Windows ME esta instalado desde el principio (por venir Windows ME con IE 5.5), pero tampoco esta activo, asi que tampoco supone un problema.


¿no verán perjudicado su rendimiento las aplicaciones que requieran este
servicio para su correcto funcionamiento?



Yo hasta ahora no he visto ningun programa ni componente de Windows 95/98/ME que lo utilice (es decir, que se comunique con otros procesos en otros equipos concretamente mediante DCOM/RPC). Por ejemplo, quien tenga un ordenador sin una red y con una simple conexion a Internet, con casi total seguridad no necesita que DCOM/RPC este funcionando (si es que lo esta, que probablemente no). Pero por supuesto, un caso concreto seria el de equipos en red con programas especificos que hagan uso de DCOM y/o RPC.

De todas formas, aunque DCOM se encuentre desactivado, los programas que lo requieran aun parecen poder activarlo (Que es por lo que hice el Script para que fuera ejecutado en cada arranque, dado que en ocasiones me encontre conque se habia vuelto a activar sin yo enterarme). Por lo que no supone una perdida de funcionalidad si es que algun programa lo necesitara.

Tambien aclarar que DCOM se refiere solo a comunicaciones remotas ("Distributed COM"), pero que desactivarlo en ningun momento quita funcionalidad a las comunicaciones entre procesos locales que usen COM (u OLE). Todo este asunto no afecta para nada a las comunicaciones locales, entre procesos en la propia maquina.


Hay que destacar, que, aunque en win98 este no es un servicio básico, en
winxp, si que lo es, y cerrarlo causaría una seria inestabilidad en el
sistema en win98, presumo que esta inestabilidad no se produciría,
pero las aplicaciones que basasen su funcionamiento en el modelo DCOM,
si que se verían afectadas, no?



Windows 98 como tal no utiliza DCOM/RPC para nada, no lo necesita y de hecho no es un servicio que venga con Windows 98, sino que se instala con Internet Explorer. Por otro lado, la desactivacion de DCOM/RPC tampoco se basa en "cerrar por las malas" RPCSS.EXE, sino en desactivar el servicio DCOM en el Registro de Windows, de forma que al estar desactivado y ser el unico que usa RPC, Windows por su propia iniciativa no ejecute RPCSS.EXE

En Windows 2000 o XP es caso aparte (de hecho el instalador que ofrecia yo, solo deberia poderse ejecutar en Windows 95, 98 o ME). Aqui el propio sistema SI requiere RPC (el proceso RPCSS.EXE), pero DCOM no es imprescindible (aunque algunos programas del propio Windows utilizan DCOM, pueden pasar perfectamente sin el, si no me estoy equivocando...), por lo que puede desactivarse de forma muy parecida. En Windows 2000 o XP, (repito, si no me equivoco...) desactivar DCOM no cerraria RPCSS.EXE, aunque si evitaria que RPCSS.EXE estuviera escuchando en el puerto 135 para DCOM.

Finalmente, como he comentado antes, aunque DCOM haya sido desactivado, los programas que lo requieran aun parecen poder activarlo automaticamente. Por lo que creo que desactivarlo no supone una perdida de funcionalidad si es que algun programa quisiera usarlo.


En fin, gracias otra vez por el script, lo probaré en mi casa, a ver
como va y comento conclusiones :-)



Gracias de nuevo por responder, Fermu. Si vieras algo en el Script, o cualquier otra cosa, por favor, dimelo para corregirlo antes de que le de el programa este a mi amiga.


Saludos
Fernando M. / Registered Linux User #367696



Mas saludos. Miguel.
Respuesta Responder a este mensaje
#3 fermu
14/03/2005 - 21:47 | Informe spam
Hash: SHA1

Miguel Mollejo Sánchez wrote:

| Hola Fermu, gracias por responder :-)
|
| Continuo la respuesta debajo:


De nada Miguel... da gusto... que explicación tan completa :-))

(si le veo algún problema al script ya te pondré verde... jejeje)

Saludos
Fernando M. / Registered Linux User #367696
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida