У меня увели аккаунт Telegram через поддельную ссылку на видеозвонок: в адресе были подменены две буквы, вместо microsoft teams стояло miclosoft teams. Процесс прописался в системе за доли секунды, просидел там около десяти дней и дождался, пока я введу код двухфакторной проверки. Ни один антивирус его не увидел. Аккаунт я вернул, схему разобрал, и ниже она целиком.
Как выглядела схема
Я сам забукал созвон с партнёром, у которого, как выяснилось позже, аккаунт увели ровно так же. Атакующие делают копию его страницы записи на встречи, человек приходит по привычному адресу и ничего не проверяет, потому что инициатива была его собственная.
На самой встрече у второй стороны «не работает камера». Вас просят поправить драйвер: открыть страницу, скачать файл, вставить команду в терминал. В этот момент всё и происходит.
Почему это сработало на мне
Три детали, из которых складывается доверие, и каждая из них подделана.
Первое, встречу назначил я. Мозг не проверяет ссылку, по которой перешёл сам. Защита включается на входящие ссылки, а не на свои.
Второе, на созвоне было видео знакомого человека. Его записали, когда взламывали его самого. Вы видите живое лицо партнёра и перестаёте сомневаться.
Третье, просьба звучит технически и мелко. Не «переведите денег», а «поправь драйвер, у меня камера отвалилась». Это просьба помочь, и отказать неловко.
Чего не увидели антивирусы
Фишинговое приложение второй антивирус поймал сразу. А вот прописанный процесс не нашла ни одна из программ. Нашёл его агентный инструмент в терминале, которым я пользуюсь для работы: он прошёл по системе, выписал три процесса, вычислил адреса, куда они стучались, изолировал и удалил. На этих же данных я собрал заявление в полицию на испанском.
Я не утверждаю, что так будет у всех, это один мой случай. Но вывод из него простой: если есть подозрение, сканер запускают не вместо разбора системы, а вместе с ним.
Тревожные признаки на встрече
| Что происходит | Что это значит |
|---|---|
| Просят вставить команду в терминал | Остановиться, это почти всегда захват |
| Просят скачать файл или открыть страницу для «починки» драйвера | Остановиться |
| У второй стороны внезапно не работают камера или микрофон | Предложить перенести встречу |
| Торопят и говорят, что иначе не успеем обсудить | Давление по времени это часть схемы |
Правильная реакция одинаковая во всех четырёх случаях: выйти и перенести. Нормальный собеседник на это не обижается.
Что делать до встречи
Присылайте свою ссылку сами, со своей страницы записи. Тогда проверять нечего.
Если ссылку присылают вам, скопируйте её в чат с языковой моделью и спросите, безопасна ли она. На подмену двух букв в домене глаз не срабатывает, а модель сравнивает строку посимвольно.
Двухфакторную проверку включите везде, и по возможности на независимых каналах: приложение генератора кодов плюс отпечаток или лицо, а не один и тот же почтовый ящик на всё.
Промпт, которым я проверяю машину
Я прогоняю эту проверку раз в неделю. Промпт на английском намеренно: модели на нём точнее, и менять язык под каждую сессию смысла нет. Он написан под macOS, под Windows попросите модель переписать его под вашу систему.
Скопируйте текст целиком и дайте его агенту с доступом к терминалу (Claude Code, Codex).
You are a security auditor doing a threat hunt on this macOS machine. Assume nothing:
this machine MAY BE COMPLETELY CLEAN, and "no threat found" is a valid, expected result.
Do not invent a problem to justify action. Your job is to (1) surface anything suspicious
or anomalous, (2) explain each finding so I understand it, and (3) be ready to neutralise
ONLY if something real is confirmed and ONLY after I approve.
GROUND RULES
- The whole hunt is READ-ONLY. Do not delete, kill, move, or modify anything.
- Distinguish clearly between "normal", "needs a human glance", and "actually malicious".
Most machines have lots of the first two. Do not raise alarms on legitimate software.
- Hunt by behaviour and anomaly, not a fixed list. Treat as worth checking:
code running from user-writable paths (~/Library, /tmp, /var/folders, /Users/Shared),
unsigned / adhoc / non-notarized binaries that have persistence or network access,
LaunchAgents whose label impersonates a trusted brand (com.apple.* over a third-party
name like 1Password/Google/CleanMyMac), persistence that launches an interpreter
(bash/python/osascript) with -c / base64 / curl / eval, established connections to raw
public IPs with no reverse DNS on odd ports by non-browser processes, several artifacts
created in the same minute, and recently cleared shell history.
PHASE 1 - COLLECT (read-only). Report what you see at each step, good or empty.
1. Shell history (~/.zsh_history, ~/.bash_history): curl|wget piped to a shell, chmod +x
in temp, nohup, tput reset, base64 -d | sh, osascript -e, suspicious TLDs
(.online/.xyz/.top/.shop), any download-and-run one-liners.
2. Persistence: ~/Library/LaunchAgents, /Library/LaunchAgents, /Library/LaunchDaemons.
Print Label + ProgramArguments + RunAtLoad/KeepAlive + mtime. Flag brand-impersonating
labels, interpreter launches, and binaries living in user-writable paths.
3. ~/Library/Application Support: flag any com.apple.* folder that contains a Mach-O binary.
4. Processes running from /tmp, /var/folders, /Users/Shared, or fake Application Support
paths (ps + executable path). Note that AppTranslocation is often a legit quarantined app.
5. Live network: lsof -nP -iTCP -sTCP:ESTABLISHED. Flag established connections to raw public
IPs (no rDNS) on unusual ports by non-browser processes. Ignore LAN/private/loopback IPs.
6. Other vectors: login/logout hooks (com.apple.loginwindow), cron / at / periodic / emond,
configuration profiles (profiles list), system/kernel extensions, DYLD_INSERT_LIBRARIES
in shell env files and launchd EnvironmentVariables, /etc/hosts redirects of sensitive
domains, proxy (scutil --proxy), DNS overrides, ~/.ssh/authorized_keys, new admin users
(dscl . -read /Groups/admin), sudoers / sudoers.d, injected lines in shell rc files, GUI
login items, browser extensions (especially crypto wallets and broad-permission ones).
PHASE 2 - VERIFY each non-obvious item.
- codesign -dv --verbose=4 <path> and spctl --assess --type execute -v <path>.
- shasum -a 256 <path> for any suspect binary (record the hash).
- Trace the parent process and what the binary connects to.
- Give each item a verdict: legitimate / needs-review / malicious, with your reasoning.
- One known campaign to also check for (an EXAMPLE, do not limit to it; absence means nothing):
domain webcamsdk-update.online ; C2 172.86.126.215 ; files teamsSDK.sh / teamsSDK.bin ;
fake LaunchAgents com.apple.1Password / com.apple.CleanMyMac / com.apple.Google.
PHASE 3 - REPORT (always). Give a clear overall verdict:
CLEAN - nothing malicious found (list the few review items as a sanity check),
NEEDS REVIEW - ambiguous items I should confirm, none clearly malicious yet,
COMPROMISED - confirmed malicious persistence/process/connection (list evidence).
Be honest. If it is clean, say so plainly and stop. Do not proceed to Phase 4.
PHASE 4 - PREPARE CONTAINMENT (only if Phase 3 = COMPROMISED, and only after I approve
each item). Do not act unprompted.
- First write all evidence to a file: plist contents, hashes, paths, C2 IPs, process list.
- Then propose exact, reversible steps: quarantine (move, NOT delete) to
~/quarantine_malware_<date>/, unload the LaunchAgents/Daemons (launchctl bootout), kill
the live process. Show me the commands and wait for my go-ahead before running them.
- After I approve and you run them, re-check: confirm no malware process and no C2 connection.
PHASE 5 - ADVISE (always, scaled to what you found).
- If COMPROMISED: list every credential/secret to rotate from a CLEAN device (password
manager, browser passwords, crypto wallets/seeds, .env API keys, SSH keys, email,
exchanges), tell me to check the mailbox for attacker forwarding rules, and state plainly
that after an interactive backdoor the only certain cleanup is a full macOS reinstall.
- If CLEAN or NEEDS REVIEW: give short hardening tips (hardware/app 2FA not SMS, do not run
commands sent during calls, keep seeds off the work machine) and what to glance at manually
(System Settings > Privacy > Accessibility / Input Monitoring / Screen Recording, which a
keylogger would need and which this hunt cannot fully read without Full Disk Access).
Start with Phase 1 now and report findings as you go. Remember: finding nothing is a good
and valid outcome. Do not delete or change anything without my explicit approval.
Три вещи в этом промпте важнее остальных.
Вся проверка только на чтение. Агент, который сам удаляет найденное, уносит вместе с этим доказательства, а иногда и рабочие части системы. Удалять он предлагает только после подтверждения, и не удалять, а перемещать в карантин.
«Ничего не нашёл» это нормальный результат. Это сказано в первом же абзаце и повторено в конце. Без такой оговорки модель почти всегда что-нибудь «находит», лишь бы не отвечать пустотой.
Охота идёт по поведению, а не по списку известного. Конкретная кампания с домен webcamsdk-update.online и подменными метками автозапуска указана как пример, а не как весь перечень: её отсутствие ничего не доказывает.
Что делать, если уже случилось
Порядок такой. Сначала запустить сканер системы. Параллельно разобрать запущенные процессы и сетевые соединения, потому что именно там прячется то, чего сканер не видит. Затем сбросить все пароли, а не только тот, который увели. При подтверждённом проникновении лучше переустановить систему целиком: гарантий, что вычистили всё, нет.
И отдельно: после захвата с вашего аккаунта пишут не вымогатели. С вашими друзьями ведут нормальные деловые диалоги, обученные на вашей же переписке, и предлагают созвониться. Цель не ваши деньги, а следующие аккаунты. Схема размножается как вирус, поэтому предупредить свой круг нужно в первый же час.
Что спасло рабочий контур
В корпоративную инфраструктуру они не попали, и причина скучная: двухфакторная и трёхфакторная проверка с разных устройств, весь контур за VPN, доступы разделены по ролям. Личный периметр у большинства людей слабее рабочего, а увести пытаются именно личный, потому что через него легче дойти до остальных.
Если запомнить только одно
Просьба что-то вставить в терминал или скачать во время видеозвонка это не технический сбой. Это и есть атака. В этот момент встреча заканчивается, а не продолжается.
Если это про вашу ситуацию
Разовая сессия на час, 450 евро, или менторство 2000 евро в месяц: 3 созвона по часу и стратегический разбор, работа над одним проектом. Начинается всё с анкеты.
Открыть анкету