Hunting for LoLBins

отредактировано 10 июл Раздел: Вирусы & Антивирусы
Вступление

Тенденции злоумышленников, как правило, приходят и уходят. Но одна популярная техника, которую мы наблюдаем в настоящее время, - это использование живых двоичных файлов, или «LoLBins». LoLBins используются различными субъектами в сочетании с бесфайловыми вредоносными программами и законными облачными сервисами, чтобы повысить шансы остаться незамеченными в организации, как правило, на этапах атаки после эксплуатации.

Тактика «за пределами земли» означает, что злоумышленники используют предустановленные инструменты для выполнения своей работы. Это затрудняет для защитников обнаружение атак, а исследователям - выявление злоумышленников, стоящих за кампанией. В атаках, которые мы наблюдаем, есть двоичные файлы, предоставляемые операционной системой жертвы, которые обычно используются в законных целях, но в этих случаях злоумышленники злоупотребляют ими.

В этом посте мы рассмотрим использование LOLBin через призму телеметрии продуктов Cisco. Мы также рассмотрим наиболее часто используемые системные двоичные файлы Windows и измерим их использование, проанализировав данные из Cisco AMP для конечных точек.

Вы также найдете обзор нескольких недавних кампаний, которые мы видели с использованием LoLBins, а также рекомендации по обнаружению вредоносных действий LoLBin.

Что такое LoLBins
LoLBin - это любой двоичный файл, предоставляемый операционной системой, который обычно используется в законных целях, но также может быть использован злоумышленниками. Некоторые системные двоичные файлы по умолчанию имеют неожиданные побочные эффекты, которые могут позволить злоумышленникам скрыть свои действия после эксплуатации.

Концепция LoLBins не нова и не специфична для Windows. Почти все обычные операционные системы, начиная с ранних версий DOS и Unix, содержали исполняемые файлы, которые могли использовать злоумышленники.


В целом злоумышленники могут использовать LoLBins для:

Скачать и установить вредоносный код
Выполнить вредоносного кода
Обход UAC
Обход управления приложениями, например (WDAC)

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

Использование LoLBins часто сочетается с законными облачными сервисами, такими как GitHub, Pastebin, хранилище Amazon S3 и облачными дисками, такими как Dropbox, Box и Google Drive. При использовании легитимных облачных сервисов для хранения вредоносного кода инфраструктура управления и контроля (C2) и действия злоумышленников с большей вероятностью останутся незамеченными, поскольку генерируемый трафик не отличается от трафика, генерируемого системами, которые не были скомпрометированы.

Talos в основном заинтересован в поиске исполняемых файлов, которые можно использовать для загрузки или выполнения вредоносного кода. В нашем исследовании мы отслеживаем ежедневные шаблоны выполнения следующих исполняемых файлов, чтобы обнаружить злоупотребления ими:
powershell.exe
bitsadmin.exe
certutil.exe
psexec.exe
wmic.exe
mshta.exe
mofcomp.exe
cmstp.exe
windbg.exe
cdb.exe
msbuild.exe
csc.exe
regsvr32.exe

Злоупотребление PowerShell


Основным подозреваемым в загрузке вредоносного кода и выполнении в памяти в последнее время является PowerShell. Злоумышленники обычно используют эту командную оболочку, которая построена на платформе управления Windows и .NET. Эта мощная административная среда имеет политику безопасности, которая может предотвратить выполнение ненадежного кода. К сожалению, эту политику можно легко обойти с помощью одного параметра командной строки.

Код PowerShell не чувствителен к регистру и принимает сокращенные версии параметров командной строки, если этот параметр не является двусмысленным. Например, параметр -EncodedCommand, который принимает в качестве параметра строку в кодировке Base64, также может быть вызван как -EncodedC или даже -enc, что обычно используется злоумышленниками.

Популярные вредоносные программы, такие как Sodinokibi и Gandcrab, в прошлом использовали отражающие загрузчики DLL, которые позволяют злоумышленникам загружать динамическую библиотеку в память процесса без использования Windows API.

Модуль Invoke-Obfuscation часто используется для создания полиморфных обфусцированных вариантов, которые не будут обнаружены антивирусными программами и другими защитными механизмами.

Со временем злоумышленники также осознали вредоносный потенциал PowerShell, увеличив количество исполняемых файлов, используемых в качестве LoLBin. Msbuild.exe и компилятор C # csc.exe - одни из наиболее часто используемых red team. Оба они часто используются для загрузки, сборки и загрузки вредоносного кода, который создан для этой конкретной системы и не отображается ни в одном из списков блокировки исполняемых файлов.

Измерение использования LoLBins

Мы проанализировали телеметрию, предоставляемую Cisco AMP для конечных точек, чтобы измерить, как часто используются LoLBin. Телеметрия, отправляемая по защищенному каналу, содержит имена вызванных процессов и криптографические контрольные суммы их образов файлов, что помогает нам отслеживать траектории файлов и строить отношения родительско-дочерних процессов, которые можно использовать для поиска.

image4.jpg

Данные телеметрии ориентированы на обнаружение новых атак по мере их возникновения, но они также должны позволить нам измерить, сколько потенциальных вызовов LoLBin являются подозрительными.

Мы посмотрели на разные LoLBin, где решение можно было принять быстро. Во всех случаях мы предполагаем наихудший сценарий и обозначаем любой вызов следующих процессов с URL-адресом в качестве параметра как подозрительный:
mshta.exe
certutil.exe
bitsadmin.exe
regsvr32.exe
powershell.exe


Наше упрощенное определение вызова подозрительного процесса означает, что он также будет иметь значительный процент ложных срабатываний. Например, для вызовов PowerShell с URL-адресом в командной строке, по нашим оценкам, только 7 процентов первоначально выбранных вызовов должны быть тщательно проверены и, скорее всего, будут вредоносными.

Мы получаем процент подозрительных звонков, ежедневно добывая миллиарды точек данных и деля количество обнаруженных подозрительных звонков на общее количество звонков. В целом, наш наихудший сценарий показывает, что по крайней мере 99,8% всех вызовов LoLBin не заслуживают дальнейшего изучения.

Затем мы проанализировали эти потенциально подозрительные вызовы, чтобы найти те, которые могут быть вредоносными.

Еще раз возьмем PowerShell. Худший показатель для потенциально подозрительного выполнения процессов PowerShell составил 0,2%. Однако, как упоминалось ранее, только 7 процентов из них действительно требуют углубленного изучения, что снижает процент до 0,014 процента. Следовательно, по крайней мере 99,986% вызовов PowerShell являются законными.

Простое практическое правило для URL-адресов, которые можно использовать для определения вызовов, которые с большей вероятностью могут быть вредоносными, - это искать вызов LoLBins в сочетании с:
Внешний числовой IP-адрес
Любой домен верхнего уровня .net
Любой домен верхнего уровня .eu
Любой домен .ru
Любой URL-адрес, заканчивающийся расширением исполняемого файла или изображения (например, .EXE, .LNK, .DLL, .JPG, .PNG и т. Д.)
Любая ссылка на Pastebin.com и его клоны.
Любая ссылка на Github или любые другие сайты репозитория исходного кода.

Уровни навыков актеров LoLBins

В этом разделе мы опишем три отдельные кампании, показывающие использование PowerShell в сочетании с кодом только для памяти от трех разных субъектов с разными наборами навыков.

Случай 1. Распространенные программы-вымогатели

Первый случай связан с программой-вымогателем Sodinokibi. Sodinokibi - довольно распространенная программа-вымогатель, которая распространяется с использованием стандартных методов, таких как фишинг и наборы эксплойтов, а также с использованием уязвимостей в веб-фреймворках, таких как WebLogic.

Из телеметрии видно, что PowerShell запускается с командлетом Invoke-Expression, оценивающим код, загруженный с веб-страницы Pastebin, с помощью функции Net.WebClient.DownloadString, которая загружает веб-страницу в виде строки и сохраняет ее в памяти.

+
Мы ищем точки опоры не с целью перевернуть мир, но чтобы не позволить миру опрокинуть нас.
Тэги темы:

Комментарии

  • отредактировано 3 июл PM
    +
    Загруженный код представляет собой отражающий загрузчик DLL с рандомизированными именами функций, чтобы избежать использования простых механизмов обнаружения на основе шаблонов. Полезные данные программы-вымогателя закодированы в кодировке Base64 и хранятся в переменной $ PEBytes32. Стоит отметить, что исполняемые полезные данные Base64 могут быть мгновенно распознаны по начальным двум символам «TV», которые декодируются в символы «MZ» для начала исполняемой заглушки DOS исполняемого файла PE32 +.

    Sodinokibi и Gandcrab очень распространены, но это не означает, что стоящие за ними актеры технически неопытны. Хотя они используют стандартные методы для распределения и выполнения полезной нагрузки, мы все же можем оценить, что у них средний уровень навыков.
    Случай 2: Майнер среднего уровня
    Наш второй субъект использовал способность PowerShell для обфускации кода и деобфускации нескольких уровней обфускации в памяти, прежде чем достигнуть фактического сценария PowerShell, который устанавливает и запускает полезную нагрузку для майнинга криптовалюты.

    Модуль Invoke-Obfuscation часто используется для обфускации PowerShell. Помимо запутывания всего кода сценария следующего уровня, он также скрывает вызов командлета Invoke-Expression (IEX). В этом примере переменная $ Env: COMSpec содержит строку «C: \ Windows \ System \ cmd.exe», так что объединенные четвертый, 15-й и 25-й символы образуют строку «iex».

    У этого майнера криптовалюты было пять этапов деобфускации, и на последнем вызов IEX был скрыт путем получения имени переменной MaximumDriveCount с помощью «gv» (командлет Get-Variable) с параметром «* mdr *» и выбора символов 3, 11 и 2, чтобы сформировать его.

    Загруженные сценарии PowerShell содержат функциональные возможности для отключения антивирусного программного обеспечения Windows Defender, Malwarebytes и Sophos, для установки модифицированной полезной нагрузки криптовалюты XMRig и загрузки модулей с намерением украсть учетные данные пользователя из памяти и использовать учетные данные для попытки распространения вброс, передавая хэш (Invoke-TheHash) через SMB или WMI.

    Случай 3: Скрытие Cobalt Strike в сетевом трафике

    В нашем последнем тематическом исследовании показана деятельность более продвинутого актера. Актер использует маяк Cobalt Strike для своих постэксплуатационных действий со стейджером PowerShell, взятым из фреймворка Cobalt Strike.

    Телеметрия показывает, что эта атака была запущена злоупотреблением rundll32.exe и командной строкой, вызывающей код JScript для загрузки веб-страницы и запуска начального stager PowerShell.

    Первый этап PowerShell, webax.js, несмотря на вводящее в заблуждение расширение имени файла, распаковывает код PowerShell второго этапа, который загружает первый этап шелл-кода в память и создает специальный запрос на загрузку того, что кажется стандартной библиотекой jQuery JavaScript.

    Стейджер Cobalt Strike PowerShell

    Шелл-код создает HTTP-запрос GET на IP-адрес 134.209.176.24, но с полями заголовка, которые указывают, что искомым хостом является code.jquery.com, законный хост, обслуживающий jQuery. Этот метод, похоже, успешно обходит некоторые автоматизированные среды выполнения, результаты анализа которых показывают, что запрос был отправлен на законный хост, а не на вредоносный IP-адрес.

    Загруженный вредоносный jQuery начинается с фактического кода jQuery в первых 4015 байтах, за которым следует обфусцированный маяк Cobalt Strike, который деобфусцируется с помощью статического ключа XOR и загружается в память с использованием методов отражающей загрузки.

    Вредоносный jQuery заканчивается 1520 байтами фактического кода jQuery, предположительно для того, чтобы сканеры защиты от вредоносных программ не сканировали вершину и конец запроса.

    Этот метод скрытия двоичной полезной нагрузки в библиотеке jQuery и уклонения от обнаружения вредоносных IP-адресов показывает, что мы имеем дело с более продвинутым субъектом, который серьезно относится к своей операционной безопасности.

    В целом, мы не можем выделить какой-то один тип актеров, которые сосредоточены на использовании LoLBins. Хотя они могли использоваться только более продвинутыми участниками, сегодня они также используются участниками, использующими распространенный вредоносный код, такой как программы-вымогатели или криптомайнеры.

    Обнаружение и предотвращение злоупотреблений LoLBins

    Защита от злоупотребления LoLBins в сочетании с бесфайловым кодом затруднена для средств управления безопасностью, которые не отслеживают поведение процессов. Злоупотребление может быть обнаружено на основе родительско-дочерних отношений запущенных процессов, а также аномалий сетевой активности процессов, которые обычно не связаны с сетевым обменом данными.

    Организациям рекомендуется настроить свои системы на централизованное ведение журнала, где поисковые команды могут выполнять дальнейшую аналитику. Начиная с версии 5, PowerShell также можно настроить для регистрации выполнения всех выполненных блоков кода в журнале событий Windows. Это позволяет членам групп безопасности понимать запутанный код, который необходимо деобфусцировать перед запуском. Выполнение деобфусцированного кода будет видно в журналах событий Windows.

    Однако наилучшая возможная защита - это запретить выполнение LoLBin с помощью таких механизмов, как Application Control в Защитнике Windows. Корпорация Майкрософт создала файл блокировки политики, который блокирует выполнение LoLBin, которые не требуются в защищенных системах.

    К сожалению, блокировка всех LoLBin невозможна в большинстве сред, поскольку они также требуются законными процессами.

    Заключение
    Наше исследование показывает, что многие типы субъектов используют различные методы использования LoLBin в своей деятельности, от массового вредоносного ПО до более целенаправленных атак. Однако общая доля злонамеренного использования очень мала (ниже 0,2 процента), чего недостаточно, чтобы заблокировать все вызовы LoLBin.

    Тем не менее, необходимо помнить о LoLBins. При успешном использовании злоумышленник может использовать их, чтобы затруднить отслеживание своих атак или заставить свое вредоносное ПО дольше задерживаться на машине жертвы.

    https://blog.talosintelligence.com/2019/11/hunting-for-lolbins.html
    Мы ищем точки опоры не с целью перевернуть мир, но чтобы не позволить миру опрокинуть нас.
Войдите или Зарегистрируйтесь чтобы комментировать.