远程开启/关闭目标telnet服务的windows脚本RTCS.vbs
程序员文章站
2022-07-04 22:18:28
******************************************************************************** ...
********************************************************************************
rtcs v1.10
remote telnet configure script, by zzzevazzz
welcome to visite www.isgrey.com
usage:
cscript c:\scriptpath\rtcs.vbe targetip username password ntlmauthor telnetport
it will auto change state of target telnet server.
********************************************************************************
描述:远程开启/关闭目标telnet服务的windows脚本。
特点:不依赖于目标的ipc$开放与否。
原理:直接访问目标的windows管理规范服务(wmi)。该服务为系统重要服务,默认启动。
支持平台:win2kpro win2kserver winxp win.net
使用方法:
在命令行方式下使用windows自带的脚本宿主程序cscript.exe调用脚本,例如:
c:\>cscript rtcs.vbe <目标ip> <用户名> <密码> <ntlm验证方式> <telnet服务端口>
其中 ntlm 值可取0,1,2:
0: 不使用 ntlm 身份验证;
1: 先尝试 ntlm 身份验证。如果失败,再使用用户名和密码;
2: 只使用 ntlm 身份验证。
空密码用两个双引号""表示。
脚本自动检查目标telnet服务情况,如果未启动则启动它,相反就关闭。
同一个命令执行两遍,就开/关一次服务。
关闭服务时也必须输入共5个参数,这样可以根据需要把服务设置还原为默认值(ntlm=2,端口23)。
如果telnet服务被禁用,将自动更改为“手动”。
如果要对本地使用,ip地址为127.0.0.1或者一个点(用.表示),用户名和密码都为空(用""表示)。
此脚本为*软件,修改发布请著明原作者。谢谢合作。
本人提供有限技术支持,有问题请到论坛发短消息给我。我的id是zzzevazzz
最后更新:2002-8-23
更新记录:
1.10 更改了输出显示格式。
1.09 解决了空密码的问题。
1.08 代码加密并以测试版发布。
1.07 增加对付服务被“禁用”的功能。
1.06 解决在图形界面下运行的问题。
1.05 对参数做简单判断,防止误操作。
1.04 增加显示usage和详细过程功能。
1.03 增加关闭服务功能。
1.02 增加手动设置端口和ntlm功能。
1.00 完成基本功能,远程启动telnet服务,并设置ntlm=1。
on error resume next
set outstreem=wscript.stdout
if (lcase(right(wscript.fullname,11))="wscript.exe") then
set objshell=wscript.createobject("wscript.shell")
objshell.run("cmd.exe /k cscript //nologo "&chr(34)&wscript.scriptfullname&chr(34))
wscript.quit
end if
if wscript.arguments.count<5 then
usage()
wscript.echo "not enough parameters."
wscript.quit
end if
ipaddress=wscript.arguments(0)
username=wscript.arguments(1)
password=wscript.arguments(2)
ntlm=wscript.arguments(3)
port=wscript.arguments(4)
if not isnumeric(ntlm) or ntlm<0 or ntlm>2 then
usage()
wscript.echo "the value of ntml is wrong."
wscript.quit
end if
if not isnumeric(port) then
usage()
wscript.echo "the value of port is wrong."
wscript.quit
end if
usage()
outstreem.write "conneting "&ipaddress&"...."
set objlocator=createobject("wbemscripting.swbemlocator")
set objswbemservices=objlocator.connectserver(ipaddress,"root/default",username,password)
showerror(err.number)
outstreem.write "setting ntlm="&ntlm&"...."
set objinstance=objswbemservices.get("stdregprov")
set objmethod=objinstance.methods_("setdwordvalue")
set objinparam=objmethod.inparameters.spawninstance_()
objinparam.hdefkey=&h80000002
objinparam.ssubkeyname="software\microsoft\telnetserver\1.0"
objinparam.svaluename="ntlm"
objinparam.uvalue=ntlm
set objoutparam=objinstance.execmethod_("setdwordvalue",objinparam)
showerror(objoutparam.returnvalue)
outstreem.write "setting port="&port&"...."
objinparam.svaluename="telnetport"
objinparam.uvalue=port
set objoutparam=objinstance.execmethod_("setdwordvalue",objinparam)
showerror(objoutparam.returnvalue)
outstreem.write "querying state of telnet server...."
set objswbemservices=objlocator.connectserver(ipaddress,"root\cimv2",username,password)
set colinstances=objswbemservices.execquery("select * from win32_service where name='tlntsvr'")
showerror(err.number)
for each objinstance in colinstances
if objinstance.startmode="disabled" then
outstreem.write "telnet server has been disabled. now changeing start mode to manual...."
set objmethod=objinstance.methods_("changestartmode")
set objinparam=objmethod.inparameters.spawninstance_()
objinparam.startmode="manual"
set objoutparam=objinstance.execmethod_("changestartmode",objinparam)
showerror(objoutparam.returnvalue)
end if
outstreem.write "changeing state...."
if objinstance.started=true then
intstatus=objinstance.stopservice()
showerror(intstatus)
wscript.echo "target telnet server has been stop successfully."
else
intstatus=objinstance.startservice()
showerror(intstatus)
wscript.echo "target telnet server has been start successfully!"
wscript.echo "now, you can try: telnet "&ipaddress&" "&port&", to get a shell."
end if
next
function showerror(errornumber)
if errornumber<>0 then
wscript.echo "error!"
wscript.quit
else
wscript.echo "ok!"
end if
end function
function usage()
wscript.echo string(79,"*")
wscript.echo "rtcs v1.10"
wscript.echo "remote telnet configure script, by zzzevazzz"
wscript.echo "welcome to visite www.isgrey.com"
wscript.echo "usage:"
wscript.echo "cscript "&wscript.scriptfullname&" targetip username password ntlmauthor telnetport"
wscript.echo "it will auto change state of target telnet server."
wscript.echo string(79,"*")&vbcrlf
end function
rtcs v1.10
remote telnet configure script, by zzzevazzz
welcome to visite www.isgrey.com
usage:
cscript c:\scriptpath\rtcs.vbe targetip username password ntlmauthor telnetport
it will auto change state of target telnet server.
********************************************************************************
描述:远程开启/关闭目标telnet服务的windows脚本。
特点:不依赖于目标的ipc$开放与否。
原理:直接访问目标的windows管理规范服务(wmi)。该服务为系统重要服务,默认启动。
支持平台:win2kpro win2kserver winxp win.net
使用方法:
在命令行方式下使用windows自带的脚本宿主程序cscript.exe调用脚本,例如:
c:\>cscript rtcs.vbe <目标ip> <用户名> <密码> <ntlm验证方式> <telnet服务端口>
其中 ntlm 值可取0,1,2:
0: 不使用 ntlm 身份验证;
1: 先尝试 ntlm 身份验证。如果失败,再使用用户名和密码;
2: 只使用 ntlm 身份验证。
空密码用两个双引号""表示。
脚本自动检查目标telnet服务情况,如果未启动则启动它,相反就关闭。
同一个命令执行两遍,就开/关一次服务。
关闭服务时也必须输入共5个参数,这样可以根据需要把服务设置还原为默认值(ntlm=2,端口23)。
如果telnet服务被禁用,将自动更改为“手动”。
如果要对本地使用,ip地址为127.0.0.1或者一个点(用.表示),用户名和密码都为空(用""表示)。
此脚本为*软件,修改发布请著明原作者。谢谢合作。
本人提供有限技术支持,有问题请到论坛发短消息给我。我的id是zzzevazzz
最后更新:2002-8-23
更新记录:
1.10 更改了输出显示格式。
1.09 解决了空密码的问题。
1.08 代码加密并以测试版发布。
1.07 增加对付服务被“禁用”的功能。
1.06 解决在图形界面下运行的问题。
1.05 对参数做简单判断,防止误操作。
1.04 增加显示usage和详细过程功能。
1.03 增加关闭服务功能。
1.02 增加手动设置端口和ntlm功能。
1.00 完成基本功能,远程启动telnet服务,并设置ntlm=1。
复制代码 代码如下:
on error resume next
set outstreem=wscript.stdout
if (lcase(right(wscript.fullname,11))="wscript.exe") then
set objshell=wscript.createobject("wscript.shell")
objshell.run("cmd.exe /k cscript //nologo "&chr(34)&wscript.scriptfullname&chr(34))
wscript.quit
end if
if wscript.arguments.count<5 then
usage()
wscript.echo "not enough parameters."
wscript.quit
end if
ipaddress=wscript.arguments(0)
username=wscript.arguments(1)
password=wscript.arguments(2)
ntlm=wscript.arguments(3)
port=wscript.arguments(4)
if not isnumeric(ntlm) or ntlm<0 or ntlm>2 then
usage()
wscript.echo "the value of ntml is wrong."
wscript.quit
end if
if not isnumeric(port) then
usage()
wscript.echo "the value of port is wrong."
wscript.quit
end if
usage()
outstreem.write "conneting "&ipaddress&"...."
set objlocator=createobject("wbemscripting.swbemlocator")
set objswbemservices=objlocator.connectserver(ipaddress,"root/default",username,password)
showerror(err.number)
outstreem.write "setting ntlm="&ntlm&"...."
set objinstance=objswbemservices.get("stdregprov")
set objmethod=objinstance.methods_("setdwordvalue")
set objinparam=objmethod.inparameters.spawninstance_()
objinparam.hdefkey=&h80000002
objinparam.ssubkeyname="software\microsoft\telnetserver\1.0"
objinparam.svaluename="ntlm"
objinparam.uvalue=ntlm
set objoutparam=objinstance.execmethod_("setdwordvalue",objinparam)
showerror(objoutparam.returnvalue)
outstreem.write "setting port="&port&"...."
objinparam.svaluename="telnetport"
objinparam.uvalue=port
set objoutparam=objinstance.execmethod_("setdwordvalue",objinparam)
showerror(objoutparam.returnvalue)
outstreem.write "querying state of telnet server...."
set objswbemservices=objlocator.connectserver(ipaddress,"root\cimv2",username,password)
set colinstances=objswbemservices.execquery("select * from win32_service where name='tlntsvr'")
showerror(err.number)
for each objinstance in colinstances
if objinstance.startmode="disabled" then
outstreem.write "telnet server has been disabled. now changeing start mode to manual...."
set objmethod=objinstance.methods_("changestartmode")
set objinparam=objmethod.inparameters.spawninstance_()
objinparam.startmode="manual"
set objoutparam=objinstance.execmethod_("changestartmode",objinparam)
showerror(objoutparam.returnvalue)
end if
outstreem.write "changeing state...."
if objinstance.started=true then
intstatus=objinstance.stopservice()
showerror(intstatus)
wscript.echo "target telnet server has been stop successfully."
else
intstatus=objinstance.startservice()
showerror(intstatus)
wscript.echo "target telnet server has been start successfully!"
wscript.echo "now, you can try: telnet "&ipaddress&" "&port&", to get a shell."
end if
next
function showerror(errornumber)
if errornumber<>0 then
wscript.echo "error!"
wscript.quit
else
wscript.echo "ok!"
end if
end function
function usage()
wscript.echo string(79,"*")
wscript.echo "rtcs v1.10"
wscript.echo "remote telnet configure script, by zzzevazzz"
wscript.echo "welcome to visite www.isgrey.com"
wscript.echo "usage:"
wscript.echo "cscript "&wscript.scriptfullname&" targetip username password ntlmauthor telnetport"
wscript.echo "it will auto change state of target telnet server."
wscript.echo string(79,"*")&vbcrlf
end function