Inspeção profunda de pacotes para detectar WOL

3

Eu quero ouvir os pacotes WOL (Wake-On-LAN).
Como os pacotes WOL podem ser UDP / TCP / whatever (sim, até TCP, mas provavelmente inúteis), tenho que verificar todos os pacotes de entrada para o padrão específico de WOL.

Isto não pode ser feito diretamente com o netfilter porque o padrão é 6xFF + 16xalinhamento-alvo-MAC (então temos 96 bytes variáveis).

As ferramentas que encontrei podem detectar muitos protocolos, mas nenhum deles consegue detectar o WOL.

Você conhece uma maneira simples de inspecionar todos os pacotes e executar um script quando um padrão específico é detectado?

    
por Gregory MOUSSAT 09.05.2017 / 17:31

1 resposta

2

Com ngrep , você pode fazer isso:

ngrep '\xff{6}(.{6}){15}'

Isso corresponde a 0xff 6 vezes, seguido por 6 bytes, seguidos pelos mesmos 6 bytes repetidos mais 15 vezes. Confirmei que corresponde a um pacote gerado por wakeonlan .

ngrep tem opções úteis para criação de scripts (por exemplo, -W single para ter uma única linha por pacote correspondente, -l para anular o buffer, -t para registros de data e hora, -q para silenciar outras saídas).

    
por 09.05.2017 / 19:30