
Um servidor DNS "malicioso" para executar ataques de DNS Rebinding em tempo real (instância pública rodando em rebind.network:53)
raw response# Servidor DNS Whonow
Um servidor DNS malicioso para executar ataques de DNS Rebinding em tempo real. O whonow permite que você especifique respostas DNS e regras de rebind dinamicamente usando as próprias requisições de domínio.
# respond to DNS queries for this domain with 34.192.228.43 the first time
# it is requested and then 192.168.1.1 every time after that
A.34.192.228.43.1time.192.168.1.1.forever.rebind.network
# respond first with 34.192.228.43, then 192.168.1.1 the next five times,
# and then start all over again (1, then 5, forever...)
A.34.192.228.43.1time.192.168.1.1.5times.repeat.rebind.network
O que é ótimo sobre regras dinâmicas de DNS Rebinding é que você não precisa montar seu próprio servidor DNS malicioso para começar a explorar a política de mesma origem do navegador. Em vez disso, todos podem compartilhar o mesmo servidor público whonow rodando na porta 53 de rebind.network.
Nota: Você deve incluir UUIDs (por exemplo, a06a5856-1fff-4415-9aa2-823230b05826 ) como um subdomínio em cada consulta DNS para um servidor whonow. Eles foram omitidos dos exemplos neste README por brevidade, mas assuma que requisições para *.rebind.network devem ser *.a06a5856-1fff-4415-9aa2-823230b05826.rebind.network. Veja a seção Gotchas para mais informações sobre o porquê.
AVISO: Este software é apenas para fins educacionais. Este software não deve ser usado para atividades ilegais. O autor não é responsável pelo seu uso. Não seja um babaca.
A beleza do whonow é que você pode definir o comportamento das respostas DNS através de subdomínios no próprio nome de domínio. Usando apenas algumas palavras-chave simples: A, (n)times, forever e repeat, você pode definir comportamentos DNS complexos e poderosos.
whonowA.<ip-address>.<rule>[.<ip-address>.<rule>[.<ip-address>.<rule>]][.uuid/random-string].example.com
A: O tipo de requisição DNS. Atualmente apenas registros A são suportados, mas AAAA deve chegar em breve.<ip-address>: um endereço ipv4 (ipv6 em breve) com cada octeto separado por ponto (ex: 192.168.1.1).<rule>: Uma de três regras
(n)time[s]: O número de vezes que o servidor DNS deve responder com o endereço IP anterior. Aceita strings no plural e singular (ex: 1time, 3times, 5000times)forever: Responder com o endereço IP anterior para sempre.repeat: Repetir todo o conjunto de regras desde o início.[uuid/random-string]: Uma string aleatória para manter ataques de DNS Rebind contra os mesmos endereços IP separados uns dos outros. Veja Gotchas para mais informações.example.com: Um nome de domínio que você tem apontando para um servidor de nomes , como a instância pública disponível do .As regras podem ser encadeadas para formar comportamentos de resposta complexos.
# always respond with 192.168.1.1. This isn't really DNS rebinding
# but it still works
A.192.168.1.1.forever.rebind.network
# alternate between localhost and 10.0.0.1 forever
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network
# first respond with 192.168.1.1 then 192.168.1.2. Now respond 192.168.1.3 forever.
A.192.168.1.1.1time.192.168.1.2.2times.192.168.1.3.forever.rebind.network
# respond with 34.192.228.43 the first time, then whatever `whonow --default-address`
# is set to forever after that (default: 127.0.0.1)
A.34.192.228.43.1time.rebind.network
Cada rótulo [subdomínio] pode conter de zero a 63 caracteres... O nome de domínio completo não pode exceder o comprimento de 253 caracteres em sua representação textual. (da página DNS da Wikipedia)
Além disso, não pode haver mais de 127 rótulos/subdomínios.
Cada requisição de nome de domínio único para whonow cria um pequeno programa de salvamento de estado na RAM do servidor. Na próxima vez que esse nome de domínio for requisitado, o contador do programa é incrementado e o estado pode ser alterado. Todos os nomes de domínio únicos são suas próprias instâncias de programa únicas. Para evitar conflito com outros usuários ou ter o estado do programa do seu nome de domínio incrementado inadvertidamente, você deve adicionar um subdomínio UUID após suas definições de regra. Esse UUID nunca deve ser reutilizado.
# this
A.127.0.0.1.1time.10.0.0.1.1time.repeat.8f058b82-4c39-4dfe-91f7-9b07bcd7fbd4.rebind.network
# not this
A.127.0.0.1.1time.10.0.0.1.1time.repeat.rebind.network
--max-ram-domainsO estado do programa associado a cada nome de domínio único é armazenado pelo whonow na RAM. Para evitar ficar sem RAM, um limite superior é definido para o número de domínios únicos cujo estado do programa pode ser gerenciado ao mesmo tempo. Por padrão, esse valor é definido como 10.000.000, mas pode ser configurado com --max-ram-domains. Uma vez que esse limite seja atingido, os nomes de domínio e seu estado de programa salvo serão removidos na ordem em que foram adicionados (FIFO).
whonowPara executar seu próprio servidor whonow na nuvem, use o painel de administração do seu provedor de nomes de domínio para configurar um servidor de nomes personalizado apontando para seu VPS. Em seguida, instale o whonow nesse VPS e certifique-se de que ele esteja rodando na porta 53 (a porta DNS padrão) e que a porta 53 esteja acessível à Internet.
# install
npm install --cli -g whonow@latest
# run it!
whonow --port 53
# you can also run it with more logging to stdout and save DNS activity to CSV
whonow --port 53 --logfile log.csv --verbose

Se isso ☝ for muito trabalhoso, sinta-se à vontade para usar o servidor público whonow rodando na porta 53 do rebind.network.🌐.
$ whonow --help
usage: whonow [-h] [-v] [-p PORT] [-d DEFAULT_ANSWER] [-b MAX_RAM_DOMAINS]
[-l LOGFILE] [-m]
A malicious DNS server for executing DNS Rebinding attacks on the fly.
Optional arguments:
-h, --help Show this help message and exit.
-v, --version Show program's version number and exit.
-p PORT, --port PORT What port to run the DNS server on (default: 53).
-d DEFAULT_ANSWER, --default-answer DEFAULT_ANSWER
The default IP address to respond with if no rule is
found (default: "127.0.0.1").
-b MAX_RAM_DOMAINS, --max-ram-domains MAX_RAM_DOMAINS
The number of domain name records to store in RAM at
once. Once the number of unique domain names queried
surpasses this number domains will be removed from
memory in the order they were requested. Domains that
have been removed in this way will have their program
state reset the next time they are queried (default:
10000000).
-l LOGFILE, --logfile LOGFILE
Log to CSV file (default: false)
-m, --verbose Log request timestamp and sender IP address to stdout
(default: false)
Um servidor whonow deve estar rodando em localhost:15353 para executar os testes em test.js
# in one terminal
whonow -p 15353
# in another terminal
cd path/to/node_modules/whonow
npm test
whonowrebind.network:53whonow