
mssqlproxy — это набор инструментов, предназначенный для перемещения по сети в ограниченных средах через скомпрометированный Microsoft SQL Server с использованием повторного использования сокетов.
mssqlproxy — это набор инструментов, предназначенный для выполнения латерального перемещения в ограниченных средах через скомпрометированный Microsoft SQL Server с использованием повторного использования сокетов. Клиенту требуется impacket и права sysadmin на SQL-сервере.
Пожалуйста, внимательно прочитайте эту статью перед продолжением.
Состоит из трех частей:
Вы можете скомпилировать библиотеки или скачать их из релизов (x64).
Чтобы сгенерировать основную DLL, просто импортируйте проект в Visual Studio (reciclador.sln) и скомпилируйте его.
Чтобы сгенерировать CLR сборку, сначала нужно найти компилятор C#:
Get-ChildItem -Recurse "C:\Windows\Microsoft.NET\" -Filter "csc.exe" | Sort-Object fullname -Descending | Select-Object fullname -First 1 -ExpandProperty fullname
Затем,
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:library .\assembly.cs
После компиляции двух библиотек загрузите основную DLL (reciclador) на целевой сервер.
Параметры аутентификации такие же, как в оригинальном mssqlclient. Параметры mssqlproxy:
proxy mode:
-reciclador path Удаленный путь, где хранится DLL на сервере
-install Устанавливает CLR сборку
-uninstall Удаляет CLR сборку
-check Проверяет, готова ли CLR
-start Запускает прокси
-local-port port Локальный порт для прослушивания
-clr local_path Локальный путь к CLR
-no-check-src-port Используйте этот параметр, если соединение не прямое (например, через прокси)
Мы также реализовали две команды (внутри SQL-оболочки) для загрузки и скачивания файлов. Что касается прокси, у нас есть четыре команды:
-clr для чтения сгенерированной CLR из локального DLL-файла.-reciclador), которое можно загрузить с помощью команды upload.-local-port не указан, будет прослушивать порт 1337/tcp.После запуска прокси можно подключить ваши proxychains ;)
Примечание №1: если используется непрямое соединение (например, промежуточные прокси), необходим флаг -no-check-src-port, чтобы сервер проверял только исходный адрес.
Примечание №2: на данный момент поддерживаются только IPv4 цели (ни DNS, ни IPv6 адреса).
Примечание №3: используйте осторожно! Пока что служба MSSQL упадет, если попытаться установить несколько одновременных соединений.
Важно: важно остановить mssqlproxy нажатием Ctrl+C на клиенте. В противном случае сервер может упасть, и вам придется перезапускать службу MSSQL вручную.
Pablo Martinez (@xassiz), Juan Manuel Fernandez (@TheXC3LL) [ www.blackarrow.net - www.tarlogic.com ]
Весь код, включенный в этот проект, лицензирован на условиях лицензии MIT. mssqlclient.py основан на Impacket.