首页
社区
课程
招聘
[原创][翻译]MSSQL渗透测试:存储过程的持久化
发表于: 2021-9-13 17:25 1627

[原创][翻译]MSSQL渗透测试:存储过程的持久化

2021-9-13 17:25
1627

地址:8f8K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2Z5j5h3y4C8K9h3&6Y4j5i4u0@1K9h3y4D9k6i4y4Q4x3X3g2A6L8W2)9J5c8X3#2K6M7%4q4D9i4K6u0V1k6X3!0J5i4K6u0V1M7r3g2F1N6r3g2K6N6r3g2J5i4K6u0V1M7%4c8G2M7X3g2V1i4K6u0V1M7s2u0G2j5$3g2V1N6i4u0W2M7#2)9J5k6s2m8W2M7Y4y4A6M7%4c8W2L8X3y4W2i4K6u0r3
作者:Raj Chandel
日期:2021年9月13日

在本文中,我们将学习在SQL服务器中获得持久性的许多方法之一。这篇文章是对我们的MSSQL渗透测试系列的补充。

获得持久性是执行红队行动的重要步骤之一。当在MSSQL上执行这样的操作时,有可能通过启动存储过程、触发器和注册表项获得持久性。如果您拥有正确用户和数据库的权限,那么很容易实现持久性。如果实例是通过域用户运行的,持久性可能更隐蔽。

当通过启动存储过程获得持久性时,攻击者必须具有sysadmin权限。另一个重要的事情是这个存储过程应该在主数据库中。如果sa不拥有存储过程,它们将没有输入和输出参数,这意味着它们不会与服务器一起重新启动,这将超过持久性的全部要点。

因此,让我们开始,看看如何通过启动存储过程获得持久性。

首先,我们假设xp_cmdshell已启用,因此现在我们将使用以下查询来调用主数据库:


现在我们将在wget的帮助下,在我们的攻击机器上下载PowerShell one-liner的脚本,如下图所示:

现在在脚本中,在cat命令的帮助下,用您的本地主机和本地端口交换给定的IP地址。切换IP地址后,让python服务器将PowerShell脚本共享给目标机器,如下图所示:

现在,让我们创建一个存储过程,它将从在线python服务器调用PowerShell脚本,为此,使用以下查询:


现在我们将把这个存储过程移到启动阶段,因为我们希望它在服务器启动时立即执行。我们将在以下查询的帮助下做到这一点:


现在,我们在启动时有了存储过程,您可以使用以下查询来确认:


让我们打开我们的Netcat监听器,如下图所示:

现在只剩下重启服务器了。要重新启动服务器,右键单击它并从下拉菜单中选择停止选项,如下图所示:

然后再次右键单击服务器,并从下拉菜单中选择开始选项,如下图所示:

服务器重新启动后,您将在netcat上有一个会话。

这就是如何使用启动存储过程在本地获得持久性
作者:Yashika Dhir是一名网络安全研究员、渗透测试员、红队队员、紫队发烧友。在LinkedinTwitter上联系她

 
 
 
 
 
USE master
GO
USE master

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-9-13 17:41 被梦幻的彼岸编辑 ,原因:
收藏
免费 1
支持
分享
最新回复 (2)
雪    币: 177
活跃值: (305)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好家伙 一天一个入狱小技巧
2021-9-13 18:32
0
雪    币: 4183
活跃值: (5943)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
3
挺鸡助的
2021-9-13 23:11
0
游客
登录 | 注册 方可回帖
返回