渗透测试中的MSSQL横向活动研究

本文探讨了如何在渗透测试中利用MSSQL CLR进行横向移动,无需接触磁盘或使用XP_CMDSHELL。通过介绍工具Squeak,解释了SQL Server CLR的原理,展示了在不同版本SQL Server上启用和执行CLR代码的步骤,以及如何防御和检测此类攻击。
摘要由CSDN通过智能技术生成

在这里插入图片描述

写在前面的话
使用发现的凭证在环境中进行横向移动/渗透是渗透测试团队的共同目标。在时间受限的操作中,快速可靠地使用新获得的一组凭据的这种能力是必不可少的。在这篇文章中,我们将介绍如何通过MSSQL CLR自动进行横向移动/渗透,整个过程中不会接触磁盘,也不需要XP_CMDSHELL。除此之外,我们还会介绍如何防御并检测这种类型的渗透攻击。

不过,SQL Server进程仍会将DLL临时写入磁盘。

利用MSSQL服务的后渗透利用需要通过存储在进程中的XP_CMDSHELL来执行命令,并在MSSQL进程的上下文中执行操作系统命令。为了使用这种技术来执行自定义代码,还需要使用到LOLBINS、添加一个新的操作系统用户或通过BCP向磁盘写入二进制代码,但这样很明显会增加被检测到的机率。

这篇文章中涉及到的工具Squeak可以在获取到:

https://github.com/nccgroup/nccfsas/tree/main/Tools/Squeak

关于MSSQL和SQL Server CLR
MSSQL是指微软的SQLServer数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。SQL Server一开始并不是微软自己研发的产品,而是当时为了要和IBM竞争时,与Sybase合作所产生的,其最早的发展者是Sybase,同时微软也和Sybase合作过 SQL Server 4.2版本的研发,微软已将SQL Server 4.2移植到Windows NT(当时为3.1版),在与Sybase终止合作关系后,自力开发出SQL Server 6.0版,往后的SQL Server即均由微软自行研发。

SQL CLR (SQL Common Language Runtime) 是自 SQL Server 2005 才出现的新功能,它将.NET Framework中的CLR服务注入到 SQL Server 中,让 SQL Server 的部分数据库对象可以使用 .NET Framework 的编程语言开发(只支持VB.NET和C#),包括预存程序、用户自定义函数、触发程序、用户自定义类型以及用户自定义汇总函数等功能。Microsoft SQL Server 2005之后,实现了对 Microsoft .NET Framework 的公共语言运行时(CLR)的集成。CLR 集成使得现在可以使用 .NET Framework 语言编写代码,从而能够在 SQL Server 上运行,现在就可以通过 C# 来编

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值