O servidor DHCP pode determinar o sistema operacional do cliente? [fechadas]

18

É possível que o servidor DHCP determine o sistema operacional do cliente?

Estou trabalhando em uma ferramenta de monitoramento para gateways em redes locais baseada na Web e gostaria de poder determinar de alguma forma em qual SO um dispositivo da rede está executando e me parece o lugar mais óbvio para descobrir isso. a hora em que um endereço IP é atribuído pelo servidor DHCP.

Se isso não acontecer, eu sei como filtrar o tráfego na porta 80 e extrair as informações do cabeçalho HTML, mas esse método depende da espera do dispositivo para navegar na web e, portanto, menos desejável do que uma detecção / resolução muito precoce, esp. como nem todos os dispositivos serão usados ​​para navegar na internet.

Eu tenho controle completo da configuração do gateway - está executando uma distribuição debian reduzida, portanto, qualquer outra ferramenta que faça o trabalho - DHCP, DNS, ARP, etc, estou aberta a sugestões!

Michael Lang
fonte
A Infoblox possui um servidor DHCP que fará a impressão digital do SO.
some_guy_long_gone

Respostas:

15

Algum trabalho foi realizado para determinar diferenças sutis nos pacotes DHCP de diferentes sistemas operacionais, resultando em impressões digitais do DHCP. Os exemplos incluem as opções presentes na solicitação DHCP e sua ordem, e o conteúdo de certas opções, como a opção 55 (lista de parâmetros).

Veja os documentos e assinaturas em fingerbank.org . Isso sugere (ainda não o testei) a impressão digital passiva do SO com base no tráfego DHCP. O resultado pode ser melhorado incluindo outras informações, como propriedades IP genéricas (TTL, diffserv, ...).

A impressão digital ativa pode fornecer um resultado melhor, mas pode não ser uma opção no seu caso de uso.

O site do Fingerbank menciona alguns produtos de código aberto que usam as assinaturas. O dispositivo DHCP proprietário Infoblox parece incluir um recurso semelhante, mas nenhum detalhe técnico é fornecido.

Gerben
fonte
3

Alguns clientes DHCP não divulgam com segurança as informações do SO na inicialização. Como foi mencionado acima, há alguma propriedade intelectual associada a essas técnicas; por exemplo, Infoblox e Cisco ISE podem criar perfis de SO do cliente com base nos pacotes dhcp que veem. Na verdade, o Cisco ISE inclui alguns algoritmos de classificação de SO bastante sofisticados, se você puder enviar mais do que dhcp para ele.

Como alternativa, você pode usar uma heurística como o bug do Windows no campo "segundos decorridos", mas confiar em um bug do SO é uma maneira ruim de lidar com a detecção do SO.

Se você realmente precisar detectar o sistema operacional sem um dispositivo de fornecedor dedicado, basta emitir um endereço IP e verificar o host com NMAP depois de enviar o DHCP Ack. O uso de cabeçalhos HTTP não é tão confiável quanto o nmap , porque qualquer um pode alterar a sequência de caracteres UserAgent, se desejar. O nmap não é 100% confiável na detecção do sistema operacional, mas é tão bom quanto você descobrirá se precisar escolher um método único para tudo.

Eu faria disso uma opção configurável no servidor, já que algumas pessoas podem não gostar de uma verificação nmap padrão em todos os hosts DHCP.

Exemplo de verificação do SO nmap no Windows7:

[mpenning@myhost ~]$ sudo nmap -O 10.1.1.1

Starting Nmap 5.51 ( http://nmap.org ) at 2013-08-24 16:20 CDT
Nmap scan report for 10.1.1.1
Host is up (0.00078s latency).
Not shown: 985 closed ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds

Device type: general purpose
Running: Microsoft Windows Vista|2008|7
OS details: Microsoft Windows Vista SP0 - SP2, Server 2008, or Windows 7 Ultimate
Network Distance: 5 hops

OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.25 seconds
[mpenning@myhost ~]$
Mike Pennington
fonte
Obrigado por apontar os recursos de impressão digital do nmap ... É elegante e funciona cerca de 50% das vezes (os 5 dos 10 computadores da minha rede estão corretos), mas suas digitalizações levam de 25 segundos a 102 segundos para cada dispositivo. No entanto, isso me ajudou a entender muito sobre impressões digitais e esp. opções passivas que parecem ser minha melhor aposta.
Michael Lang
@MichaelLang Para aliviar o tempo necessário, execute o nmap com a -T5bandeira para acelerar as coisas drasticamente .
Ryan Foley
2

Como parte do próprio processo DHCP, não acredito nisso. No entanto, você pode raspar seus logs do dhcpd, observar os dks do dhcp e, com base naqueles, executar um processo externo como o nmap os fingerprinting para ver se você consegue descobrir o que está por trás do IP que acabou de ser atribuído.

Marca
fonte
2

A resposta mais curta e precisa é não. Você já obteve respostas úteis nmap, mas se for via DHCP, muitos clientes enviam seus identificadores de classe de fornecedor (opção 60 do DHCP) em seus pacotes de descoberta, para que o servidor DHCP possa oferecer uma oferta com opções específicas do fornecedor (opção 43 do DHCP). Se você executar o tcpdump, consulte os pacotes de descoberta DHCP enviados pelos clientes para a opção 60. Você pode ver coisas como MSFT 5.0para clientes Windows, udhcpcgeralmente para dispositivos incorporados que executam o cliente micro dhcp, etc. Lembre-se de que essas informações não são muito específicas, pois são usadas para distinguir o cliente DHCP em vez do sistema operacional.

pajaja
fonte
1
Além disso, outra maneira útil de, pelo menos, restringir o que um dispositivo pode estar na rede é procurar sua OUI com base no endereço MAC no site da IEEE.
Michael Lang