Тестирование на проникновение MSSQL или пентестинг MSSQL с помощью функции Impersonate. Самая ранняя реализация Impersonate была в SQL Server 7.0, выпущенном в январе 1993 года. Эта команда используется для аутентификации пользователя от имени другого пользователя.

Существует множество случаев, когда на компьютере необходимо войти в систему под чужим именем. Например, у вас может не быть административных прав, необходимых для таких задач, как установка нового программного обеспечения или доступ к файлам. Однако бывают случаи, когда это необходимо, даже если у вас есть соответствующий уровень привилегий. В таких случаях Microsoft предоставляет функцию имперсонации под названием «Impersonate«. Это одна из встроенных функций безопасности, которая проста в использовании. В этой статье рассказывается о том, как ее можно использовать в Microsoft SQL Server Management Studio (SSMS).
Прежде чем приступить к работе (Тестирование на проникновение MSSQL) , необходимо понять несколько вещей; первая из них заключается в том, что SQL Server имеет процесс входа в систему, который требует аутентификации с помощью действительного имени пользователя и пароля. Когда вы входите в систему под именем пользователя, SSMS запрашивает пароль этого пользователя. Следующее, что необходимо понять, это концепция имперсонализации — вы можете войти в систему под именем одного пользователя, но потом сменить свою роль. Это означает, что если ваш текущий логин не авторизован для выполнения задачи, которую вы хотите решить, вы можете переключиться на другую учетную запись с помощью имперсонализации и выполнить работу.
или Зарегистрируйся.
Инструмент Juicy Potato используется для взлома или подражания входа в систему SQL. Он автоматически извлекает имя пользователя и пароль с SQL-сервера. Таким образом, пользователи могут использовать инструмент для взлома своей или чужой базы данных без каких-либо ошибок. Вся информация будет сохранена на их компьютере.
Стоит отметить, что этот инструмент можно использовать для извлечения информации из определенной таблицы или столбца. Это очень удобно для пентестеров во время анализа базы данных и удаления важных компонентов. Программу также можно применять для входа в базу данных без информации об имени для входа. Этот инструмент является единственным в своем роде; он предназначен для быстрого и простого извлечения всей необходимой информации из SQL Server, MySQL, MS Access, Oracle и IBM DB2. Программа также может создавать файлы доступа и скрипты. Пользователь имеет возможность настроить вывод данных в соответствии со своими требованиями. Таким образом, это позволяет ему делать все, что он захочет, с базой данных в один щелчок мыши.
Этот инструмент обладает множеством функций, которые делают его надежным и простым в использовании. Он будет полезен для сетевых администраторов, пентестеров, хакеров. Программа выполняет поставленные задачи без каких-либо проблем и ошибок. Она легко настраивается, что позволяет пользователю выбрать все параметры в соответствии со своими желаниями. Человеку не требуются какие-либо особые знания ПК или программирования, чтобы использовать этот инструмент.
Enabling Impersonate (GUI)
Откроется диалоговое окно; в диалоговом окне укажите имя пользователя и пароль. Убедитесь, что флажок Enforce password policy снят, а затем нажмите кнопку OK, как показано на рисунке ниже:
Enforce password policy
В правой панели вы увидите, что создан новый пользователь по имени lowpriv. Теперь щелкните правой кнопкой мыши на пользователе. Появится выпадающее меню. В этом выпадающем меню выберите пункт Свойства (Properties), как показано на рисунке ниже:
Properties
В диалоговом окне свойств можно увидеть, что единственным включенным свойством является public, как показано на рисунке ниже:
Теперь на правой панели вы увидите, что есть опция под названием Securables. Нажмите на эту опцию, а затем нажмите на кнопку Поиск (Search). В результате откроется диалоговое окно. Диалоговое окно предложит вам три варианта. Выберите Specific objects и нажмите на кнопку OK, как показано на рисунке ниже:
Specific objects
Откроется еще одно диалоговое окно; в нем нажмите на кнопку Типы объектов (Object Types), в результате чего откроется еще одно диалоговое окно. В этом диалоговом окне выберите опцию Login, а затем нажмите кнопку OK, как показано на рисунке:
Затем выберите пользователя, чей логин вы хотите выдать за свой. На изображении ниже видно, что мы выбрали пользователя sa. После того как вы выбрали пользователя, нажмите на кнопку OK.
sa
Теперь, если вы проверите разрешения для пользователя sa, вы увидите, что разрешение на выдачу себя за другого пользователя включено, как показано на рисунке ниже:
permissions for sa user

Тестирование на проникновение MSSQL. Вступление
Команда MSSQL Impersonate — это способ аутентификации под другими именами пользователей для выполнения системных запросов. Обычно она используется вместе с оператором CREATE USER. Когда вы используете учетную запись impersonation, SQL Server проверяет, есть ли у вас разрешения ко всем базам данных, на которые отправляется запрос. Тестирование на проникновение MSSQL.Существует множество случаев, когда на компьютере необходимо войти в систему под чужим именем. Например, у вас может не быть административных прав, необходимых для таких задач, как установка нового программного обеспечения или доступ к файлам. Однако бывают случаи, когда это необходимо, даже если у вас есть соответствующий уровень привилегий. В таких случаях Microsoft предоставляет функцию имперсонации под названием «Impersonate«. Это одна из встроенных функций безопасности, которая проста в использовании. В этой статье рассказывается о том, как ее можно использовать в Microsoft SQL Server Management Studio (SSMS).
Прежде чем приступить к работе (Тестирование на проникновение MSSQL) , необходимо понять несколько вещей; первая из них заключается в том, что SQL Server имеет процесс входа в систему, который требует аутентификации с помощью действительного имени пользователя и пароля. Когда вы входите в систему под именем пользователя, SSMS запрашивает пароль этого пользователя. Следующее, что необходимо понять, это концепция имперсонализации — вы можете войти в систему под именем одного пользователя, но потом сменить свою роль. Это означает, что если ваш текущий логин не авторизован для выполнения задачи, которую вы хотите решить, вы можете переключиться на другую учетную запись с помощью имперсонализации и выполнить работу.
Свойства команды «Impersonate»
Существует множество вариантов использования свойства Impersonate на сервере MSSQL. Некоторые из них перечислены ниже тестирование на проникновение MSSQL:- Представьте, что клиентскому приложению необходимо получить доступ к базе данных на сервере, но клиент не работает под привилегированной учетной записью. В этом случае MSSQL impersonation позволит клиентскому приложению получить доступ к базе данных без учетных данных для доступа к ней на сервере. Это полезно при проектировании веб-сервисов или сервисов обмена файлами, где анонимные или не прошедшие аутентификацию пользователи могут загружать данные для скачивания другими пользователями. Клиентское приложение получит доступ к базе данных без предоставления учетных данных, включив имперсонацию с учетной записью анонимного пользователя. Учетные данные потребуются только для создания/удаления/репликации таблиц.
- Все строки подключения к базе данных, не предоставленные учетной записью службы, требуют использования функции «Impersonate» со стороны сервера. Администратору потребуется настроить все строки подключения за один раз и убедиться, что они были подготовлены соответствующим образом с нужными привилегиями для каждого серверного приложения.
- Другая причина использования «Impersonate» — совместимость с Active Directory Users and Computers (ADUC). ADUC — это полезный инструмент для работы с учетными записями и группами в вашем домене: вы можете создавать/удалять учетные записи, включать или отключать их, устанавливать срок действия паролей и вообще управлять пользовательскими объектами в домене Active Directory (AD). Однако ADUC не позволяет добавлять или обновлять пользовательские данные для объектов пользователей; вместо этого вы можете редактировать только данные, хранящиеся в стандартных полях, таких как имя, фамилия и т.д. Команда «Impersonate» дает возможность MSSQL представляться членом группы Domain Users в ОС при подключении к серверу. Это означает, что пользователи могут использовать ADUC без привилегий.
- «Impersonate» использует тот же метод, что и Windows, для выполнения хранимых процедур (SPs) и триггеров на удаленном сервере. Именно так поступает SQL Server при имперсонификации: он запускает user=<user> в качестве контекста TRUST на всех удаленных SP и триггерах. Это позволяет пользователям T-SQL получать доступ к базе данных, используя свои учетные данные Windows/AD, не предоставляя учетные данные SQL Server при каждом вызове.
- Она также может вызвать функцию базы данных или хранимую процедуру, которая использует определенного контекстного пользователя (например, членов роли базы данных (members of a database role)). Установив это свойство, вы можете разрешить пользователям, добавленным в эту группу, начать выдавать себя за сервер с помощью всего одного соединения.
Безопасность и команда «Impersonate»
Эта команда позволяет пользователю выдавать себя за другого пользователя в MSSQL и создавать учетные данные для входа. Последствия использования данной функции в плане безопасности заключаются в том, что если кто-то может выдать себя за другого человека в базе данных, он может войти в любое приложение, требующее аутентификации, без необходимости знать какие-либо пароли или личную информацию. Это именно то, что будет исследовано в данной статье.Знакомство с Juicy Potato
Пользователь будет тестировать функцию «Impersonate» с помощью двух инструментов: Metasploit и Juicy Potato. Многие уже знакомы с Metasploit. Сейчас пойдет речь о Juicy Potato, который можно скачать, перейдя по Для просмотра ссылки ВойдиИнструмент Juicy Potato используется для взлома или подражания входа в систему SQL. Он автоматически извлекает имя пользователя и пароль с SQL-сервера. Таким образом, пользователи могут использовать инструмент для взлома своей или чужой базы данных без каких-либо ошибок. Вся информация будет сохранена на их компьютере.
Стоит отметить, что этот инструмент можно использовать для извлечения информации из определенной таблицы или столбца. Это очень удобно для пентестеров во время анализа базы данных и удаления важных компонентов. Программу также можно применять для входа в базу данных без информации об имени для входа. Этот инструмент является единственным в своем роде; он предназначен для быстрого и простого извлечения всей необходимой информации из SQL Server, MySQL, MS Access, Oracle и IBM DB2. Программа также может создавать файлы доступа и скрипты. Пользователь имеет возможность настроить вывод данных в соответствии со своими требованиями. Таким образом, это позволяет ему делать все, что он захочет, с базой данных в один щелчок мыши.
Этот инструмент обладает множеством функций, которые делают его надежным и простым в использовании. Он будет полезен для сетевых администраторов, пентестеров, хакеров. Программа выполняет поставленные задачи без каких-либо проблем и ошибок. Она легко настраивается, что позволяет пользователю выбрать все параметры в соответствии со своими желаниями. Человеку не требуются какие-либо особые знания ПК или программирования, чтобы использовать этот инструмент.
Включение функции «Impersonate» (GUI)
Чтобы узнать, как включить функцию «Impersonate», следует начать с создания нового пользователя. Пользователь переходит по следующему пути: server>Security>Logins. Здесь он щелкнет правой кнопкой мыши на Logins и выберет опцию New Login из раскрывающегося меню, которое появится после щелчка.
Откроется диалоговое окно; в диалоговом окне укажите имя пользователя и пароль. Убедитесь, что флажок Enforce password policy снят, а затем нажмите кнопку OK, как показано на рисунке ниже:

В правой панели вы увидите, что создан новый пользователь по имени lowpriv. Теперь щелкните правой кнопкой мыши на пользователе. Появится выпадающее меню. В этом выпадающем меню выберите пункт Свойства (Properties), как показано на рисунке ниже:

В диалоговом окне свойств можно увидеть, что единственным включенным свойством является public, как показано на рисунке ниже:

Теперь на правой панели вы увидите, что есть опция под названием Securables. Нажмите на эту опцию, а затем нажмите на кнопку Поиск (Search). В результате откроется диалоговое окно. Диалоговое окно предложит вам три варианта. Выберите Specific objects и нажмите на кнопку OK, как показано на рисунке ниже:

Откроется еще одно диалоговое окно; в нем нажмите на кнопку Типы объектов (Object Types), в результате чего откроется еще одно диалоговое окно. В этом диалоговом окне выберите опцию Login, а затем нажмите кнопку OK, как показано на рисунке:

Затем выберите пользователя, чей логин вы хотите выдать за свой. На изображении ниже видно, что мы выбрали пользователя sa. После того как вы выбрали пользователя, нажмите на кнопку OK.

Теперь, если вы проверите разрешения для пользователя sa, вы увидите, что разрешение на выдачу себя за другого пользователя включено, как показано на рисунке ниже:
