Эксплуатация уязвимостей и реализация их предотвращения
Разработка приложения для обнаружения уязвимости CVE-2017-8464
СОДЕРЖАНИЕ:
ЧАСТЬ 1: ОБЗОР CVE-2017-8464
ЧАСТЬ 2: ИСПОЛЬЗОВАНИЕ METASPLOIT ДЛЯ ЭКСПЛУАТАЦИИ CVE-2017-8464
2.1. МОДЕЛЬ ЭКСПЛУАТАЦИИ CVE-2017-8464
2.2. ВЫПОЛНЕНИЕ ЭКСПЛУАТАЦИИ CVE-2017-8464
ЧАСТЬ 3: РАЗРАБОТКА ИНСТРУМЕНТА ОБНАРУЖЕНИЯ CVE-2017-8464 НА ЯЗЫКЕ PYTHON
3.1. АНАЛИЗ СИГНАТУРЫ CVE-2017-8464 НА ОСНОВЕ ПЕРЕХВАЧЕННЫХ СЕТЕВЫХ ПАКЕТОВ
3.2. ФУНКЦИЯ ОБРАБОТКИ ОБНАРУЖЕНИЯ ЭКСПЛУАТАЦИИ CVE-2017-8464 НА ОСНОВЕ АНАЛИЗА СИГНАТУРЫ ПАКЕТА
ЗАКЛЮЧЕНИЕ
**
ЧАСТЬ 1: ОБЗОР CVE-2017-8464
LNK - это системные файлы - ярлыки Windows, в двоичном формате, разработанные Microsoft.

Рисунок 1: Иконка ярлыка в Windows
Файл LNK — это ярлык или «ссылка», используемая Windows в качестве ссылки на исходный файл, каталог или приложение, аналогично псевдониму на платформе Macintosh. Он содержит тип цели ярлыка, расположение и имя файла, а также программы, открывающие целевые файлы, и опциональное сочетание клавиш. Файлы можно создавать в Windows, щелкнув правой кнопкой мыши файл, папку или исполняемую программу и выбрав «Создать ярлык».
Используя эту уязвимость в Microsoft Windows, злоумышленник может удаленно выполнить код, если значок ярлыка был создан особым образом.

Рисунок 2: Ручное создание ярлыка для загрузки и запуска вредоносного кода через файл .LNK
Уязвимый компонент связан с сетевым стеком. Такая уязвимость часто называется «удаленно эксплуатируемой» и может считаться атакой, которую можно провести на уровне протокола или через несколько сетевых узлов (например, через один или несколько маршрутизаторов).
Системы, затронутые уязвимостью CVE-2017-8464: Windows Shell в Microsoft Windows Server 2008 SP2 и R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold и R2, Windows RT 8.1, Windows 10 Gold, 1511, 1607, 1703 и Windows Server 2016. Уязвимость позволяет локальным или удаленным злоумышленникам выполнять произвольный код через специально созданный файл .LNK, который неправильно обрабатывается при отображении значка в проводнике Windows или любом другом приложении, анализирующем значок ярлыка. Также известна как «LNK Remote Code Execution Vulnerability.»
Обновление безопасности исправляет уязвимость путем исправления проверки ссылки на значок ярлыка. Microsoft Windows выпустила обновление для этой уязвимости в июне 2017 года. Данная уязвимость не затрагивает Windows XP и более старые версии Windows.
Metasploit
Metasploit Framework — это среда для тестирования, атаки и эксплуатации уязвимостей сервисов из командной строки. Этот инструмент доступен в Kali Linux (версия VMware).

Рисунок 3: Инструмент Metasploit
Armitage
Инструмент с графическим интерфейсом на основе проекта Metasploit.

Рисунок 4: Инструмент Armitage.
ЧАСТЬ 2: ИСПОЛЬЗОВАНИЕ METASPLOIT ДЛЯ ЭКСПЛУАТАЦИИ CVE-2017-8464
2.1. МОДЕЛЬ ЭКСПЛУАТАЦИИ CVE-2017-8464
Жертва – Windows 7 Pro

Рисунок 5: Версия операционной системы жертвы

Рисунок 6: IP-адрес жертвы
Атакующая машина – Kali Linux – Используется Metasploit.

Рисунок 7: IP-адрес атакующего
Сетевая среда: VMnet8, подсеть 192.168.169.0
2.2. ВЫПОЛНЕНИЕ ЭКСПЛУАТАЦИИ CVE-2017-8464

Рисунок 8: Создание payload и прослушивание TCP-соединений на машине атакующего

Рисунок 9: Создание файла .lnk для автоматического запуска вредоносного кода

Рисунок 10: Информация о настройке Payload

Рисунок 11: Создание файла .lnk с вредоносным кодом

Рисунок 12: Копирование всех вредоносных файлов на USB

Рисунок 13: Жертва вставляет USB с вредоносным файлом .lnk

Рисунок 14: Атакующий успешно провел эксплуатацию и проник на машину жертвы
**
ЧАСТЬ 3: РАЗРАБОТКА ИНСТРУМЕНТА ОБНАРУЖЕНИЯ CVE-2017-8464 НА ЯЗЫКЕ PYTHON
3.1. АНАЛИЗ СИГНАТУРЫ CVE-2017-8464 НА ОСНОВЕ ПЕРЕХВАЧЕННЫХ СЕТЕВЫХ ПАКЕТОВ

Рисунок 15: Перехваченный пакет атаки на уязвимость CVE-2017-8464

Рисунок 16: Пакет с флагом PSH после успешного TCP-соединения с атакующим

Рисунок 17: Подозрительный признак в перехваченном пакете, отправленном атакующим жертве.
PE File Format (Portable Executable File Format) — это собственный формат файлов Win32. Все исполняемые файлы Win32, такие как *.EXE, *.DLL (32-бит), *.COM, *.NET, *.CPL и т.д., имеют формат PE; за исключением файлов VxD и *.DLL (16-бит).

Рисунок 18: Структура PE-файла.
DOS MZ Header
Все PE-файлы начинаются с простого DOS MZ Header. Он занимает первые 64 байта. Эта область используется при запуске программы в среде DOS.
e_magic: Сигнатура PE-файла, значение: 4Dh, 5Ah (символы "MZ", инициалы создателя MS-DOS Марка Збиковски). Это значение отмечает действительный DOS Header, позволяющий дальнейшее выполнение.

Рисунок 19: Сигнатура PE-файла в перехваченном пакете
e_lfanew: DWORD, находящийся в конце DOS Header, содержит смещение PE Header относительно начала файла.
DOS STUB
DOS Stub — это небольшая программа DOS EXE, отображающая сообщение об ошибке, для совместимости с 16-битными Windows.

Рисунок 20: Информация в пакете DOS STUB, перехваченном от атакующего к жертве
PE Header
PE Header — это структура IMAGE_NT_HEADERS, содержащая информацию, необходимую для загрузки файла в память.
Signature: DWORD, начинающий PE Header, содержит сигнатуру PE: 50h, 45h, 00h, 00

Рисунок 21: Информация от e_lfanew указывает на раздел Signature PE-заголовка.
SECTION TABLE
Section Table — это компонент, следующий сразу за PE Header, представляющий собой массив структур IMAGE_SECTION_HEADER.

Рисунок 22: Содержимое Section table в перехваченном пакете

Рисунок 23: Сохранение сигнатуры и связанной информации о вредоносном ПО в CSV-файле
3.2. ФУНКЦИЯ ОБРАБОТКИ ОБНАРУЖЕНИЯ ЭКСПЛУАТАЦИИ CVE-2017-8464 НА ОСНОВЕ АНАЛИЗА СИГНАТУРЫ ПАКЕТА

Рисунок 24: Функция получения информации о протоколе пакета

Рисунок 25: Функция получения информации из поля info пакета

Рисунок 26: Функция преобразования пакетов из Pcap в CSV-файл

Рисунок 27: Функция проверки вредоносного ПО в сетевом трафике

Рисунок 28: Цикл захвата трафика и проверки вредоносного ПО
Проверка работы программы путем выполнения эксплуатации.

Рисунок 29: Запуск программы мониторинга на реальной машине

Рисунок 30: Обнаружение и предупреждение при прослушивании сетевого трафика

Рисунок 31: Папка программы мониторинга CVE-2017-8464

Рисунок 32: Папка packet с файлами, записывающими пакеты после каждого преобразования при захвате

Рисунок 33: Все предупреждения сохранены в журнале
ЗАКЛЮЧЕНИЕ
В процессе эксплуатации и разработки программы обнаружения уязвимости CVE-2017-8464 студенты понимают, как эксплуатировать уязвимость, анализировать сигнатуру и поведение вредоносного ПО в рамках этой уязвимости. Анализ поведения и сигнатур позволяет студентам самостоятельно писать программы для автоматического сбора, анализа и обработки информации мониторинга сетевой безопасности с целью выдачи предупреждений об обнаружении вредоносного ПО.