我的3389客户端连接不到服务器

我的3389客户端连接不到服务器,第1张

在win2000 Professional版中安装3389终端服务
众所周知windows2000 profassional并不支持3389终端服务,所以我们如果发现得到管理员密码的肉机是此版本,只能放弃安装终端服务的念头。但是现在我们已经可以在profassional版中安装终端服务了!
方法如下:
1 将profassional版改变为server版
2 安装终端服务
关于安装终端服务的细节网络中已经有许多优秀的文章,这里不再重复。
下边就说说如何将profassional版改变为server版:
原理:其实windows 2000的各个版本都使用了同样的程序、动态链接库,它们之间最大的差别是在注册表中。windows2000三合一光盘就证明了这一点。因此只要将profassional版注册表中的相关项目改为server及以上版本,就可以在profassional版中安装终端服务了。
现在3am Laboratories已经将改变win2000版本的方法做成一个非常方便使用的软件:NTSwitch,让我们可以随心所欲地快速改变版本。此软件可以在小凤居中下载到,下载地址为URL >一、win 2k下终端开启终端
首先用ECHO写一个3389reg文件,然后导入到注册表,echo代码如下:
echo Windows Registry Editor Version 500 3389reg
echo 3389reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\netcache] 3389reg
echo "Enabled"="0" 3389reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] 3389reg
echo "ShutdownWithoutLogon"="0" 3389reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer] 3389reg
echo "EnableAdminTSRemote"=dword:00000001 3389reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] 3389reg
echo "TSEnabled"=dword:00000001 3389reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD] 3389reg
echo "Start"=dword:00000002 3389reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService] 3389reg
echo "Start"=dword:00000002 3389reg
echo [HKEY_USERS\DEFAULT\Keyboard Layout\Toggle] 3389reg
echo "Hotkey"="1" 3389reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp] 3389reg
echo "PortNumber"=dword:00000D3D 3389reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] 3389reg
echo "PortNumber"=dword:00000D3D 3389reg
(如果要改变终端端口只须把上面的两个D3D都改一下就可以了)
简单说明一下,""符号是覆盖写入文件,如无此文件则创建,有则覆盖原来的内容写入。""是追加写入,即在原有文件内容的基础上在后面写入内容。这里是写入内容到3389reg文件中!需要注意的是第二行,那个作用是写入一行空格,至于为什么需要这样,那是因为reg文件的格式必须如此!成功写入完毕后接着执行导入 *** 作,执行"regedit /s 3389reg"。这样注册表文件就已经顺利导入到注册表里去了。不过需要注意的是在cmdshell下不要输错任何一个字符,否则将无法执行,建议先自己打好在记事本上,确保无误之后再复制到cmdshell窗口执行。
因为win 2k下开终端不能像XP一样可以立即生效,而是需重启机器后才生效。
然后需要做的事就是重启了,如何使目标服务器重启呢?和朋友多方测试后,觉得用下面这个方法比较妥当。
(1)在cmdshell下执行如下代码:
@ECHO OFF cd/d %temp% echo [version] {out}inf
(set inf=InstallHinfSection DefaultInstall)
echo signature=$chicago$ {out}inf
echo [defaultinstall] {out}inf
rundll32 setupapi,%inf% 1 %temp%\{out}inf r
按顺序将以上五行代码一行一行地复制到cmdshell上,复制完一行按一次回车执行,五行都执行完毕后,服务器就会重启的了。至于原理什么的我就不废话了。当然了,让服务器重启的方法比较多,比如结束掉系统关键进程、代码模拟按键等都是可以的,不过个人认为上面推荐的这个方法比较保险!如无意外,等待服务器完成重启之后再连接目标发现远程桌面服务已经成功开启了。
(2)一个简单的办法就是用ntsdexe(win 2k以上自带的命令)结束一个重要的进程就可以实现机器重启了!!比如结束winlogonexe,lsassexe也可以但结束后会跳出重启倒计时(不太好~)
winlogonexe被关闭后机器立刻强制重启了。
命令执行格式为ntsd -c q -p PID 200 ntsdexe winlogonexe
那如何知道winlogonexe的PID进程号呢~
以下这个脚本可以列举当前所有进程的PID:
wscriptecho "PID ProcessName"
for each ps in getobject("winmgmts:\\\root\cimv2:win32_process")instances_
wscriptecho pshandlevbtabpsname
next
在CMDSHELL窗口下贴上如下ECHO代码就可以得到查看进程PID的脚本1vbe:
echo wscriptecho "PID ProcessName"1vbe
echo for each ps in getobject("winmgmts:\\\root\cimv2:win32_process")instances_ 1vbe
echo wscriptecho pshandle^vbtab^psname1vbe
echo next1vbe
生成1vbe后请检查一下echo出来的脚本是否有错(才四行,对一下上面给出的就可以了)。
运行1vbe得到如下运行结果:
C:\WINNT\system32cscript 1vbe
cscript 1vbe
Microsoft (R) Windows 脚本宿主版本 51 for Windows
版权所有(C) Microsoft Corporation 1996-1999 All rights reserved
PID ProcessName
0 System Idle Process
8 System
152 smssexe
180 csrssexe
200 winlogonexe
228 servicesexe
240 lsassexe
424 svchostexe
472 spoolsvexe
512 msdtcexe
616 svchostexe
628 KAVSvcEXE
660 llssrvexe
692 nvsvc32exe
728 regsvcexe
748 MSTaskexe
776 alterexe
900 svchostexe
916 WinMgmtexe
1088 Dfssvcexe
484 ExplorerEXE
1444 mdmexe
1340 Serverexe
1224 ibguardexe
1252 KAVSvcUIEXE
1256 ibserverexe
1336 internatexe
1204 Uspdsexe
720 barexe
1288 dllhostexe
1580 inetinfoexe
1672 cmdexe
1464 pppoeexe
1704 regeditexe
316 cscriptexe
从上面可以看出当前winlogonexe的PID号为200运行命令ntsd -c q -p 252 (这里的200要替换为winlogonexe进程对就的PID啦)过会儿机器马上重启了(ntsdexe是WIN自带的可用来结束任意级别进程)等着收获吧~~
二、winxp和win2003终端开启
相对于2000的系统来说,XP和2003cmdshell下开启远程桌面服务就比较容易一些了,起码无需重启嘛!第一种方法也是用"echo"命令写入一个 3389reg文件,再"regedit /s 3389reg"导入注册表文件即可开启,比较简单,与上面介绍的2000的开启方法类似。将如下代码一行一行地复制到cmdshell窗口后按回车执行:
echo Windows Registry Editor Version 500 3389reg
echo 3389reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] 3389reg
echo "fDenyTSConnections"=dword:00000000 3389reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp] 3389reg
echo "PortNumber"=dword:00000d3d 3389reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] 3389reg
echo "PortNumber"=dword:00000d3d 3389reg
完成以上 *** 作后再执行"regedit /s 3389reg"导入即可生效!不过这个方法相对来说比较麻烦,也比较复杂一些。我们还可以用另外一种比较简单的方法来开启远程桌面服务的,嘿嘿。在介绍另一个 *** 作方法之前,我们先来熟悉下2003系统下远程桌面服务的一个最关键的注册表键值。
在"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"
下数值名称为"fDenyTSConnections"的这一项,可以看到它的数值数据为1或0。数值为1的时候关闭远程桌面服务,数值为0的时候开启远程桌面服务。换句话说,我们只要可以在cmdshell下更改这个关键的注册表键值数据就可以达到实现开启远程桌面服务的目的了!有幸的是,在XP和2003下有一个"reg"命令完全可以做到这一点。
嘿嘿。这里我们找一台 *** 作系统为2003的服务器,通过和上面介绍的同样方法溢出后返回一个cmdshell,当我们尝试连接的时候会发现根本无法连接上去,下面详细说明一下用"reg"命令开启远程桌面服务。
查看注册表键值执行:
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"
我们发现"fDenyTSConnections"键值数据为"0x1",这个是十六进制数的1。上面提到,数据为1则没有开启远程桌面服务。我们要做的就是把"0x1"改成"0x0"!直接用"reg add"是不行的,必须把原来键值删掉再添加!
在cmdshell下执行:
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
会询问是否"要删除注册表值 fDenyTSConnections 吗",当然Yes了,
再执行:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0
提示 *** 作成功完成。
再查看注册表键值执行:
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"
我们可以查看一下,看看是不是真的改掉了,发现已经成功更改了数据,现在再来连接服务器的3389看看,发现已经可以成功连接上了,加个用户进去参观咯。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13490594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-17
下一篇 2023-08-17

发表评论

登录后才能评论

评论列表(0条)

保存