Abuso de procedimentos armazenados
O que é Abuso de procedimentos armazenados?
Abuso de procedimentos armazenadosExploracao de procedimentos armazenados privilegiados ou inseguros para executar SQL arbitrario, comandos do SO ou escalar privilegios a partir da base de dados.
Os procedimentos armazenados encapsulam SQL no servidor da base de dados e correm muitas vezes com privilegios elevados. O abuso ocorre quando um atacante invoca primitivas perigosas (xp_cmdshell, OPENROWSET, sp_OACreate em MS SQL; UTL_FILE, DBMS_SCHEDULER em Oracle; COPY ... PROGRAM em PostgreSQL) ou quando procedimentos da aplicacao concatenam parametros em EXEC/sp_executesql sem binding, reintroduzindo injecao SQL dentro de codigo confiado. Consequencias: execucao de comandos com a conta de servico da BD, movimento lateral por servidores ligados, exfiltracao por escrita de ficheiros e contorno do controlo de acesso da aplicacao. Endurecimento: desativar procedimentos perigosos, privilegio minimo, sp_executesql com parametros tipados e restricao do EXECUTE.
● Exemplos
- 01
Apos injecao em MS SQL Server, usar xp_cmdshell para executar whoami como a conta de servico.
- 02
Abusar de COPY ... PROGRAM em PostgreSQL via um procedimento para abrir uma reverse shell.
● Perguntas frequentes
O que é Abuso de procedimentos armazenados?
Exploracao de procedimentos armazenados privilegiados ou inseguros para executar SQL arbitrario, comandos do SO ou escalar privilegios a partir da base de dados. Pertence à categoria Ataques e ameaças da cibersegurança.
O que significa Abuso de procedimentos armazenados?
Exploracao de procedimentos armazenados privilegiados ou inseguros para executar SQL arbitrario, comandos do SO ou escalar privilegios a partir da base de dados.
Como funciona Abuso de procedimentos armazenados?
Os procedimentos armazenados encapsulam SQL no servidor da base de dados e correm muitas vezes com privilegios elevados. O abuso ocorre quando um atacante invoca primitivas perigosas (xp_cmdshell, OPENROWSET, sp_OACreate em MS SQL; UTL_FILE, DBMS_SCHEDULER em Oracle; COPY ... PROGRAM em PostgreSQL) ou quando procedimentos da aplicacao concatenam parametros em EXEC/sp_executesql sem binding, reintroduzindo injecao SQL dentro de codigo confiado. Consequencias: execucao de comandos com a conta de servico da BD, movimento lateral por servidores ligados, exfiltracao por escrita de ficheiros e contorno do controlo de acesso da aplicacao. Endurecimento: desativar procedimentos perigosos, privilegio minimo, sp_executesql com parametros tipados e restricao do EXECUTE.
Como se defender contra Abuso de procedimentos armazenados?
As defesas contra Abuso de procedimentos armazenados costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.
Quais são outros nomes para Abuso de procedimentos armazenados?
Nomes alternativos comuns: Abuso de xp_cmdshell.
● Termos relacionados
- attacks№ 1084
Injeção SQL
Ataque de injeção de código que insere SQL controlado pelo atacante numa consulta à base de dados, permitindo ler, alterar ou destruir dados.
- attacks№ 767
Injecao em ORM
Injecao contra aplicacoes que usam um ORM, abusando de queries dinamicas, mass-assignment ou escapes para SQL bruto para manipular o acesso a dados.
- vulnerabilities№ 860
Escalada de privilégios
Classe de vulnerabilidades que permite a um atacante obter permissões superiores às concedidas inicialmente, por exemplo passar de utilizador normal a administrador.