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

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

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

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

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

Категории

Все категории
Loading categories
jarm — Активный инструмент для снятия отпечатков TLS-серверов, который отправляет специально сформированные пакеты Client Hello для генерации уникальных хэшей JARM с целью идентификации конфигураций серверов, группировки инфраструктуры и обнаружения вредоносных серверов. | Kitploit
Инструменты/GitHubGitHub/salesforce/jarm
РазведкаСбор информацииСетевая безопасностьРазведка угроз
GitHubsalesforce/jarm

jarm

Активный инструмент для снятия отпечатков TLS-серверов, который отправляет специально сформированные пакеты Client Hello для генерации уникальных хэшей JARM с целью идентификации конфигураций серверов, группировки инфраструктуры и обнаружения вредоносных серверов.

Репозиторий
1.3k1517 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

JARM

Пожалуйста, прочитайте первоначальную статью в блоге JARM для получения дополнительной информации.

JARM — это активный инструмент для снятия отпечатков серверов Transport Layer Security (TLS).

Отпечатки JARM можно использовать для:

  • Быстрой проверки того, что все серверы в группе имеют одинаковую конфигурацию TLS.
  • Группировки различных серверов в интернете по конфигурации, например, для определения, что сервер принадлежит Google, Salesforce или Apple.
  • Идентификации стандартных приложений или инфраструктуры.
  • Выявления инфраструктуры управления и контроля вредоносных программ и других вредоносных серверов в интернете.

Поддержка JARM была добавлена или добавляется в:
SecurityTrails
Shodan
BinaryEdge
RiskIQ
Palo Alto Networks
Censys
360

Run JARM

python3 jarm.py [-h] [-i INPUT] [-p PORT] [-v] [-V] [-o OUTPUT] [-j] [-P PROXY] [domain/IP]
Пример:
% python3 jarm.py www.salesforce.com
Domain: www.salesforce.com
Resolved IP: 23.50.225.123
JARM: 2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5

Для использования с Python 2 потребуется модуль ipaddress:

pip install -r requirements.txt

Пакетный запуск JARM на большом списке с высокой скоростью

./jarm.sh <list> <output_file>
Пример:
% ./jarm.sh alexa500.txt jarm_alexa_500.csv

Пример вывода

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

Прежде чем изучать, как работает JARM, важно понять, как работает TLS. TLS и его предшественник SSL используются для шифрования связи как в распространенных приложениях, например, интернет-браузерах, для защиты ваших данных, так и в вредоносном ПО, чтобы оно могло скрыться в общем шуме. Для установления сеанса TLS клиент отправляет сообщение TLS Client Hello после TCP-рукопожатия из трех шагов. Этот пакет и способ его генерации зависят от пакетов и методов, используемых при создании клиентского приложения. Сервер, если он принимает TLS-соединения, ответит пакетом TLS Server Hello.

Серверы TLS формируют свой пакет Server Hello на основе деталей, полученных в пакете TLS Client Hello. Способ формирования Server Hello для любого заданного Client Hello может варьироваться в зависимости от того, как было создано приложение или сервер, включая:

  • Операционная система
  • Версия операционной системы
  • Используемые библиотеки
  • Версии используемых библиотек
  • Порядок вызова библиотек
  • Пользовательская конфигурация

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

JARM работает путем активной отправки 10 пакетов TLS Client Hello целевому TLS-серверу и захвата определенных атрибутов ответов TLS Server Hello. Затем агрегированные ответы сервера хешируются определенным образом для получения отпечатка JARM.

Это не первый раз, когда мы работаем с TLS-отпечатками. В 2017 году мы разработали JA3/S — пассивный метод снятия отпечатков TLS-клиентов/серверов, который сейчас используется в большинстве инструментов сетевой безопасности. Но в то время как JA3/S является пассивным, снимая отпечатки клиентов и серверов путем прослушивания сетевого трафика, JARM — это активный сканер отпечатков серверов. Вы можете узнать больше о TLS-согласовании и пассивном снятии отпечатков JA3/S здесь.

10 пакетов TLS Client Hello в JARM были специально разработаны, чтобы извлечь уникальные ответы от TLS-серверов. JARM отправляет различные версии TLS, шифры и расширения в разном порядке для получения уникальных ответов. Поддерживает ли сервер TLS 1.3? Будет ли он согласовывать TLS 1.3 с шифрами 1.2? Если мы упорядочим шифры от самого слабого к самому сильному, какой шифр он выберет? Это те необычные вопросы, которые JARM по сути задает серверу, чтобы выявить наиболее уникальные ответы. Затем эти 10 ответов хешируются для получения отпечатка JARM.

Хеш отпечатка JARM представляет собой гибридный нечёткий хеш, использующий комбинацию обратимого и необратимого алгоритмов хеширования для создания 62-символьного отпечатка. Первые 30 символов состоят из шифра и версии TLS, выбранных сервером для каждого из отправленных 10 клиентских приветствий. «000» означает, что сервер отказался вести переговоры с этим клиентским приветствием. Оставшиеся 32 символа — это усеченный хеш SHA256 совокупных расширений, отправленных сервером, без учета данных сертификата x509. При сравнении отпечатков JARM, если первые 30 символов совпадают, а последние 32 различаются, это означает, что серверы имеют очень похожие конфигурации, принимающие одни и те же версии и шифры, но не совсем одинаковые, так как расширения различаются.

После получения каждого сообщения приветствия TLS-сервера JARM корректно закрывает соединение с помощью FIN, чтобы не оставлять сокеты открытыми.

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

Как JARM можно использовать для выявления вредоносных серверов

Серверы управления и контроля (C2) вредоносных программ и вредоносные серверы настраиваются их создателями как любые другие серверы, а затем развертываются в их инфраструктуре. Поэтому они, как правило, производят уникальные отпечатки JARM. Ниже приведены примеры распространенных вредоносных программ и инструментов атак, а также пересечение JARM с Alexa Top 1M веб-сайтов (по состоянию на октябрь 2020 г.):

При небольшом или нулевом пересечении с Alexa Top 1M веб-сайтов маловероятно, что хост внутри организации подключится к серверу с этими отпечатками JARM.

Команда JARM

John Althouse — автор идеи, концепции и руководитель проекта
Andrew Smart — концепция и тестирование
RJ Nunnally — программирование и тестирование
Mike Brady — программирование и тестирование

Переписано на Python для оперативного использования Caleb Yu

Скачать инструмент
DomainJARM
salesforce.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
force.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
google.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
youtube.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
gmail.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
facebook.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
instagram.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
oculus.com29d29d20d29d29d21c41d43d00041d741011a7be03d7498e0df05581db08a9
Вредоносный сервер C2Отпечаток JARMПересечение с Alexa Top 1M
Trickbot22b22b09b22b22b22b22b22b22b22b352842cd5d6b0278445702035e06875c0
AsyncRAT1dd40d40d00040d1dc1dd40d1dd40d3df2d6a0c2caaa0dc59908f0d36029430
Metasploit07d14d16d21d21d00042d43d000000aa99ce74e2c6d013c745aa52b5cc042d0
Cobalt Strike07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb10
Merlin C229d21b20d29d29d21c41d21b21b41d494e0df9532e75299f15ba73156cee38303