как узнать операционную систему сервера
Как узнать версию операционной системы удалённого компьютера?
Можно ли узнать версию операционной системы удалённо?
Одна из главных “фишек” утилиты Nmap в том, что она умеет определять удалённые операционные системы и программы. Согласитесь, при проведении теста на проникновение очень полезно знать, что сейчас на компьютере жертвы запущено. Если известны уязвимости, то задача по взлому компьютера значительно облегчается.
В Nmap есть своя база данных под названием nmap-os-db, где содержится информация о почти 3000 операционных системах. Nmap отсылает пакеты TCP и UDP на компьютер жертвы и анализирует ответы путём сравнения результатов с этой базой. Этот процесс протекает немного медленнее, чем процесс сканирования открытых портов: последний включён также в процесс определения ОС.
Как узнать версию операционной системы удалённо?
Команда запроса выглядит как
Итак, такая техника позволит раскрыть следующие параметры компьютера жертвы:
Device type – тип устройства, с помощью которого компьютер выходит в интернет (роутер, рабочая станция, что-то там ещё…)
Running – запущенная в данный момент операционная система
OS details – её версия и название
Network distance – расстояние от вас…то есть от хакера до жертвы (особо не доверяйте этим цифрам).
Это, конечно в идеале… Что же вы увидите, скорее всего, на самом деле.
Так как Nmap в своей работе полагается всё-таки на обнаружение открытых портов, если оные прикрыты админом, появится ошибка:
Это самая неприятная для хакера ситуация и единственный из вариантов действий – просто прекратить на время разведку системы противника.
Nmap с высокой долей вероятности сможет определить версию операционной системы:
Однако если аккуратность сканирования компьютера вас не очень удовлетворила, попробуйте использовать дополнительный параметр:
“попросит” указать максимально приемлемый вариант работающей в данный момент на хосте операционной системы. Однако ответы утилиты
означает лишь то, что параметр –osscan-guess был “немного” лишним – попробуйте узнать версию операционной системы без дополнительных условий в команде.
Бесплатно, быстро, легко и просто получаем информацию о системе с множества ПК в сети
В процессе работы любого ИТ специалиста бывают моменты, когда нужно получить информацию о системе. Иногда нужно собрать какой-то один или ряд параметров системы с множества рабочих станций и быстро обработать. Чем оперативнее сведения будут получены, тем конечно же лучше. В статье хочу представить powershell модуль, с помощью которого можно быстро получать почти любую информацию о системе. К примеру: мне удавалось собрать информацию о размере оперативной памяти с нескольких сотен рабочих станций, затратив на это чуть более двадцати секунд!
На просторах интернета можно найти большое количество powershell скриптов, получающих ту или иную информацию о системе. Как правило, это небольшие скрипты либо функции, использующие wmi. Для одной рабочей станции свою задачу они выполняют великолепно, но если компьютеров много, то наступают проблемы.
Основной недостаток в том, что сбор информации идет синхронно, скрипт не приступает к следующему компьютеру, пока не отработает на текущем. В результате для поучения информации со всего парка ПК, в лучшем случае, можно прождать очень много времени, в худшем же сценарий может зависнуть и не завершиться никогда.
Мне хотелось сделать какой-то универсальный инструмент. лишенный вышеперечисленного недостатка. Для удобства использования был написан powershell модуль, содержащий на данный момент одну функцию Get-Systeminfo.
На сегодняшний день функция позволяет получать множество различных сведений о системе. По сути, она содержит в себе большую коллекцию скриптов и легко может быть расширена путем добавления новых сценариев.
Если у вас powershell 5 версии или выше — установить модуль можно выполнив команду
Для других версий ссылка на Github
Основные характеристики функции
Как пользоваться функцией Get-SystemInfo
Работая с командлетом Get-Adcomputer, я обратил внимание на параметр Properties. Он позволял расширить стандартный вывод команды свойствами, которые были перечислены после него. Именно эта концепция была взята за основу. Например, для того чтобы запросить информацию о модели процессора и оперативной памяти, нужно после параметра Properties перечислить через запятую те свойства, которые мы хотим увидеть в результате выполнения.
Для группировки свойств используются switch параметры. Можно использовать совместно несколько switch параметров и параметр Properties
Данные переменные удобно использовать после того как функция отработала. Например, используя стандартный командлет Where-Object, можно выбрать из всех результатов те, которые отвечают определенным критериям.
Файл конфигурации
Функция Get-Systeminfo имеет файл конфигурации, находящийся в папке config. Он представляет из себя powershell скрипт, содержащий основные настройки. Наличие данного файла позволят вносить изменения в функцию, не редактируя основной код модуля. Для того чтобы расширить либо убрать ненужный функционал — нужно всего лишь изменить этот файл.
Основные переменные в файле.
$Defaultinfoconfig определяет, какая информация будет получена, когда функция будет запущена без каких-либо параметров. Добавляя или удаляя свойства из массива, можно настраивать какие сведения будут получены.
$Functionconfig содержит хэш таблицу. Где ключом является свойство, которое будет указываться в параметре Properties, а значением строка в стиле параметров powershell. В строке допустимы следующие параметры: Class, Query, Property, Script, FormatList
$ManualNamespace содержит хэш таблицу, где ключ-это класс, а значение- пространство имен, в котором находится класс. Изменения в таблицу нужно вносить в том случае, если нужный для работы класс не принадлежит пространству имен root\cimv2.
$Switchconfig содержит хэш таблицу: ключом является имя switch параметра, а значением-массив свойств.
Как расширить возможности функции
Предположим, что нужно добавить возможность получать наименование ос. Для этого требуется выполнить 4 действия.
Не всегда представляется возможным получить нужные сведения напрямую из объекта wmi. Иногда для получения информации требуется обработать объекты нескольких классов. Для этих случаев необходимо писать скрипт.
Скрипт для модуля ничем не отличается от обычного, кроме того, что не требуется использовать Get-Wmiobject, так как wmi объекты уже доступны через соответствующую переменную. Для протокола Dcom нужно учитывать, что вся информация должна быть получена через wmi. Не получится использовать командлеты get-process get-services и прочие подобные. Связано это с местом выполнения скриптов. В случае Dcom протокола все скрипты выполняются там, где запущена функция Get-Systeminfio.
Если для подключения используется протокол Wsman, скрипты выполняются на компьютере, с которого получаем информацию, поэтому нет никаких ограничений: можно использовать любые командлеты. Остальные нюансы использования файла конфигурации можно понять, изучив его подробно. Сейчас там находится множество примеров.
Модуль тестировался на второй и пятой версии powershell, но скорее всего будет работать и на всех остальных. Я рекомендую использовать 5 версию, так как там появилась функция авто дополнения, которая значительно облегчает работу.
Как узнать операционную систему сервера
В данной статье рассмотрен метод получения информации об операционной системе удаленного хоста, использующий механизм опроса стека TCP/IP удаленного хоста. Вначале представлены некоторые классические методы определения ОС удаленного хоста. Затем рассматриваются конкретные методы воздействия на удаленный хост, по результатам которых можно сделать определенные выводы об установленной на нем ОС. Наконец, рассмотрен механизм комплексного воздействия на удаленный хост, использующий комбинацию рассмотренных методов и реализованный в программе NMAP.
Если атакующий точно определит тип и версию ОС удаленного хоста (например, Linux kernel 2.0.35 или Solaris 2.51 ), он может соответствующим образом скоординировать свои действия, проанализировав информацию, касающуюся известных проблем в безопасности определенной ОС.
Используя программные средства, обеспечивающие определение ОС удаленного хоста, атакующий способен просканировать множество хостов и определить тип и версию ОС, установленную на каждом из них. Затем, когда кто-нибудь опубликует в сети Интернет информацию об обнаруженной «дыре» в безопасности конкретной ОС, атакующий автоматически получает список уязвимых хостов, на которых установлена данная версия ОС.
Информацию о типе и версии ОС удаленного хоста возможно использовать в качестве спекулятивного средства социальной инженерии. Например, атакующий получает от удаленного хоста следующую информацию :
DataVoice TxPort PRISMA 3000 T1 CSU/DSU 6.22
Классические методы определения операционной системы удаленного хоста
Существует масса различных способов получить информацию об ОС удаленного хоста. Удивительно, но самым эффективным из них и по сей день является следующий :
Connected to hpux.uaizu.ac.jp.
Escape character is ‘^]’.
HP-UX hpux B.10.01.A 9000/715 (ttyp2)
Как видно, не имеет смысла прибегать к различным ухищрениям, если удаленный хост сам сообщает о своей ОС. Основная масса разработчиков ОС поставляют свои продукты именно с такими заголовками, и многие системные администраторы забывают их отключить. Но даже если вывод заголовка отключен, большинство прикладных программ выдадут информацию, находящуюся в заголовке ОС хоста по первому требованию (если администратор не позаботился об отключении этой возможности). Например, FTP- сервер :
Payfones> telnet ftp.netscape.com 21
Connected to ftp.netscape.com.
Escape character is ‘^]’.
220 ftp29 FTP server (UNIX(r) System V Release 4.0) ready.
215 UNIX Type: L8 Version SUNOS
Playground> echo ‘GET / HTTP/1.0\n’ | nc hotboot.com 80 | egrep ‘^Server:’
Метод опроса стека TCP/IP удаленного хоста
Как показывает практика, различные ОС при работе в сети по-разному реагируют на один и тот же запрос. Исследовав особенности реакций на запрос ОС, версии которых заранее известны, можно набрать определенную статистику, сопоставив реакции на запрос с типом ОС. При использовании комбинированного воздействия, статистическая информация становится более конкретизированной.
В дальнейшем, исследуя реакцию сервера с неизвестной ОС, с использованием накопленной статистики можно определить не только тип, но и версию установленной на сервере ОС. Например, возможно точно отличить Solaris 2.4 от Solaris 2.50 или Linux kernel version 2.0.30 ( для всех Linux далее указывается версия ядра) от Linux 2.0.35.
Рассмотрим более подробно основные методы исследования ОС сервера.
Исследование BOGUS- флагом
Определение закона изменения ISN сервера
Исследование поля ACK в TCP- пакете
Рекомендацией RFC 793 определено стандартное изменение поля ACK в TCP- пакетах при установлении соединения, передаче данных и закрытии соединения. Однако в нестандартных ситуациях различные ОС по-разному устанавливают значение этого поля.
Исследование скорости генерирования ICMP- сообщений
Так, Linux ограничивает количество ICMP- сообщений об ошибке типа «получатель недоступен» (Destination Unreachable) до 80 сообщений в 4 секунды, с простоем 0,25 секунды, если это ограничение было превышено.
Исследование формата ICMP- сообщений
Как известно, в ICMP- сообщении об ошибке должна присутствовать часть дейтаграммы, вызвавшей эту ошибку. Эта часть состоит из IP- заголовка дейтаграммы и первых 64-х бит данных дейтаграммы, и называется «эхом» дейтаграммы.
Некоторые ОС используют IP- заголовок прибывшей дейтаграммы в качестве «рабочего пространства» на начальном этапе ее обработки. Это приводит к искажению IP- заголовка, и дейтаграмма с искаженным заголовком отправляется как эхо ICMP- сообщения.
Различные ОС по-разному искажают заголовок дейтаграммы. Например, ОС AIX и BSDI в IP-заголовке эха возвращают значение поля TotalLength на 20 байт больше первоначального значения исходной дейтаграммы. Некоторые версии ОС BSDI, FreeBSD, OpenBSD, ULTRIX и VAXen стирают поле ID в эхо- IP заголовке.
Вцелом, возможно проведение девяти различных тестов для проверки эха дейтаграммы в ICMP- сообщении и выявления различных закономерностей для разных ОС.
Исследование поля Type Of Service в заголовке ICMP- сообщения
В ICMP- сообщении, наряду с уже упомянутыми признаками, можно проанализировать поле Type Of Service (Тип сервиса, TOS). Подавляющее большинство ОС устанавливают поле TOS=0. Однако старые версии Linux ставят TOS=0xC0 (следует отметить, что это значение не является указателем на какой-либо тип сервиса). Таким образом, данный признак можно использовать совместно с другими тестами для различения старых и новых версий Linux.
Исследование обработки фрагментов дейтаграммы
Как известно, протокол IP делит пакет на фрагменты для дальнейшей передачи их в сеть. На практике различные ОС могут по-разному осуществлять обработку перекрытия фрагментов. Так, некоторые ОС заменяют старый фрагмент, прибывший без ошибок, повторно прибывшим аналогичным. Другие ОС считают, что старый пакет имеет привилегию над аналогичным новым и игнорируют его. Исследуя закон перекрытия фрагментов можно сделать определенные выводы относительно типа ОС исследуемого сервера.
Исследование поля Options заголовка TCP- пакет а
и получив от сервера ответ подобного рода
можно сделать вывод о том, что ОС сервера поддерживает опцию MaxSegmentSize.
Рассматривая приведенный выше пример, можно обратить внимание на то, что значение MaxSegmentSize (MSS) в запросе (256) отличается от значения ответа (1024). Поэтому, если несколько ОС поддерживают одинаковый набор опций, имеется возможность различения ОС по значению опций.
Кроме того, из примера видно, что опция MSS в ответе стоит на втором месте, а в запросе была указана на третьем месте. Эта особенность используется в случае, когда разные ОС имеют одинаковый набор опций с идентичными их значениями. При этом возможно различение ОС по порядку следования указанных в ответе опций.
Так, ОС Solaris возвращает :
Исследование флага DontFragment в IP- заголовке
Многие ОС в определенных ситуациях не используют фрагментацию пакетов, и поэтому устанавливают флаг DontFragment (DF) в IP- заголовке отправляемой (нефрагментированной) дейтаграммы. Это повышает производительность ОС при работе в сети всвязи с уменьшением времени обработки передаваемых пакетов. Установив зависимость наличия (или отсутствия) данного признака в конкретной ситуации от типа ОС, можно в дальнейшем использовать его в одном из тестов на определение ОС сервера.
Исследование возможности «борьбы с затоплением» SYN- пакетами
«Затопление» SYN-пакетами является достаточно известным способом «завала» сервера, вызвав у него состояние «отказа в обслуживании». Суть этой атаки заключается в том, что при отправлении на некоторый открытый порт сервера определенного числа SYN- пакетов (запрос на установление соединения) с указанием несуществующего IP-адреса сервер перестает отвечать на все входящие на этот порт запросы.
Особенности ОС Windows
Реализация метода комплексного опроса стека TCP/IP в NMAP
Рассмотрим реализацию метода исследования ОС удаленного хоста путем комплексного опроса его TCP/IP стека, называемым иначе методом снятия «отпечатков» стека TCP/IP и используемым в сканере NMAP.
Для этого необходимо удаленный либо локальный хост, тип и версия ОС которого заранее известны, протестировать всеми описанными выше способами, проанализировать результаты тестов и на основе полученных данных составить общую характеристику (или т.н. «отпечаток») стека TCP/IP удаленного хоста, привязав его к конкретному типу и версии ОС.
Собрав достаточно большое количество таких отпечатков (хотя можно начинать и с одним), возможно теми же методами исследовать хост, тип и версия ОС которого заранее неизвестна. Составив из полученных результатов отпечаток и сопоставив его с уже имеющимися, можно определить, какой ОС соответствует полученный отпечаток и на основании этого сделать вывод об ОС исследуемого хоста.
Алгоритм получения отпечатка стека TCP/IP следующий. Вначале проводится сканирование портов удаленного хоста с целью определения открытых портов и служб, функционирующих на исследуемом хосте. Затем проводится несколько тестов, поэтапно выполняющих опрос стека TCP/IP удаленного хоста с целью выявления рассмотренных выше признаков.
На основе полученных от хоста ответов составляется отпечаток, который затем сравнивается с уже имеющейся базой отпечатков, и принимается решение о типе и версии ОС исследуемого хоста.
На закрытый порт сервера с большим номером хост отправляет запрос (TCP и UDP- пакет), и анализируется прибывшее в ответ ICMP- сообщение Port Unreachable ( порт недоступен).
insecure.org => Linux 2.0.31-34
www.rhino9.ml.org => Windows 95/NT
www.technotronic.com => Linux 2.0.31-34
www.kevinmitnick.com => Linux 2.0.31-34
www.rootshell.com => Linux 2.0.35
www.repsec.com => Linux 2.0.35
www.iss.net => Linux 2.0.31-34
www.li.org => Linux 2.0.35
www.redhat.com => Linux 2.0.31-34
www.debian.org => Linux 2.0.35
www.netbsd.org => NetBSD 1.3X
www.openbsd.org => Solaris 2.6
www.freebsd.org => FreeBSD 2.2.6-3.0 Beta
www.harvard.edu => Solaris 2.6
www.caltech.edu => SunOS 4.1.2-4.1.4
www.stanford.edu => Solaris 2.6
www.berkeley.edu => UNIX OSF1 V 4.0,4.0B,4.0D
www.oxford.edu => Linux 2.0.33-34
www.happyhacker.org => OpenBSD 2.2-2.4
www.lwn.net => Linux 2.0.31-34
www.whitehouse.gov => IRIX 5.3
sunsite.unc.edu => Solaris 2.6
Автор выражает глубокую признательность всем тем, кто принимал участие в создании сетевого сканера NMAP а также многочисленной команде предварительного бета-тестирования данной программы. В частности, Jan Koum, van Hauser, Dmess0r, David O’Brien, James W. Abendschan, Solar Designer, Chris Wilson, Stuart Stock, Mea Culpa, Lamont Granquist, Dr. Who, Jordan Ritter, Brett Eldridge, и Pluvius за интернет-адреса сайтов с известными версиями ОС и готовые отпечатки для некоторых операционных систем.
Вопросы и комментарии отправляйте по адресу :
Программу NMAP вы всегда можете скачать с :
Как узнать какая операционная система установлена?
Количество существующих операционных систем достигает нескольких десятков, если учитывать компьютерные и мобильные релизы ОС.
Давайте же узнаем какая операционная система установлена на Вашем устройстве: компьютере, ноутбуке, смартфоне, планшете.
Windows
Для всех вышеперечисленных вариантов можно попробовать нажать кнопку Пуск, а затем ввести команду WINVER и в результатах поиска выбрать winver.exe.
Точно такими же способами можно узнать разрядность операционной системы Windows: 32-бита или 64-бита.
Macintosh
Linux
FreeBSD / NetBSD / OpenBSD / DragonFlyBSD
Смартфон на Android
Откройте Главный экран. Для этого нажмите на кнопку домой или кнопку назад (несколько раз). Затем откройте экран Приложения. Найдите значок Настройки. Прокрутите список до конца и затем нажмите О телефоне. Ищите строки, которые скажут версию прошивки или Android версию.
Blackberry (RIM OS)
Solaris (SunOS)
IOS (Cisco)
В командной строке в режиме enable введите show version.
XOS (Extreme Networks)
В командной строке с привилегиями администратора введите show version.
IronWare OS (Foundry)
В командной строке с привилегиями администратора введите show version.
Если Вы не хотите разбираться с тонкостями работы перечисленных способов, чтобы узнать версию операционной системы, то просто переходите к статье Краткая информация о вашем компьютере: 3 полезных сайта, в которой я рассказывал про несколько полезных ресурсов в Интернете, в том числе помогающих узнать какая операционная система установлена у Вас.
Как узнать версию Linux
Когда вы сами устанавливали систему и все настраивали, то точно знаете какой дистрибутив у вас установлен, какая версия и какая версия ядра. Но совсем другая ситуация, когда вы покупаете VPS или пытаетесь настроить компьютер другу или знакомому с Linux. Довольно часто может возникнуть вопрос как узнать версию Linux потому что эта информация часто очень важна. Например, уязвимости в программном обеспечении часто затрагивают только определенные релизы.
В этой небольшой статье мы поговорим о том как посмотреть версию Linux через терминал и какие утилиты для этого используются и в каких конфигурационных файлах можно найти интересующую нас информацию.
Скользящие или фиксированные релизы
Все активные дистрибутивы Linux выпускают новые релизы, только все по-разному. Конечно, дистрибутивы обновляются и между релизами, но пользователям привычен такой порядок, что обновления релиза получают только исправления безопасности и ошибок, а все новые возможности выпускаются новым релизом. Но существуют и другие пути. Сейчас есть два способа выпуска релизов:
Фиксированные релизы используются в Ubuntu. Каждые 6 месяцев выходит новый релиз, поэтому тут есть четкое разделение на версии, новая версия дистрибутива Linux получает новое программное обеспечение, а затем на протяжении всего термина поддержки получает обновления безопасности.
Как узнать версию Linux?
На самом деле для этого есть очень много методов, начиная от общих признаков и до открыть файл и точно посмотреть версию и имя дистрибутива. Рассмотрим только самые популярные из них.
Узнать дистрибутив
Прежде всего давайте узнаем имя дистрибутива и его версию если это возможно. Для этого будем смотреть содержимое файлов в папке /etc/, которые заканчиваются на release:
В Ubuntu утилита выведет содержимое двух файлов /etc/lsb-release и /etc/os-release. В них будет содержаться исчерпывающая информация о имени дистрибутива и версии его релиза:
Но если мы выполним ту же команду в ArchLinux то получим совсем другой результат:
Тут уже нет версии, есть только имя дистрибутива, поскольку ArchLinux использует систему скользящих релизов. Немного меньше, но почти всю ту же информацию можно получить используя команду lsb_release:
Также очень часто вы можете узнать имя дистрибутива посмотрев пункт «О программе» для любого системного приложения или лучше утилиты «Настройки»:
Или для RPM систем:
Узнать версию ядра
Во многих случаях нам нужна не столько версия дистрибутива linux, сколько версия ядра, которое в нем используется. Для просмотра этой информации тоже есть несколько команд:
А еще можно посмотреть строку параметров запуска ядра, она тоже содержит версию:
Есть еще несколько файлов с подобной информацией:
Как узнать архитектуру компьютера
Вы уже знаете как узнать версию Linux, имя дистрибутива и ядро, архитектура уже проскальзывала в командах выше, но существует отдельная команда, которая выводит только архитектуру:
Для этих же целей можно использовать uname:
Выводы
Теперь вы знаете как посмотреть версию Linux. Как видите, в Linux достаточно много способов для решения этой задачи. Надеюсь, эта информация была полезной для вас.