Зачем любить, зачем страдать, если можно BAT-вирус написать — Batloader. Часть 2
Итак, приветствую, это у нас вторая часть анализа Batloader’a, первую статью о этом вредоносе и его злоключениях можете почитать вот здесь. Для тех, кто по каким-то непонятным причинам не хочет читать первую часть, подавайте мне жару да экшн, то в кратце:
Batloader — это ступенчатый лоадер, простыми словами дроппер, что-то вообще не проще стало. Почему он так называется? Потому что в своей структуре имеет множество обфусцированных .bat скриптов и доставляет другие вредоносы с их помощью. В чем его преимущества? Простота, хорошая независимость, в том плане, что вредонос не требует никаких дополнительных библиотек и может быть запущен на абсолютно голой системе. Также обфусцированный .bat файл, даже самым обычным Base64, плохо поддается распознаванию антивирусными утилитами и, зачастую, они просто не распознают этот дроппер, как угрозу.
Update.bat — что же мы там обновляем?
Для удобства буду называть этот файлик вторичной полезной нагрузкой, хотя он явно не дотягивает до неё. В отличие от предыдущих, этот файл никак не зашифрован, имеет 25 КБ массы и никакого описания. Давайте вскроем его и просмотрим содержимое.
Вторичная полезная нагрузка имеет следующий алгоритм работы:
- Проверка наличия прав администратора.
- Повышение привилегий в случае, когда текущих недостаточно.
- Загрузка чего-то, что является третичной полезной нагрузкой.
Повышение привилегий Ранее, вредонос уже скачивал файл getadmin.vbs и помещал его в директорию TEMP, давайте проведем кратенький анализ этого файла.
GetAdmin.vbs — CVE-2022-21882: как публичный PoC эксплойт снова был использован злоумышленниками
Итак, ранее я абсолютно не обращал внимания на этот .VBS скрипт, ну админские привилегии, и ладно. Сколько же существует способов, уязвимостей и прочего, чтобы это реализовать. Но что меня здесь привлекло, так это то, что этот скрипт ничего не получает собственнолично, он производит очередную загрузку файла. На этот раз это Getadmin.exe.
Собственно при визуальном осмотре этого файла, вы ничего не поймете. 12 КБ веса, никакого описания и метаданных. VirusTotal молчит, а DIE покажет лишь, что этот файл написан на C++. Ну раз это C++, значит идем в IDA и посмотрим, что же это у нас такое.
Это натолкнуло меня на мысль, что где-то я уже видел подобный код, как оказалось, это частичка PoC эксплойт уязвимости CVE-2022-21882.
CVE-2022-21882 — это уязвимость привилегий в Windows, которая позволяет получить повышение привилегий. Она была обнаружена в драйвере Win32k и позволяет злоумышленнику вызывать определенные GUI API из user_mode для выполнения операций в ядре.
Эта уязвимость связана с манипуляцией полем WndExtra окна, чтобы оно рассматривалось как смещение, несмотря на то, что оно заполнено значением, контролируемым злоумышленником.
Злоумышленник может использовать это для выполнения операции записи за пределами границ, что в конечном итоге приводит к повышению привилегий. Изначально эта уязвимость была обнаружена как CVE-2021-1732 и исправлена Microsoft 9 февраля 2021 года. В начале 2022 года был обнаружен метод обхода исправления, который получил идентификатор CVE-2022-21882. Основная причина обеих уязвимостей одинакова. Этот эксплойт сочетает в себе обход патча с оригинальным эксплойтом для работы на более широком спектре целей Windows 10.
В общем и целом код этот выглядит примерно вот так:
Не вижу особо смысла заострять на нем свое внимание, так как он находится в публичном доступе, ознакомиться можете вот здесь.
Загрузка чего-то, что является третичной полезной нагрузкой
Это что-то является скриптом PowerShell и именуется, как ScriptTodo.ps1, но помимо этого ещё будет скачан один исполняемый файл, но он является оболочкой cmd.exe и не представляет угрозы. Важно отметить, что второй загружаемый файл присутствует во многих образцах и всегда является каким-то мусором. Для чего это сделано - неизвестно. Но если у вас есть какие-либо предположения, буду рад почитать в комментариях.
Итак, барабанная дробь. Картечь! Не туда понесло снова. Виновник всего этого действа - конечная полезная.
ScriptTodo.ps1
И здесь важно отметить, что существует множество вариаций так называемого ядра, конкретно в моем случае оно выглядит вот так и не зашифровано. Но в большинстве экземпляров, злоумышленники используют различные способы шифрования, от самых простых, до более продвинутых и заумных.
Сам файлик имеет неплохой процент обнаружения на VirusTotal, но думаю, вы сами понимаете, что только в конкретно этом случае. 19 из 52, вполне сносно - это не ноль.
Разбирать конечную полезную нагрузку будет легко, так как здесь происходит банальная загрузка и запуск всего-то в 20 строк кода:
Стоит ли здесь что-то объяснять? Ну я думаю, что нет. Ресурс, из которого происходило скачивание уже мертв, поэтому узнать, что же там было невозможно. Но статья на этом не заканчивается, Батлоадер интересен не только своей выживаемостью и низким процентом детекции, но и разнообразием всевозможных способов маскировки и распространения. Ранее мы разобрали на примере MSI установщика, но не им единым.
Использование JavaScript для распространения BatLoader
Важно упомянуть, что меняется лишь оболочка, некоторые шаги местами, но принцип действия остается тем же.
Итак, первичная полезная нагрузка имеет вес в 6 КБ, что намного меньше, чем у MSI, процент обнаруживаемости очень хороший — 28 из 52. При вскрытии имеем очень непонятную картину, все зашифровано.
Ничего не понятно, но после расшифровки получится следующее:
Особо без изменений, у нас другие названия скачиваемых файлов и другие ссылки.
Использование XML установщиков
Также достаточно интересный вариант. В этом нем злоумышленники вшивают свой .NET-скрипт в установщик, который запускает вредоносный файл, содержащийся в архиве вместе с .xml. Сам файл checkforupdate.bat не отличается от ранее рассмотренного update.bat. Сначала он пытается повысить привилегии, а затем скачивает PowerShell-скрипт. Процент обнаружения - 0 из 52. Вес различный.
BatLoader — краткий динамический анализ и сбор статистики
Для этого воспользуемся следующим набором утилит:
- TCPView — утилита, позволяющая просматривать входящий и исходящий трафик.
- RegShot — позволяет просматривать изменения в реестре, если таковые будут.
- Process Hacker — утилита, позволяющая в режиме реального времени наблюдать взаимодействие вредоноса с файлами или другими процессами. Немного модифицирована.
Сам динамический анализ Батлоадера не особо интересен, мне удалось нарыть около 15 живых образцов, которые имеют рабочие секторы управления. Как нам известно из анализа статистического, зловред практически никак не взаимодействует с системой, за исключением повышения привилегий.
И если мы вырежем окончательную полезную нагрузку в виде вредоноса, а затем сравним снимки реестра Windows до и после запуска - он никак не изменится.
Что больше интересно, так это проверить, какие популярные вредоносы пользуются услугами такого дроппера, как Батлоадер.
Имеем в наличии 16 рабочих образцов, я не стану запускать каждый и смотреть, что же будет происходить. У различных вредоносов разные признаки и в последнее время они чертовски любят маскироваться под друг друга, не имею понятия с чем это связано.
Намного проще будет извлечь ссылку на конечную нагрузку и провести простейший анализ, определив тип.
Статистика у нас следующая:
- RedLine Stealer - 5 образцов.
- Agent Tesla - 4 образца.
- Неидентифицированный вредонос - 2 образца.
- TrueBot - 2 образца.
- .bat, который удаляет все данные с накопителей - 1 образец.
- Raccoon Stealer - 1 образец.
Выводы
Вот и подошла эта статья к концу. Зачем любить и зачем страдать, когда существует BatLoader. Простой и универсальный дроппер, доставит что угодно и куда угодно, если у вашей жертвы Windows. Работает практически на всех операционных системах, безусловно повышение привилегий сработает не везде, но остальная цепочка вредоноса от этого не пострадает.
Удручает, что существует подобный дроппер, ведь против него антивирусы практически бессильны, та что уж, любой вредоносный .bat может быть лишь слегка обфусцирован и больше никто в нем угрозы не увидит. У .bat файлов огромный потенциал и страшно представить, если в скором будущем это превратится в новую мету среди киберпреступников.
Оставляет вопрос только сектора управления вредоносом, ведь злоумышленник не получает ровным счетом никакого контроля, также он не может быть запущен многоразово на одной машине, точнее может, но не без прямого взаимодействия. Ведь он никак не закрепляется в системе. В этом плане гибкости ему не хватает. А на этом у меня все. Как всегда ваш DeathDay. Не теряйте.
Последнее редактирование: