Good Carder
Professional
- Messages
- 903
- Reaction score
- 520
- Points
- 93
От кардера — кардерам. Вы думаете, что passkeys — это неуязвимый щит? Что биометрия и аппаратное связывание с Secure Enclave делают ваши аккаунты неприступными? Наивность. Passkeys действительно ломают классический фишинг. Но они создали новые атаки, о которых молчат в рекламных проспектах.
В 2027 году WebAuthn и CTAP2.1 — это не магия. Это протоколы с дизайн-дефектами, уязвимые реализации и, самое главное, человеческий фактор. В этой статье я разберу реальные способы обхода passkey-аутентификации без физического доступа к устройству жертвы. От эмуляции FIDO2-токена до MITM-проксирования, от downgrade-атак до извлечения сессионных токенов после успешного логина. Никакой рекламной ерунды — только то, что реально работает в бою.
По задумке это ломает классический фишинг: украсть passkey удалённо невозможно, подменить подпись — тоже. В 2026–2027 годах passkeys действительно стали стандартом, но у любой брони есть слабые места.
Ключевые ограничения, которые создали лазейки для атак:
Самые опасные для кардера:
Эмуляция через passless: passless — софт-эмулятор FIDO2 на Rust, запускается как виртуальное UHID-устройство на Linux. По сути вы создаёте софт-ключ, который выглядит для системы как YubiKey. Если на сайте можно зарегистрировать новый авторизатор, вы регистрируете свой, а затем используете для входа.
Эмуляция через nid-webauthn-emulator: Node.js библиотека эмулирует WebAuthn API прямо в браузере, позволяя тестировать passkeys без физического оборудования. В атаке можно загрузить эту библиотеку в контекст жертвы через XSS и эмулировать успешный логин от её имени. Её navigator.credentials.get() возвращает подписанный assertion, который сайт принимает как валидный, если не проверяет происхождение.
Стандартный сценарий:
Релевантность для 2027: CTAP2.1 всё ещё не аутентифицирует клиент на авторизаторе, что делает возможной атаку с подменой клиента на расстоянии (в пределах Bluetooth/NFC). Инструмент Evilginx2, известный как MITM-прокси для обхода MFA, развивается, и его адаптация для WebAuthn находится в разработке. Некоторые исследователи также представили BitM+ — усовершенствованную атаку, способную обходить FIDO2 через перехват и подмену регистрации.
Если у жертвы установлено вредоносное расширение, вам даже не нужен XSS — расширение само может перехватывать вызовы WebAuthn API. SquareX показали, как вредоносное расширение hijacks вызовы WebAuthn и манипулирует passkey-регистрацией или входом, не ломая криптографию. Пользователь не замечает подмены, потому что видит стандартный диалог выбора passkey.
Анализ кнопки входа. Многие сайты предлагают «Password login» или «Email me a magic link». Вредоносное расширение скрывает кнопку passkey или подменяет её обработчик.
Манипуляция conditional mediation. Immediate mediation — это механизм WebAuthn, позволяющий предлагать вход с passkey без ввода логина. Если вы подмените флаг «conditional» через JavaScript, то браузер не предложит passkey, и сайт переключится на резервный метод.
Взлом резервных методов. Если пользователю предложат SMS-код, перехватите его через SS7-атаку или SIM-свопинг. Если предложат резервные коды восстановления — украдите их. Если предложат ответить на контрольные вопросы — узнайте ответы через OSINT. Эти методы стары, но passkeys не закрыли их полностью.
Кража через XSS: Если на сайте есть XSS, вы выполняете document.cookie и отправляете куки на свой сервер. С ними вы заходите в аккаунт от имени жертвы, даже если у неё passkey.
Кража из localStorage: Многие сайты хранят bearer token в localStorage (плохая практика, но встречается). JavaScript крадёт токен и отправляет вам.
Кража из браузера (post-exploitation): Инструменты вроде SharpWeb извлекают cookies из Chrome, Edge и Firefox. Если вы скомпрометировали компьютер жертвы (RDP, троян, фишинг), вы просто копируете файлы cookies и импортируете их в свой браузер.
VaultJacking: В мае 2026 года исследователи продемонстрировали, как атака VaultJacking позволяет извлечь passkeys из синхронизированного хранилища (Google Password Manager, iCloud Keychain), зная всего один PIN-код. Даже аппаратно-связанные ключи не защищены, если они синхронизируются через облако. Passkey защищает логин на конкретном сайте, но из облачного хранилища его можно украсть — и тогда он будет работать на любом устройстве. Связь passkey с устройством нарушается, как только вы соглашаетесь на синхронизацию.
Из Windows TPM. Windows 11 хранит passkeys как credential-провайдеры. Физический доступ к устройству или удалённый доступ с правами SYSTEM позволяют использовать Windows Credential Manager API для извлечения ключей. Утилиты вроде Mimikatz могут взаимодействовать с TPM, чтобы запросить подпись данных. Извлечь сам приватный ключ невозможно, но вы можете использовать TPM как «чёрный ящик» для подписи нужных вам челленджей. Эффективно: у вас нет ключа, но у вас есть возможность им пользоваться.
SEP Exploitation на iOS. PongoOS эксплуатирует Secure Enclave Processor на устройствах с чипами A8, A9, A10, позволяя расшифровать firmware, защищённую аппаратными ключами, получить доступ к криптографическим операциям и пропатчить SEP firmware для обхода ограничений. Физический доступ к устройству с джейлбрейком позволяет подменить passkey.
Эмуляция Secure Enclave. Исследователи доказали, что эмуляция защищённых сред (Secure Enclave, TPM) возможна через создание софт-реплики на другом устройстве. Если эмулировать Secure Enclave с теми же ключами (извлечёнными через SEP-эксплойт), вы получите полный контроль над passkey.
Связка XSS + вредоносное расширение браузера обходит WebAuthn без физического доступа к устройству. Эмуляторы FIDO2 подделывают ключи. MITM-прокси перехватывают регистрацию и аутентификацию. Подмена альтернативного метода (пароль, SMS) всё ещё остаётся самым простым путём. Перехват сессионных кук после успешного логина — старый друг, которому passkeys не помеха.
Быстрая памятка на одну строку:
«Passkeys убивают фишинг, но оставляют сессионные куки, альтернативные входы, облачную синхронизацию и MITM на Bluetooth. Перехвати токен после логина — и passkey не нужен. Подмени кнопку входа на пароль — и passkey не появится. Украдь файл cookie через XSS — и WebAuthn бессилен. В 2027 году биометрия защищает только момент, а не сессию. Ломай не ключ — ломай путь вокруг него»
В 2027 году WebAuthn и CTAP2.1 — это не магия. Это протоколы с дизайн-дефектами, уязвимые реализации и, самое главное, человеческий фактор. В этой статье я разберу реальные способы обхода passkey-аутентификации без физического доступа к устройству жертвы. От эмуляции FIDO2-токена до MITM-проксирования, от downgrade-атак до извлечения сессионных токенов после успешного логина. Никакой рекламной ерунды — только то, что реально работает в бою.
Часть 1. Passkeys 2027: что защищает (и что не защищает)
Passkeys — это FIDO2/WebAuthn. Устройство жертвы генерирует пару ключей: приватный ключ намертво привязан к защищённому хранилищу (Secure Enclave на iOS/macOS, TPM на Windows, Trusted Execution Environment (TEE) на Android), публичный ключ отправляется на сервер. При логине сервер посылает челлендж — случайные данные, которые устройство подписывает приватным ключом. Плюс к этому в протокол вшита привязка к домену (origin), что формально предотвращает фишинг: подпись не сработает для другого сайта.По задумке это ломает классический фишинг: украсть passkey удалённо невозможно, подменить подпись — тоже. В 2026–2027 годах passkeys действительно стали стандартом, но у любой брони есть слабые места.
Ключевые ограничения, которые создали лазейки для атак:
- Сессионные токены остались. Passkeys защищают только вход. Как только пользователь вошёл, сервер выписывает ему bearer token или session cookie. Украсть этот токен — и вы внутри, даже без passkey.
- Cloud-синхронизация. Passkeys синхронизируются между устройствами через iCloud Keychain, Google Password Manager, Microsoft Account. Это удобно — и ужасно с точки зрения безопасности. Кто взломал iCloud, тот получил все passkeys.
- «Запасные пути» аутентификации. Почти все сайты, использующие passkeys, оставляют опцию «войти с паролем» или «отправить код по SMS». Как только вы находите способ заставить жертву использовать эту опцию — passkey бесполезен.
- Роуминг-авторизаторы. Ключи можно использовать со смартфона на ноутбуке через Bluetooth/USB. Когда вы перехватываете этот канал (через MITM-прокси на уровне протокола связи), вы можете перехватить подпись и использовать её для своего логина.
Часть 2. Карта уязвимостей: CVE, дизайн-дефекты и реальные эксплойты
2.1. CVE-2025-12150: подделка аттестационного политика в Keycloak
Уязвимость в компоненте регистрации WebAuthn в Keycloak позволяла атакующему обойти настроенную аттестационную политику и зарегистрировать непроверенный поддельный авторизатор, отправив объект аттестации с типом fmt: "none", даже когда система требовала прямую аттестацию. Это упрощало внедрение поддельных ключей.2.2. CVE-2026-37982: повтор токена авторизации в Keycloak
Уязвимость позволяет удалённому хакеру повторить токены ExecuteActionsActionToken в потоке WebAuthn. Перехватив email-ссылку выполнения действия, хакер может зарегистрировать свой аппаратный ключ и получить постоянный доступ к аккаунту. WebAuthn не был резистентен к атакам повторного воспроизведения, если полагающаяся сторона неправильно валидирует origin.2.3. CVE-2025-11984: обход 2FA в GitLab через манипуляцию сессией
Уязвимость в GitLab позволяла аутентифицированному пользователю обойти двухфакторную аутентификацию WebAuthn, манипулируя состоянием сессии. При определённых условиях это требовало небольших привилегий и сложных условий. Но главный урок: даже крупные платформы ошибаются в реализации.2.4. CVE-2025-66558: кража устройства 2FA через отсутствие проверки владения
Уязвимость в приложении Nextcloud Twofactor WebAuthn позволяла удалённому хакеру «забрать» устройство 2FA из-за отсутствия проверки прав собственности. Без проверки владения дроп не нужен — чужим ключом можно закрыть чужую дверь.2.5. Дизайн-дефекты CTAP2.1: клиент без аутентификации и трекируемые креды
Исследователи выявили восемь уязвимостей в спецификации CTAP, которые они назвали CTRAPS (CTAP Client Impersonation and API Confusion on FIDO2). Шесть из них — новые и включают: неаутентифицированных CTAP-клиентов, трекируемые FIDO2-креды и возможность сброса авторизатора без пользовательской проверки.Самые опасные для кардера:
- Отсутствие клиентской аутентификации. Протокол не требует, чтобы клиент доказал, кто он. Подделав клиента, можно общаться с авторизатором напрямую.
- Отсутствие проверки User Verification при вызове Reset. Можно сделать заводской сброс авторизатора без подтверждения личности.
2.6. SlowMist: downgrade-атака на WebAuthn
SlowMist CISO 23pds описал метод обхода WebAuthn-логина через принудительное понижение до пароля или SMS. Атака не требует физического доступа к устройству, только XSS-уязвимость на сайте или вредоносное расширение в браузере жертвы. По сути: вы не взламываете passkey, вы заставляете жертву использовать альтернативный слабый метод входа.2.7. BitM+: продвинутый MITM против FIDO2/CTAP
BitM (Browser-in-the-Middle) — это усовершенствованная MITM-атака, способная обходить FIDO2 и WebAuthn через перехват и подмену трафика между браузером жертвы и сайтом. С её помощью атакующий может перехватить регистрацию ключа и заменить свой публичный ключ на тот, что будет привязан к аккаунту.Часть 3. Методы обхода WebAuthn без физического устройства
3.1. Симуляция успешной аутентификации через эмуляторы FIDO2
Если вы не можете подделать подпись, вы можете предъявить системе уже подписанный ответ. Это атака повторного воспроизведения (replay). WebAuthn не всегда защищён от него, если полагающаяся сторона не хранит состояние использованных челленджей. В теории челленджи одноразовые, но на практике бывают ошибки.Эмуляция через passless: passless — софт-эмулятор FIDO2 на Rust, запускается как виртуальное UHID-устройство на Linux. По сути вы создаёте софт-ключ, который выглядит для системы как YubiKey. Если на сайте можно зарегистрировать новый авторизатор, вы регистрируете свой, а затем используете для входа.
Эмуляция через nid-webauthn-emulator: Node.js библиотека эмулирует WebAuthn API прямо в браузере, позволяя тестировать passkeys без физического оборудования. В атаке можно загрузить эту библиотеку в контекст жертвы через XSS и эмулировать успешный логин от её имени. Её navigator.credentials.get() возвращает подписанный assertion, который сайт принимает как валидный, если не проверяет происхождение.
3.2. Атака «Прокси-ретрансляция» (MITM на USB/Bluetooth)
Когда жертва использует passkey с телефона для входа на ноутбуке, связь идёт через Bluetooth или USB (roaming authenticator). Перехватив этот канал, можно получить подписанный assertion и использовать его для своего входа.Стандартный сценарий:
- Вы создаёте вредоносное приложение на Android, которое эмулирует FIDO2-авторизатор и транслирует себя через Bluetooth.
- Пользователь (жертва) рядом с вами пытается залогиниться на сайте.
- Вредоносный авторизатор перехватывает запрос, ретранслирует его на удалённый сервер, где вы генерируете подпись, и возвращает её обратно.
- Вы успешно проходите аутентификацию от имени жертвы.
Релевантность для 2027: CTAP2.1 всё ещё не аутентифицирует клиент на авторизаторе, что делает возможной атаку с подменой клиента на расстоянии (в пределах Bluetooth/NFC). Инструмент Evilginx2, известный как MITM-прокси для обхода MFA, развивается, и его адаптация для WebAuthn находится в разработке. Некоторые исследователи также представили BitM+ — усовершенствованную атаку, способную обходить FIDO2 через перехват и подмену регистрации.
3.3. XSS + Malicious Browser Extension: высшая техника
В 2027 году медленно, но верно набирает популярность метод, объединяющий XSS-уязвимость на целевом сайте с вредоносным расширением браузера. Атака выглядит так:- Вы находите XSS на сайте, который использует passkeys.
- Внедряете скрипт, который перехватывает navigator.credentials.get() и navigator.credentials.create().
- При попытке жертвы залогиниться ваш скрипт подменяет origin или credential ID.
- Система думает, что аутентификация прошла успешно, и выдаёт сессионный токен.
Если у жертвы установлено вредоносное расширение, вам даже не нужен XSS — расширение само может перехватывать вызовы WebAuthn API. SquareX показали, как вредоносное расширение hijacks вызовы WebAuthn и манипулирует passkey-регистрацией или входом, не ломая криптографию. Пользователь не замечает подмены, потому что видит стандартный диалог выбора passkey.
3.4. Отключение passkey через downgrade: как заставить жертву использовать пароль
Самый эффективный метод. Вам не нужно ломать passkey, нужно сделать так, чтобы система его не потребовала.Анализ кнопки входа. Многие сайты предлагают «Password login» или «Email me a magic link». Вредоносное расширение скрывает кнопку passkey или подменяет её обработчик.
Манипуляция conditional mediation. Immediate mediation — это механизм WebAuthn, позволяющий предлагать вход с passkey без ввода логина. Если вы подмените флаг «conditional» через JavaScript, то браузер не предложит passkey, и сайт переключится на резервный метод.
Взлом резервных методов. Если пользователю предложат SMS-код, перехватите его через SS7-атаку или SIM-свопинг. Если предложат резервные коды восстановления — украдите их. Если предложат ответить на контрольные вопросы — узнайте ответы через OSINT. Эти методы стары, но passkeys не закрыли их полностью.
3.5. Перехват сессионных токенов после успешной аутентификации
Passkeys защищают только начальный вход. Сессионные токены и куки — нет.Кража через XSS: Если на сайте есть XSS, вы выполняете document.cookie и отправляете куки на свой сервер. С ними вы заходите в аккаунт от имени жертвы, даже если у неё passkey.
Кража из localStorage: Многие сайты хранят bearer token в localStorage (плохая практика, но встречается). JavaScript крадёт токен и отправляет вам.
Кража из браузера (post-exploitation): Инструменты вроде SharpWeb извлекают cookies из Chrome, Edge и Firefox. Если вы скомпрометировали компьютер жертвы (RDP, троян, фишинг), вы просто копируете файлы cookies и импортируете их в свой браузер.
VaultJacking: В мае 2026 года исследователи продемонстрировали, как атака VaultJacking позволяет извлечь passkeys из синхронизированного хранилища (Google Password Manager, iCloud Keychain), зная всего один PIN-код. Даже аппаратно-связанные ключи не защищены, если они синхронизируются через облако. Passkey защищает логин на конкретном сайте, но из облачного хранилища его можно украсть — и тогда он будет работать на любом устройстве. Связь passkey с устройством нарушается, как только вы соглашаетесь на синхронизацию.
3.6. Извлечение passkeys из TPM/Secure Enclave
Это самый сложный и самый опасный вектор. Если вы можете извлечь приватный ключ напрямую из защищённого хранилища, у вас есть вечный доступ к аккаунту.Из Windows TPM. Windows 11 хранит passkeys как credential-провайдеры. Физический доступ к устройству или удалённый доступ с правами SYSTEM позволяют использовать Windows Credential Manager API для извлечения ключей. Утилиты вроде Mimikatz могут взаимодействовать с TPM, чтобы запросить подпись данных. Извлечь сам приватный ключ невозможно, но вы можете использовать TPM как «чёрный ящик» для подписи нужных вам челленджей. Эффективно: у вас нет ключа, но у вас есть возможность им пользоваться.
SEP Exploitation на iOS. PongoOS эксплуатирует Secure Enclave Processor на устройствах с чипами A8, A9, A10, позволяя расшифровать firmware, защищённую аппаратными ключами, получить доступ к криптографическим операциям и пропатчить SEP firmware для обхода ограничений. Физический доступ к устройству с джейлбрейком позволяет подменить passkey.
Эмуляция Secure Enclave. Исследователи доказали, что эмуляция защищённых сред (Secure Enclave, TPM) возможна через создание софт-реплики на другом устройстве. Если эмулировать Secure Enclave с теми же ключами (извлечёнными через SEP-эксплойт), вы получите полный контроль над passkey.
Часть 4. Инструментарий и инфраструктура: что реально использовать
В 2027 году арсенал для атак на passkeys включает:- passless: FIDO2 софт-авторизатор (Rust, виртуальное UHID-устройство) — для эмуляции hardware key.
- nid-webauthn-emulator: Node.js библиотека для эмуляции WebAuthn API в браузере.
- Evilginx2 (модифицированная версия): MITM-прокси для перехвата WebAuthn-потоков в разработке.
- SharpWeb: извлечение cookies и паролей из браузеров для session hijacking.
- Ngrok / Burp Suite Collaborator: создание публичных прокси для MITM-атак.
Часть 5. Чек-лист: как проверить атакуемость passkey-системы
Перед атакой на сайт с passkey-защитой оцените его по этим пунктам:- Есть ли альтернативные методы входа (пароль, SMS, email)? Если да — цель слабая.
- Можно ли зарегистрировать свой авторизатор без верификации? Если да — вы получаете постоянный доступ.
- Присутствует ли XSS-уязвимость (ручной тест)? Если да — вы можете перехватить API WebAuthn.
- Доступно ли резервное восстановление через код или поддержку? Если да — используйте социальную инженерию.
- Можно ли перехватить сессию после успешного логина (куки не HttpOnly)? Если да — вы внутри, passkey не нужен.
- Используется ли облачная синхронизация passkeys? Если да — цель ценный вектор VaultJacking.
- Доступен ли Bluetooth/USB-авторизатор? Если да — попробуйте MITM-прокси.
Резюме
Passkeys не делают аккаунт неприступным. Они просто сдвигают точку атаки. Теперь вы не взламываете пароль — вы взламываете реализацию протокола, сессионный токен, альтернативный метод входа или само устройство.Связка XSS + вредоносное расширение браузера обходит WebAuthn без физического доступа к устройству. Эмуляторы FIDO2 подделывают ключи. MITM-прокси перехватывают регистрацию и аутентификацию. Подмена альтернативного метода (пароль, SMS) всё ещё остаётся самым простым путём. Перехват сессионных кук после успешного логина — старый друг, которому passkeys не помеха.
Быстрая памятка на одну строку:
«Passkeys убивают фишинг, но оставляют сессионные куки, альтернативные входы, облачную синхронизацию и MITM на Bluetooth. Перехвати токен после логина — и passkey не нужен. Подмени кнопку входа на пароль — и passkey не появится. Украдь файл cookie через XSS — и WebAuthn бессилен. В 2027 году биометрия защищает только момент, а не сессию. Ломай не ключ — ломай путь вокруг него»
Last edited by a moderator: