Первая стадия пентеста — это, как известно, разведка. Только установив, какая система работает на удаленном хосте, можно начинать искать в ней лазейки. Из этой статьи ты узнаешь про семь средств, которые помогают на этом этапе, и заодно увидишь, как именно они вычисляют операционку. Примерно в тот же исторический период, когда обезьяна слезла с дерева и зачем-то решила стать человеком, она научилась использовать орудия труда. С тех пор так и повелось: каждая мартышка добывает себе пропитание с помощью собственного инструментария, что выгодно отличает ее от прочих представителей фауны. А одним из самых богатых арсеналов сподручных инструментов среди приматов обладают, безусловно, пентестеры и хакеры. Оно и не удивительно: изучать удаленные системы и эксплуатировать обнаруженные в них уязвимости голыми руками — все равно, что пытаться напугать ежа голым задором и неуемным энтузиазмом. То есть и непрактично, и по большому счету бесполезно. Причем даже ежу понятно, что первый и самый важный этап исследования любой системы — это разведка и сбор информации. На нем и заострим наше внимание. Пара умных слов Опытные пентестеры, хакеры и считающие себя таковыми могут смело пропустить пару молочных коктейлей и этот раздел, для остальных же проведем небольшой теоретический экскурс. Очевидно, что на начальном этапе разведки удаленная система представляется для нас «черным ящиком», и в лучшем случае мы знаем только IP-адрес. Как минимум необходимо выяснить, какие на исследуемом хосте открыты порты, под управлением какой операционной системы он работает, какой софт там установлен и способен взаимодействовать с сетью. А уже затем, собрав необходимую информацию, можно искать уязвимости и думать, как обратить их во благо человечества. В случае с обычным компом или ноутбуком определить операционную систему проще всего. Если при взгляде на экран слегка замутило — значит, там стоит винда, захотелось что-нибудь собрать из исходников — однозначно линукс. С удаленным хостом такой фокус не прокатит, поэтому мы можем оценивать лишь косвенные признаки. Определить, какая операционная система работает на хосте, можно пассивными и активными методами. В первом случае обычно применяется сниффинг с помощью тулз вроде Wireshark и последующий анализ трафика. Во втором случае используется принцип паттернов: каждая ОС имеет характерный набор открытых портов, на которые можно постучаться и оценить их доступность. А потом, глядя на эту живописную картину, сделать соответствующие выводы. И в том и в другом случае мы исследуем подобие отпечатков пальцев операционной системы, поэтому совокупность методов так и принято называть — fingerprinting. Как правило, все методы пассивного анализа трафика сводятся к изучению стека TCP/IP на удаленной машине. Заголовки пакетов содержат поля, значения которых характерны для строго определенных ОС. Например, время жизни пакета TTL (Time To Live), равное 64, чаще всего встречается в Linux и FreeBSD. Если в заголовке не установлен флаг фрагментации (DF, Don’t Fragment), это намекает, что мы имеем дело с OpenBSD. Другими косвенными признаками служат размер окна (window size), значение максимального размера сегмента (maximum segment size, MSS), window scaling value, состояние флага sackOK. Методом исключения мы можем вычислить ОС, которая крутится на интересующем нас хосте. А облегчат это дело утилиты, о которых и пойдет речь. Nmap Сайт: nmap.org Платформа: GNU/Linux, macOS, Windows (x86) Это очень популярный кросс-платформенный инструмент с богатой историей и широким арсеналом функциональных возможностей. Он умеет многое и помимо фингерпринтинга, но нас интересуют в первую очередь его «разведывательные возможности». Актуальная версия Nmap 7.80 обладает интуитивно понятным графическим интерфейсом, но для олдфагов предусмотрен режим работы из командной строки. В этом случае можно использовать команду nmap -O -PN , где URL — адрес исследуемого сайт...URL='http://nmap.org/']на сайте разработчиков. Отчет о сканировании сайта утилитой Nmap Диагноз об установленной на хосте операционной системе утилита выдает весьма приблизительный, но вероятность того или иного варианта может достигать 90% и даже больше. В принципе, этого вполне достаточно, чтобы понять, в каком направлении копать дальше. Кроме этого, программа любезно показывает сведения о версии работающего там сервера, об открытых портах, информацию, полученную в результате обработки DNS-запросов, IP- и IPv6-адреса, данные Classless inter-domain routing (CIDR). Софтина может выполнить обратный просмотр DNS (reverse DNS lookup), а также выводит большой объем другой полезной инфы. В Nmap предусмотрено несколько сценариев сканирования, выбор которых зависит от целей исследователя. Принципы работы программы подробно описаны в документации на официальном сайте. Утилита и впрямь очень мощная: она позволяет даже обходить файрволы, выполнять DoS и другие виды атак. Одним словом, полезный инструмент, если знаешь, как с ним обращаться. NetworkMiner Сайт: https://www.netresec.com/index.ashx?page=Networkminer Платформа: GNU/Linux, Windows 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 Сайт: https://lcamtuf.coredump.cx/p0f3/ Платформа: GNU/Linux, Windows, macOS Это не просто довольно известный сниффер, а программа, объединяющая целый комплекс механизмов для анализа перехваченных пакетов и фингерпринтинга. При этом определение типа ОС на удаленном узле (даже в случаях, когда Nmap с этой задачей не справился, например из-за использования в сети брандмауэра) заявляется разработчиками в качестве одной из основных функций. Имеется несколько режимов работы программы, которые можно использовать в зависимости от конфигурации сети и стоящей перед исследователем задачи: режим SYN, подразумевающий исследование входящих соединений; режим SYN+ACK — исследование исходящих подключений; режим RST+ подразумевает исследование трафика для узла, находящегося за файрволом, который отклоняет подключения; режим MiTM — исследование соединения между узлами, трафик которых ты можешь сниффить без вмешательства с твоей стороны. * p0f v3 ** Site: ** https://lcamtuf.coredump.cx/p0f3/ Platform: ** GNU / Linux, Windows, macOS This is not just a fairly well-known sniffer, but a program that combines a whole set of mechanisms for analyzing intercepted packets and fingerprinting. At the same time, determining the type of OS on a remote host (even in cases where Nmap did not cope with this task, for example, due to the use of a firewall on the network) is declared by the developers as one of the main functions. Кроме того, p0f умеет определять, работает ли в сети NAT, шейперы или файрволы, отслеживать трассировку пакета до заданного узла и вычислять его аптайм. При этом тулза не генерирует никаких собственных запросов и прочего подозрительного трафика, что само по себе неоспоримое преимущество, если исследователь желает оставаться в сети незамеченным. Версия p0f v3 была переписана разработчиками с нуля, поэтому «база отпечатков» там не самая полная. Если верить официальному сайту, программе не хватает данных о старых версиях операционных систем вроде Windows 9x, IRIS и им подобных. Но пользователи могут помочь проекту, добавив в базы результаты собственных экспериментов с программой. NetScanTools Сайт: netscantools.com Платформа: Windows Бесплатная утилита 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 — интересный инструмент с кучей функций. Жалко, платный В целом можно сказать, что NetScanTools Pro довольно интересный проект, включающий инструментарий для активного и пассивного исследования сети. Только вот прайс в 249 долларов немного кусач, особенно если учесть, что вполне себе бесплатные NetworkMiner и Nmap обладают практически тем же набором базовых функций. Впрочем, с сайта разработчиков можно скачать 30-дневную триальную версию, которая поможет тебе решить, стоит ли искать кряк пачку баксов, или лучше воспользоваться фриварным софтом. X probe Сайт: https://sourceforge.net/projects/xprobe/ Платформа: GNU/Linux Это линуксовая утилита, использующая активные методы фингерпринтинга на основе тех же методик и сценариев, что применяются в Nmap. Одна из наиболее интересных особенностей X probe — умение обнаруживать ханипоты (серверы-приманки, специально созданные для ловли доверчивых хакеров) и подозрительные узлы с измененными настройками стека TCP/IP. С использованием заложенных в софтину алгоритмов нечеткой логики X probe позволяет обнаруживать сервисы, скрытые брандмауэром. Помимо определения ОС на удаленном хосте с использованием ICMP-запросов, в возможности программы входит сканирование TCP- и UDP-портов. К сожалению, последняя версия утилиты датирована 2014 годом и, похоже, с тех пор проект практически не развивается. Ettercap Сайт: https://www.ettercap-project.org/ Платформа: GNU/Linux 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, представлены все версии утилиты, начиная с самых ранних. https://s2.piratebuhta.info