TLS fingerprinting серверов: типы хешей, утилиты для показа TLS отпечатков серверов


Оглавление

1. TLS fingerprinting: методы идентификации клиентского и серверного программного обеспечения

2. TLS fingerprinting клиентов: типы хешей, утилиты для показа TLS отпечатков клиентов

3. TLS fingerprinting серверов: типы хешей, утилиты для показа TLS отпечатков серверов

3.1 TLS Отпечатки серверов нестабильны и зависят от запроса клиента

3.2 JA3S и JA4S хеши отлично подходят для идентификации инфраструктуры управления и контроля (command and control, C2) в паре с TLS отпечатками клиентов

3.3 Типы хешей для TLS fingerprinting серверов

3.3.1 JA3S

3.3.2 JA4S

3.3.3 JARM

3.4 Инструменты для снятия TLS отпечатков серверов

3.4.1 Wireshark

3.4.2 TShark

3.4.3 JA4+

3.4.4 JA3S-JA4S-scanner

3.4.5 JARM

3.4.6 Онлайн сервис для показа JA3S и JA4S отпечатков

3.4.7 Онлайн сервис для сканирования JARM отпечатков

3.5 TLS fingerprinting протокола QUIC для серверов

3.6 Базы данных хешей JA3, JA3N и JA4

4. Как изменить и подделать TLS отпечатки. Как обойти фильтрацию на основе TLS fingerprinting



3.1 TLS Отпечатки серверов нестабильны и зависят от запроса клиента

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

Конечно же, TLS отпечатки серверов также не остаются навсегда неизменными. Но у (некоторых) TLS хешей серверов имеется ещё одна особенность: данные, которые отправляет сервер в TLS Server Hello, зависят от того, что прислал клиент. То есть один и тот же сервер по-разному отвечает разным клиентам. На практике это означает, что для одного сервера вы можете получить разные JA3S и JA4S отпечатки, если будете делать запрос на этот сервер, например, с помощью веб-браузера и утилиты cURL, или с помощью разных веб-браузеров.

Тем не менее, на одинаковые запросы веб-сервер будет отвечать одинаково.

Итак, при работе с JA3S и JA4S хешами может быть важно, какой именно клиент делал запрос во время TLS fingerprinting.

И, опять же, нужно помнить, что клиент сам может изменить отправляемые в TLS Client Hello данные, что, в свою очередь, изменит TLS Server Hello и в конечном счёте это приведёт к изменению хешей JA3S и JA4S.

Итак, JA3S и JA4S можно сопоставлять в том случае, если они сделаны во время запросов от одинаковых клиентов с одинаковыми версиями.

3.2 JA3S и JA4S хеши отлично подходят для идентификации инфраструктуры управления и контроля (command and control, C2) в паре с TLS отпечатками клиентов

TLS отпечатки разрабатывались с целью выявления трафика, который генерирует вредоносное программное обеспечение. В случае коммуникации внутри инфраструктуры управления и контроля (command and control, C2) клиенты имеют одинаковый Client Hello на который серверы отвечают всегда одинаковым Server Hello. Это обеспечивает стабильный результат для JA3S и JA4S хешей.

Также было отмечено, что JA4S в сочетании с JA4 значительно повышает точность обнаружения. То есть JA4 (цифровой отпечаток клиента) сам по себе не всегда способен однозначно идентифицировать вредоносного клиента — как было отмечено в предыдущей части, любые скрипты на Python, использующие одинаковые версии библиотек, будут иметь одинаковые цифровые отпечатки. При этом серверные отпечатки, а именно хеши JA3S и JA4S тоже не всегда дают однозначный ответ о том, является ли сервер частью ботнета или легитимным ПО. Но сочетание TLS отпечатков клиента и сервера дают крайне высокие результаты точности — в этом случае можно мгновенно выявить вредоносные клиенты, серверы, а также следить за их перемещением, если, например, инфраструктура C2 меняет IP и домены.

3.3 Типы хешей для TLS fingerprinting серверов

3.3.1 JA3S

После создания JA3 авторы начали экспериментировать с использованием того же метода для снятия отпечатков со стороны серверного TLS-рукопожатия, сообщения TLS Server Hello. Метод JA3S заключается в сборе десятичных значений байтов для следующих полей в пакете Server Hello: Version, Accepted Cipher и List of Extensions (Версия, Принятый шифр и Список расширений). Затем он объединяет эти значения вместе по порядку, используя «,» для разделения каждого поля и «-» для разделения каждого значения в каждом поле.

Порядок полей следующий:

TLSVersion,Cipher,Extensions

Пример:

771,4866,43-51

Если TLS расширения в Server Hello отсутствуют, то эти поля остаются пустыми. Например:

771,4866,

На этом скриншоте показано, какие именно части TLS Server Hello используются для вычисления JA3S.

Затем для полученной строки вычисляется MD5 хеш:


echo -n '771,4866,43-51' | md5sum

Это JA3S отпечаток:

15af977ce25de452b96affa2addb1036

Источник: https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967/

3.3.2 JA4S

В предыдущей части мы уже рассматривали отпечаток JA4, который входит в группу JA4+. Отпечаток JA4S также относится к JA4+ и также характеризуется тем, что имеет три части, разделённых символом нижнее подчёркивание. Но для JA4S в первых двух частях закодирована собранная информация, и только последняя часть является усечённым хешем. Пример JA4S:

t130200_1302_a56c5b993250

Рассмотрим структуру первой части хеша (JA4S_a): Первый символ («t») означает протокол TCP; также может быть символ «q» означающий протокол QUIC. Следующие два символа означают версию TLS: 1.2 = «12», 1.3 = «13». Затем идёт двухзначное число — количество расширений. Затем ещё одно двухзначное число — выбранный Application-Layer Protocol Negotiation (ALPN). Если расширение ALPN отсутствует, то указывается «00».

Вторая часть хеша (JA4S_b) является выбранным Набором Шифров.

Третья часть хеша (JA4S_c) является усечённым хешем SHA256: полученным в результате хеширования строки Расширений в том порядке, как они появляются.

Пример сырой строки JA4S_R, для которой вычислен предыдущий хеш:

t130200_1302_002b,0033

Источник: https://blog.foxio.io/ja4%2B-network-fingerprinting

3.3.3 JARM

JARM – это инструмент идентификации серверов Transport Layer Security (TLS), особенностью которого является активное сканирование. Хеш (TLS отпечаток), который получает эта утилита, также называется JARM.

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

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

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 отличаются, это будет означать, что серверы имеют очень похожие конфигурации, принимающие одинаковые версии и шифры, хотя и не совсем идентичные, учитывая, что расширения разные.

Примеры хешей JARM:

29d29d00029d29d00042d42d0000002059a3b916699461c5923779b77cf06b
29d2ad00029d29d00042d43d00000051af7d8070a18e002eaaedf620fa118c

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


Источник: https://engineering.salesforce.com/easily-identify-malicious-servers-on-the-internet-with-jarm-e095edac525a/

На практике у JARM обнаружилась неприятная особенность: хеш JARM для одного и того же сервера может различаться в зависимости от того, указать IP адрес данного сервера или доменное имя, которое имеет этот же IP адрес. Точнее говоря, совпадает первая половина хеша, но вторая половина различна. Возможно, в этом есть какой-то смысл, но мне его не удалось уловить.

3.4 Инструменты для снятия TLS отпечатков серверов

3.4.1 Wireshark

В настоящее время в Wireshark реализован показ JA3S хешей. Для вывода хеша JA3S и полной строки, которая использовалась для получения JA3S, вы можете использовать следующие фильтры:

tls.handshake.ja3s
tls.handshake.ja3s_full

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

После этого вам станут доступны дополнительные фильтры Wireshark, в том числе для показа отпечатка JA4S и его полной строки:

ja4.ja4s
ja4.ja4s_r

3.4.2 TShark

TShark (в некоторых дистрибутивах Linux пакет называется wireshark-cli) это консольный интерфейс Wireshark. С помощью TShark вы можете делать всё то же самое, что и с Wireshark, а если речь идёт об автоматизации, то равных TShark нет. Для получения JA4S хешей требуется установить плагин JA4+ Wireshark.

Следующая команда будет захватывать трафик и выводить хеши JA3S:

sudo tshark -Y "tls.handshake.ja3s" -T fields -e ip.src -e ipv6.src -e ip.dst -e ipv6.dst -e tls.handshake.ja3s

Среди выводимых полей будут следующий:

  • IP или IPv6 адрес клиента
  • IP или IPv6 адрес сервера
  • Хеш JA3S

Если вы не подключены к сети IPv6, то вы можете удалить следующие опции из команды:

-e ipv6.src
-e ipv6.dst

Одна команда может выводить одновременно хеши JA3S и JA4S:

sudo tshark -Y "tls.handshake.ja3s" -T fields -e ip.src -e ipv6.src -e ip.dst -e ipv6.dst -e tls.handshake.ja3s -e ja4.ja4s

Следующая команда анализирует файл с захваченным сетевым трафиком (путь до файла указывается после опции -r):

tshark -Y "tls.handshake.ja3s" -T fields -e ip.src -e ipv6.src -e ip.dst -e ipv6.dst -e tls.handshake.ja3s -e ja4.ja4s -r /mnt/disk_d/Share/Captures/ssl_443.pcapng

Если вы хотите получить хеши JA3S и JA4S для определённого сервера, то нужно совмещать команду с одним или несколькими следующими фильтрами IP или IPv6 адреса сервера, на который отправлен запрос:

ip.src
ipv6.src

Обратите внимание, что фильтры ip.src и ipv6.src означают IP адрес источника, с которого отправлен пакет. В данном случае в качестве источника пакета нужно использовать именно IP сервера и именно с фильтром «src», поскольку нас интересуют только ответные пакеты от сервера (только они содержат TLS Server Hello), но не интересуют пакеты, отправленные от клиента (поскольку в них содержится только TLS Client Hello).

Например, следующая команда покажет JA3S и JA4S отпечатки для сервера с IPv6 2604:a880:800:c1::2ae:d001:

sudo tshark -Y "tls.handshake.ja3s and ipv6.src == 2604:a880:800:c1::2ae:d001" -T fields -e ip.src -e ipv6.src -e ip.dst -e ipv6.dst -e tls.handshake.ja3s -e ja4.ja4s

Для выводимой информации вы можете указать заголовки и выбрать другой разделитель для полей данных (по умолчанию это символ табуляции). Если выбрать в качестве разделителя запятую, то такие данные можно сохранить в файл .csv и открыть программой, поддерживающей этот формат (например, LibreOffice Calc или MS Excel).

sudo tshark -E separator=',' -E header=y -Y "tls.handshake.ja3s and ipv6.src == 2604:a880:800:c1::2ae:d001" -T fields -e ip.src -e ipv6.src -e ip.dst -e ipv6.dst -e tls.handshake.ja3s -e ja4.ja4s > ja4s.csv

Если вы хотите увидеть полные строки, из которых вычислены JA3 и JA4 хеши, то добавьте в вашу команду следующие опции:

-e tls.handshake.ja3s_full
-e ja4.ja4s_r

Например:

sudo tshark -Y "tls.handshake.ja3s and ipv6.src == 2604:a880:800:c1::2ae:d001" -T fields -e ip.src -e ipv6.src -e ip.dst -e ipv6.dst -e tls.handshake.ja3s -e tls.handshake.ja3s_full -e ja4.ja4s -e ja4.ja4s_r

Если вы предпочитаете формат JSON, то вместо -T fields укажите -T json, например:

sudo tshark -Y "tls.handshake.ja3s and ipv6.src == 2604:a880:800:c1::2ae:d001" -T json -e ip.src -e ipv6.src -e ip.dst -e ipv6.dst -e tls.handshake.ja3s -e tls.handshake.ja3s_full -e ja4.ja4s -e ja4.ja4s_r

Аналогично вывод в формате JSON можно получить при анализе файлов захвата:

tshark -Y "tls.handshake.ja3s" -T json -e ip.src -e ipv6.src -e ip.dst -e ipv6.dst -e tls.handshake.ja3s -e ja4.ja4s -r /mnt/disk_d/Share/Captures/ssl_443.pcapng

3.4.3 JA4+

Репозиторий JA4+ содержит различные файлы, среди которых имеется скрипт на Python, который извлекает JA4, JA4S, JA4H, JA4L, JA4LS, JA4X, JA4SSH, JA4T, JA4TS отпечатки из файлов PCAP.

О том, как установить этот скрипт из JA4+ смотрите здесь: https://kali.tools/?p=7356 (раздел «Установка JA4+»).

Рассмотрим несколько примеров использования ja4.py из репозитория JA4+.

Вывести все типы хешей TLS отпечатков, обнаруженные в файле захвата трафика (/mnt/disk_d/Share/Captures/ssl_443.pcapng):

python ja4.py /mnt/disk_d/Share/Captures/ssl_443.pcapng

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

{'stream': 0, 'src': '127.0.0.1', 'dst': '127.0.0.1', 'srcport': '38502', 'dstport': '443', 'client_ttl': '64', 'server_ttl': '64', 'domain': 'hackware.local', 'JA4': 't13d2912h2_723694b0fccc_288f874c93d6', 'JA4S': 't130200_1302_a56c5b993250'}

Вывести все типы хешей TLS отпечатков, обнаруженные в файле захвата трафика (/mnt/disk_d/Share/Captures/ssl_443.pcapng), в формате JSON (--json):

python ja4.py --json /mnt/disk_d/Share/Captures/ssl_443.pcapng

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

{
    "stream": 0,
    "src": "127.0.0.1",
    "dst": "127.0.0.1",
    "srcport": "38502",
    "dstport": "443",
    "client_ttl": "64",
    "server_ttl": "64",
    "domain": "hackware.local",
    "JA4": "t13d2912h2_723694b0fccc_288f874c93d6",
    "JA4S": "t130200_1302_a56c5b993250"
}

Вывести все типы хешей TLS отпечатков, обнаруженные в файле захвата трафика (/mnt/disk_d/Share/Captures/ssl_443.pcapng), а также вывести сырые строки, используемые для вычисления хешей (-r), результат показать на экране в формате JSON (--json):

python ja4.py -r --json /mnt/disk_d/Share/Captures/ssl_443.pcapng

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

{
    "stream": 0,
    "src": "127.0.0.1",
    "dst": "127.0.0.1",
    "srcport": "38502",
    "dstport": "443",
    "client_ttl": "64",
    "server_ttl": "64",
    "domain": "hackware.local",
    "JA4": "t13d2912h2_723694b0fccc_288f874c93d6",
    "JA4_r": "t13d2912h2_002f,0033,0035,0039,009c,009d,009e,009f,1301,1302,1303,1304,c009,c00a,c013,c014,c02b,c02c,c02f,c030,c09c,c09d,c09e,c09f,c0ac,c0ad,cca8,cca9,ccaa_0005,000a,000b,000d,0016,0017,001c,002b,0033,ff01_0401,0809,0804,0403,0807,0501,080a,0805,0503,0808,0601,080b,0806,0603,0201,0203",
    "JA4S": "t130200_1302_a56c5b993250",
    "JA4S_r": "t130200_1302_002b,0033"
}

Вывести все типы хешей TLS отпечатков, обнаруженные в файле захвата трафика (/mnt/disk_d/Share/Captures/just-test.pcapng), только для пакетов, в которых источником трафика является указанный IPv6 ( | grep "'src': '2001:fb1:138:db4b:886:db58:ee8b:a7bc'"):


python ja4.py /mnt/disk_d/Share/Captures/just-test.pcapng | grep "'src': '2001:fb1:138:db4b:886:db58:ee8b:a7bc'"

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

3.4.4 JA3S-JA4S-scanner

JA3S-JA4S-scanner — это утилита для активного сканирования серверов и получения их JA3S и JA4S хешей, используемых для TLS fingerprinting (идентификация по TLS свойствам).

JA3S-JA4S-scanner может делать запросы к указанному серверу используя клиенты с различными TLS отпечатками; кроме активного сканирования, эта утилита может извлекать JA3S и JA4S хеши из файла захвата.

У программы JA3S-JA4S-scanner имеются обязательные зависимости — все подробности об их установке смотрите на официальной страницы утилиты здесь: (раздел «Установка JA3S-JA4S-scanner»).

Как минимум, вам обязательно нужно установить консольную версию Wireshark, а также плагин JA4+ Wireshark. Также рекомендуется установить curl-impersonate, чтобы иметь возможность делать запросы на сервера клиентами с различными TLS отпечатками.

У JA3S-JA4S-scanner довольно много опций, также имеется многопоточный режим сканирования диапазонов IP адресов — подробности смотрите в справке программы или в карточке JA3S-JA4S-scanner.

Рассмотрим примеры использования JA3S-JA4S-scanner.

Сканировать единичный IP адрес (-i 185.117.153.79):

sudo bash ja3s-ja4s-scanner.sh -i 185.117.153.79

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

=================================================
Results for 185.117.153.79:443
JA3S: f4febc55ea12b31ae17cfb7e614afda8
JA3S_FULL: 771,4865,43-51
JA4S: t130200_1301_a56c5b993250
JA4S_R: t130200_1301_002b,0033
=================================================

Сканировать указанный хост (-i w-e-b.site):

sudo bash ja3s-ja4s-scanner.sh -i w-e-b.site

Сканировать указанный хост (-i hackware.local) на нестандартном порту (-p 50433):

sudo bash ja3s-ja4s-scanner.sh -i hackware.local -p 50443

Сканировать указанный IPv6 адрес (-i 2001:4860:4860::8888):

sudo bash ja3s-ja4s-scanner.sh -i 2001:4860:4860::8888

Вывод:

=================================================
Results for 2001:4860:4860::8888:443
JA3S: eb1d94daa7e0344597e756a1fb6e7054
JA3S_FULL: 771,4865,51-43
JA4S: t130200_1301_234ea6891581
JA4S_R: t130200_1301_0033,002b
=================================================

Сканировать единичный хост (-i suip.biz) и сохранить результаты в файл (-o results.txt):

sudo bash ja3s-ja4s-scanner.sh -i suip.biz -o results.txt

Сканировать единичный хост (-i suip.biz) притворяясь веб-браузером Google Chrome (-u chrome):

sudo bash ja3s-ja4s-scanner.sh -i suip.biz -u chrome

Сканировать единичный хост (-i suip.biz) используя в качестве клиентского приложения cURL (-u curl) (обратите внимание, что значение хешей для разных клиентов может различаться):

sudo bash ja3s-ja4s-scanner.sh -i suip.biz -u curl

Сканировать подсеть IP адресов (-s 185.117.153.0/24) в 50 одновременных потоков (-m 50), без вывода результатов на экран (-q) и сохранить результаты в файл (-o results.txt):

sudo bash ja3s-ja4s-scanner.sh -s 185.117.153.0/24 -m 50 -q -o results.txt

Сканировать все цели, указанные в файле (-f targets.txt):

sudo bash ja3s-ja4s-scanner.sh -f targets.txt

Показать все хеши JA3S и JA4S для указанного сервера (-i 185.117.153.79), при этом использовать файл suip.biz.pcapng (-e suip.biz.pcapng) в качестве источника данных:

sudo bash ja3s-ja4s-scanner.sh -i 185.117.153.79 -e suip.biz.pcapng

3.4.5 JARM

JARM – это инструмент идентификации серверов Transport Layer Security (TLS), особенностью которого является активное сканирование.

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

К плюсам JARM относится то, что данный хеш не зависит от запроса клиента — то есть один сервер (или сервера с идентичными настройками) должны выдавать одинаковые TLS отпечатки.

Просканировать хост w-e-b.site на стандартном порту и вывести результаты на экран:

python jarm.py w-e-b.site

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

Domain: w-e-b.site
Resolved IP: 157.245.118.66
JARM: 29d2ad00029d29d00042d43d00000051af7d8070a18e002eaaedf620fa118c

Просканировать IP 185.117.153.79 на стандартном порту и вывести результаты на экран:

python jarm.py 185.117.153.79

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

Domain: 185.117.153.79
Resolved IP: 185.117.153.79
JARM: 29d2ad00029d29d00042d43d000000ad9bf51cc3f5a1e29eecb81d0c7b06eb

Просканировать хост hackware.local на порту 50443 и вывести результаты на экран:

python jarm.py hackware.local -p 50443

Просканировать хост suip.biz и кроме финального хеша вывести собранные данные, используемые для получения хеша:

python jarm.py suip.biz -v

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

Domain: suip.biz
Resolved IP: 185.117.153.79
JARM: 29d2ad00029d29d00042d43d00000051af7d8070a18e002eaaedf620fa118c
Scan 1: c02f|0303||ff01-0000-0001-000b-0023-0017,
Scan 2: c030|0303||ff01-0000-0001-000b-0023-0017,
Scan 3: |||,
Scan 4: c02f|0303||ff01-0000-0001-000b-0023-0017,
Scan 5: c02f|0303||ff01-0000-0001-000b-0023-0017,
Scan 6: |||,
Scan 7: 1302|0303||002b-0033,
Scan 8: 1303|0303||002b-0033,
Scan 9: |||,
Scan 10: |||

Просканировать все цели из файла targets.txt и вывести результаты на экран:

python jarm.py -i targets.txt

Пример содержимого файла targets.txt:

hackware.ru
kali.tools
suip.biz
suip.biz,443
157.245.118.66
157.245.118.66,443
w-e-b.site
t.me
google.com
youtube.com
hackware.local,50443

Просканировать все цели из файла targets.txt и сохранить результаты в файл в формате CSV (-o results.csv):

python jarm.py -i targets.txt -o results.csv

Пример содержимого файла results.csv:

cat results.csv
hackware.ru,185.26.122.82,29d29d00029d29d00042d42d0000002059a3b916699461c5923779b77cf06b
kali.tools,185.26.122.59,29d29d00029d29d00042d42d0000002059a3b916699461c5923779b77cf06b
suip.biz,185.117.153.79,29d2ad00029d29d00042d43d00000051af7d8070a18e002eaaedf620fa118c
suip.biz,185.117.153.79,29d2ad00029d29d00042d43d00000051af7d8070a18e002eaaedf620fa118c
157.245.118.66,157.245.118.66,29d2ad00029d29d00042d43d000000ad9bf51cc3f5a1e29eecb81d0c7b06eb
157.245.118.66,157.245.118.66,29d2ad00029d29d00042d43d000000ad9bf51cc3f5a1e29eecb81d0c7b06eb
w-e-b.site,157.245.118.66,29d2ad00029d29d00042d43d00000051af7d8070a18e002eaaedf620fa118c
t.me,149.154.167.99,29d29d15d29d29d00042d42d0000005fd00fabd213a5ac89229012f70afd5c
google.com,142.251.223.78,27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
youtube.com,172.217.26.78,27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
hackware.local,127.0.0.1,07d19d1ad21d21d07c42d43d000000112e88add4281e6a02c1102a6e18e86a

Просканировать все цели из файла targets.txt и сохранить результаты в файл (-o results.json) в формате JSON (-j):

python jarm.py -i targets.txt -o results.json -j

3.4.6 Онлайн сервис для показа JA3S и JA4S отпечатков

Бесплатный онлайн сервис сканирования TLS отпечатков серверов (сканер JA3S и JA4S): https://suip.biz/ru/?act=server-tls-fingerprinting

Зеркало: https://w-e-b.site/?act=server-tls-fingerprinting

Данный сервис покажет JA3S и JA4S отпечатки просканированного сервера.

Вам достаточно указать IP или IPv6 адрес, либо домен и очень быстро вам будут показаны TLS отпечатки этого сервера. Если вы хотите выполнить сканирование на нестандартном порту, то вы также можете указать порт с HTTPS, для которого вы хотите выполнить TLS Fingerprinting.

Примечание: если вам нужно просканировать IPv6 адрес, то используйте зеркало на w-e-b.site, поскольку в настоящее время suip.biz отключён от IPv6 сети (по независящим от меня причинам — мне это тоже очень не нравится, задумываюсь о переезде).

3.4.7 Онлайн сервис для сканирования JARM отпечатков

Бесплатный онлайн сканер JARM хеша для TLS fingerprinting: https://suip.biz/ru/?act=jarm

Зеркало: https://w-e-b.site/?act=jarm

Данный онлайн сервис покажет отпечатки JARM для серверов — вы можете указать IP адрес или доменное имя.

Если служба HTTPS запущена на нестандартном порту, то вы всё равно можете выполнить TLS Fingerprinting — для этого дополнительно укажите порт, который нужно просканировать для получения JARM отпечатка.

3.5 TLS fingerprinting протокола QUIC для серверов

QUIC (сокр. от англ. Quick UDP Internet Connections; произносится quick) — интернет-протокол, разработанный Google в конце 2012 года.

QUIC позволяет мультиплексировать несколько потоков данных между двумя компьютерами, работая поверх протокола UDP, и содержит возможности шифрования, эквивалентные TLS и SSL. Имеет более низкую задержку соединения и передачи, чем TCP. Хорошо переносит потерю части пакетов путём выравнивания границ криптографических блоков по границам пакетов. В протокол заложена возможность прямой (упреждающей) коррекции ошибок на уровне пакетов, но на практике она отключена.

Смотрите также:

TLS fingerprinting серверов - хеш JA3S для протокола QUIC:

tls.handshake.ja3s && quic

TLS fingerprinting серверов - хеш JA4S для протокола QUIC:

ja4.ja4s && quic

Хеши JA3S и JA4S протокола TLS без QUIC

tls.handshake.ja3s && ! quic
ja4.ja4s && ! quic

3.6 Базы данных хешей JA3, JA3N и JA4

Серверное ПО Сайт JA3S JA3S_FULL JA4S JA4S_R JARM
Cloudflare   9ebc57def2efb523f25c77af13aa6d48 771,49195,0-23-65281-11-35-16-5 t1207h2_c02b_d0d4e4171d74 t1207h2_c02b_0017,ff01,000b,0023,0005 27d40d40d00040d1dc27d40d27d40d5fb4c89fe3813d172ffb53f84a68f750

Hitch - scalable TLS proxy and:

  • Apache/2.4.62 (Arch Linux)
  • Apache/2.4.62 (Debian)

suip.biz

w-e-b.site

f4febc55ea12b31ae17cfb7e614afda8 771,4865,43-51 t130200_1301_a56c5b993250 t130200_1301_002b,0033

29d2ad00029d29d00042d43d00000051af7d8070a18e002eaaedf620fa118c

29d2ad00029d29d00042d43d000000ad9bf51cc3f5a1e29eecb81d0c7b06eb

Apache/2.4.62 (Debian)   f4febc55ea12b31ae17cfb7e614afda8 771,4865,43-51 t130200_1301_a56c5b993250 t130200_1301_002b,0033

07d19d1ad21d21d07c42d43d000000112e88add4281e6a02c1102a6e18e86a

07d19d1ad21d21d07c42d43d0000008b344ab0cd56e121a8185dc3054afa3b

  google.com / 172.217.26.78 eb1d94daa7e0344597e756a1fb6e7054 771,4865,51-43 t130200_1301_234ea6891581 t130200_1301_0033,002b 27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
  youtube.com / 142.251.10.136 eb1d94daa7e0344597e756a1fb6e7054 771,4865,51-43 t130200_1301_234ea6891581 t130200_1301_0033,002b 27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             

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


Рекомендуется Вам:

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

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