分享
 
 
 

MSSQL扩展存储后门

王朝mssql·作者佚名  2006-03-10
窄屏简体版  字體: |||超大  

Author: lake2 ( http://lake2.0x54.org )

注:本文发表于《黑客防线》2006年第2期

继WebShell、FTPShell之后,让我们再来玩玩SQLShell 吧。

使用数据库考虑最多的就是速度和效率,所以呢,数据库系统就使用了存储过程这种机制来提高速度和效率。SQL Server 2000 支持5种类型的存储过程,这里我们主要说说SQL Server的扩展存储过程,因为我们要利用它做后门。

看看书上对扩展存储过程的定义:

在SQL Server 2000环境之外的动态链接库称为扩展存储过程,其前缀是xp_。虽然这些动态链接库在SQL Server环境之外,但是它们可以被加载到SQL Server系统中,并按照使用存储过程的方式执行。

呵呵,最典型的扩展存储就是SQL Serve自带那个xp_cmdshell,真是杀人灭口居家旅行必备良药啊。那个扩展存储需要sysadmin权限才能执行,一旦执行了CMD,那可是MSSQL的权限哦,而MSSQL是以服务启动的,也就是System权限,嘿嘿,比管理员大叔的权力还大!

为了安全起见,一般管理员大叔都是删除了xp_cmdshell过程的,更有甚者直接删掉带有xp_cmdshell的文件xplog70.dll。这样多不好啊,我们没得玩了。

我的后门思路就放在扩展存储过程上面,因为扩展存储是以dll方式存在,而且那个dll是用C++编写且可以任意调用API函数。这样我们就可以写一个执行CMD的扩展存储(最初我是想直接修改xplog70.dll中xp_cmdshell的名字,不过失败了,在此略过略过)。

扩展存储过程可在VC里创建。创建扩展存储过程的工程之后,VC会自动生成一个扩展存储过程模板,稍稍看看,你就很容易上手了(MS真是想得周到啊)。

这里我主要是去掉了返回值,增加了一个ShellExecute函数用于执行cmd。ShellExecute函数可是一个比较有用的函数,它可以根据后缀自动选择相关联的程序打开文件。

以下是其用法:

HINSTANCE ShellExecute(

HWND hwnd,

LPCTSTR lpOperation,

LPCTSTR lpFile,

LPCTSTR lpParameters,

LPCTSTR lpDirectory,

INT nShowCmd

);

第一个参数是句柄,在这里不用;第二个参数是对文件的动作,这里选“open”;第三个参数是执行的文件,这里自然是cmd.exe了;第四个参数是命令行参数,这个填程序接收到的参数;第五个参数是默认目录,把它空着;最后一个参数是程序运行时的显示方式,MSSQL都是以服务启动的,这里即使是最大化显示管理员大叔也是看不到的。

好了,所以我们的函数使用为:ShellExecute(0,"open","cmd.exe",spParam,NULL,SW_SHOW);spParam是从扩展存储过程得到的参数,具体的实现请看源代码;扩展存储的编写请参阅MSDN。

ShellExecute有个坏处就是看不到回显,不过这里把权限拿到了,不要回显也无所谓。当然你也可以自己写个显示回显的扩展存储过程。

Ok,扩展存储命名为xp_lake2,dll文件名为xplake2.dll,现在让我们把它注册到SQL Server:

USE master

EXEC sp_addextendedproc 'xp_lake2', 'xplake2.dll'

注意,添加扩展存储过程要求连接SQL Server的帐户有sysadmin权限;使用相对路径的话得把dll文件放到SQL Server目录的binn之下。

好啦,我们可以试试效果了,调用的参数跟xp_cmdshell一样,只是没有回显。在查询分析器里调用它:

USE master

EXEC xp_lake2 'net user > c:\lake2.txt'

赶快去C盘看看有没有生成lake2.txt吧!至于权限嘛,呵呵,当然是system啦。

SQL Server的扩展存储都要求sysadmin才能执行,不爽,让我们给它改改,让public也可以玩。

如果拿到图形界面用企业管理器就可以轻松搞定,只需把xp_lake2的Exec权限赋给public就ok了。在查询分析器里就用GRANT:

GRANT exec

On xp_lake2

TO public

然后换一个普通的SQL Server用户调用xp_lake2试试,执行命令还是system权限哦。呵呵,在webshell里试试吧,结果也一样的。以下是利用海洋2006调用这个扩展存储过程的截图:

因为返回的值是空,所以显示出错,但是命令是执行了的,现在命令行下用net user看看吧:

好啦,文章到此结束,大家赶紧去留自己的SQLShell吧^_^

dll可以在这里下载到:http://www.0x54.org/lake2/program/xplake2.dll

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有