T1505.001: SQL 存储过程

持久化

摘要

攻击者可能滥用 SQL 存储过程来建立对系统的持久访问。SQL 存储过程是可以保存和重用的代码,以便数据库用户不必浪费时间重写频繁使用的 SQL 查询。存储过程可以通过使用过程名的 SQL 语句调用数据库来调用,也可以通过定义的事件(例如当 SQL 服务器应用程序启动/重启时)调用。 攻击者可能构造可在 SQL 数据库服务器中提供持久化机制的恶意存储过程。(Citation: NetSPI Startup Stored Procedures)(Citation: Kaspersky MSSQL Aug 2019) 要通过 SQL 语法执行操作系统命令,攻击者可能必须启用额外功能,例如用于 MSSQL Server 的 xp_cmdshell。(Citation: NetSPI Startup Stored Procedures)(Citation: Kaspersky MSSQL Aug 2019)(Citation: Microsoft xp_cmdshell 2017) Microsoft SQL Server 可以启用公共语言运行时 (CLR) 集成。启用 CLR 集成后,应用程序开发人员可以使用任何 .NET 框架语言(例如 VB .NET、C# 等)编写存储过程。(Citation: Microsoft CLR Integration 2017) 攻击者可能构造或修改链接到存储过程的 CLR 程序集,因为这些 CLR 程序集可以被设置为执行任意命令。(Citation: NetSPI SQL Server CLR)

来源归属

来源:MITRE ATT&CK · 置信度:high

平台

  • Windows
  • Linux

战术

持久化

参考来源