
Um framework de ataque de DNS rebinding.
Atualizações recentes:
NOVO (2025-11-25): O Chrome versão 142 adicionou o Local Network Access (LNA), que impede as técnicas de ataque de DNS rebinding implementadas no Singularity. O branch LNA-from-Non-Secure-Contexts do Singularity of Origin implementa suporte para Trial for Local Network Access from Non-Secure Contexts. Isso permite temporariamente o acesso a recursos em redes locais a partir de contextos não seguros, permitindo que você experimente ataques de DNS rebinding por um pouco mais de tempo (até 18 de maio de 2026) ao usar o Chrome.
NOVO (2025-05-19): Nosso site de demonstração, rebind.it, foi atualizado para suportar IPv6 (commit 3c5ee9a). Esta é uma mudança disruptiva para consultas manuais (fora da interface do Singularity Manager) porque o formato da consulta DNS foi modificado. Consulte Como Criar Solicitações DNS Manuais para o Singularity of Origin para instruções detalhadas. Além disso, adicionamos periodicamente novos payloads de ataque; não deixe de conferi-los.
(2023-04-27) Confira nosso post no blog documentando o estado do DNS rebinding em abril de 2023. Descrevemos o Local Network Access, uma nova especificação draft do W3C atualmente implementada em alguns navegadores que visa prevenir DNS rebinding, e mostramos duas maneiras de contornar essas restrições. Também discutimos os efeitos da mitigação de vazamento de endereço IP do WebRTC e do DNS Bit 0x20 em ataques de DNS rebinding.
(2020-03-30) Novo post no blog investigando o impacto do DoH em ataques de DNS rebinding. TL;DR: DoH (DNS sobre HTTPS) não tem efeito sobre ataques de rebinding e as proteções anunciadas pelos provedores podem ser contornadas.
Confira nosso vídeo do DEF CON 27 e a apresentação do BSidesLV em State of DNS Rebinding: Attack & Prevention Techniques and the Singularity of Origin.
Singularity of Origin é uma ferramenta para realizar ataques de DNS rebinding. Ela inclui os componentes necessários para religar o endereço IP do nome DNS do servidor de ataque ao endereço IP da máquina alvo e para servir payloads de ataque para explorar software vulnerável na máquina alvo.
Ele também vem com payloads de exemplo para explorar várias versões de software vulnerável, desde a simples captura de uma página inicial até a execução remota de código. Seu objetivo é fornecer uma estrutura para facilitar a exploração de software vulnerável a ataques de DNS rebinding e aumentar a conscientização sobre como eles funcionam e como se proteger deles.
Documentação detalhada está nas páginas do wiki.



Configurar o Singularity requer um nome de domínio DNS onde você possa editar seus próprios registros DNS para seu domínio e um servidor Linux para executá-lo. Consulte a página do wiki setup singularity para instruções detalhadas.
A documentação está nas páginas do wiki. Aqui estão algumas dicas para começar:
Uma instância de teste está disponível para fins de demonstração em http://rebind.it:8080/manager.html.
O Singularity foi testado para funcionar com os seguintes navegadores em condições ideais em menos de 3 segundos:
O Singularity suporta os seguintes payloads de ataque:
simple-fetch-get.js): Este payload de exemplo
faz uma solicitação GET ao diretório raiz ('/') e mostra a resposta do servidor
usando a API fetch.
O objetivo deste payload é funcionar como uma solicitação de exemplo para tornar
contribuições adicionais o mais fáceis possível.exposed-chrome-devtools.js): Este payload
demonstra uma vulnerabilidade de execução remota de código (RCE) no Microsoft VS Code corrigida na versão 1.19.3.
Este payload pode ser adaptado para explorar qualquer software que exponha o Chrome Dev Tools no localhost.etcd.js): Este payload recupera as chaves e valores do
armazenamento chave-valor etcd.pyethapp.js): Explora a implementação Python do
cliente Ethereum Pyethapp para obter a
lista de endereços eth pertencentes e recuperar o saldo do primeiro endereço eth.rails-console-rce.js): Realiza um ataque de execução remota
de código (RCE) no Rails Web Console.| Browser | Sistema Operacional | Tempo para Exploit | Estratégia de Rebinding | Intervalo de Busca | Especificação do Alvo |
|---|
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.jsduplicati-rce.js): Este payload explora o
cliente de backup Duplicati e realiza um ataque de execução remota de código (RCE).
Para que este ataque funcione, o parâmetro targetURL no arquivo payload-duplicati-rce.html deve ser atualizado para
apontar para um backup Duplicati válido contendo o payload RCE real,
um script shell.webpdb.js): Um payload RCE genérico para explorar PDB,
um depurador Python exposto via websockets.hook-and-control.js): Sequestre navegadores alvo e use-os para acessar recursos inacessíveis a partir do seu próprio navegador ou outros clientes HTTP. Você pode recuperar a lista de navegadores sequestrados no subdomínio "soohooked" do host do gerenciador Singularity na porta 3129 por padrão, por exemplo, http://soohooked.rebinder.your.domain:3129/. Para autenticar, envie o valor secreto exibido no console pelo servidor Singularity na inicialização.jenkins-script-console.js): Este payload explora o
Jenkins Script Console
e exibe as credenciais armazenadas.docker-api.js): Este payload explora a
Docker API
e exibe o arquivo /etc/shadow do host Docker.ollama-exfil.js): Exfiltra arquivos de hosts executando Ollama, um sistema de código aberto para executar e gerenciar grandes modelos de linguagem (LLMs). Veja o post no blog.html/payloads).