it-swarm-pt.tech

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

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. Eu encontrei DHCP Probe através da pesquisa e pensei em experimentar. 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?

92
l0c0b0x

Um método simples é simplesmente executar um sniffer como 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.

54
Zoredache

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 /all em uma máquina Windows e, em seguida, você pode obter o endereço MAC procurando esse endereço IP usando 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 por 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).

Configure opções para bloquear ofertas de DHCP

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

22
Jason Luther

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

17
vartec

As abordagens Wireshark/DHCP Explorer/DHCP Probe são adequadas para uma verificação única ou periódica. No entanto, eu recomendo procurar no suporte 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 em Cisco docs .

• 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.

15
Dave K

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

É uma ferramenta simples de linha de comando. Você executa 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 as respostas que ouvir. Pressione 'q' para sair.

10
quux

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 .

9
Kyle Brandt

Para expandir o comentário de l0c0b0x sobre o uso de bootp.type == 2 como um 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 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'
8
user62491

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 :)

6
Shh now
3
juFo

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).

3
Vinko Vrsalovic

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 analisar o tráfego da rede e encontrar as conexões DHCP; há uma planilha de laboratório sobre como fazer isso disponível em aqui .

Também há vários utilitários disponíveis que propõem fazer isso: DHCP Explorer outro é o probe DHCP que você mencionou na sua postagem original.

3
Jona

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 (talvez interfaces de roteador e impressoras) que distorcem esse número levemente, mas essa deve ser uma maneira rápida e precisa de identificá-los em várias redes.

2
Peter

no debian/ubuntu, também há as opções para usar dhcpdump e/ou tcpdump com a ajuda de por exemplo dhclient

Use dhcpdump:

  • 1.a) execute dhcpdump -i eth0 em um Shell/shell (eth0 ou o nome da sua interface)
  • 1.b) inicie dhclient em outro Shell (ele não precisa ser executado com sucesso)
  • 1.c) verifique a saída de dhcpdump para obter informações (deve ser uma lista informativa e formatada com mais detalhes)

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

  • 2.a) execute tcpdump -i eth0 -t -n > /tmp/my_file.txt em 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 dhclient em 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" -

* Nota: o tcpdump e o dhcpdump provavelmente precisam estar instalados (por exemplo: Sudo apt get install tcpdump dhcpdump); O dhcpdump depende do tcpdump

2
eli

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):

Sudo tcpdump -nelt porta udp 68 | 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 Nmap 7.01 ( https://nmap.org )) em 13/10/2019 21:21 EEST Resultados do script de pré-varredura: | broadcast-dhcp-discover : | Resposta 1 de 1: | IP oferecido: 192.168.1.228 | Tipo de mensagem DHCP: DHCPOFFER | Tempo 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 | _ Domain Servidor de nomes: 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 acima) verificados em 0,94 segundos

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

1
ajaaskel