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

    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"
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 2

      0
      Спасибо, интересно. Тоже докручу Кали у себя да поизучаю. Благо мануал пошаговый перед глазами.

      Прям почувствовал приток ностальгии после прочтения. Вспомнились времена MSBlast и Sasser. Тогда тоже была бага в SMB.
      Эксплуатация тогда та ещё была: после получения доступа к командному интерпретатору нужно было через FTP заливать и исполнять свой файл. В те времена была утилита специальная для этого: у неё на борту был встроенный мини FTP-сервер. А сейчас вон — набор пейлоадов. Технологии на месте не стоят.
      Интересно: многие ли из пользователей Хабра помнят те давние времена?
        0
        Бага уровня RPC-DCOM, MS08-076. По утилитам — была такая kaht2.

      Only users with full accounts can post comments. Log in, please.