远程开启/关闭目标telnet服务的windows脚本RTCS.vbs

所属分类: 脚本专栏 / vbs 阅读数: 586
收藏 0 赞 0 分享
******************************************************************************** 
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 
更多精彩内容其他人还在看

vbscript Split函数用法详解(字符串转数组函数)

本文详细介绍了vbscript中split函数的用法,有关split函数的一些实例,vbscript中split函数的语法介绍,有需要的朋友参考下
收藏 0 赞 0 分享

VBS实现将Excel表格保存为txt文本

希望能够找到个能给excel表另存为TXT的VBS代码,虽然另存为可以选择,但还是需要直接VBS执行这一步另存为TXT格式的,应该如何写代码呢
收藏 0 赞 0 分享

vbs解决处理TXT文本数据相关问题实现代码

使用vbs处理txt数据时,会遇到一些问题,本文将提供详细的解决方法,希望可以帮助你们
收藏 0 赞 0 分享

关于vbs 生成静态页面过程中出现的问题

访问某个aspx页面,然后把服务器返回的页面以filestream 的形式保存为html格式,接下来将介绍实现代码
收藏 0 赞 0 分享

dim函数第三个参数设置截取字符的长度问题

dim函数的第三个参数,也就是截取字符的长度,我在设置这个的时候,出了些问题,提示无效的过程调用或参数,本文详细介绍如何解决
收藏 0 赞 0 分享

邪恶的eval和new Function使用介绍

这些代码可以干什么?可以肯定的是可以干很多猥琐的事
收藏 0 赞 0 分享

WScript.Shell对象SpecialFolders属性未公开文档分享

WshShell对象的SpecialFolders属性返WshSpecialFolders 对象,该对象是一个特殊文件夹集合,其中包含整套Windows特殊文件夹
收藏 0 赞 0 分享

用VBS修改(设置)系统时间和日期的代码

用 VBS 把系统的时间修改到2038年1月19日3时14分07秒之后,这样某些依赖于 Unix 时间戳的程序就会出问题。那么怎样用 VBS 修改系统的时间呢
收藏 0 赞 0 分享

VBS For Next循环的一些细节

For Next 语句是 VBS 中常用的循环语句,你可能已经用过无数次 For Next 循环,但是你是否注意过它的一些细节呢
收藏 0 赞 0 分享

VBS For Next循环的陷阱分享

在《VBS For Next循环的一些细节》中说到了 For Next 循环的控制变量仅仅在循环开始前求值一次,但是其中存在一处陷阱
收藏 0 赞 0 分享
查看更多