Existe alguma maneira de executar um comando (como mensagem ICMP ou outro protocolo), obter uma resposta de uma máquina remota (não em minha própria rede local privada) e analisar a mensagem para encontrar alguma evidência de que esta máquina está executando um Windows ou um sistema operacional Linux?
windows
linux
networking
protocol
Diogo
fonte
fonte
Respostas:
Não é definitivo, mas o nmap fará isso com o comando
nmap -O -v
( consulte a documentação para obter mais detalhes) Se você estiver executando o Windows ou quiser uma interface gráfica , consulte o zenmapfonte
Se você estiver em uma rede IPv4, use ping. Se a resposta tiver um TTL de 128, o destino provavelmente está executando o Windows. Se o TTL for 64, o alvo provavelmente está executando alguma variante do Unix.
fonte
fonte
Uma maneira de ir é usar o NMap . A partir da resposta, ele pode adivinhar o sistema operacional remoto.
fonte
Pacote: xprobe 'OR' xprobe2
Descrição: A identificação remota do SO Xprobe2 permite determinar qual sistema operacional está sendo executado em um host remoto. Ele envia vários pacotes para um host e analisa as respostas retornadas. A funcionalidade do Xprobe2 é comparável ao recurso de impressão digital do SO no nmap.
Exemplo:
$ sudo apt-get install xprobe
$ sudo xprobe2 -T21-23,80,53,110 ###.. ###. ###. ###
Referência:
http://www.sys-security.com/html/projects/X.html
http://sourceforge.net/projects/xprobe/
fonte
Post antigo, mas pensei em acrescentar isso também, se o dispositivo estiver ativado para SNMP, você também poderá consultar o sysDescr, que informará o sistema operacional que está usando.
Faça o download de um navegador MIB, um bom que eu uso está aqui: http://www.ireasoning.com/downloadmibbrowserfree.php . Você basicamente fornece o endereço IP do dispositivo e faz uma operação a pé.
fonte
Seguindo a sugestão de Johnathon64, você pode usar o SNMP para consultar diretamente no servidor - supondo que o próprio servidor remoto esteja configurado para usar o SNMP. Você pode iniciar uma consulta de linha de comando, como a abaixo, para fazer isso:
Explicando o próprio comando:
snmpget
consultará o objeto sysDescr, que contém o nome padrão do objeto.sed
excluirá a saída inicial, que contém apenas o OID consultado e o início da sequência.tr
,, excluirá as aspas duplas, geralmente encontradas na consulta SNMP.Os dois últimos comandos são apenas para formatar a saída - se você não precisar deles, pode usar o primeiro comando para extrair a saída completa.
fonte