
Продвинутый инструмент для пентестинга MSSQL для латерального перемещения, выполнения команд, NTLM-ретрансляции и атак брутфорса через связанные серверы и различные методы аутентификации.
MSSqlPwner — это продвинутый и многофункциональный инструмент для пентеста, предназначенный для бесшовного взаимодействия и взлома MSSQL-серверов.
Этот инструмент основан на impacket, что позволяет атакующим аутентифицироваться в базах данных с помощью паролей в открытом виде, NTLM-хешей и билетов Kerberos.
С помощью MSSqlPwner пользователи могут выполнять пользовательские команды различными методами, включая пользовательскую сборку (custom assembly), xp_cmdshell и sp_oacreate (Ole Automation Procedures) и многое другое.
Инструмент начинает с рекурсивного перечисления связанных серверов и возможных олицетворений, чтобы собрать все возможные цепочки для выполнения команд.
Также инструмент MSSqlPwner может использоваться для NTLM-ретрансляции с использованием таких функций, как xp_dirtree, xp_subdirs, xp_fileexist.
Этот инструмент можно использовать для оценки бокового перемещения и исследования связанных серверов.
Если аутентифицированный пользователь MSSQL не имеет разрешения на выполнение определенных операций, инструмент может найти правильную цепочку, которая позволит выполнить команду. Например, если ваш пользователь не может выполнять команды в текущем контексте, инструмент построит цепочку, которая использует связанный сервер и подключится обратно к нашему серверу с повышенными привилегиями.
Начать работу с mssqlpwner очень просто. Вы можете сделать это, установив напрямую из репозитория:
pip install 'mssqlpwner@git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
Или, используя pipx (а вам стоит это сделать), попробуйте следующее:
pipx install 'git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
И теперь вы можете использовать свой новый любимый инструмент:
mssqlpwner -hashes ':0CB6948805F797BF2A82807973B89537' 'Administrator'@172.16.2.12 -windows-auth interactive
Этот инструмент поддерживает несколько методов аутентификации, описанных ниже.
Этот инструмент предназначен для специалистов по безопасности и исследователей только для целей тестирования и не должен использоваться в незаконных целях.
interactive: позволяет использовать инструмент в интерактивном режиме с выполнением в реальном времени.enumerate: перечисляет связанные серверы и цепочки.get-chain-list получает список цепочек:
-filter-hostname HOSTNAME - Получить отфильтрованные результаты по конкретному имени хоста.get-link-server-list получает список связанных серверов.set-chain Установить ID цепочки (только для интерактивного режима!)
CHAIN - ID цепочки для установки.set-link-server Установить связанный сервер (только для интерактивного режима!)
LINK - Связанный сервер для установки.get-rev2self-queries получить запросы для возврата к SELF (только для интерактивного режима!).get-adsi-provider-list получить список провайдеров ADSI.rev2self вернуться к SELF (только для интерактивного режима!).exec Выполнить команды с помощью exec на локальном сервере или на связанных серверах
COMMAND - Команда для выполнения.-command_execution_method - Метод выполнения команды.
xp_cmdshell - Выполнение команд с помощью процедуры xp_cmdshell (по умолчанию).sp_oacreate - Выполнение команд с помощью процедуры Ole Automation Procedure (должно использоваться как "cmd /c something").retrieve-password Извлечение паролей из провайдеров ADSI.
-listen-port - Порт для прослушивания (по умолчанию: 1389).-adsi-provider - используемый провайдер ADSI (если не указан, будет выбран автоматически).-arch - используемая архитектура (если не указана, будет выбрана автоматически).
x86 - Использовать архитектуру x86.x64 - Использовать архитектуру x64.ntlm-relay - Принудительная NTLM-ретрансляция на сервер.
SMB_SERVER - SMB-сервер для ретрансляции.-relay-method - Используемый метод ретрансляции.
xp_dirtree - Использовать процедуру xp_dirtree (по умолчанию).xp_subdirs - Использовать процедуру xp_subdirs.xp_fileexist - Использовать процедуру xp_fileexist (в некоторых ситуациях этот модуль должен выполняться из привилегированной цепочки).custom-asm - Выполнить процедуры с использованием пользовательской сборки
COMMAND - Команда/путь или запрос для использования.-procedure-name - Имя используемой процедуры (по умолчанию: execute_command).
execute_command - Выполнить команды с использованием пользовательской сборки (по умолчанию).run_query - Выполнить запросы с использованием пользовательской сборки.run_query_system_service - Выполнить запросы с использованием пользовательской сборки от имени системного пользователя (например, SqlSVC).inject-custom-asm Внедрить код с помощью пользовательской сборки.
file_location - Путь к файлу для внедрения.-procedure-name - Имя используемой процедуры (по умолчанию: Inject).direct-query Выполнить прямые запросыQUERY - Запрос для выполнения.-query-method - Используемый метод запроса.
OpenQuery - Использовать процедуру OpenQuery (по умолчанию).exec_at - Использовать процедуру exec AT.brute Запустить подбор (может принимать билеты, хеши и пароли)TARGETS_FILE - файл, содержащий хосты и IP-адреса для подбора.-ul - файл, содержащий пользователей для подбора.-pl - файл, содержащий пароли для подбора.-tl - файл, содержащий билеты для подбора.-hl - файл, содержащий хеши для подбора.-link-name - Имя используемого связанного сервера-chain-id - ID используемой цепочки-max-link-depth - Максимальная глубина связанных серверов (по умолчанию: 10)-max-impersonation-depth - Максимальная глубина олицетворений (по умолчанию: 10)-auto-yes - Автоматически отвечать "да" на все вопросы (по умолчанию: False)-timeout - Тайм-аут (по умолчанию: 30)