Нажмите "Enter", чтобы перейти к содержанию

P0F: Если нужно провести пентест или обнаружить вредоносную активность в сети — обсуждаем проект p0f / Хабр

Если нужно провести пентест или обнаружить вредоносную активность в сети — обсуждаем проект p0f / Хабр

Говорим о компактной утилите для сбора цифровых отпечатков. Её применяют для оценки безопасности ИТ-инфраструктуры. Обсудим возможности и альтернативы.

/ Unsplash.com / Lujia Zhang

Знай свое окружение

За последний год выросло число атак на критическую инфраструктуру и сети компаний — по некоторым оценкам, на целых 32%. В то же время специалисты по ИБ предупреждают, что под угрозой взлома находятся 93% корпоративных сетей. В таком контексте бизнес все чаще проводит оценку безопасности систем — так называемые пентесты.

Важная часть тестирования на проникновение — сбор данных о сети и инфраструктуре и операционных системах. Составить цифровой отпечаток (провести фингерпринтинг) можно несколькими способами — например, FIN-сканирование или исследование TCP-пакетов. Но большинство техник сводится к анализу подключения TCP/IP. 

Такой анализ как раз позволяет провести утилита p0f. Она определит тип ОС на хостах в сети, покажет наличие балансировщика нагрузки, прокси или NAT, а также зафиксирует серверы, которые подделывают заголовки вроде User-Agent и X-Mailer. Но её главная особенность — она действует в пассивном режиме и не генерирует дополнительный трафик.

Как это работает

Для анализа подключений p0f использует кастомные метрики. Среди них — данные заголовков IPv4 и IPv6, TCP-заголовки, особенности механизмов рукопожатия, содержимое нагрузок на уровне приложений.

Также для стека TCP/IP инструмент изучает отпечаток SYN-пакета со стороны клиента и ответы SYN+ACK от сервера. В этом случае учитывают такие факторы, как последовательность опций TCP, соотношение между размером сегмента и окна, а также десяток других особенностей подключения (в т. ч. нулевые и ненулевые значения).

Чтобы точно идентифицировать операционную систему, p0f сравнивает полученный цифровой отпечаток с данными во встроенной базе сигнатур. Она представляет собой обыкновенный текстовый файл p0f. fp.

/ Unsplash.com / Marl Clevenger

Сама по себе утилита достаточно старая, но её используют несколько проектов — например, дистрибутив для создания межсетевого экрана pfsense, анализатор портов fwknop, файрвол OpenBSD и даже коммерческие инструменты.

По отзывам, p0f может работать в условиях современной криптографии. Однако возраст все же сказывается — один из резидентов Hacker News говорит, что в работе утилиты встречаются ошибки. В целом это ожидаемо, так как её авторы прекратили поддержку. Хотя есть относительно свежая реализация p0f на Python — scapy-p0f. Что касается оригинала, то последнюю версию можно загрузить на официальном сайте.

Альтернативы

Задачи p0f может выполнять другая известная утилита nmap. Однако это инструмент активного фингерпринтинга, то есть он сам сканирует объекты в сети (порты и соответствующие им службы). Методы разнообразные — UDP, TCP, FTP-proxy, FIN, ACK, NULL-сканирование и другие.

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

О чем еще мы пишем в блоге VAS Experts:

  • Нужен ли NAT в мире IPv6

  • Гибридное шифрование с открытым ключом — теперь в формате RFC

  • Зачем заменять MikroTik на программный BRAS?

Debian — Подробная информация о пакете p0f в sid

в именах пакетовв описаниях пакетовв именах пакетов исходного кодав содержимом пакетоввсе параметры

[  stretch  ] [  buster  ] [  bullseye  ] [  bookworm  ] [  sid  ]

[ Источник: p0f  ]

Passive OS fingerprinting tool

p0f performs passive OS detection based on SYN packets. Unlike nmap and queso, p0f does recognition without sending any data. Additionally, it is able to determine the distance to the remote host, and can be used to determine the structure of a foreign or local network. When running on the gateway of a network it is able to gather huge amounts of data and provide useful statistics. On a user-end computer it could be used as powerful IDS add-on. p0f supports full tcpdump-style filtering expressions, and has an extensible and detailed fingerprinting database.

Теги: Пользовательский интерфейс: Командная строка, Сеть: Сканирование, Роль: Программа, Область: Утилита

Другие пакеты, относящиеся к p0f

  • зависимости
  • рекомендации
  • предложения
  • enhances
  • dep: libc6 (>= 2.14) [amd64]
    библиотека GNU C: динамически подключаемые библиотеки
    также виртуальный пакет, предоставляемый libc6-udeb
    dep: libc6 (>= 2. 16) [x32]
    dep: libc6 (>= 2.17) [arm64, ppc64el]
    dep: libc6 (>= 2.28) [armel, armhf, hppa, i386, m68k, mipsel]
    dep: libc6 (>= 2.31) [sh5]
    dep: libc6 (>= 2.34) [riscv64]
    dep: libc6 (>= 2.7) [mips64el, ppc64, s390x, sparc64]
  • dep: libc6.1 (>= 2.31) [ia64]
    библиотека GNU C: динамически подключаемые библиотеки
    также виртуальный пакет, предоставляемый libc6.1-udeb
    dep: libc6.1 (>= 2.7) [alpha]
  • dep: libpcap0.8 (>= 0.9.8)
    системный интерфейс для захвата пакетов из пользовательского пространства

Загрузка p0f

Также она даёт информацию о размере пакета и размере пакета в установленном состоянии.»>
Загрузить для всех доступных архитектур
АрхитектураВерсияРазмер пакетаВ установленном видеФайлы
alpha (неофициальный перенос)3.09b-386,0 Кб252,0 Кб [список файлов]
amd643.09b-379,1 Кб219,0 Кб [список файлов]
arm643.09b-373,9 Кб219,0 Кб [список файлов]
armel3.09b-382,5 Кб226,0 Кб [список файлов]
armhf3.09b-381,5 Кб190,0 Кб [список файлов]
hppa (неофициальный перенос)3.09b-3
80,7 Кб
225,0 Кб [список файлов]
i3863. 09b-379,5 Кб210,0 Кб [список файлов]
ia64 (неофициальный перенос)3.09b-394,1 Кб344,0 Кб [список файлов]
m68k (неофициальный перенос)3.09b-373,8 Кб210,0 Кб [список файлов]
mips64el3.09b-373,7 Кб226,0 Кб [список файлов]
mipsel3.09b-374,4 Кб213,0 Кб [список файлов]
ppc64 (неофициальный перенос)3.09b-378,7 Кб275,0 Кб [список файлов]
ppc64el3.09b-380,0 Кб275,0 Кб [список файлов]
riscv64 (неофициальный перенос)3.09b-3+b176,3 Кб200,0 Кб [список файлов]
s390x3. 09b-374,9 Кб223,0 Кб [список файлов]
sh5 (неофициальный перенос)3.09b-392,1 Кб215,0 Кб [список файлов]
sparc64 (неофициальный перенос)3.09b-374,3 Кб230,0 Кб [список файлов]
x32 (неофициальный перенос)3.09b-379,5 Кб198,0 Кб [список файлов]

p0f v3

p0f v3

Copyright (C) 2000-2014 Михал Залевски

Моя последняя книга, Практический судный день

, уже вышла. Пожалуйста, проверьте это!

Что это?

P0f — это инструмент, который использует массив сложного, чисто пассивного трафика. механизмы снятия отпечатков пальцев для идентификации игроков, стоящих за любым случайным TCP/IP сообщения (часто всего лишь один обычный SYN), не вмешиваясь в в любом случае. Версия 3 — это полностью переписанная исходная кодовая база, включающая значительные ряд улучшений в снятии отпечатков пальцев на сетевом уровне и добавление возможности рассуждать о полезной нагрузке на уровне приложения (например, HTTP).

Некоторые из возможностей p0f включают в себя:

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

  • Измерение времени безотказной работы системы и подключения к сети, расстояния (включая топология за NAT или пакетными фильтрами), языковые настройки пользователя и т. д.

  • Автоматическое обнаружение совместного использования соединения/NAT, балансировки нагрузки и настройки проксирования на уровне приложения.

  • Обнаружение клиентов и серверов, подделывающих декларативные заявления например X-Mailer или User-Agent .

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

Обычное использование p0f включает разведку во время тестов на проникновение; рутина мониторинг сети; обнаружение несанкционированных сетевых подключений в корпоративных среды; предоставление сигналов для инструментов предотвращения злоупотреблений; и разное судебная экспертиза.

Подробнее о его устройстве и работе можно прочитать в этот документ. В той или иной форме, более ранние версии p0f используются в самых разных проектах, включая пфсенс, Эттеркап, ПРАДС, амавид, милтер, постгрей, фвкноп, Сатори, брандмауэр OpenBSD и набор коммерческих инструментов.

Забавный факт: идея p0f восходит к 10 июня 2000 г. Сегодня, почти все приложения, выполняющие пассивное снятие отпечатков ОС, либо просто повторно используют p0f для проверок на уровне TCP (Ettercap, Disco, PRADS, Satori) или использовать низшие подходы, которые, например, не обращайте внимания на сложные отношения между размер окна и MTU (SinFP).

Что на выходе?

Фрагмент типичного вывода p0f может выглядеть так:

.-[ 1.2.3.4/1524 -> 4.3.2.1/80 (син.) ]- | | клиент = 1.2.3.4 | ОС = WindowsXP | расстояние = 8 | параметры = нет | raw_sig = 4:120+8:0:1452:65535,0:mss,nop,nop,sok:df,id+:0 | `—- .-[ 1.2.3.4/1524 -> 4.3.2.1/80 (мту) ]- | | клиент = 1.2.3.4 | ссылка = DSL | сырое_mtu = 1492 | `—- .-[ 1.2.3.4/1524 -> 4.3.2.1/80 (время безотказной работы)]- | | клиент = 1.2.3.4 | время безотказной работы = 0 дней 11 часов 16 минут (по модулю 198 дней) | raw_freq = 250,00 Гц | | `—- .-[ 1.2.3.4/1524 -> 4.3.2.1/80 (http-запрос)]- | | клиент = 1.2.3.4/1524 | приложение = Firefox 5.x или новее | язык = английский | параметры = нет | raw_sig = 1:Host,User-Agent,Accept=[text/html,application/xhtml+xml… | `—-

Можно мне?

Ага: нажмите здесь, чтобы загрузить текущую версию (3.09b), или здесь, чтобы просмотреть более старые выпуски, включая 2.0.x и 1.8.x.

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

мы начинаем с нуля, поэтому, особенно для первых нескольких выпусков, пожалуйста, обязательно отправляйте новые подписи и сообщайте об ошибках с особым рвением! я особенно увлекающийся:

  • TCP SYN («кто ко мне подключается?») подписи для различных систем, особенно для некоторых старых, более экзотических или более специализированных платформ, например виндовс 9x, NetBSD, IRIX, Playstation, Cisco IOS и т. д. Для этого вам просто нужно попытаться установить соединение с устройством, на котором работает p0f. Соединение не должно быть успешным.

  • Подписи TCP SYN+ACK («к кому я подключаюсь?»). Текущая база данных минимальна, поэтому приветствуется любой вклад. Чтобы собрать эти подписи, вы необходимо скомпилировать прилагаемый инструмент p0f-sendsyn , а затем использовать его для инициации подключения к открытому порту на удаленном хосте; видеть README для получения дополнительной информации.

  • Подписи HTTP-запросов — особенно для старых или более экзотических браузеров (например, MSIE5, мобильных устройств, игровых консолей), поисковых роботов, инструментов командной строки и библиотеки. Чтобы собрать подпись, вы можете запустить p0f на самой клиентской системе или на веб-сервере, с которым он общается.

  • Подписи ответов HTTP. P0f поставляется с минимальной базой данных (реальное покрытие есть только у Apache 2.x). Подписи лучше всего собирать за троих отдельные случаи: несколько минут случайного просмотра в современном браузере; запрос с завиток ; и еще один с wget .

Можно посмотреть в действии?

У меня была настроена демонстрация здесь, но теперь, когда мой сервер находится за балансировщиком нагрузки, он больше не работает — извините.

Контакт

Пожалуйста, присылайте вопросы, комментарии, исправления, подписи и шоколад на . Вы также можете следуй за мной на Mastodon. Чтобы узнать о других функциях, посетите мою домашнюю страницу.

Криминалистический инструмент для пассивного анализа трафика OS Fingerprinting

Поиск

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

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

Обучение: компьютерная криминалистика и расследование киберпреступлений: использование инструментов с открытым исходным кодом

Некоторые возможности p0f Forensics Tool включают:
  • Масштабируемая и чрезвычайно быстрая идентификация операционной системы и программного обеспечения на обеих конечных точках стандартного TCP-соединения — особенно в условиях, когда зонды NMap заблокированы, слишком медленны, ненадежны, или просто включил бы сигнализацию.
  • Измерение времени безотказной работы системы и подключения к сети, расстояния (включая топологию за NAT или пакетными фильтрами), языковых предпочтений пользователя и т. д.
  • Автоматическое определение общего доступа к соединению/NAT, балансировки нагрузки и настроек прокси на уровне приложений.
  • Обнаружение клиентов и серверов, которые подделывают декларативные заявления, такие как X-Mailer или User-Agent (Forensics Tool)

Обычно p0f используется для разведки во время тестов на проникновение; рутинный мониторинг сети; обнаружение несанкционированных сетевых подключений в корпоративной среде; предоставление сигналов для инструментов предотвращения злоупотреблений; и разная криминалистика .

Шаг 1:

Запустите Kali и откройте p0f 3.0 в списке инструментов Kali.

Kali Linux -> Криминалистика -> Сетевая криминалистика -> p0f.

Другой способ открыть инструмент: введите p0f -i eth0 -l

. Шаг 3:

(-i eth0)

неразборчивый режим (-p)

сохранение результатов в файл (-o /tmp/p0f.log) :

Шаг 4:

:www. google.com). Вы увидите живое активное соединение в окне p0f Forensics Tool.

Как только соединение будет установлено, ваш клиент свяжется с сервером. На изображении ниже p0f определяет IP-адрес. Мой клиент IP (10.0.2.15) Установлено соединение с целевым веб-сервером (52.26.140.68) с номером порта 443.

Здесь мы получили ценную информацию об отпечатках ОС. Клиент использовал машину Linux.

Мы можем протестировать это с различными клиентскими ОС.

Шаг 5 :

p0f for Forensics

Окончательный тест инструмента p0f Forensics Tool выполняется на нашем интерфейсе и выполняет криминалистическую экспертизу скомпрометированной системы или системы, подвергшейся атаке.

Моя система kali была подключена к неизвестному IP (52.26.140.68) с номером порта 443.

На приведенном выше снимке экрана он идентифицируется как серверная ОС, работающая под управлением Windows, и на расстоянии 0 переходов.

Ваш комментарий будет первым

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *