
NAT Slipstreaming позволяет злоумышленнику удаленно получать доступ к любым службам TCP/UDP, привязанным к машине жертвы, обходя NAT/межсетевой экран жертвы, просто когда кто-либо в сети жертвы посещает веб-сайт.
NAT Slipstreaming позволяет атакующему удаленно получить доступ к любому TCP/UDP сервису, привязанному к любой системе за NAT жертвы, обходя NAT/файрвол жертвы (удаленное произвольное открытие портов файрвола) — достаточно того, чтобы жертва посетила веб-сайт.
v1 разработал: @SamyKamkar // https://samy.pl
v2 разработали: Samy Kamkar && (Ben Seri && Gregory Vishnipolsky из Armis).
Читайте отличную техническую статью Бена и Грегори о v2 здесь, где подробно описаны их обновления v2 с множеством дополнительных деталей.
v1 выпущена: 31 октября 👻, 2020
v2 выпущена: 26 января 2021
Исходный код: https://github.com/samyk/slipstream
анимированная версия здесь создана с помощью моего форка draw.io, позволяющего экспортировать контекст потока граней и управление анимацией
NAT Slipstreaming использует браузер пользователя в сочетании с механизмом отслеживания соединений шлюза прикладного уровня (ALG), встроенным в NAT, маршрутизаторы и файрволы. Атака объединяет: извлечение внутреннего IP с помощью атаки по времени или WebRTC, автоматическое обнаружение MTU и фрагментации IP, манипуляцию размером TCP-пакетов, неправильное использование аутентификации TURN, точный контроль границ пакетов и путаницу протоколов через злоупотребление браузером. Поскольку именно NAT или файрвол открывает порт назначения, это обходит любые ограничения портов на уровне браузера.
Эта атака использует произвольный контроль над частью данных некоторых TCP- и UDP-пакетов без включения HTTP или других заголовков; атака применяет новую технику инъекции пакетов во всех основных современных (и старых) браузерах и является модернизированной версией моей оригинальной техники NAT Pinning от 2010 года (представлена на DEFCON 18 и Black Hat 2010). Кроме того, включены новые методы обнаружения локального IP-адреса.
Для этой атаки требуется, чтобы NAT/файрвол поддерживал ALG (шлюзы прикладного уровня), которые обязательны для протоколов, использующих несколько портов (канал управления + канал данных), таких как SIP и H323 (VoIP-протоколы), FTP, IRC DCC и т.д.
На высоком уровне NAT Slipstreaming работает следующим образом: