
Команда Supply Chain Security экспертного центра безопасности (PT ESC) отправила отчет администрации реестра npm о занятной маленькой кампании против Apple, среди них:
• apple-infra-network-v2 (170 скачиваний на момент репорта)
• apple-infra-final-escape (326 скачиваний)
• apple-infra-gcp-leak (165 скачиваний)
• apple-infra-ultimate-bypass (153 скачивания)
• agents-a365-runtime — мимикрия под пакет @microsoft/agents-a365-runtime (447 скачиваний)
• apple-security-internal-scanner-v3 (185 скачиваний)
• apple-coredata-internal-service (367 скачиваний)
Часть проектов первой волны лаконична и состоит из одного файла package.json весом менее 1 килобайта:

Bash-однострочник:
🌟Получает содержимое /etc/resolv.conf — DNS-конфигурацию устройства.
🌟Проверяет возможность разрезолвить домен internal.apple.com через nslookup / host.
🌟Забирает записи ARP-кеша (таблицы сопоставлений ip-адресов на MAC-адреса).
🌟Обращает внимание на следующие переменные окружения по маске: PROXY, TENCENT, REGION, ZONE.
Смысл переменных окружения:
PROXY* — забрать настройки корпоративных прокси (HTTP_PROXY, HTTPS_PROXY и другие). Там может попасться значение наподобие http://proxy[.]departmentname.companyname[.]local, позволяющее детальнее идентифицировать жертву;
TENCENT* — вероятно признак инфраструктуры Tencent Cloud;
REGION и ZONE — переменные окружения, в которой может храниться местоположение облака, например eu-west-1.
Этот отчет обрамляется текстом --- NETWORK PIVOT AUDIT --- и --- AUDIT SELESAI --- («Отчет окончен» по-индонезийски ) и отправляется автору пакета.
Легко можно поверить, что это пентест — либо багбаунти-активность против Apple: аккуратно собирается отпечаток жертвы, без информации, которая представляла бы коммерческую ценность.
Однако часть дальнейших релизов имеют занятную логику (см. скриншот ниже):
-
Попытка украсть значение одной из переменных окружения в следующем порядке:
NPM_TOKEN,NODE_AUTH_TOKEN,GITHUB_TOKEN,NPM_AUTH_TOKEN. Если их нет, то попробуем взятьauthTokenиз файла~/.npmrc -
Надеясь, что у окружения есть доступ к внутреннему хранилищу npm-пакетов, попытка скачать пакет
apple-app-store-server-library, пересобрать его с новой версией и опубликовать в глобальномnpmjs.org

Our honest reaction на второй пункт: 🤔 Ну и индонезийских комментариев стало больше.
По мере развития кампании злоумышленник перестал пускать в глаза пыль благих намерений и стал просто красть все интересные переменные окружения, а также забирать токены Azure IMDS.
В какой-то момент автор, тестируя логику публикации пакета от имени жертвы, случайно упаковал в один из своих релизов все свои скрипты, node-логи и даже .bash-history 🤔

При изучении команд создается четкое ощущение, что мы столкнулись с работой агентской системы по автоматизации проведения пентестов. Лишь сильнейшие из людей могут писать команды наподобие этой:
echo 'длинный валидный однострочный package.json c инфостилером в preinstall-логике' > package.json && npm publish
В bash history также попали комментарии. Их мог оставить сам злоумышленник, копируя команды из диалога с LLM, а мог и сам агент:
// Masukin ini ke dalam script preinstall lu# Nyari di mana lokasi instalasi npm lo# Biasanya hasilnya di /usr/bin/npm. Sekarang kita liat isinya:
В переводе на английский:
// Enter this into your preinstall script# Find your npm installation location# Usually, it’s in /usr/bin/npm. Now let’s look at the contents:
На дворе 2026 год. Фреймворки для автопентеста уже существуют. Blue team тоже не отстает и предлагает свои решения по использованию LLM в тех же SIEM. Пройдет время, и нам, человекам, останется только с попкорном смотреть за этим противостоянием 🍿
(Источник: https://t.me/ptescalator)
ссылка на оригинал статьи https://habr.com/ru/articles/1037902/