Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE

в 10:37, , рубрики: FuzzBunch, MS17-010, Powershell Empire, Блог компании PentestIT, информационная безопасность, метки: , ,

image
 
14 апреля 2017 года был опубликован новый дамп от группы хакеров, именующих себя The Shadow Brokers. Среди прочего в дампе находится фреймворк FuzzBunch, позволяющий эксплуатировать опасные RCE-уязвимости ОС Windows практически в автоматическом режиме. Данная уязвимость устранена с выходом пачта MS17-010: он устраняет шесть проблем Windows SMB Server, пять из которых позволяют выполнить произвольный код через создание специального пакета Server Message Block (SMB) 1.0. В данной статье мы рассмотрим возможность эксплуатации уязвимости ETERNALBLUE.

По умолчанию арсенал Kali Linux позволяет проводить множество атак на машины под управлением ОС Windows, но двух современных инструментов в ней не хватает. В данной статье речь пойдет об инструментах Empire и FuzzBunch, которыми стоит дополнить ваш дистрибутив, чтобы существенно расширить возможности для эксплуатации и постэксплуатации Windows систем в сети.

Powershell Empire

Powershell Empire предоставляет модульную платформу для пост-эксплуатации, используя возможности средства автоматизации ОС Windows PowerShell.
Empire агенты полностью работают в оперативной памяти и их сложно детектировать средствами защиты, т.е. антивирусным ПО и системами предотвращения вторжений из-за того, что они написаны на скриптовом языке и во время выполнения между агентом и антивирусным ПО стоит интерпретатор скриптового языка, в отличие от классических пейлоадов, скомпилированных в ассемблер и исполняемый файл.

Установка

Скачиваем Empire с github github.com/EmpireProject/Empire
Запускаем скрипт Empire/setup/install.sh для установки зависимостей в систему.
Далее запускаем скрипт для инициализации базы данных Empire/setup/setup_database.py
Установка завершена.

Запуск и базовая настройка

Запускаем фреймворк скриптом ./empire и попадаем в главное меню
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 2
 
Основные понятия, с которыми нам придется столкнуться это listener, stager и agent.
Listener – локальные IP адрес и порт, к которым должен подключаться агент при успешном выполнении на стороне жертвы.
Командой listeners переходим в режим конфигурирования листнера и создаем новый листнер по адресу 192.168.1.3:8080
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 3
 
Как видим, порт теперь прослушивается:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 4
 
Stager – способ доставки Powershell Empire агента на машине жертвы. По аналогии с фреймворком Metasploit, существует stage0 и stage1, где будем считать, что stage0 – способ доставки Empire агента, а stage1 – сам агент. На самом деле процесс доставки несколько сложнее, о чем можно подробно почитать на официальном сайте.
Командой usestager можно выбрать следующие варианты для stage0 (далее стейджер):
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 5
 
Самый распространенный стейджер – launcher, выберем его и настроим на подключение к листнеру test, который мы создали на предыдущем шаге.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 6
 
Далее можно настроить некоторые параметры для стейджера:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 7
 
В частности опция Proxy по умолчанию выставлена в default, что означает использование системных настроек прокси на стороне жертвы.
Командой generate создается стейджер типа launcher.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 8
 
Он представляет собой закодированную powershell команду в base64, которую необходимо выполнить на стороне жертвы.
Альтернативным способом генерации stage0 команды для стейджера launcher может быть команда
launcher [имя_листнера]
из меню listeners.
Есть и другие стейджеры, которые могут быть использованы в зависимости от ситуации. Перечислим основные из них.

  • launcher_bat – агент доставляется на машину жертвы при запуске bat-файла.
  • launcher_vbs – агент доставляется на машину жертвы при выполнении vbs-скрипта.
  • macro – будет сгенерирован код для макроса, который можно внедрить в документ MS Office.
  • dll – запуск powershell агента внутри процесса, отличного от powershell.exe при помощи техники Reflective DLL loading.

Стейджер dll позволяет интегрировать Empire с фреймворком Metasploit и другими современными инструментами. При помощи эксплойта требуется провести инъекцию вредоносной DLL в атакованный процесс, после чего произойдет загрузка Empire агента в оперативную память машины жертвы и его выполнение.
Запустим сгенерированный код нашего стейджера launcher на машине «жертве»:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 9
 
На машине атакующего в интерфейсе Empire видим сообщение:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 10
 
Это означает, что между машиной атакующего и машиной жертвы теперь установлено соединение и агент готов получать команды.
Для удобства можно переименовать агента:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 11
 
Далее, для перехода в режим взаимодействия, выполним команду interact и при помощи команды help увидим доступные опции:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 12
 

Постэксплуатация

После получения активной сессии с агентом нам доступно множество команд. Документацию по всем возможностям фреймворка можно найти на официальном сайте powershellempire.com.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 13
 
Все модули разбиты на группы. В качестве примера продемонстрируем работу нескольких модулей.
Модуль credentials/powerdump для сбора хэшей пользователей.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 14
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 15
 
Запуск mimikatz из меню агента Empire
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 16
 
Получили пароль в открытом виде от поставщика WDijest
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 17
 

FuzzBunch

14 апреля 2017 года был опубликован новый дамп от группы хакеров, именующих себя The Shadow Brokers. Среди прочего в дампе находится фреймворк FuzzBunch, позволяющий эксплуатировать опасные RCE-уязвимости ОС Windows практически в автоматическом режиме. Основная порция обнародованных уязвимостей описана в бюллетене от Microsoft MS17-010. Так же для эксплуатации уязвимостей, обнародованных The Shadow Brokers, уже созданы модули для фреймворка Metasploit.

Установка

Для установки FuzzBunch вам понадобится либо 32-битная Windows машина, либо Kali Linux с установленным окружением Wine. Мы воспользуемся вторым вариантом, чтобы оба инструмента, Empire и FuzzBunch, находились в одном дистрибутиве. Загрузим файлы на свою машину Kali Linux с github
git clone github.com/fuzzbunch/fuzzbunch.git
Для работы FuzzBunch Нам потребуется Python 2.6 и, чтобы не захламлять ваше основное окружение Wine, я рекомендую создать новое. Для начала устанавливаем/обновляем Wine, если вы этого еще не сделали.
apt-get instal wine winbind
Создаем и инициализируем новое окружение
mkdir ~/.wine_fuzzbunch
WINEPREFIX="/root/.wine_fuzzbunch/" winecfg
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 18
 
Оставляем все без изменения:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 19
 
export WINEPREFIX=/root/.wine_fuzzbunch/
Проверяем, что окружение создалось успешно:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 20
 
Добавляем в PATH требуемые директории
wine regedit.exe
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 21
 
Устанавливаем fuzzbunch в окружение Wine:
mkdir -p ~/.wine_fuzzbunch/drive_c/nsa/windows
cd ~/.wine/drive_c/nsa/windows
cp -R [ваш_каталог_с_fuzzbunch]/*.
wget www.python.org/ftp/python/2.6/python-2.6.msi
wget downloads.sourceforge.net/project/pywin32/pywin32/Build%20219/pywin32-219.win32-py2.6.exe?r=&ts=1493192168&use_mirror=netcologne
Устанавливаем Python
wine msiexec /i python-2.6.msi

Устанавливаем pywin32
wine pywin32-219.win32-py2.6.exe
Постинсталляция:
wine cmd.exe
cd C:Python26Scripts
python pywin32_postinstall.py -install
cd C:nsawindows
mkdir listeningposts

Запуск и эксплуатация MS17-010

Из окружения Wine выполняем следующую команду:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 22
 
Будем атаковать 64-х битную Windows 7 машину с IP адресом 192.168.1.10, в то время как машина атакующего имеет IP адрес 192.168.1.3.
Задаем эти параметры при запуске.
Для выполнения вредоносного кода будем использовать уязвимость в протоколе SMB, которая носит название Eternalblue.
use Eternalblue
На вопрос о проверке параметров отвечаем утвердительно:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 23
 
Оставляем все без изменения, кроме пункта о методе доставки. Тут выбираем FB.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 24
 
В завершении запускаем модуль на выполнение и видим сообщение Eternalblue Succeeded.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 25
 

Постэксплуатация в связке с Powershell Empire

Создаем новый листенер:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 26
 
В качестве механизма доставки агента используем на этот раз dll.
Если бы вы использовали Empire на отдельной машине, то для доставки стейджера на машину с FuzzBunch будет удобно сохранить его в каталог веб-сервера и затем скачать по сети.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 27
 
Если у вас и Powershell Empire и FuzzBunch на одной машине, как в моем случае, то сохраняем файл в корень диска C окружения Wine.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 28
 
Переходим снова в FuzzBunch, где открыта сессия с машиной жертвы, и используем модуль DoublePulsar.
use DoublePulsar
Выбираем 64-битную архитектуру:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 29
 
В качестве пейлоада мы будем инжектировать DLL, созданную в Empire.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 30
 
Указываем полный путь до DLL:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 31
 
C:launcher.dll
Выполняем модуль:
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 32
 
В интерфейсе Empire получаем новую сессию и выполняем Mimikatz.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 33
 
Получаем логины и пароли пользователей.
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 34
 
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE - 35
 
В то же время операционная система жертвы не выявляет атаки. В журналах Microsoft Security Essentials пусто, система работает стабильно. Таким образом, наш дистрибутив Kali Linux приобрел два современных инструмента для эксплуатации и постэксплуатации ОС под управлением Windows.

Защитные меры

В качестве средств защиты рекомендуется обновить Windows системы (если вы этого еще по каким-то причинам не сделали), использовать средства обнаружения и блокирования атак — firewall и т.д.

Например это можно сделать с помощью следующих команд:
netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=135 name=«Block_TCP-135»
netsh advfirewall firewall add rule dir=in action=block protocol=TCP localport=445 name=«Block_TCP-445»

Автор: Pentestit

Источник

Поделиться

* - обязательные к заполнению поля