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

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

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

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

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

Категории

Все категории
Loading categories
passer — Пассивный определитель сервисов — это сниффер на Python, который идентифицирует серверы, клиентов, имена и многое другое | Kitploit
Инструменты/GitHubGitHub/activecm/passer
Оборонительные ИнструментыСниффинг и анализ пакетовРазведкаКартирование сетиСетевая криминалистикаСбор информацииСетевая безопасностьПодмена Цифрового ОтпечаткаАнализ DNS
GitHubactivecm/passer

passer

Пассивный определитель сервисов — это сниффер на Python, который идентифицирует серверы, клиентов, имена и многое другое

26653168 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

passer

Пассивный локатор сервисов, python-сниффер, который определяет серверы, клиентов, имена и многое другое

Введение

Краткие заметки для начала работы с passer, пассивным сниффером сервисов. Вы несёте ответственность за получение разрешения на сниффинг.

Passer может работать с живым захватом пакетов или из pcap-файла (параметр командной строки, см. примеры ниже). Он сообщает о живых сервисах и клиентах, ethernet-картах в локальной сети, DNS-записях, операционных системах и маршрутизаторах — и всё это пассивно!

Если вы используете Windows или ваши пути к вспомогательным файлам не совпадают с моими по какой-то другой причине, сообщите мне, где они находятся, и я с удовольствием обновлю скрипт.

Установка

Требования

  • Python >=2.4 и <3.0
  • Библиотеки Python (см. requirements.txt)
    • ipaddress
    • pytz
    • scapy>=2.4.0

Необязательно (но рекомендуется)

  • nmap
    • для производителей Ethernet и строк сервисов
  • ettercap, wireshark и/или arp-scan
    • для большего числа производителей Ethernet
  • p0f версии 2
    • для файла отпечатков ОС

Ubuntu/Debian и дистрибутивы на основе deb

# Install system dependencies
sudo apt-get install arp-scan ettercap-text-only nmap wireshark 
# Install python dependencies
sudo pip install -r requirements.txt
# Prevent Scapy from performing DNS lookups
echo 'noenum = [ Resolve(), TCP_SERVICES, UDP_SERVICES ]' >> ~/.scapy_startup.py

Redhat/CentOS/Fedora и дистрибутивы на основе rpm

# Install system dependencies
sudo yum install arp-scan ettercap nmap wireshark
# Install python dependencies
sudo pip install -r requirements.txt
# Prevent Scapy from performing DNS lookups
echo 'noenum = [ Resolve(), TCP_SERVICES, UDP_SERVICES ]' >> ~/.scapy_startup.py

Windows (неполная)

Чтобы установить scapy, см. руководство по установке.

Docker

Passer также поставляется в виде Docker-образа. Если у вас ещё нет Docker, вот быстрый и простой способ установить его в Linux:

curl -fsSL https://get.docker.com | sh -

В остальных случаях следуйте инструкциям по установке для вашей операционной системы.

Для большинства случаев мы рекомендуем скрипт passer, включённый в этот репозиторий. Этот скрипт обрабатывает все специфичные для Docker

wget https://raw.githubusercontent.com/activecm/passer/master/passer
chmod +x passer

Затем вы можете использовать этот скрипт так же, как в любом из примеров ниже. Например:

./passer -i eth0
# The equivalent without using the included script would be:
docker run --rm --name=passer -i --init --net=host --cap-add=net_raw activecm/passer -i eth0

Чтобы остановить passer, выполните:

docker stop passer

Примеры

Перехват трафика в реальном времени от имени root

/path/to/passer.py

Перехватывает трафик со всех сетевых интерфейсов и выводит все строки в вашу консоль.

Перехват в реальном времени от имени пользователя без прав root

sudo /path/to/passer.py

или

su - -c '/path/to/passer.py'

Перехват трафика в реальном времени от имени root, но только с одного интерфейса

/path/to/passer.py -i IfaceName

Выполнение route должно показать некоторые активные интерфейсы, которые вы можете использовать.

❕ -i несовместим с -r.

Чтение пакетов из pcap-файла; права root не требуются

/path/to/passer.py -r /path/to/packets.pcap

❕ -r несовместим с -i.

Приём необработанных данных pcap через stdin

cat packetdata.pcap | ./passer.py -r /proc/self/fd/0
zcat packetdata.pcap.gz | ./passer.py -r /proc/self/fd/0
bzcat packetdata.pcap.bz2 | ./passer.py -r /proc/self/fd/0
tcpdump -i eth0 -qtnp -w - | ./passer.py -r /proc/self/fd/0
# etc...

Это позволяет захватывать пакеты любым инструментом, который умеет сохранять пакеты в файл pcap, а затем обрабатывать их с помощью passer в другой системе.

Сохранение строк вывода в текстовый файл для последующей обработки

/path/to/passer.py -l /path/to/networkinfo.txt

Подавление предупреждений и прочей отладочной информации

/path/to/passer.py 2>/dev/null

Показать экран справки

/path/to/passer.py -h

Сохранение «необычных»/необработанных пакетов в файл pcap

/path/to/passer.py -u /path/to/oddpackets.pcap

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

Применение BPF-фильтра для ограничения обрабатываемых пакетов

Это должно быть так же просто, как заключить BPF-фильтр в одинарные кавычки в конце командной строки. Начиная с версии 1.16, базовая библиотека, по-видимому, не использует успешно переданный фильтр, но есть обходной путь. Используйте tcpdump для фильтрации и передайте сокращённый набор пакетов в passer через stdin, как показано выше:

tcpdump -r packets.pcap -w - 'icmp or arp' | ./passer.py -r /proc/self/fd/0

См. раздел «Примеры фильтров» ниже, где приведены некоторые предложения по фильтрам, которые можно использовать как при предварительном захвате пакетов, так и при сниффинге в реальном времени.

Устранение неполадок

socket.error: (1, 'Operation not permitted')

Скорее всего, вы пытаетесь прослушивать трафик в реальном времени как пользователь без прав root. Либо войдите как root, используйте sudo/su, либо работайте с pcap-файлами.

Если passer падает или не работает в вашей системе, пожалуйста, создайте issue, указав сообщение об ошибке, если оно есть, и любые сведения о вашей операционной системе.

Формат вывода

Вывод Passer направляется в stdout, а если вы укажете параметр командной строки -l /path/to/logfile, то и в этот файл. Вот формат:

TypeIPAddrProtoStateOptional description (may be empty)
'IP'IPaddr'IP'dead or livep0f OS description
'MA'IPaddr'Ethernet'MacAddrManufDescription
'TC'IPaddr'TCP_'Portclosed or openclient description
'TS'IPaddr'TCP_'Portclosed or listeningserver description
'UC'IPaddr'UDP_'Portopen or closedudp client port description
'US'IPaddr'UDP_'Portopen or closedudp server port description
'DN'IPaddr'A' or 'PTR'hostnamepossible extra info
'RO'IPaddr'TTLEx'routerpossible extra info
  • Столбец 1: двухбуквенный код типа записи
  • Столбец 2: IP-адрес, который характеризуется.
  • Столбец 3: задействованный протокол или «откуда мы это знаем?»
  • Столбец 4: состояние описываемого объекта
  • Столбец 5: дополнительная информация об объекте

Строки разделены запятыми для удобной загрузки в электронную таблицу или импорта в SQL. Ни одно из полей не должно содержать запятых. Пример выходного файла находится по адресу http://www.stearns.org/passer/passer-sample-log.txt .

Вот несколько примеров того, как извлечь нужные данные из этих строк:

  1. Удалить повторяющиеся строки:
cat /var/tmp/passer-log | sort -u | less
  1. Удалите дублирующиеся строки и сгруппируйте все записи для данного IP вместе:
cat /var/tmp/passer-log | sort -t, -k2 -u | less
  1. Извлеките только записи DNS и Router:
cat /var/tmp/passer-log | sort -u | egrep '(^DN|^RO)' | less
  1. Просмотр всех записей для конкретного IP-адреса:
cat /var/tmp/passer-log | sort -u | grep ',192\.168\.0\.17,' | less
  1. Просмотр всех записей для конкретной сети:
cat /var/tmp/passer-log | sort -u | grep ',192\.168\.' | less
Скачать инструмент