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

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

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

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

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

Категории

Все категории
Loading categories
sharker — Простой, надёжный и достаточно быстрый анализатор сетевых захватов. | Kitploit
Инструменты/GitHubGitHub/synacktiv/sharker
Сниффинг и анализ пакетовВзлом паролейСбор информацииВеб-безопасностьСетевая безопасностьЦифровая криминалистика
GitHubsynacktiv/sharker

sharker

Простой, надёжный и достаточно быстрый анализатор сетевых захватов.

Репозиторий
3313 месяцев назадПроверено Kitploit

Популярное

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

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

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

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

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

Sharker: где заканчивается Wireshark, начинаем мы

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

Ключевые особенности

  • Расширяемая фильтрация: Создавайте фильтры на Python для извлечения любых данных из сетевых пакетов.
  • Мощный движок фильтрации: Выборочно включайте или отключайте фильтры и категории фильтров для точной настройки и ускорения анализа.
  • Несколько источников входных данных: Анализируйте файлы .pcap, каталоги с захватами или даже живой сетевой трафик с интерфейса.
  • Гибкий вывод: Сохраняйте результаты в организованные текстовые файлы, выводите в консоль или и то и другое.

Требования

  • tshark: Необходим консольный спутник Wireshark. Обычно его можно установить через системный менеджер пакетов (например, apt-get install tshark, brew install wireshark).
  • Python 3
  • Библиотеки Python: Необходимые библиотеки перечислены в requirements.txt и могут быть установлены с помощью pip/pipx.

Установка

Вы можете установить Sharker, используя pipx (рекомендуется) или стандартное окружение pip и venv.

Использование pipx (рекомендуется)

root@kitploit:~
# Установка из этого репозитория
pipx install git+https://github.com/synacktiv/sharker.git

# Проверка установки
sharker -h

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

root@kitploit:~
# Клонирование репозитория
git clone https://github.com/synacktiv/sharker.git
cd sharker

# Создание и активация виртуального окружения
python3 -m venv venv
source venv/bin/activate

# Установка Sharker
pip install .

# Проверка установки
sharker -h

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

Базовый синтаксис Sharker:

root@kitploit:~
sharker [OPTIONS] [PCAP_FILE(s)]

Основные параметры

Главные параметры

Параметры фильтрации

Примеры использования

1. Анализ одного PCAP-файла и сохранение результатов:

root@kitploit:~
sharker my_capture.pcap

Будут запущены все фильтры, кроме тех, что в категории heavy, и вывод сохранён в каталог sharker_out/. Фильтры из категории creds также будут выведены в stdout.

2. Применение всех фильтров и максимально быстрое выполнение:

root@kitploit:~
sharker -A -F my_captures.pcap

Будут применены все фильтры, и всё будет выведено в файлы; результаты не будут печататься в консоли.

3. Анализ каталога PCAP-файлов с упором на учётные данные:

root@kitploit:~
sharker -d /path/to/pcaps -c creds

Эта команда обрабатывает все PCAP-файлы в указанном каталоге, но запускает только фильтры из категории creds.

4. Захват живого трафика и вывод HTTP-информации в консоль:

root@kitploit:~
sudo sharker -i eth0 -c http -m console

Будет захвачен трафик с интерфейса eth0, запущены только фильтры категории http, и все результаты будут выведены прямо в терминал.

5. Список всех доступных фильтров:

root@kitploit:~
sharker -L

Вывод справки

Нажмите, чтобы увидеть полный вывод справки
root@kitploit:~
$ sharker -h
Usage: sharker [OPTIONS] [PCAP[ PCAP[ ...]]

  Sharker: A reasonably fast network protocol analysis tool with extensible
  filters.

Options:
  Input Source:
    -d, --pcap-dir DIR            Path to a directory containing PCAP files to
                                  parse.
    -i, --interface IFACE         Network interface to capture live data from
                                  (e.g., eth0, wlan0).
  Output Handling:                By default, everything is written to file,
                                  and only creds category is printed to
                                  console. For very large PCAPs, advised to
                                  disable console output or at least colors,
                                  since it slows down the parsing.
    -m, --output-mode [file|console|both|develop]
                                  Which output mode to enable.  [default:
                                  both]
    -u, --unique                  Output only unique results, will gradually
                                  take more and more RAM.
    -F, --fast                    Fastest configuration (do not affect filter
                                  selection).
  Output file mode:
    -o, --output-dir DIR          Output directory.
    -op, --output-prefix NAME     Prefix to use for the output files, defaults
                                  to the PCAP/interface name.
  Output console mode:
    -P                            Send all filters to console (default in
                                  console output mode).
    -C                            Do not use colors in console output, will
                                  speed up sharker when lot of stuff is
                                  printed.
    -pf FILT[,FILT[...]]          Send specific filters output to console.
    -xpf FILT[,FILT[...]]         Do not send specific filters to console.
    -pc CAT[,CAT[...]]            Send specific filter categories to console.
    -xpc CAT[,CAT[...]]           Do not send specific categories to console.
    -nwf FILT[,FILT[...]]         Do not write filters output to file.
    -nwc CAT[,CAT[...]]           Do not write filter categories to file.
  Filter Selection:
    -A, --all                     Enable all filters, will be slower.
    -f, --filters FILT[,FILT[...]]
                                  Only run specified filters.
    -nf, --not-filters FILT[,FILT[...]]
                                  Exclude specified filters.
    -c, --categories CAT[,CAT[...]]
                                  Only run specified categories of filters.
    -nc, --not-categories CAT[,CAT[...]]
                                  Exclude specified categories of filters.
  Filter Information:
    -l, --list-filters            List filters that would be active with
                                  current filtering options.
    -L, --list-all-filters        List all available filters.
    -Lc, --list-all-filter-categories
                                  List all available filter categories.
  Debugging:
    -v, --verbose                 Verbose mode.
  -h, --help                      Show this message and exit.

Система фильтров

Мощь Sharker обеспечивается его фильтрами, расположенными в каталоге sharker/filters/. Каждый фильтр — это класс Python, который определяет:

  • name: Уникальное имя фильтра.
  • description: Краткое описание того, что делает фильтр.
  • pcap_filter: Отображающий фильтр tshark для выбора релевантных пакетов для этого фильтра.
  • categories: Список категорий, к которым принадлежит фильтр (например, creds, dns, http). heavy можно использовать для фильтров, которые будут сопоставлять множество пакетов или выполнять медленные операции.
  • mandatory_selectors и optional_selectors: Ключи, которые нужно искать в JSON-представлении пакета, чтобы идентифицировать интересующие данные. Sharker будет использовать эти атрибуты для вывода данных, если в фильтре не определена функция parser.

По умолчанию Sharker запускает все фильтры, кроме тех, что в категории heavy. Вы можете настроить это поведение с помощью параметров -c, -nc, -f и -nf.

Нажмите, чтобы увидеть пример извлечения хэшей NTLM
root@kitploit:~
from .base import FilterConfigBase


class FilterConfig(FilterConfigBase):
    name = 'ntlmssp'
    description = 'Extract Net-NTLM hashes for cracking purposes'

    categories = [
        'creds',
        'windows'
    ]

    pcap_filter = 'gss-api || ntlmssp'

    mandatory_selectors = [
        'ntlmssp'
    ]

    def __init__(self, *args, **kwargs):
        self.challenges = {}
        super().__init__(*args, **kwargs)

    def parser(self, data):
        tcp_conn = data['tcp.stream'][0]
        msg_type = int(data['ntlmssp.messagetype'][0], 16) if 'ntlmssp.messagetype' in data else 0

        if msg_type == 1:
            # NTLM NEGOTIATE: nothing to do
            pass
        elif msg_type == 2:
            # NTLM CHALLENGE
            self.challenges[tcp_conn] = data['ntlmssp.ntlmserverchallenge'][0].replace(':', '')
        elif msg_type == 3:
            if tcp_conn not in self.challenges:
                self.log.error('Found an NTLM message type 3 (AUTH), but no type 2 (CHALLENGE) was received beforehand -> check in pcap if the challenge was not sent in an unsupported by tshark manner from the server, like in a Proxy-Authenticate HTTP header.')
                return 0

            ntresp = data['ntlmssp.auth.ntresponse'][0].replace(':', '')
            lmresp = data['ntlmssp.auth.lmresponse'][0].replace(':', '')
            user = data['ntlmssp.auth.username'][0]
            domain = data['ntlmssp.auth.domain'][0]
            workstation = data['ntlmssp.auth.hostname'][0]

            ntlm_hash = ''
            if len(ntresp) == 24 * 2:
                # NTLMv1 response
                if domain != '':
                    ntlm_hash = f'{user}::{domain}:{lmresp}:{ntresp}:{self.challenges[tcp_conn]}'
                else:
                    ntlm_hash = f'{user}::{workstation}:{lmresp}:{ntresp}:{self.challenges[tcp_conn]}'
            else:
                # NTLMv2 response
                if domain != '':
                    ntlm_hash = f'{user}::{domain}:{self.challenges[tcp_conn]}:{ntresp[:32]}:{ntresp[32:]}'
                else:
                    ntlm_hash = f'{user}::{workstation}:{self.challenges[tcp_conn]}:{ntresp[:32]}:{ntresp[32:]}'

            del self.challenges[tcp_conn]
            self.output(ntlm_hash)
            return 1

        return 0

Разработка

Если вы хотите внести вклад в Sharker или разрабатывать собственные фильтры, вы можете настроить окружение для разработки.

root@kitploit:~
# Клонирование репозитория
git clone https://github.com/synacktiv/sharker.git
cd sharker

# Создание и активация виртуального окружения
python3 -m venv venv
source venv/bin/activate

# Установка в режиме редактирования
pip install -e .

# Теперь вы можете запускать sharker, и ваши изменения будут сразу учитываться
sharker -h

Создание нового фильтра

  1. Создайте новый файл Python в каталоге sharker/filters/.
  2. В этом файле создайте класс, наследующий от FilterConfigBase (определён в sharker/filters/base.py).
  3. Определите требуемые атрибуты (name, description, pcap_filter и т.д.).
  4. Реализуйте метод parser() для извлечения нужных данных.
    • Вызовите метод self.output с данными для вывода.
  5. Sharker автоматически обнаружит и загрузит ваш новый фильтр.

Вдохновение и ссылки

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

  • PCredz
  • CredSLayer
  • Wireshark captures
Скачать инструмент
ПараметрОписание
-i, --interface <IFACE>Захват живого трафика с сетевого интерфейса (например, eth0).
-d, --pcap-dir <DIR>Анализ всех PCAP-файлов в каталоге.
-o, --output-dir <DIR>Указание каталога для выходных файлов (по умолчанию: ./sharker_out).
-m, --output-mode <MODE>Установка режима вывода: file, console, both или develop (по умолчанию: both).
-u, --uniqueВывод только уникальных результатов.
-F, --fastМаксимально быстрая конфигурация (не влияет на выбор фильтров).
-A, --allВключить все фильтры, будет медленнее.
ПараметрОписание
-c, --categories <CATS>Список категорий фильтров через запятую для выполнения (например, creds,http).
-nc, --not-categories <CATS>Список категорий фильтров через запятую для исключения (например, heavy). По умолчанию исключается heavy.
-f, --filters <FILTERS>Список конкретных фильтров через запятую для выполнения.
-nf, --not-filters <FILTERS>Список конкретных фильтров через запятую для исключения.
-L, --list-all-filtersПоказать список всех доступных фильтров и их описания.
-Lc, --list-all-filter-categoriesПоказать список всех доступных категорий фильтров.
-l, --list-filtersПоказать фильтры, которые будут активны с текущими параметрами командной строки.
-v, --verboseВключить подробное журналирование для отладки.
  • parser(): Функция, которая обрабатывает данные пакета и возвращает извлечённую информацию.