Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pstf2 — Фреймворк идентификации пассивных инструментов безопасности | Kitploit
Инструменты/GitHubGitHub/g4lb1t/pstf2
Инструменты фишингаОбход IDS/IPSВеб-безопасностьОбучение и ОбразованиеRed TeamingПодмена Цифрового Отпечатка
GitHubg4lb1t/pstf2

pstf2

Фреймворк идентификации пассивных инструментов безопасности

Репозиторий
74965 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

pstf^2

Фреймворк для пассивного определения инструментов безопасности

Хотели ли вы когда-нибудь простой, легкий и скрытый способ обхода множества классов продуктов безопасности? pstf^2 (произносится pstf-квадрат) — это реализация HTTP-сервера, способного на пассивное снятие отпечатков браузера — и это может быть именно то, что вы ищете.

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

Этот инструмент был представлен на BlackHat EU 2020: https://www.blackhat.com/eu-20/arsenal/schedule/#pstf2-link-scanners-evasion-made-easy-21763

Подробности исследования доступны в этом сообщении блога: https://blogs.akamai.com/sitr/2020/12/evading-link-scanning-security-services-with-passive-fingerprinting.html

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

Настоящий вопрос — как работают сканеры ссылок? Проверка вредоносной ссылки — это действие, включающее отправку HTTP GET-запроса веб-клиентом. Каждый поставщик использует свою собственную реализацию — большинство пытается в той или иной степени имитировать действия реального пользователя. pstf^2 — это простой HTTP-сервер на Python, который применяет известные тактики обнаружения ботов для определения, является ли входящий запрос от автоматизированного инструмента безопасности. Оператор сервера может настраивать ответы, например: если обнаружен сканер — перенаправлять на Google, иначе отправлять вредоносный контент.

Ниже перечислены основные тактики, реализованные в pstf^2:

Прикладной уровень

Устаревшие User-Agent

Инструменты безопасности пытаются маскироваться под легитимных клиентов, выдавая себя за реальные браузеры, но зачастую это не так. Часто можно встретить инструменты, которые неправильно поддерживаются и используют фальшивые заголовки user-agent для версий браузеров десятилетней давности. pstf^2 позволяет установить минимальный порог для того, что вы считаете реальной, не устаревшей версией.

Общие HTTP-аномалии

Существует множество типов странных реализаций, которые способен обнаружить инструмент. Вот несколько примеров, представленных в докладе на BlackHat:

  • Оставленный заголовок via:, раскрывающий природу виртуального хоста, используемого для песочницы.
  • Заголовок referer:, указывающий, что ссылка была открыта из Google, например referer: google.com/search?q=specific.site.com. В протестированных сценариях это не имело смысла, так как этот продукт сканирует электронные письма, и когда кто-то нажимает на ссылку в письме (не из веб-интерфейса), этот заголовок отсутствует.

Уровень канала, сети и транспорта

Корреляция

Различные параметры TCP могут указывать на конкретную версию ОС или конкретную сборку. Некоторые клиенты подделывают заголовок user-agent, но работают на ОС, отличной от заявленной.

Значения MTU

Клиенты, размещенные в сетях определенных облачных провайдеров, имеют MTU, отличный от стандартного значения в 1500 байт.

ASN

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

DNS PTR-записи

В редких случаях IP-адрес клиента имеет PTR-запись, связывающую его с URL, относящимся к поставщику безопасности.

Настройка pstf^2

Использование Docker

При условии, что Docker уже установлен, все просто:

root@kitploit:~
docker-compose up 

Ручное развертывание

Если вы хотите избежать Docker, выполните следующие шаги.

Установка зависимостей Python

Выполните:

root@kitploit:~
pip install requirements.txt

Это установит все необходимые внешние модули Python.

Получение p0f

Перед развертыванием pstf^2 скачайте и установите p0f. В настоящее время он доступен по адресу:

https://lcamtuf.coredump.cx/p0f3/

Теперь правильно настройте lib/servers/server_config.yml, указав правильный путь, например:

root@kitploit:~
p0f_config:
  # как минимум измените имя пользователя, не забудьте изменить в обоих путях
  p0f_bin_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f'
  p0f_fp_path: '/Users/$your_user_name/$more_folders/web_fp/p0f-3.09b/p0f.fp'
  iface: 'lo0'
  p0f_named_socket: '/tmp/p0f_socket'

Также убедитесь, что iface — это тот же интерфейс, на котором работает ваш Python HTTP-сервер. В приведенном примере это интерфейс loopback.

Запуск pstf^2

После выполнения требований выполните:

root@kitploit:~
python driver.py

Вы можете использовать любые из следующих флагов:

root@kitploit:~
  --p0f_bin_path P0F_BIN_PATH
  --p0f_fp_path P0F_FP_PATH
  --p0f_iface P0F_IFACE

Все они используются для настройки параметров, связанных с p0f: сам бинарник, файл отпечатков и интерфейс, который по умолчанию равен eth0.

Вы должны увидеть вывод, похожий на следующий:

root@kitploit:~
2020-04-15 17:37:06,896 - pstf2_logger - INFO - Starting p0f...
2020-04-15 17:37:06,896 - pstf2_logger - INFO - Running command:
	/Users/gbitensk/work/web_fp/p0f-3.09b/p0f -i lo0 -s /tmp/p0f_socket -f /Users/gbitensk/work/web_fp/p0f-3.09b/p0f.fp
2020-04-15 17:37:06,898 - pstf2_logger - INFO - p0f started!
2020-04-15 17:37:06,898 - pstf2_logger - INFO - Starting HTTP server...
2020-04-15 17:37:06,898 - pstf2_logger - INFO - HTTP server started!
2020-04-15 17:37:06,899 - pstf2_logger - INFO - If you wish to terminate the server press CTRL+C

Завершите сервер нажатием Ctrl+C, это остановит и HTTP, и p0f. Вы должны увидеть что-то похожее:

root@kitploit:~
2020-04-15 17:37:48,263 - pstf2_logger - INFO - HTTP server stopped!
2020-04-15 17:37:48,263 - pstf2_logger - INFO - Killing p0f...
2020-04-15 17:37:48,263 - pstf2_logger - INFO - p0f killed!
2020-04-15 17:37:48,263 - pstf2_logger - INFO - exiting...

Обратите внимание, что настройка DNS-записи, указывающей URL на ваш сервер, выходит за рамки pstf^2 и выполняется на ваш страх и риск.

Управление полезной нагрузкой

pstf^2 имеет полезные нагрузки по умолчанию, которые определены в server_config.yml и могут быть легко настроены.

Безвредный ответ

Есть два режима, переключаемые изменением переменной rickroll_mode на YES или NO. Если она включена, инструмент безопасности будет перенаправлен на страницу YouTube со знаменитым рикроллингом, в противном случае будет выдана строка, определенная в том же YAML-файле.

Вредоносный ответ

По умолчанию "вредоносный" ответ был установлен на стандартную тестовую строку EICAR.

Почему pstf^2 является общедоступным?

Я решил опубликовать этот инструмент как проект с открытым исходным кодом, потому что:

  • Вредоносные ссылки используются злоумышленниками ежедневно в больших масштабах.
  • Инструменты безопасности недостаточно хороши, некоторые методы, продемонстрированные pstf^2, уже используются в реальных атаках.

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

Особая благодарность

@Den1al за советы при создании этого инструмента в частности, правильное написание Python в целом, а также за помощь в создании Docker-образа.

Скачать инструмент