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

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

2021-9-13 17:25
1350

地址:https://www.hackingarticles.in/mssql-for-pentester-stored-procedures-persistence/
作者: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

[注意]APP应用上架合规检测服务,协助应用顺利上架!

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