Скрытая угроза: северокорейские хакеры используют GitHub для слежки за южнокорейским бизнесом

information security

Группы угроз, связанные с государственными интересами КНДР, продолжают совершенствовать свои методы атак, всё чаще используя легитимную публичную инфраструктуру для скрытного управления вредоносными кампаниями. Исследователи из FortiGuard Labs недавно раскрыли детали новой многоступенчатой кампании, нацеленной на пользователей в Южной Корее. В её основе - фишинговые LNK-файлы, которые используют GitHub в качестве центра управления, что позволяет злоумышленникам эффективно обходить традиционные средства защиты. Эта атака демонстрирует опасную тенденцию, когда граница между легитимным и вредоносным трафиком становится всё более размытой, создавая серьёзные проблемы для корпоративных SOC.

Описание

Кампания, технические детали которой описали аналитики FortiGuard, отслеживается с 2024 года, однако за последние месяцы злоумышленники существенно доработали свои инструменты. Если в ранних версиях LNK-файлы содержали метаданные и менее сложную обфускацию, что позволяло исследователям отслеживать связь с распространением трояна XenoRAT, то теперь методы стали изощрённее. Атакующие стали внедрять функции декодирования прямо в аргументы ярлыка и помещать закодированную полезную нагрузку внутрь самих файлов. Анализ названий файлов-приманок, которые представляют собой документы PDF, указывает на целенаправленный характер атак: целью, судя по всему, являются различные компании в Южной Корее для расширения операций цифровой разведки.

Первая стадия атаки начинается с LNK-файла, маскирующегося под документ. Его открытие запускает сложный многоэтапный скриптовый процесс. В более ранних вариантах использовалась простая конкатенация символов для сокрытия адреса C2 на GitHub и токена доступа. В современных версиях обфускация усложнилась: в аргументах ярлыка теперь размещается функция декодирования, которая, получив параметры местоположения, длины и XOR-ключа, расшифровывает как сам файл-приманку (PDF), так и PowerShell-скрипт для следующей стадии. При этом злоумышленники научились удалять идентифицирующие метаданные, такие как характерное название "Hangul Document", которое ранее связывало подобные атаки с северокорейскими группировками Kimsuky, APT37 (также известной как Reaper) и Lazarus.

Расшифрованный PowerShell-скрипт второй стадии выполняет несколько критически важных функций. Прежде всего, он проводит тщательную проверку окружения, сканируя активные процессы на наличие софта, связанного с виртуальными машинами, отладчиками или средствами анализа, такими как VMware, VirtualBox, Wireshark, x64dbg и Process Hacker. При обнаружении любого из сотен отслеживаемых процессов скрипт немедленно завершает работу, что значительно затрудняет исследование вредоносного кода в лабораторных условиях. Если окружение признаётся "чистым", скрипт восстанавливает и декодирует ряд строк, сохраняя итоговую полезную нагрузку в случайно названную папку в каталоге %Temp%.

Для обеспечения устойчивости в системе скрипт создаёт задание в Планировщике задач Windows. Это задание, замаскированное под безобидное имя вроде "Technical Paper for Creata Chain Task...", запускает VBScript каждые 30 минут. VBScript, в свою очередь, выполняет полезную нагрузку PowerShell в скрытом окне, минимизируя видимость для пользователя. Далее скрипт собирает детальную информацию о системе: версию и сборку ОС, время последней загрузки, список запущенных процессов. Эти данные сохраняются в лог-файл и эксфильтрируются на контролируемый злоумышленниками репозиторий GitHub, используя жёстко заданный в коде токен доступа.

Исследование показало, что аккаунт motoralis, используемый в качестве основного C2, демонстрирует активность с 2025 года. Более широкий анализ инфраструктуры злоумышленника выявил стратегическое использование как "спящих", так и активных аккаунтов на GitHub. Некоторые учётные записи, например entire73, месяцами остаются неактивными, в то время как другие, вроде brandonleeodd93-blip, были активированы лишь несколько недель назад, обеспечивая оперативное резервирование. Аккаунт motoralis функционирует как основной операционный хаб: всплеск активности в приватных репозиториях чётко коррелирует с увеличением числа фишинговых рассылок с LNK-файлами. Размещая весь вредоносный контент и логи в приватных репозиториях, угроза эффективно скрывает его от публичного просмотра, одновременно используя высокую репутацию домена GitHub для обхода корпоративных фильтров безопасности.

Третья, финальная стадия скрипта отвечает за поддержание стабильного соединения с инфраструктурой управления. Его главная цель - постоянно запрашивать дополнительные модули или инструкции из репозитория злоумышленника. Созданное ранее задание в Планировщике задач обеспечивает персистентность, позволяя атакующему удалённо мониторить жертву и при необходимости выполнять дополнительные команды. Также был обнаружен "keep-alive" скрипт, который собирает детали сетевой конфигурации и загружает их на GitHub, что даёт угрозе возможность отслеживать состояние сети жертвы в реальном времени.

Данная кампания демонстрирует глубокое понимание социальной инженерии и использование нативных инструментов Windows для развёртывания, уклонения от обнаружения и закрепления в системе. Минимизация использования сбрасываемых исполняемых файлов и активная эксплуатация легитимных бинарников (LolBins) позволяют атакующим охватывать широкую аудиторию с крайне низким уровнем детектирования. Ключевым элементом стало злоупотребление легитимной публичной инфраструктурой: использование API GitHub в качестве канала управления позволяет скрывать вредоносный трафик внутри обычных зашифрованных подключений к доверенному, часто разрешённому в корпоративных сетях домену. Это создаёт высокоэффективную цепочку заражения, обнаружить которую стандартными средствами безопасности крайне сложно. Защита от подобных угроз требует повышенной бдительности в отношении непроверенных документов, а также тщательного мониторинга подозрительной активности, связанной с PowerShell и VBScript, в корпоративной среде.

Индикаторы компрометации

URLs

  • https://api.github.com/repos/motoralis
  • https://raw.githubusercontent.com/motoralis/singled/main/kcca/paper.jim

SHA256

  • 484a16d779d67c7339125ceac10b9abf1aa47f561f40058789bfe2acda548282
  • 9c3f2bd300ad2ef8584cc48adc47aab61bf85fc653d923e106c73fc6ec3ea1dc
  • af0309aa38d067373c54b2a7774a32f68ab72cb2dbf5aed74ac784b079830184
  • c0866bb72c7a12a0288f434e16ba14eeaa35d3c4cff4a86046c553c15679c0b5
  • f20fde3a9381c22034f7ecd4fef2396a85c05bfd54f7db3ad6bcd00c9e09d421
Комментарии: 0