Как по ping узнать операционную систему хоста


Добрый день уважаемые читатели блога, сегодня я хочу вас спросить, а умеете ли вы по команде пинг определить какое устройство или операционная система вам отвечает, если нет, то вы пришли по адресу и я вам расскажу еще одно назначение утилиты ping. Думаю данный материал, будет полезен как новичкам, так и продвинутым пользователям, особенно когда вы ищите причину неисправности в сети или сервисе, встречал много раз, что вы думаете, что вам отвечает один сервер, а на самом деле это другой, так как кто то, что то поменял и не задокументировал.
Значение ttl
Ранее я вам рассказывал про модель OSI, и там у сетевого пакета, есть такое значение TTL (Time To Life), если перевести, то это время жизни пакета. TTL это некий счетчик, который уменьшается на единицу, при прохождении сетевого пакета или как его еще называют, кадра через маршрутизатор, делается это для того, чтобы он, при невозможности найти пункт назначения, вечно не бегал по роутерам, создавая нагрузку и паразитный трафик.
Именно время жизни пакета (TTL) нам и поможет, определить кто там с другой стороны. У каждой операционной системы этот показатель свой, так например
- Cisco TTL > равен 255
- ttl windows > равен 128
- Unix ttl > равен 64
- Android и IOS Apple> 65
- Lumia > 130
Пишем ping 10.152.1.1 (у вас может быть другой адрес)
Как видите значение ttl тут 255, что и показывает, что отвечает вам IOS у устройства Cisco, как видите команда ping отлично узнала операционную систему хоста с другой стороны.

Попробуем пропинговать unix систему, у меня например в локальной сети шлюзом выступает Kerio Control, на linux версии. Пингуем.
Пишем ping 192.168.5.1 (у вас может быть другой адрес)
Как видите тут значение ttl равно 64, что означает unix платформу, так могут отвечать различные D-link устройства и другие домашние роутеры.

Давайте еще проверим Windows платформы, например у меня есть Windows 8.1 в локальной сети, сделаем пинг. И видите, что оно равно 128, как я и говорил.

Вот вам. тогда загадка, пингуем Windows Server 2012 R2, на нем есть веб сайт relay.aetp.ru. Что вы видите, а то что значение ttl равно 120, но в Windows же 128 по умолчанию идет, не стыковка

tracert relay.aetp.ru
Как видите сетевой пакет проходит не один хо до нужного адреса, и на определенных этапах он теряет от ttl по единичке. Все теперь вы знаете как узнать ttl windows.

Как изменить ttl windows
Давайте рассмотрим ситуацию, что вам нужно изменить ttl windows, поверьте бывают такие ситуации в жизни, примером может быть компания Yota, с ее дурацкой политикой ограничений Yota на раздачу Wi-Fi. Представим ситуацию, что взяли себе оператора Yota на телефон и решили раздать Wifi на ноутбук, но вы даже не знали подводных камней. в плане фильтрации пакетов со стороны Yota. Она жестко режет скорость, и режет она посредством значения ttl, оно должно быть 64, а если у вас дополнительное устройство, то это лишний хоп и значит ttl меньше, вот для обхода этой подставы с раздачей Wifi на ноутбук от Yota, мы и изменим ttl. Менять ttl мы будем в Windows 10, но данные действия подойдут и для Windows 7 и 8.1.
Нажимаем Win+R и вводим regedit
В итоге у вас откроется редактор реестра Windows. Вам нужно перейти в ветку реестра
HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\Tcpip\Parameters
В разделе вам нужно создать значение, все зависит от разрядности Windows, если 32 битная, то создаем параметр DWORD (32 бита), если 64 битная, то QWORD (64 бита). Я создаю QWORD.

Задаем ему имя DefaultTTL и значение и устанавливаем его значение 65 для Android и iOS или 130 — Lumia, Nokia, Microsoft Phone и обязательно перезагружаемся .
эта лишняя единица, как раз и пойдет на лишний скачок через ваш телефон с ноутбука и Yota ничего не увидит, как видите изменить ttl windows 10, очень просто.

Как изменить ttl Ubuntu, Debian
И так с Windows мы уже научились, менять ttl, но не у всех стоит именно он, есть люди с Ubuntu например, давайте учиться как обойти ограничение на раздачу интернета через телефон на компьютер с Ubuntu на борту, в случае, если ваш оператор Йота, вы должны сделать несколько простых вещей.
1) Нажать одновременно Ctrl+Alt+T. Так вы вызовете терминал.
2) Ввести первую команду:
sudo vi /etc/init.d/local.autostart
Нажать Enter.
3) Попросит ваш пароль, вводим, жмем Enter, далее жмем i — это введет редактор vi в режим редактирования.
4) Вводим сам скрипт фиксирования TTL Ubuntu на значении 65, если у вас Android или iOS (у них стандартный TTL=64), если вы обладатель Люмии, где стандартный TTL равен 128, вам вместо 65 нужно прописать 129. Все это по простейшей формуле, ttl на компе должен быть на 1 больше, чем ttl на телефоне, с которого вы раздаете. Теорию я вам рассказал, а теперь сам скрипт:
#!/bin/bash
sudo iptables -t mangle -A POSTROUTING -j TTL —ttl-set 65 (вот это значение меняйте сами, теория выше в помощь)
5) Далее, для окончания редактирования жмем Esc. Потом сохраняем файл, зажимая Shift+ZZ.
6) Теперь необходимо проставить скрипту права на запуск:
sudo chmod +x /etc/init.d/local.autostart
Нажимаем Enter.
7) Теперь последнее, добавляем все это дело в автозапуск:
sudo update-rc.d local.autostart defaults 80
8) Нажимаем Enter. Все будет делаться автоматически и без вашего участия.
Как изменить ttl MacOS
Ну и конечно, нельзя обижать яблочников Для изменения ttl на mac делаем следующее
Идем в /Library/StartupItems. Открываем терминал и прописываем: ~> cd /Library/StartupItems/
Создаем там папку (например, это будет yota). В терминале пишем: /Library/StartupItems> sudo mkdir yota
Идем туда. В терминал вставляем: /Library/StartupItems> cd yota/
4) Создаем там скрипт (он должен называться так же как и папка), который хотим выполнять.
Для создания скрипта в терминал вбиваем:
/Library/StartupItems/yota> sudo vim yota
И тут откроется редактор Vim! Сюда копируем сам скрипт:
# Скрипт смены ttl на Mac OS X:
#!/bin/sh
sudo sysctl -w net.inet.ip.ttl=65
И закрываем Vim с сохранением результата, вводим в виме (редакторе): yota
5) Создаем файл параметров StartupParameters.plist.
/Library/StartupItems/yota> sudo vim StartupParameters.plist
И тут опять откроется редактор Vim! Сюда копируем содержание файла параметров:
Самое главное, чтобы в строчке Provides было прописано то же имя, что и название скрипта и название папки:
<
Description = ‘Add static routing tables’;
Provides = (‘yota’);
Requires = (‘Network’);
OrderPreference = ‘None’;
>
И опять закрываем Vim с сохранением результата, для этого вводим: w! StartupParameters.plist
6) Выставляем права на выполнение нашему скрипту.
/Library/StartupItems/fuckingyota> sudo chmod 755 yota
7) в итоге получаем: /Library/StartupItems/yota> ll
9) А сейчас, мы не будем перезагружать комп, а просто стартанем скрипт, чтобы убедиться в его работоспособности:
/Library/StartupItems/yota> sudo SystemStarter start fyota
Резюмируя мы с вами рассмотрели какие значения ttl у каждой операционной системы, рассмотрели для чего они. Мы научились менять ttl на самых распространенных системах, если есть вопросы пишите их в комментариях.
Популярные Похожие записи:
Ошибка Запуск этого устройства невозможен (код 10) в Windows 7
Поиск mac-адреса на DHCP с помощью PowerShell
Как отключить автоматический Chkdsk в отказоустойчивом кластере Windows- Настройка сети в CentOS 8, за минуту
- Словарь системного администратора
- Как узнать версию php онлайн
Как узнать ос по ip
Одна из наиболее известных функциональных возможностей Nmap это удаленное определение ОС на основе анализа работы стека TCP/IP. Nmap посылает серию TCP и UDP пакетов на удаленный хост и изучает практически каждый бит в ответах. После проведения дюжины тестов таких как TCP ISN выборки, поддержки опций TCP, IP ID выборки, и анализа продолжительности процедуры инициализации, Nmap сравнивает результаты со своей nmap-os-db базой данных, состоящей из более чем тысячи известных наборов типичных результатов для различных ОС и, при нахождении соответствий, выводит информацию об ОС. Каждый набор содержит свободное текстовое описание ОС и классификацию, в которой указаны название производителя (напр. Sun), название ОС (напр. Solaris), поколение ОС (напр. 10), и тип устройства (). OS, and a classification which provides the vendor name (e.g. Sun), underlying OS (e.g. Solaris), OS generation (e.g. 10), and device type (для общих целей, роутер, коммутатор (switch), игровая консоль и т.д.).
Если Nmap не может определить ОС, но для этого есть хорошие предпосылки (наприме, по крайней мере, найдены один открытый и один закрытый порты), то Nmap предоставит URL, по которому, если вы точно знаете, какая ОС используется, вы сможете предоставить набор ее характеристик. Тем самым вы внесете свой вклад в дополнение базы данных известных ОС Nmap, и она будет более полезна для всех остальных.
Опция определения ОС также активирует проведение некоторых других тестов, которые позволяют воспользоваться собираемой в процессе работы информацией. Один из них Классификация Предсказуемости Последовательности TCP (TCP Sequence Predictability Classification). Это позволяет приблизительно определить, насколько сложно установить ложное TCP соединение с удаленным хостом. Это может быть полезно для взлома и эксплуатации программ, базирующихся на доверительных отношениях (rlogin, фильтры брандмауэров и т.д.) или для сокрытия источника атаки. Этот тип спуфинга (spoofing) теперь редко используется, но многие машины все еще уязвимы к такого рода атакам. Число, характеризующее сложность, базируется на статистической выборке и может колебаться. Обычно лучше испльзовать классификацию с испльзованием английских фраз типа « worthy challenge(достойное испытание) » или « trivial joke(шуточное дело) » . Эта информация будет выведена только при включенном вербальном режиме ( -v ). Когда вербальный режим активирован вместе с опцией -O , то выводится также информация о генарции IP ID последовательности. Большинство машин находятся в классе « incremental(возрастающий) » , что означает, что они увеличивают поле ID в IP заголовке для каждого посланого пакета. Это делает их уязвимыми к спуфинг(spoofing) атакам и атакам с целью сбора расширенной информации.
Также во время определения ОС делается попытка узнать время работы целевой машины. С помощью временных меток (timestamp) TCP (RFC 1323) Nmap пробует угадать, когда машина была перезагружена в последний раз. Информация может быть не точна, т.к. счетчик временной метки не был обнулен или был переполнен, или каким-то образом скрыт. Информация выводится только в вербальном режиме.
Бумажная документация по работе, использованию и настройки опции определения ОС находится на https://nmap.org/book/osdetect.html .
Функция определения ОС включается и управляется с помощью следующих опций:
-O (Включить определение ОС)
Включает фукнцию определения ОС, работа которой описана выше. Вы также можете использовать опцию -A , которая помимо других функций включает определение ОС.
—osscan-limit (Использовать функцию определения ОС только для «перспективных» хостов)
Функция определения ОС намного более эффективна, если обнаружены, по крайней мере, один открытый и один закрытый TCP порты. Задайте эту опцию, и Nmap не будет даже пытаться определить ОС хостов, не удовлетворяющих этому критерию. Это поможет сэкономить массу времени, особенно при -PN сканирование многих хостов. Эта опция будет действовать только при включении функции ОС путем задания опций -O или -A .
—osscan-guess ; —fuzzy (Угадать результаты определения ОС)
Когда Nmap не в состоянии определеить точное совпадение, она иногда предоставляет наиболее близкие к результатам сканирования совпадения. Чтобы Nmap сделала это по умолчанию, совпадения должны быть очень близки. Любая их этих (равных) опций побуждает Nmap к более агрессивному анализу результатов. Nmap по-прежнему будет сообщать, когда будет найдено не идеальное совпадение, а также отображать стпень соответствия (в процентах) для каждого набора характеристик.
—max-os-tries (Устанавливает максимальное количество попыток определения ОС)
Когда Nmap пытается определить ОС на целевом хосте и не может найти идеального соответствия результатов, то она обычно повторяет попытку. По умолчанию, Nmap совершает пять попыток при условии, что существуют благоприятные условия для определения ОС, и дважды — в противном случае. Задание более низкого значения —max-os-tries (напр. 1) увеличивает скорость работы Nmap, однако вы пропускаете некоторые записи, с помощью которых, возможно, можно было бы определить ОС. Большое значение может быть задано для разрешения большего количества попыток при благоприятных условиях. Это делается редко, за исключением тех случаев, когда необходимо сгенерировать более детальный набор характеристик ОС для занесения в базу данных Nmap.
Можно ли определить ОС по IP?
Вопрос такой. Нужно узнать ОС в сети. Там около 1000 IP адресов. Можно конечно чекать NMAP-ом, но это нереально долго. Так вот, есть ли утилиты для проверки ОС по сегментам сети?
- Вопрос задан более трёх лет назад
- 1198 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 3

Руслан Федосеев @martin74ua Куратор тега Сетевое администрирование
Linux administrator
Вы пока ждете ответов — уже б сканировать закончили )
Кто вам мешает nmap на каждый сегмент запустить?
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать
«По айпи вычеслить»? Нет. По дополнительным. штукам — можно. Так делают другие сканеры, которых, помимо «NMAP» — десятки.
Ответ написан более трёх лет назад
Aenyweddien @Aenyweddien Автор вопроса
Я просто не правильно выразился. По портам. IP просто много. Какая софтина по Вашему мнению лучшая?
Aenyweddien, так в том и сложность — их так много. «проблема выбора». У меня папка со «сканерами и инвентаризаторами» содержит больше сотни всяких.
По портам тоже не определяют. Точнее и по портам тоже, но обычно идёт комплексно.
Ну, вот наугад ткнул — www.kilievich.com/FInventory_1_0_1.exe
и OCS + GLPI
и Zabbix
. сложнааа
просто админ из деревни
IP известны? Тогда пишем простейший скрипт на любом языке, который знаете, скрипт стартует кучу потоков с nmap -sS -O, потом парсим вывод как вам угодно. Совсем недолго.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- Linux
- +2 ещё
Существуют визуальные панели управления сервером?
- 3 подписчика
- вчера
- 432 просмотра
unixforum.org
Как узнать версию ОС на удаленном компьютере
Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.
Модератор: SLEDopit
6 сообщений • Страница 1 из 1
progressive Сообщения: 415 ОС: Mac OS X 10.6.1 SnowLeopard Контактная информация:
Как узнать версию ОС на удаленном компьютере
Сообщение progressive » 17.02.2006 19:04
Какие существуют программы для сбора информации в сети. исследования сетевой безопасности? Каким оброзом узнать версию ОС на удаленном компьютере, зная его IP адрес?
Спасибо сказали:
Warderer Модератор Сообщения: 1056 Статус: киберпИнгвин на гусеничном ходу ОС: Debian unstable
Re: Как узнать версию ОС на удаленном компьютере
Сообщение Warderer » 17.02.2006 19:24
man nmap
для более детального изучения на уязвимости — проект nessus.
Читаю вслух с выражением маны — $50/ч + стоимость звонка. Настраиваю сервисы за Вас — $100/ч + стоимость выезда и проживания.
И восемь строк матом. (бесплатно)
Спасибо сказали:
glist Сообщения: 134 ОС: Debian Linux Контактная информация:
Re: Как узнать версию ОС на удаленном компьютере
Сообщение glist » 20.02.2006 10:25
А если конкретнее то
# nmap -v -sS -O host.net
Debian GNU/Linux, windowmaker, Centericq, Opera/Mozilla/links.
———————————-
Sending Kiddies to /dev/null
Спасибо сказали:
Angel_13th Сообщения: 1164 Статус: . -oo=ll=oo-. ОС: Gentoo
Re: Как узнать версию ОС на удаленном компьютере
Сообщение Angel_13th » 20.02.2006 10:47
glist Таким ты узнаеш только приблизительно (типа Unix, Linux, FreeBSD, Windows) что стоит на компе. Один из самых простых способов, если на сервер крутиться веб сервер апач, ввести не существующий путь, стандартные файлы ошибок часто показывают что крутиться на сервере, но сейчас это уже редко встретиш.
WorkStation Ubuntu 10.10 on Fujitsu-Siemens Amilo Pro 3545
Спасибо сказали:
progressive Сообщения: 415 ОС: Mac OS X 10.6.1 SnowLeopard Контактная информация:
Re: Как узнать версию ОС на удаленном компьютере
Сообщение progressive » 22.02.2006 15:56
Сервак стопудово старый. Последний раз (было это больше 2 лет назад) когда я подключался из винды через Telnet и в окне выводилось сообшение что на сервере установлен RedHat Linux 7.2 kernel 2.2.*(непомню). Скорее всего сервер не притерпел за это время никаких изменений, но как в этом убедиться? Модема у меня больше нет, я при запуске Telnet по выделеной линии просто завершает сеанс.
Спасибо сказали:
BigKAA Сообщения: 292 Контактная информация:
Re: Как узнать версию ОС на удаленном компьютере
Сообщение BigKAA » 22.02.2006 17:03
20.02.2006 10:47
glist Таким ты узнаеш только приблизительно (типа Unix, Linux, FreeBSD, Windows) что стоит на компе. Один из самых простых способов, если на сервер крутиться веб сервер апач, ввести не существующий путь, стандартные файлы ошибок часто показывают что крутиться на сервере, но сейчас это уже редко встретиш.
Не факт, у меня например апач говорит что ты попал в GentOS, хотя. Вообщем не оно у меня
Я вообще не понял, а зачем это надо знать если тебя туда не пускают ?