Osegi
Безопасность·1 мин чтения

Фейковая вакансия: ZIP запускает вредонос через обычный git status

Рекрутер «Cryptic Heaven» прислал разработчику ZIP с подготовленной папкой .git. Даже обычный git status может молча скачать и запустить чужой код.

A developer's laptop screen showing a terminal running git status next to a ZIP archive named Contract-2026.zip.
Фото: Хабр

Иногда хватает одного git status, чтобы на компьютере запустился чужой код. Разработчику написал в LinkedIn рекрутер компании Cryptic Heaven: они якобы делают финансовую систему для пользователей криптовалютных кредитных карт и хотят обсудить сотрудничество.

Предложение выглядело обычно. Разработчик спросил про проект, должность и условия, а в ответ получил ссылку на договор, описание вакансии и проект, плюс просьбу прислать заполненный договор.

По ссылке лежал архив Contract-2026.zip. Внутри были README.md, contract.docx и полноценная папка .git с историей, несколькими ветками и локальными настройками. Сам договор оказался пустым шаблоном: ни юрлица, ни оплаты, ни юрисдикции. В описании вакансии Smart Contract Developer тоже хватало незаполненных полей.

Как git status запускает вредоносный код?

У Git есть механизмы запуска внешних программ. Первый, хуки: скрипты, которые вызываются при событиях вроде переключения ветки. Параметр core.hooksPath позволяет указать для них другую папку, и там лежал файл post-checkout. Второй механизм, clean-фильтр с именем ltr, а звёздочка в файле attributes назначила его всем файлам.

Чтобы понять, изменился ли файл, Git может пропустить его через такой фильтр. Поэтому обычный git status способен выполнить скрипт .git/ltr. А совет в README переключаться между ветками нужен, чтобы сработал post-checkout. Автор проверил это на безопасном тестовом репозитории, где вместо вредоносного кода был скрипт, просто пишущий строку в лог. Сработали оба механизма.

Что делает скрипт ltr?

Это shell-скрипт. Он записывает время последнего обращения и ставит блокировку через mkdir, чтобы не плодить параллельные запуски. После двух секунд тишины определяет систему, скачивает код с удалённого сервера и сразу выполняет его: через sh на Linux и macOS, через PowerShell на Windows. Сервер находился на поддомене vercelscript.vercel.app.

Что именно делает загруженный код, по одному ZIP установить нельзя. Всё идёт в фоне, вывод и ошибки уходят в /dev/null, так что пользователь может ничего не заметить. Это может быть загрузчик следующего этапа, кража данных или что-то ещё.

Приложения, на которые стоит взглянуть

SUMO: числовая головоломка

Выбирайте нужные клетки, складывайте, достигайте цели. Легко понять, сложно освоить. Бесплатно, для любого возраста.

Теги:gitmalwarelinkedinjob scamcryptic heavendeveloper security

Ещё за этот день

Показать все →

Ещё в рубрике: Безопасность

Показать все →