Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
iodine — Tunelar dados IPv4 através de servidores DNS para contornar restrições de firewall e fornecer acesso de rede encoberto para testes de penetração. | Kitploit
Ferramentas/GitHubGitHub/yarrick/iodine
Evasão de IDS/IPSExfiltração de DadosSegurança de RedeTestes de PenetraçãoComando e ControleRed TeamingFerramenta de Acesso RemotoTop em Exfiltração de Dados nº2Top em Evasão de IDS/IPS nº13
8.0k599136há 11 diasRevisado pelo Kitploit
GitHub
yarrick/iodine

iodine

Tunelar dados IPv4 através de servidores DNS para contornar restrições de firewall e fornecer acesso de rede encoberto para testes de penetração.

Ver RepositórioSite

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

iodine - https://code.kryo.se/iodine

Este é um software que permite criar um túnel de dados IPv4 através de um servidor DNS. Isso pode ser útil em diferentes situações em que o acesso à internet é bloqueado por firewall, mas as consultas DNS são permitidas.

COMPILAÇÃO

Para compilar o iodine, você precisa do meson. Execute os seguintes comandos para compilar dentro do diretório build:

meson setup build
cd build
ninja

Para compilar e executar os testes, você precisa da biblioteca check. Inicie-os executando ninja test dentro do diretório de compilação.

QUICKSTART

Experimente na sua própria LAN! Siga estes passos simples:

  • No seu servidor, execute: ./iodined -f 10.0.0.1 test.com. Se você já usa a rede 10.0.0.0, use outra rede interna como 172.16.0.0.
  • Digite uma senha.
  • No cliente, execute: ./iodine -f -r 192.168.0.1 test.com. Substitua 192.168.0.1 pelo endereço IP do seu servidor.
  • Digite a mesma senha.
  • Agora o cliente tem o IP do túnel 10.0.0.2 e o servidor tem 10.0.0.1.
  • Tente fazer ping entre eles através do túnel.
  • Pronto! :)

Para realmente usá-lo através de um servidor de nomes de retransmissão, veja abaixo.

HOW TO USE

Nota: servidor e cliente precisam falar exatamente o mesmo protocolo. Na maioria dos casos, isso significa executar a mesma versão do iodine. Infelizmente, implementar compatibilidade de protocolo retroativa e futura geralmente não é viável.

Lado do servidor

Para usar este túnel, você precisa de controle sobre um domínio real (como mydomain.com), e de um servidor com um endereço IP público para executar o iodined. Se este servidor já executa um programa DNS, altere sua porta de escuta e então use a opção -b do iodined para permitir que o iodined encaminhe as requisições DNS. (Observe que este procedimento não é recomendado em ambientes de produção, porque o encaminhamento DNS do iodined não é completamente transparente, por exemplo, transferências de zona não funcionarão.) Alternativamente, você pode encaminhar o subdomínio do seu servidor DNS para o iodined, que então deve ser executado em uma porta diferente (-p).

Em seguida, delegue um subdomínio (digamos, t1.mydomain.com) ao servidor iodined. Se você usa BIND para o seu domínio, adicione duas linhas como estas ao arquivo de zona:

t1		IN	NS	t1ns.mydomain.com.		; note the dot!
t1ns		IN	A	10.15.213.99

A linha NS é tudo o que é necessário para rotear consultas para o subdomínio t1 para o servidor t1ns. Usamos um nome curto para o subdomínio, para manter o máximo de espaço possível disponível para o tráfego de dados. No final da linha NS está o nome do seu servidor iodined. Este pode ser qualquer nome, apontando para qualquer lugar, mas neste caso é facilmente mantido no mesmo arquivo de zona. Deve ser um nome (não um endereço IP), e esse nome em si deve ter um registro A (não um CNAME).

Se o seu servidor iodined tem um IP dinâmico, use um provedor de DNS dinâmico. Simplesmente aponte a linha NS para ele, e omita a linha A:

t1		IN	NS	myname.mydyndnsprovider.com.	; note the dot!

Em seguida, recarregue ou reinicie o seu programa de servidor de nomes. Agora quaisquer consultas DNS para domínios terminando em t1.mydomain.com serão enviadas ao seu servidor iodined.

Por fim, inicie o iodined no seu servidor. O primeiro argumento é o endereço IP dentro do túnel, que pode ser de qualquer faixa que você ainda não use (por exemplo 192.168.99.1), e o segundo argumento é o domínio atribuído (neste caso t1.mydomain.com). Usar a opção -f manterá o iodined em execução no primeiro plano, o que ajuda durante os testes. O iodined abrirá uma interface virtual ("tun device"), e também começará a escutar consultas DNS na porta UDP 53. Digite uma senha na linha de comando (-P pass) ou depois que o servidor tiver iniciado. Agora tudo está pronto para o cliente.

Se houver a possibilidade de você usar um túnel iodine a partir de ambientes inesperados, inicie o iodined com a opção -c. A linha de comando resultante nesta situação de exemplo:

./iodined -f -c -P secretpassword 192.168.99.1 t1.mydomain.com

Lado do cliente

Toda a configuração está feita, basta iniciar o iodine. Ele recebe um ou dois argumentos, o primeiro é o servidor DNS de retransmissão local (opcional) e o segundo é o domínio que você usou (t1.mydomain.com). Se você não especificar o primeiro argumento, a configuração DNS atual do sistema será consultada.

Se consultas DNS forem permitidas para qualquer computador, você pode fornecer diretamente o endereço do servidor iodined como primeiro argumento (no exemplo: t1ns.mydomain.com ou 10.15.213.99). Nesse caso, também pode acontecer de qualquer tráfego ser permitido para a porta DNS (53 UDP) de qualquer computador. O iodine detectará isso e mudará para tunelamento UDP bruto se possível. Para forçar o tunelamento DNS em qualquer caso, use a opção -r (especialmente útil ao testar dentro da sua própria rede).

A interface de túnel do cliente receberá um IP próximo ao do servidor (neste caso 192.168.99.2 ou .3 etc.) e uma MTU adequada. Digite a mesma senha do servidor, seja como opção de linha de comando ou após o cliente ter iniciado. Usar a opção -f manterá o cliente iodine em execução em primeiro plano.

Linha de comando resultante nesta situação de exemplo, adicionando -r força o tunelamento DNS mesmo que o tunelamento UDP bruto fosse possível:

./iodine -f -P secretpassword t1.mydomain.com

De qualquer um dos lados, você agora deve conseguir fazer ping no endereço IP na outra extremidade do túnel. Neste caso, ping 192.168.99.1 a partir do cliente iodine, e 192.168.99.2 a partir do servidor iodine.

INFORMAÇÕES DIVERSAS

IPv6

Os dados dentro do túnel são apenas IPv4.

O servidor escuta tanto IPv4 quanto IPv6 para requisições recebidas por padrão. Use as opções -4 ou -6 para escutar apenas em um protocolo. O modo bruto será tentado no mesmo protocolo usado para o login.

O cliente pode usar nameservers IPv4 ou IPv6 para se conectar ao iodined. Os nameservers de relay traduzirão entre protocolos automaticamente se necessário. Use as opções -4 ou -6 para forçar o cliente a usar uma versão de IP específica para suas consultas DNS.

Se o seu servidor estiver escutando em IPv6 e for acessível, adicione um registro AAAA para ele na sua configuração de DNS. Estendendo o exemplo acima, ficaria assim:

t1		IN	NS	t1ns.mydomain.com.		; note the dot!
t1ns		IN	A	10.15.213.99
t1ns		IN	AAAA	2001:db8::1001:99

Roteamento

É possível rotear todo o tráfego através do túnel DNS. Para fazer isso, primeiro adicione uma rota de host para o nameserver usado pelo iodine sobre a interface com fio/sem fio, tendo o gateway padrão como gateway. Em seguida, substitua o gateway padrão pelo endereço IP do servidor iodined dentro do túnel DNS e configure o servidor para fazer NAT.

No entanto, observe que o tráfego de dados tunelado não é criptografado de forma alguma e pode ser lido e alterado por terceiros com relativa facilidade. Para máxima segurança, execute uma VPN através do túnel DNS (=tunelamento duplo), ou use acesso por secure shell (SSH), possivelmente com encaminhamento de portas. Este último também pode ser usado para navegação web, quando você executa um proxy web (por exemplo, Privoxy) no seu servidor.

Testes

O servidor iodined responde a requisições NS enviadas para subdomínios do domínio do túnel. Se o seu subdomínio iodined for t1.mydomain.com, envie uma requisição NS para foo123.t1.mydomain.com para ver se a delegação funciona. dig é uma boa ferramenta para isso:

% dig -t NS foo123.t1.mydomain.com
ns.io.citronna.de.

Além disso, o servidor iodined responderá a requisições começando com 'z' para qualquer um dos tipos de requisição suportados, por exemplo:

Baixar ferramenta