Android-приложение для relay-атак на NFC. Перехватывает NFC-трафик между картой и терминалом, ретранслирует через IP-сеть на второе устройство. Поддерживает: capture, replay, relay, клонирование Mifare Classic. Позволяет обходить RFID-доступ на расстоянии.
# Установить APK на 2 Android-устройства с NFC: https://github.com/nfcgate/nfcgate/releases # Одно — у жертвы (capture/relay), второе — у терминала (relay/replay)
⚠️В настоящее время NFCGate ошибочно обнаруживается как вредоносное ПО "NGate". Пожалуйста, ознакомьтесь с этим отчётом для получения актуальной информации.⚠️
NFCGate — это приложение для Android, предназначенное для захвата, анализа или модификации NFC-трафика. Оно может использоваться как инструмент для исследования и реверс-инжиниринга протоколов или оценки их безопасности в условиях модификации трафика.
Это приложение было разработано в целях исследований безопасности студентами Лаборатории безопасных мобильных сетей при Техническом университете Дармштадта. Пожалуйста, не используйте это приложение в злонамеренных целях.
git submodule update --initПоскольку инструкции различаются для каждого режима, каждый режим подробно описан в отдельном документе
в папке doc/mode/:
Захваченный трафик можно экспортировать в формат файла pcapng или импортировать из него. Например, Wireshark можно использовать для дальнейшего анализа NFC-трафика. Подробное описание функциональности импорта и экспорта приведено в doc/pcapng.md.
NFCGate предоставляет встроенную проверку состояния. Для дополнительных замечаний о совместимости см. документ по совместимости.
Пожалуйста, учтите следующие проблемы и оговорки перед использованием приложения (и особенно перед созданием отчёта об ошибке).
При использовании режимов, которые задействуют HCE, телефон должен реализовывать спецификацию NFC Controller Interface (NCI). Большинство телефонов реализуют эту спецификацию при поддержке HCE.
Для обеспечения конфиденциальности и целостности используйте транспортную безопасность (TLS), которую можно включить в настройках NFCGate. Вам потребуется сертификат, выданный центром сертификации, или самоподписанный сертификат. Сертификаты от доверенных системных ЦС принимаются автоматически. Самоподписанные сертификаты могут быть приняты пользователем при первом использовании (TOFU).
Мы можем работать только с метками, поддерживаемыми Android. Например, Android больше не поддерживает чипы MiFare classic, поэтому эти карты не поддерживаются. В случае сомнений используйте такое приложение как NFC Tag info, чтобы узнать, совместима ли ваша метка. Кроме того, в настоящее время поддерживаются все технологии меток, поддерживаемые HCE Android (A, B, F), однако NFC-B и NFC-F остаются непроверенными. Метки NFC-A являются наиболее распространёнными (например, и MiFare DESFire, и специализированные чипы, такие как используемые в электронных паспортах, используют NFC-A), но вы можете столкнуться с проблемами, если будете использовать другие метки.
Это приложение работает только с ридерами, которые не реализуют дополнительные меры безопасности. Одной
мерой безопасности, которая не позволит нашему приложению работать в режиме ретрансляции, является проверка ридером
времени отклика карты (или, в более общем случае, если ридер реализует "ограничение расстояния"). Сетевая передача вносит
заметную задержку в любую транзакцию, поэтому любой защищённый ридер не будет принимать наши проксированные ответы.
Это не влияет на другие режимы работы.
Некоторые функции NFC не поддерживаются Android и, следовательно, не могут быть использованы с нашим приложением. Мы сталкивались с случаями, когда NFC-поле, генерируемое телефоном, было недостаточно сильным для корректного обеспечения питания более сложным функциям некоторых NFC-чипов (например, криптографическим операциям). Имейте это в виду, если вы тестируете чипы, с которыми мы не экспериментировали.
Это приложение было представлено на 14-й рабочей конференции USENIX по атакующим технологиям (WOOT '20). Предварительная версия на arXiv доступна здесь.
Ранняя версия этого приложения была представлена на WiSec 2015. Расширенное описание и постер можно найти на сайте одного из авторов. Оно также было представлено в коротком лайтнинг-докладе на Chaos Communication Camp 2015.
Любое использование этого проекта, результатом которого является академическая публикация или другая публикация, включающая библиографический список, должно содержать ссылку на NFCGate:
@inproceedings {Klee2020Nfcgate,
author = {Steffen Klee and Alexandros Roussos and Max Maass and Matthias Hollick},
title = {NFCGate: Opening the Door for {NFC} Security Research with a Smartphone-Based Toolkit},
booktitle = {14th {USENIX} Workshop on Offensive Technologies ({WOOT} 20)},
year = {2020},
url = {https://www.usenix.org/conference/woot20/presentation/klee},
publisher = {{USENIX} Association},
month = aug,
}
Исходная статья NFCGate, описывающая первую версию NFCGate, может быть цитирована следующим образом:
@inproceedings{Maass2015Nfcgate,
title={DEMO: NFCGate: an NFC relay application for Android},
author={Max Maass and Uwe M{\"u}ller and Tom Schons and Daniel Wegemer and Matthias Schulz},
booktitle={Proceedings of the 8th ACM Conference on Security \& Privacy in Wireless and Mobile Networks},
year={2015}
}
Copyright 2015-2025 NFCGate Team
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.