Como localizo se há um servidor DHCP não autorizado na minha rede?

92

Qual é a melhor abordagem para determinar se eu tenho um servidor DHCP não autorizado dentro da minha rede?

Gostaria de saber como a maioria dos administradores aborda esse tipo de problema. Encontrei o DHCP Probe através da pesquisa e pensei em experimentá-lo. Alguém já teve experiência com isso? (Gostaria de saber antes de reservar um tempo para compilar e instalar).

Você conhece alguma ferramenta ou prática recomendada para encontrar servidores DHCP não autorizados?

l0c0b0x
fonte
2
Ferramenta MS e muito simples de usar! Detecção do servidor DHCP desonestos - RogueChecker.zip blogs.technet.com/b/teamdhcp/archive/2009/07/03/...
aa.malta
Encontrei uma referência oficial ao seu link aa.malta em social.technet.microsoft.com/wiki/contents/articles/…, mas o link não parece mais funcionar a partir de 2016. Ele mostra as postagens de blog de 2009, mas apenas veja as postagens de 6 e 29 de junho. Não parece haver uma postagem de 3 de julho, conforme indicado pelo URL do link que você postou. Parece que a Microsoft o removeu por quem sabe por que motivo.
Daniel
Parece que esse link direto (encontrado em um site wordpress) funciona para baixar o arquivo de um servidor Microsoft. O link está funcionando a partir de janeiro de 2016. Como o URL é da Microsoft, acredito que possa ser confiável, mas não dou garantias: blogs.technet.com/cfs-file.ashx/__key/…
Daniel
A máquina wayback
antgiant

Respostas:

54

Um método simples é simplesmente executar um sniffer como o tcpdump / wireshark em um computador e enviar uma solicitação DHCP. Se você vir outras ofertas do servidor DHCP real, você saberá que está com um problema.

Zoredache
fonte
28
Ajuda usando o seguinte filtro: "bootp.type == 2" (por apenas mostrando as respostas do DHCP, e ver se há resposta de diferentes fontes / desconhecidos)
l0c0b0x
4
Use um programa como o DHCP-Find ( softpedia.com/get/Network-Tools/Network-IP-Scanner/… ) em conjunto com o TCPDump / Wireshark para disparar respostas DHCP.
saluce
1
Você pode oferecer uma solução mais específica?
tarabyte
@tarabyte Não sei ao certo qual solução eu ou melhorias devo oferecer. Eu acho que essa pergunta tem uma cobertura muito boa da dúzia de outras boas respostas? Minha opção de ir hoje em dia é apenas configurar seus switches para bloquear o DHCP, como Jason Luther sugeriu. Havia algo específico que precisava ser coberto melhor?
Zoredache
2
Eu estava esperando mais de uma seqüência de comandos que fazem uso de tcpdump, arp, etc, com parâmetros explícitos e explicação sobre esses parâmetros.
tarabyte
22

Para recapitular e adicionar a algumas das outras respostas:

Desative temporariamente o servidor DHCP de produção e veja se outros servidores respondem.

Você pode obter o endereço IP do servidor executando ipconfig /allem uma máquina Windows e, em seguida, obter o endereço MAC procurando por esse endereço IP arp -a.

Em um Mac, execute ipconfig getpacket en0(ou en1). Consulte http://www.macosxhints.com/article.php?story=20060124152826491 .

As informações do servidor DHCP geralmente estão em / var / log / messages. sudo grep -i dhcp /var/log/messages*

Desabilitar o servidor DHCP de produção pode não ser uma boa opção, é claro.

Use uma ferramenta que procure especificamente servidores DHCP não autorizados

Veja http://en.wikipedia.org/wiki/Rogue_DHCP para obter uma lista de ferramentas (muitas das quais foram listadas em outras respostas).

Configurar switches para bloquear ofertas de DHCP

A maioria dos comutadores gerenciados pode ser configurada para evitar servidores DHCP não autorizados:

Jason Luther
fonte
17

dhcpdump , que assume o formulário de entrada tcpdump e mostra apenas pacotes relacionados ao DHCP. Ajudou-me a encontrar o Windows rootkited, posando como DHCP falso em nossa LAN.

vartec
fonte
15

As abordagens do Wireshark / DHCP explorer / DHCP Probe são boas para uma verificação única ou periódica. No entanto, eu recomendo procurar no suporte ao DHCP Snooping na sua rede. Esse recurso fornecerá proteção constante contra servidores DHCP não autorizados na rede e é suportado por muitos fornecedores de hardware diferentes.

Aqui está o conjunto de recursos conforme indicado nos documentos da Cisco .

• Valida as mensagens DHCP recebidas de fontes não confiáveis ​​e filtra as mensagens inválidas.

• Limita a taxa de tráfego DHCP de fontes confiáveis ​​e não confiáveis.

• Cria e mantém o banco de dados de ligação de espionagem DHCP, que contém informações sobre hosts não confiáveis ​​com endereços IP concedidos.

• Utiliza o banco de dados de ligação de espionagem DHCP para validar solicitações subsequentes de hosts não confiáveis.

Dave K
fonte
10

O dhcploc.exe é a maneira mais rápida e prática de instalar sistemas Windows. Está disponível nas Ferramentas de suporte do XP. As ferramentas de suporte estão em todos os discos XP OEM / varejo, mas podem ou não estar em "discos de recuperação" fornecidos por alguns OEMs. Você também pode baixá- los do MS.

É uma ferramenta simples de linha de comando. Você executa o dhcploc {yourIPaddress} e pressiona a tecla 'd' para fazer uma descoberta falsa. Se você deixá-lo em execução sem pressionar nenhuma tecla, ele exibirá todas as solicitações de DHCP e atenderá. Pressione 'q' para sair.

quux
fonte
Apenas usei isso em combinação com a eliminação de portas de switch individuais para rastrear um servidor malicioso e malicioso com o qual estávamos lidando. Coisa boa!
DHayes 10/09/10
1
Você ainda pode usar o DHCPloc.exe no Windows 7: 1. Faça o download das "Ferramentas de suporte do Windows XP Service Pack 2" em [aqui] [1]. 2. Clique com o botão direito do mouse no executável e selecione Propriedades-> Compatibilidade, ative o Modo de compatibilidade e defina-o como "Windows XP (Service Pack 3)". 3. Instale normalmente. O DHCPLoc.exe funciona bem na minha instalação do Win7 x64. [1]: microsoft.com/en-us/download/details.aspx?id=18546
parsley72
1
Acabei de notar que você pode baixar apenas o executável a partir do seguinte local e ele funciona bem no Windows 10 x64: gallery.technet.microsoft.com/DHCPLOC-Utility-34262d82
PeterJ
9

Scapy é uma ferramenta de criação de pacotes baseada em python que é boa para essas tarefas de classificação. Há um exemplo de como fazer exatamente isso aqui .

Kyle Brandt
fonte
2
Uau, acho que Scapy é tão poderoso depois de investigar por vários dias. Ultrapassa as ferramentas de baixa qualidade como dhcpfind.exe e dhcploc.exe. O Scapy 2.2 pode ser executado no Linux e no Windows - eu tentei ambos. A única barreira é que você DEVE conhecer a linguagem de programação Python, até certo ponto, para aproveitar seu poder.
21713 Jimm Chen
O link que você postou está quebrado
Jason S
@JasonS Oi eu tenho atualizado o link, mas a mudança está pendente de revisão pelos pares ... Enquanto espera você pode encontrá-lo aqui: bitbucket.org/secdev/scapy/wiki/doc/IdentifyingRogueDHCPServers
Huygens
7

Para expandir o comentário de l0c0b0x sobre o uso bootp.type == 2como filtro. O filtro bootp.type está disponível apenas no Wireshark / tshark. Não está disponível no tcpdump em que a localização contextual de seu comentário me levou a acreditar.

Tshark funciona perfeitamente para isso.

Temos nossa rede dividida em vários domínios de transmissão, cada um com seu próprio probe baseado em Linux, com um ponto de presença no domínio de transmissão "local" e em uma sub-rede administrativa de uma maneira ou de outra. O Tshark combinado com o ClusterSSH permite procurar facilmente o tráfego DHCP ou (qualquer outra coisa) nos outros cantos da rede.

Isso encontrará respostas de DHCP usando o Linux:

# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
Comunidade
fonte
Muito útil, passei um bom tempo tentando descobrir por que estava conseguindo tcpdump: syntax error. Até postou uma pergunta, sua resposta me desbloqueou, obrigado! networkengineering.stackexchange.com/questions/39534/...
Elias Lynn
1
Além disso, acho que algo mudou com o -R <Read filter>. Eu entendo tshark: -R without -2 is deprecated. For single-pass filtering use -Y.. -Yfunciona bem.
Elias Lynn
6

Depois de estabelecer que há um servidor DHCP desonesto na rede, encontrei a maneira mais rápida de resolvê-lo ...

Envie um email para toda a empresa dizendo:

"qual de vocês adicionou um roteador sem fio à LAN, matou a internet para todos os outros"

espere uma resposta tímida ou o dispositivo conflitante desapareça rapidamente :)

Shh agora
fonte
3

Desabilite o servidor DHCP principal e (re) configure uma conexão.

Se você obtém um endereço IP, está desonesto.

Se você tem um Linux à mão, o dhcpclient padrão informa o endereço IP do servidor DHCP (caso contrário, você pode detectar o tráfego para ver de onde veio a resposta do DHCP).

Vinko Vrsalovic
fonte
2
Enquanto isso iria de trabalho do curso, parando um servidor DHCP produção provavelmente não é a melhor abordagem se você está realmente preocupado com a prestação do serviço ...
Massimo
2
Depende da quantidade de pessoas que você está servindo. Na maioria dos casos, você pode interromper o serviço por alguns minutos e ninguém notará, especialmente no meio do dia, quando a maioria das pessoas já possui um contrato de aluguel.
Vinko Vrsalovic
3

Existem várias maneiras: se você estiver executando uma rede pequena, a maneira mais simples é desligar / desabilitar / desconectar o servidor dhcp e, em seguida, execute ipconfig / renew ou similar em um cliente e, se você obtiver um IP, terá algo de ruim no seu computador. rede.

Outra maneira seria usar o captador / analisador de pacotes Wireshark para examinar o tráfego da rede e encontrar conexões DHCP. Existe uma planilha de laboratório sobre como fazer isso disponível a partir daqui .

Há também vários utilitários disponíveis que proportam a fazer isso: o DHCP explorer; o outro, o probe DHCP, que você mencionou na sua postagem original.

Jona
fonte
2

Você pode fazer uma varredura de ping nas suas redes e depois compará-la com o número de concessões DHCP concedidas pelo servidor DHCP.

Você precisa ter uma idéia geral do número de dispositivos estáticos (interfaces de roteador e impressoras, talvez) que distorcerão ligeiramente esse número, mas essa deve ser uma maneira rápida e precisa de identificá-los em várias redes.

Peter
fonte
0

no debian / ubuntu one também tem as opções para usar dhcpdumpe / ou tcpdumpcom a ajuda de por exemplodhclient

Use dhcpdump:

  • 1.a) execute dhcpdump -i eth0em um shell / shell (eth0 ou o nome da sua interface)
  • 1.b) iniciar dhclientem outro shell (não precisa ser executado com êxito)
  • 1.c) examine a saída de dhcpdumppara obter informações (deve ser uma boa lista informativa, formatada e com mais detalhes)

Opção 2 se você não gosta de usar o dhcpdump:

  • 2.a) executar tcpdump -i eth0 -t -n > /tmp/my_file.txtem um shell / janela
    (opcional: -t= desativar carimbo de data / hora // -n= desativar a resolução de nomes, apenas o endereço IP, sem nomes de servidor (para RHEL / centos use -nn))
  • 2.b) inicie dhclientem outro shell (não precisa ser executado com êxito)
  • 2.c) interrompa a execução do tcpdump ()
  • 2.d) examine o arquivo /tmp/my_file.txt com seu editor favorito e procure coisas como: ".53" (a porta DNS padrão) / "NX" / "CNAME" / "A?" / "AAAA" -

* sidenote: tcpdump e dhcpdump provavelmente precisam ser instalados (por exemplo:) sudo apt get install tcpdump dhcpdump; O dhcpdump depende do tcpdump

eli
fonte
0

Sugiro iniciar dois terminais, um para monitoramento e outro para enviar uma solicitação. O Terminal1 mostrará respostas de todos os servidores DHCP existentes, incluindo o endereço MAC. Este exemplo foi executado no Ubuntu:

Terminal1 (para monitoramento):

porta 68 do udp do sudo tcpdump -nelt | grep -i "inicialização. * resposta"

tcpdump: saída detalhada suprimida, use -v ou -vv para ouvir decodificação de protocolo completo no enp2s0, EN10MB do tipo de link (Ethernet), tamanho da captura 262144 bytes 20: a6: 80: f9: 12: 2f> ff: ff: ff: ff: ff, ethertype IPv4 (0x0800), comprimento 332: 192.168.1.1.67> 255.255.255.255.68: BOOTP / DHCP, resposta, comprimento 290 00: 23: cd: c3: 83: 8a> ff: ff : ff: ff: ff: ff, ethertype IPv4 (0x0800), comprimento 590: 192.168.1.253.67> 255.255.255.255.68: BOOTP / DHCP, resposta, comprimento 548

Terminal2 (para enviar uma solicitação):

sudo nmap --script broadcast-dhcp-discover -e eth0

Iniciando o Nmap 7.01 ( https://nmap.org ) em 13/10/2019 21:21 Resultados do script de pré-verificação EEST: | broadcast-dhcp-discover: | Resposta 1 de 1: | IP oferecido: 192.168.1.228 | Tipo de mensagem DHCP: DHCPOFFER | Horário de concessão do endereço IP: 2h00m00s | Identificador do servidor: 192.168.1.1 | Máscara de sub-rede: 255.255.255.0 | Roteador: 192.168.1.1 | _ Servidor de Nomes de Domínio: 8.8.8.8, 8.8.4.4 AVISO: Nenhum destino foi especificado, portanto, 0 hosts foram verificados. Nmap concluído: 0 endereços IP (0 hosts ativos) digitalizados em 0,94 segundos

Esse terminal de monitoramento é necessário apenas para ver todas as respostas (o nmap pode mostrar apenas a primeira resposta).

ajaaskel
fonte