Как вычислить операционку на удаленном хосте

Как вычислить операционку на удаленном хосте

Первый этап пентеста — это, как известно, разведка. После того, как вы определили, какая система работает на удаленном хосте, вы можете начать искать в ней уязвимости. В этой статье вы узнаете о семи инструментах, которые помогут на этом этапе, и в то же время вы увидите, как вычислить операционку на удаленном хосте.

Возможно, вы знакомы с термином TCP/IP stack fingerprinting, который обозначает, как работают такие инструменты.
Давайте рассмотрим наиболее подходящие утилиты, для этой цели, и попробуем оценить их возможности и особенности.

Небольшой экскурс в теорию

Очевидно также то обстоятельство, что удаленная система представляется нам «чёрным ящиком» на начальном периоде разведывательной деятельности, и мы знаем только IP- адрес. Необходимо выяснить все возможные порты на исследуемом хосте, какую операционную систему он имеет на борту, какое программное обеспечение там установлено и способен взаимодействовать с сетью. А если вы уже имеете определенную информацию, то можете приступать к поиску уязвимостей и думать о том, как их применять.

Для определения операционной системы на хосте используются пассивные и активные методы исследования.  В первом случае используются такие инструменты, как Wireshark и анализ трафика. Во втором варианте используется принцип шаблонных порталов: каждая операционная система имеет свой характерный набор открытых портов, по которому можно постучать и оценить их доступную степень. И только после этого, смотря на эту картину, делайте соответствующие выводы. И в первом, и во втором случае мы исследуем появление отпечатков пальцев операционной системы, поэтому этот набор методов называется— fingerprinting.

В большинстве случаев, все методы пассивного анализа трафика основаны на изучении стека TCP / IP удаленного компьютера. При этом в заголовках пакетов содержатся поля, относящиеся к операционной системе. В частности, время жизни пакета TTL(Time To Live), равное 64, наиболее часто встречается в Linux и freeBSD. При отсутствии флага фрагментации (Don’t Fragment) это означает, что это OpenBSD. Еще один косвенный символ – это размер окна, максимальный размер сегмента(MSS), значение масштабирования оконного сегмента и состояние флага sackOK. Метод исключения позволяет определить ОС, которая используется на интересующем нас хосте. Для облегчения этого дела будут использованы утилиты из этой статьи.

Nmap.

  • Сайт: nmap.org
  • Платформа: GNU/Linux, macOS, Windows (x86)

Это очень популярный кросс-платформенный инструмент с богатой историей и широким арсеналом функциональных возможностей. Он умеет многое и помимо фингерпринтинга, но нас интересуют в первую очередь его «разведывательные возможности».

Актуальная версия Nmap 7.80 обладает интуитивно понятным графическим интерфейсом, но для олдфагов предусмотрен режим работы из командной строки. В этом случае можно использовать команду nmap -O -PN [URL], где URL — адрес исследуемого сайта. Совсем упертые могут скомпилировать тулзу из исходников, любезно опубликованных на сайте разработчиков.

Как вычислить операционку на удаленном хосте

Отчет о сканировании сайта утилитой Nmap

Диагноз об установленной на хосте операционной системе утилита выдает весьма приблизительный, но вероятность того или иного варианта может достигать 90% и даже больше. В принципе, этого вполне достаточно, чтобы понять, в каком направлении копать дальше.

Кроме этого, программа любезно показывает сведения о версии работающего там сервера, об открытых портах, информацию, полученную в результате обработки DNS-запросов, IP- и IPv6-адреса, данные Classless inter-domain routing (CIDR). Софтина может выполнить обратный просмотр DNS (reverse DNS lookup), а также выводит большой объем другой полезной инфы. В Nmap предусмотрено несколько сценариев сканирования, выбор которых зависит от целей исследователя.

Принципы работы программы подробно описаны в документации на официальном сайте, а если базовых возможностей Nmap тебе недостаточно, можно ознакомиться со статьей об их расширении. Утилита и впрямь очень мощная: она позволяет даже обходить файрволы, выполнять DoS и другие виды атак. Одним словом, полезный инструмент, если знаешь, как с ним обращаться.

NetworkMiner.

NetworkMiner — это анализатор трафика, который сами разработчики относят к категории Network Forensic Analysis Tool (NFAT). Тулза использует пассивный метод анализа удаленной системы, а значит, не оставляет никаких следов и позволяет исследователю действовать незаметно.

Как вычислить операционку на удаленном хосте

Интерфейс NetworkMiner 

Утилиту можно скачать с сайта http://sourceforge.net/projects/networkminer, а на страничке разработчиков доступен исходный код.

NetworkMiner позволяет отслеживать установленные соединения и анализировать передаваемые по сети пакеты, выуживая из них полезную информацию о хостах, с которыми твой компьютер обменивается информацией. В качестве исходных данных для анализа используется TTL (время жизни пакета), размер фреймов, установленные в заголовках пакетов флаги.

С помощью NetworkMiner можно исследовать и отдельные фреймы. Для этого служит вкладка Frames — здесь представлены данные о размере фрейма, IP-адресах и портах отправителя и получателя, а также прочие полезные сведения. Кроме этого, есть возможность анализировать баннеры демонов. Вся эта информация позволяет воссоздать структуру сети, где выполняется перехват пакетов: особенно это полезно для беспроводных сетей, внутренняя кухня которых тебе незнакома.

Есть у этой тулзы еще одна шикарная функция: она умеет вытаскивать файлы из трафика, транслируемого по протоколам FTP, TFTP, HTTP, HTTP/2, SMB, SMB2, SMTP, POP3 и IMAP. То есть с ее помощью можно перехватывать файло, передаваемое по электропочте, FTP, по локалке или попросту в браузере пользователя. Из шифрованного трафика NetworkMiner может выдергивать сертификаты X.509. Красота, да и только!

В общем, перед нами вполне себе мощный сниффер, способный творить волшебство в умелых руках. Ну а фингерпринтинг и определение ОС — лишь одна из его широчайших возможностей.

p0f v3.

Это не просто довольно известный сниффер, а программа, объединяющая целый комплекс механизмов для анализа перехваченных пакетов и фингерпринтинга. При этом определение типа ОС на удаленном узле (даже в случаях, когда Nmap с этой задачей не справился, например из-за использования в сети брандмауэра) заявляется разработчиками в качестве одной из основных функций.

Имеется несколько режимов работы программы, которые можно использовать в зависимости от конфигурации сети и стоящей перед исследователем задачи:

  • режим SYN, подразумевающий исследование входящих соединений;
  • режим SYN+ACK — исследование исходящих подключений;
  • режим RST+ подразумевает исследование трафика для узла, находящегося за файрволом, который отклоняет подключения;
  • режим MiTM — исследование соединения между узлами, трафик которых ты можешь сниффить без вмешательства с твоей стороны.

Кроме того, p0f умеет определять, работает ли в сети NAT, шейперы или файрволы, отслеживать трассировку пакета до заданного узла и вычислять его аптайм. При этом тулза не генерирует никаких собственных запросов и прочего подозрительного трафика, что само по себе неоспоримое преимущество, если исследователь желает оставаться в сети незамеченным.

Версия p0f v3 была переписана разработчиками с нуля, поэтому «база отпечатков» там не самая полная. Если верить официальному сайту, программе не хватает данных о старых версиях операционных систем вроде Windows 9x, IRIS и им подобных. Но пользователи могут помочь проекту, добавив в базы результаты собственных экспериментов с программой.

NetScanTools.

Бесплатная утилита NetScanTools Basic появилась еще в 2009 году и с тех пор претерпела лишь незначительные изменения. Умеет она немного: с ее помощью можно получить данные Whois (а без нее, наверное, никак), выполнить traceroute (для тех, кто не умеет пользоваться командной строкой), отправить DNS-запросы и попинговать удаленные хосты и так, и сяк, и вприсядку, то есть управляя параметрами пинга. Негусто.

А вот коммерческая версия Pro может похвастаться более широкими возможностями. Она умеет работать с различными протоколами, включая ARP и SNMP, перехватывать и анализировать пакеты, получать DNS-записи для заданных IP-адресов, искать открытые TCP- и UDP-порты на удаленном хосте, определять поддерживаемые им версии SMB, искать устройства в сети, в том числе SMTP-серверы с открытыми релеями. В сети Active Directory NetScanTools может найти все расшаренные папки, даже скрытые. В составе софтины есть генератор пакетов TCP, UDP, ICMP, CDP, RAW, в котором можно менять различные параметры, благодаря чему NetScanTools легко и непринужденно превращается во флудер.

Как вычислить операционку на удаленном хосте

В целом можно сказать, что NetScanTools Pro довольно интересный проект, включающий инструментарий для активного и пассивного исследования сети. Только вот прайс в 249 долларов немного кусач, особенно если учесть, что вполне себе бесплатные NetworkMiner и Nmap обладают практически тем же набором базовых функций. Впрочем, с сайта разработчиков можно скачать 30-дневную триальную версию, которая поможет тебе решить, стоит ли искать кряк пачку баксов, или лучше воспользоваться фриварным софтом.

X probe.

Это линуксовая утилита, использующая активные методы фингерпринтинга на основе тех же методик и сценариев, что применяются в Nmap. Одна из наиболее интересных особенностей X probe — умение обнаруживать ханипоты (серверы-приманки, специально созданные для ловли доверчивых хакеров) и подозрительные узлы с измененными настройками стека TCP/IP.

С использованием заложенных в софтину алгоритмов нечеткой логики X probe позволяет обнаруживать сервисы, скрытые брандмауэром. Помимо определения ОС на удаленном хосте с использованием ICMP-запросов, в возможности программы входит сканирование TCP- и UDP-портов. К сожалению, последняя версия утилиты датирована 2014 годом и, похоже, с тех пор проект практически не развивается.

Ettercap.

Ettercap — это широко известный в узких кругах сниффер, часто используемый для атак типа MiTM. Работает он практически во всех линуксах, кроме OpenSuSe, а также на платформах UNIX/BSD, кроме Solaris. Говорят, особо могучие шаманы запускали Ettercap даже на macOS, но документального подтверждения этим слухам нет, ибо те, кому это удалось, погибли, лопнув от гордости.

Как и другие снифферы, этот умеет работать с протоколами Telnet, FTP, IMAP, SMB, LDAP и несколькими другими, но с Ettercap можно потрошить и шифрованный трафик, передаваемый по HTTPS и SSH. Несмотря на то что тулза создавалась с прицелом под MiTM, с ее помощью вполне можно идентифицировать удаленные операционные системы методом фингерпринтинга, наряду с такими рутинными процедурами, как определение IP, открытых портов, запущенных на исследуемом узле служб, типа адаптера и MAC-адреса сетевого интерфейса.

После установки и запуска Ettercap начинает сниффить трафик в сети и собирать результат в создаваемых программой профайлах, откуда его можно извлечь для анализа. Этот анализ позволяет установить, в частности, такие данные, как IP-адрес, имя и тип хоста, предположительная версия работающей там ОС, открытые поры и запущенные сервисы. Вполне достаточный стартовый набор для любого исследователя.

THC-Archive.

На гитхабе по адресу https://github.com/vanhauser-thc/THC-Archive/ лежит богатый архив утилит и сплоитов, которые могут стать отличным подспорьем для пентестера. Весь софт долго и кропотливо собирала команда единомышленников под названием The Hacker’s Choice, основанная аж в 1995 году и, судя по активности в Twitter, неплохо чувствующая себя по сей день.

Чуваки предлагают множество интересных проектов, но нас интересуют в основном тулзы из раздела https://github.com/vanhauser-thc/THC-Archive/tree/master/Tools. Тут, в частности, можно найти сканер Amap, позволяющий отследить сервисы, работающие на нестандартных портах.

Некоторые наивные сисадмины искренне надеются, что смогут защитить себя от атаки, если поднимут, например, FTP-сервер, SSH или Telnet на каком-нибудь нестандартном порте вместо привычного. Вот с такими админами и призван бороться Amap.

Обычные сканеры стучатся на стандартные порты, анализируют полученные отклики и, если они не соответствуют ожидаемому, обламываются. Amap вместо этого опрашивает весь диапазон портов и сверяет отклики со своей базой данных в поисках соответствия. Таким образом, сервис, работающий на каком-либо порте, идентифицируется по его характерным признакам, содержащимся в ответе.

Чтобы облегчить себе жизнь, можно использовать Amap совместно с любым другим сканером. Сканер определяет список открытых портов на интересующем нас хосте, а Amap потом прощупывает этот диапазон и выясняет, какие именно службы юзают эти порты и что полезного из этого может извлечь исследователь. На страничке The Hacker’s Choice можно скачать Amap как под винду, так и под Linux, представлены все версии утилиты, начиная с самых ранних.

Заключение

При проведении теста на проникновение важно знать о том, что сейчас за ОС стоит на компьютере жертвы. А если известно наличие дыр в защите компьютера, то задача по взлому упрощается до минимума.

 

Click to rate this post!
[Total: 0 Average: 0]

Leave a reply:

Your email address will not be published.