一年一度的网络安全建设成果检验即将开始,在网络安全实战攻防演练这场最关键的战役中,办公应用系统、Web中间件,数据库等是攻击方主要的攻击对象,由于使用量最大,数据库往往会成为攻击者的首选目标之一。
以微软SQLServer为例,除了常见的SQL注入漏洞,攻击方还会用一些“出其不意”的招式,将SQLServer原本的优势转变为攻击的突破口,比如在相应的权限下,攻击者可以利用SQLServer强大的存储过程执行不同的高级功能,通过增加SQLServer数据库用户,权限维持等方式,攻击用户数据库系统,下文将详述攻击方那些“不常见”的数据库攻击手段以及防守方的应对思路。
文章目录
一、SQLServer概述
1、客户端/服务器数据库系统
2、TDS协议
二、这些“突破口”,可能会被攻击方利用
1、SQLServer危险的存储过程
2、SQLServer触发器
3、SQLServerCOM组件
4、SQLServerCLR相关利用
5、SQLServerR和Python的利用
6、SQLServer代理执行计划任务
三、攻击方实战思路分析
1、SQLServer实例发现
2、SQLServer口令爆破
3、SQLServer权限提升
4、SQLServer权限维持
5、SQLServer横向移动
四、防守方如何应对
1、账号管理
2、认证授权
3、配置日志审计
4、配置网络通信协议
5、删除不必要的存储过程
6、删除不必要的功能和服务
7、安装补丁
SQLServer概述SQLServer是Microsoft开发的关系数据库管理系统(RDBMS)。它是市场上最受欢迎的DBMS之一。SQLServer具有极其广泛的用途,它可以在各个方面使用,小到存储个人博客的内容到大到存储客户数据。
版本
描述
EnterpriseEdition
此版本仅在WindowsServer操作系统上运行。适用于对速度和可用性具有较高优先级的大型生产数据库服务器。提供复制和联机分析过程(OLAP)服务等功能,这些服务可能会增加其安全风险。
StandardEdition
该版本与EnterpriseEdition相似,但缺少虚拟接口系统局域网(VISAN)支持和某些高级OLAP功能。
PersonalEdition
它旨在用于工作站和便携式计算机,而不是服务器。其设计最多支持五个数据库用户。
DeveloperEdition
面向开发人员版本,它与EnterpriseEdition具有相似的功能,但并不意味着可以在真实的生产环境中运行。
客户端/服务器数据库系统
SQLServer是一个客户端/服务器数据库管理系统(DBMS)。这允许有许多不同的客户端同时,全部连接到SQLServer。这些客户端的每一个都可以通过不同的工具进行连接。
例如,一个客户端可能使用如SQLServerManagementStudio(SSMS)之类的图形工具,而另一客户端可能使用诸如sqlcmd之类的命令行工具。同时,网站也可以从Web应用程序连接到SQLServer。并且可能有许多其他客户端都使用自己的工具出于自己的目的进行连接。
客户端/服务器DBMS的主要优点是多个用户可以同时访问它,每个用户都有特定的访问级别。如果数据库管理员配置对应的权限,则任何连接到SQLServer的客户端将只能访问他们被允许访问的数据库。他们只能执行允许执行的任务。所有这些都从SQLServer本身内部进行控制。
SQLServer是在服务帐户的上下文中在操作系统上运行的一组Windows服务。每次安装SQLServer实例时,实际上都会安装一组Windows服务并具有唯一的名称。现有的SQLServer帐户类型:
●Windows帐户。
●SQLServer登录名(SQLServer内部)。
●数据库用户(SQLServer内部)。
Windows帐户和SQLServer登录名用于登录SQLServer。除非系统管理员,否则必须将SQLServer登录名映射到数据库用户才能访问数据。数据库用户是在数据库级别内单独创建的。
SQLServer的常见角色是:
●Sysadmin角色:SQLServer管理员。
●Public角色:最低特权,类似于Windows中的everyone组。
●更多请参考: