
Фреймворк для атак DNS-ребандинг.
Последние обновления:
НОВОЕ (2025-11-25): В выпуске Chrome 142 добавлен Local Network Access (LNA), который предотвращает техники атак с перепривязкой DNS, реализованные в Singularity. Ветка LNA-from-Non-Secure-Contexts Singularity of Origin реализует поддержку Trial for Local Network Access from Non-Secure Contexts. Это временно разрешает доступ к ресурсам в локальных сетях из небезопасных контекстов, позволяя вам еще немного поэкспериментировать с атаками DNS-перепривязки (до 18 мая 2026 года) при использовании Chrome.
НОВОЕ (2025-05-19): Наш демо-сайт rebind.it был обновлен для поддержки IPv6 (коммит 3c5ee9a). Это критическое изменение для ручных запросов (вне пользовательского интерфейса Singularity Manager), поскольку был изменен формат DNS-запросов. Пожалуйста, обратитесь к Как создавать ручные DNS-запросы к Singularity of Origin для получения подробных инструкций. Кроме того, мы периодически добавляем новые атакующие полезные нагрузки; обязательно ознакомьтесь с ними.
(2023-04-27) Ознакомьтесь с нашим сообщением в блоге, документирующим состояние DNS-перепривязки на апрель 2023 года. Мы описываем Local Network Access — новую черновую спецификацию W3C, в настоящее время реализованную в некоторых браузерах, которая направлена на предотвращение DNS-перепривязки, и показываем два способа обхода этих ограничений. Мы также обсуждаем влияние смягчения утечки IP-адресов WebRTC и DNS Bit 0x20 на атаки DNS-перепривязки.
(2020-03-30) Новое сообщение в блоге, исследующее влияние DoH на атаки DNS-перепривязки. TL;DR: DoH (DNS через HTTPS) не влияет на атаки перепривязки, а защиты, рекламируемые провайдерами, могут быть обойдены.
Посмотрите наше видео с DEF CON 27 и презентацию с BSidesLV: State of DNS Rebinding: Attack & Prevention Techniques and the Singularity of Origin.
Singularity of Origin — это инструмент для выполнения атак DNS-перепривязки. Он включает необходимые компоненты для перепривязки IP-адреса DNS-имени сервера атаки к IP-адресу целевой машины и для доставки атакующих полезных нагрузок для эксплуатации уязвимого программного обеспечения на целевой машине.
Он также поставляется с примерами полезных нагрузок для эксплуатации нескольких уязвимых версий программного обеспечения — от простого захвата домашней страницы до выполнения удаленного кода. Его цель — предоставить фреймворк для упрощения эксплуатации программного обеспечения, уязвимого к атакам DNS-перепривязки, и повысить осведомленность о том, как они работают и как от них защититься.
Подробная документация находится на страницах вики.



Для настройки Singularity требуется DNS-доменное имя, в котором вы можете редактировать свои собственные DNS-записи, и Linux-сервер для его запуска. Пожалуйста, обратитесь к странице вики настройка Singularity для получения подробных инструкций.
Документация находится на страницах вики. Вот несколько указаний для начала:
Тестовый экземпляр доступен для демонстрации по адресу http://rebind.it:8080/manager.html.
Singularity был протестирован для работы со следующими браузерами в оптимальных условиях менее чем за 3 секунды:
Singularity поддерживает следующие атакующие полезные нагрузки:
simple-fetch-get.js): Этот пример полезной нагрузки выполняет GET-запрос к корневому каталогу ('/') и отображает ответ сервера с использованием API fetch. Цель этой полезной нагрузки — служить примером запроса, чтобы максимально упростить дополнительные вклады.exposed-chrome-devtools.js): Эта полезная нагрузка демонстрирует уязвимость удаленного выполнения кода (RCE) в Microsoft VS Code, исправленную в версии 1.19.3. Эту полезную нагрузку можно адаптировать для эксплуатации любого программного обеспечения, которое предоставляет Chrome Dev Tools на localhost.etcd.js): Эта полезная нагрузка извлекает ключи и значения из хранилища ключей-значений etcd.pyethapp.js): Эксплуатирует реализацию Ethereum клиента на Python Pyethapp для получения списка принадлежащих eth-адресов и извлечения баланса первого eth-адреса.rails-console-rce.js): Выполняет атаку удаленного выполнения кода (RCE) на Rails Web Console.| Браузер | Операционная система | Время до эксплуатации | Стратегия перепривязки | Интервал выборки | Спецификация цели |
|---|
Multiple answers (fast) | |||||
Multiple answers (fast) | |||||
| Firefox | Windows 10 | ~3s | Multiple answers (fast) | 1s | 127.0.0.1 |
| Chromium | Ubuntu | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Firefox | Ubuntu | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Chrome | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Firefox | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
| Safari | macOS | ~3s | Multiple answers (fast) | 1s | 0.0.0.0 |
aws-metadata-exfil.js): Заставляет безголовый браузер извлекать метаданные AWS, включая закрытые ключи, на заданный хост. Проверьте содержимое полезной нагрузки для получения дополнительных сведений о настройке атаки.duplicati-rce.js): Эта полезная нагрузка эксплуатирует клиент резервного копирования Duplicati и выполняет атаку удаленного выполнения кода (RCE). Для работы этой атаки необходимо обновить параметр targetURL в файле payload-duplicati-rce.html, чтобы он указывал на действительную резервную копию Duplicati, содержащую фактическую полезную нагрузку RCE, shell-скрипт.webpdb.js): Общая полезная нагрузка RCE для эксплуатации PDB, отладчика Python, предоставляемого через WebSockets.hook-and-control.js): Перехватывайте целевые браузеры и используйте их для доступа к недоступным ресурсам из собственного браузера или других HTTP-клиентов. Вы можете получить список подключенных браузеров на поддомене "soohooked" хоста менеджера Singularity на порту 3129 по умолчанию, например, http://soohooked.rebinder.your.domain:3129/. Для аутентификации укажите секретное значение, выводимое в консоль сервером Singularity при запуске.jenkins-script-console.js): Эта полезная нагрузка эксплуатирует Jenkins Script Console и отображает сохраненные учетные данные.docker-api.js): Эта полезная нагрузка эксплуатирует Docker API и отображает файл /etc/shadow хоста Docker.ollama-exfil.js): Извлекайте файлы с хостов, работающих под управлением Ollama — системы с открытым исходным кодом для запуска и управления большими языковыми моделями (LLM). См. сообщение в блоге.html/payloads).