Есть ли какой-нибудь способ выполнить команду (например, сообщение ICMP или другой протокол), получить ответ от удаленного компьютера (не из моей собственной локальной сети) и проанализировать сообщение, чтобы найти доказательства того, что на этом компьютере работает Windows или операционная система Linux?
6 ответов
Это не является окончательным, но nmap сделает это с помощью команды nmap -O -v
(подробности см. В документации ). Если вы используете Windows или хотите получить графический интерфейс, посмотрите на zenmap.
Если вы в сети IPv4, просто используйте ping. Если ответ имеет TTL 128, цель, вероятно, работает под управлением Windows. Если TTL равен 64, цель, вероятно, использует какой-то вариант Unix.
: Presumes ping service enabled on Windows local and remote hosts
:
del _IX.txt, Windows.txt
ping -n 1 [computername|ipaddress] | findstr /i /c:"Reply" > ttl.txt
for /f "tokens=1-9* delims=:=< " %%a in (ttl.txt) do (
if %%i leq 130 (
if %%i geq 100 (
echo Windows & rem or echo %%c >> Windows.txt
) else (
if %%i equ 64 (
echo *IX & rem or echo %%c >> _IX.txt
)
)
)
)
Один из способов - использовать NMap. Из ответа можно догадаться об удаленной ОС.
Пакет: xprobe 'ИЛИ' xprobe2
Описание: Удаленная идентификация ОС Xprobe2 позволяет вам определить, какая операционная система работает на удаленном хосте. Он отправляет несколько пакетов на хост и анализирует возвращенные ответы.
Функциональность Xprobe2 сравнима с функцией снятия отпечатков ОС в nmap.
Пример:
$ sudo apt-get install xprobe
$ sudo xprobe2 -T21-23,80,53,110 ###.###.###.###
Ссылка:
http://www.sys-security.com/html/projects/X.html
http://sourceforge.net/projects/xprobe/
Старый пост, но я хотел бы добавить к этому тоже, если устройство поддерживает SNMP, вы также можете запросить sysDescr, который сообщит вам об используемой ОС.
Загрузите браузер MIB, хороший вариант которого я использую здесь: http://www.ireasoning.com/downloadmibbrowserfree.php. Вы в основном даете ему IP-адрес устройства и выполняете операцию обхода.