Главная страница
Навигация по странице:

  • Обмен ключами

  • 57 Сообщение сервера Hello Retry Request

  • 58 Расшифровываем зашифрованную часть процесса установки соединения в TLS 1.3

  • 59 Wireshark фильтр по IP

  • ! Или not Объединение: или and Чередование: II или or

  • Фильтры по портам TCP или UDP

  • Фильтры для анализа SIP-трафика

  • Рефера т на тему TLS. Обмен ключами в tls обмен ключами в tls


    Скачать 0.62 Mb.
    НазваниеОбмен ключами в tls обмен ключами в tls
    Дата21.08.2022
    Размер0.62 Mb.
    Формат файлаdocx
    Имя файлаРефера т на тему TLS.docx
    ТипДокументы
    #649740

    1. Обмен ключами в TLS


    Обмен ключами в TLS-рукопожатии

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

    57 Сообщение сервера Hello Retry Request

    Если в сообщении Client Hello недостаточно данных для продолжения рукопожатия, сервер может отправить сообщение Hello Retry Request, требующее прислать исправленное Client Hello с указанным ключевым материалом. При этом сервер может включить в Hello Retry Request необязательное расширение cookie [2]. Клиент должен скопировать это расширение в своем повторном Client Hello. Как указано в спецификации, cookie преследует две основные цели:  Заставляет клиента продемонстрировать достижимость на сетевом адресе (обеспечивая защиту от DoS-атак). Это прежде всего полезно для транспорта, не ориентированного на соединения.  Позволяет серверу не сохранять состояние сеанса. Поскольку первое сообщение Client Hello (точнее, его хеш) участвует в криптографических вычислениях, сервер должен где-то его хранить. Вместо этого сервер может выгрузить эти данные клиенту, включив их в расширение cookie, а клиент вернет его в ответном сообщении.

    58 Расшифровываем зашифрованную часть процесса установки соединения в TLS 1.3

    https://habr.com/ru/post/253521/

    Одна из проблем с тем, как работает Wireshark, заключается в невозможности легко проанализировать зашифрованный трафик, вроде TLS. Раньше вы могли указать Wireshark приватные ключи, если они у вас были, и расшифровывать трафик на лету, но это работало только в том случае, если использовался исключительно RSA. Эта функциональность сломалась из-за того, что люди начали продвигать совершенную прямую секретность (Perfect Forward Secrecy), и приватного ключа стало недостаточно, чтобы получить сессионный ключ, который используется для расшифровки данных. Вторая проблема заключается в том, что приватный ключ не должен или не может быть выгружен с клиента, сервера или HSM (Hardware Security Module), в котором находится. Из-за этого, мне приходилось прибегать к сомнительным ухищрениям с расшифровкой трафика через man-in-the-middle

    59 Wireshark фильтр по IP

    самый простой фильтр в Wireshark – это IP адрес устройства (хоста, host) и выглядит этот фильтр следующим образом:

    • host 10.10.10.1

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

    • net 192.168.0.0/24 или net 192.168.0.0 mask 255.255.255.0

    При захвате трафика от подсети фильтр будет выглядеть вот так:

    • src net 192.168.0.0/24 или src net 192.168.0.0 mask 255.255.255.0

    А если надо увидеть для анализа только приходящий трафик в нашу подсеть, то любой из фильтров:

    • dst net 192.168.0.0/24

    • dst net 192.168.0.0 mask 255.255.255.0

    Если пользователь жалуется, что у него не открываются странице в браузере, проблема может быть с DNS сервером (порт 53) или с протоколом HTTP (порт 80), тогда захватываем трафик с использованием фильтра «порт»:

    • port 53

    Если мы решили захватить весь трафик для конкретного сервера без учета HTTP и FTP, то фильтр настраивается по любому из этих двух примеров:

    • host 192.168.0.1 and not (port 21 or port 80)

    • host 192.168.0.1 and not port 21 and not port 80

    Если мы хотим видеть весь трафик на порту, кроме трафика DNS, FTP, ARP, то логика будет аналогичной:

    • port not dns and not 21 and not arp

    При захвате трафика приложений, которые используют динамические порты из определенного диапазона, то фильтр будет сложно выглядеть в случае, если версия Libcap ниже чем 0.9.1:

    • (tcp[0:2] > 1500 and tcp[0:2] < 1550) or (tcp[2:2] > 1500 and tcp[2:2] < 1550)

    если версии более поздние, то фильтр будет менее угрожающим и понятным:

    • tcp portrange 1501-1549

    Для захвата кадров Ethernet типа EAPOL (Протокол передачи EAP-сообщений в стандарте 802.1x называется EAPOL (EAP encapsulation over LAN) ):

    • ether proto 0x888e

    Если необходимо захватить трафик определенного IP протокола, то можно использовать фильтр:

    • ip proto tcp – захват TCP трафика

    • ip proto udp – захват UDP трафика

    Для захвата IP трафика применяется самый короткий фильтр:

    • ip

    Для захвата только unicast трафика при анализе трафика исходящего и приходящего к сетевому устройству используется фильтр в таком формате:

    • not broadcast and not multicast

    Простые фильтры, о которых мы поговорили, можно объединять с помощью не сложных символов:

    1. Отрицание: ! Или not

    2. Объединение: && или and

    3. Чередование: II или or

    Пример: для захвата трафика от или к устройству с адресом 10.10.10.10, но не из сети 192.168.0.0 фильтр получится объединением с отрицанием:

    • host 10.10.10.10 && !net 192.168

    Фильтры на основе байтов смещения являются самыми мощными и существенно упрощают жизнь, но для их использования надо знать протокол и размещение искомых полей в пакете. Приведенные ниже примеры фильтров позволят захватить пакеты с определенным значением поля в заголовках или полезной нагрузке. Настроить их несложно:

    • ip[8] = 1

    Смещаемся на восемь байт в IP пакете и захватываем трафик со значением TTL =1

    • tcp[0:2] = 80

    Захватываем все пакеты TCP с адресом порта отправителя 80. Это эквивалент фильтру src port 80.

    Фильтры по IP-адресу:

    ip.addr == 192.168.10.0/24
    !(ip.addr == 192.168.10.1)
    ip.src == 192.168.22.11 && ip.dst == 192.168.14.15
    ip.addr => 172.16.1.14 && ip.addr <= 172.16.1.16


    Фильтры по DNS-имени:

    tcp contains "vmblog.ru"

    http.host == "report.vmblog.ru" (поиск точного значения в заголовках http)

    http.host contains "vmblog.ru" (поиск содержимого в заголовках http)

    http.host (все запросы с полем host в заголовке http)

    Фильтры по портам TCP или UDP:

    tcp.port == 443
    tcp.dstport == 80
    udp.srcport == 53
    tcp.dstport>=8000 && tcp.dstport<=8180


    Фильтры для протокола DHCP:

    udp.dstport == 67
    bootp.option.dhcp


    Фильтры по MAC адресу:

    eth.src == 01:2b:2a:a2:aa:22
    eth.dst == 01:2b:2a:a2:aa:22


    Фильтры по содержимому:

    http.content_type contains "jpeg"

    http.content_type contains "image"

    http.content_type contains "xml"

    http.request.uri contains "rar"

    Фильтры для ICMP:

    icmp

    icmp.type==0 (ответы на ping)

    icmp.type==3 (ошибки недоступности)

    Фильтры заголовков HTTP:

    http.content_type == "text/plain" (по значению поля content type)

    http.request.method == "POST"

    http.request.method == "GET"

    http.response.code == 404 (по коду ответа)

    http.response.code != 200 (по коду ответа)

    http.server == "nginx" (по значению поля server)

    Фильтры для анализа SIP-трафика:

    sip

    rtp

    rtcp

    rtpevent

    udp.srcport >= 10000 && udp.srcport <= 20000

    udp.port == 5060 || tcp.port == 5060

    64.

    63 Информация о хосте из трафика DHCP

    Любой хост, генерирующий трафик в вашей сети, должен иметь три идентификатора: MAC-адрес, IP-адрес и имя хоста.

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

    Как же нам добыть эту информацию, используя Wireshark? Для этого нам необходимо использовать фильтр по одному из видов сетевой активности: DHCP или NBNS. Трафик DHCP может помочь идентифицировать хосты практически для любого типа компьютеров, подключенных к вашей сети. Трафик NBNS генерируется в основном компьютерами под управлением Microsoft Windows или хостами Apple под управлением MacOS.

    Первый тренировочный pcap-файл «host-and-user-ID-pcap-01.pcap» для нашего практического руководства доступен для скачивания по этой ссылке: https://www.malware-traffic-analysis.net/training/host-and-user-ID.html (все остальные файлы мы также берем отсюда). Он содержит информацию о трафике для внутреннего IP-адреса «172.16.1.207». Открыв pcap-файл в Wireshark и применив фильтр «bootp», как показано на рисунке 1, вы получите отображение трафика DHCP. Обратите внимание, что, если вы используете новую версию Wireshark 3.0, то в качестве поискового запроса вам следует использовать значение «dhcp» вместо «bootp».



    Отфильтровываем трафик DHCP в Wireshark

    Рисунок 1: Отфильтровываем трафик DHCP в Wireshark

    Выберите один из пакетов, который обозначен как DHCP-запрос («DHCP Request») в информационном столбце. Перейдите в раздел с детальной информацией о пакете и разверните пункт меню «Bootstrap Protocol (Request)», как показано на рисунке 2. Необходимая нам информация находится в подпунктах «Client Identifier» и «Host Name», что проиллюстрировано на рисунке 3. В подробной информации об идентификаторе клиента должен быть указан MAC-адрес, соответствующий IP-адресу «172.16.1.207», ну а сведения об имени хоста должны, как следует из названия, откроют нам имя хоста.



    Разворачиваем пункт меню «Bootstrap Protocol (Request)» для DHCP-запроса

    Рисунок 2: Разворачиваем пункт меню «Bootstrap Protocol (Request)» для DHCP-запроса



    Находим MAC-адрес и имя хоста в запросе DHCP

    Рисунок 3: Находим MAC-адрес и имя хоста в запросе DHCP

    В нашем практическом примере имя хоста для IP-адреса «172.16.1.207» — это «Rogers-iPad», а MAC-адрес — это «7c:6d:62:d2:e3:4f». Этот MAC-адрес зарегистрирован за корпорацией Apple, как производителя данного сетевого устройства. Судя по имени хоста, это устройство, скорее всего, является планшетом Apple iPad, но точно утверждать это, опираясь только на имя хоста, мы не можем.

    Мы можем легко сопоставить MAC-адрес и IP-адрес для любого пакета с источником «172.16.1.207», как это показано на рисунке 4.



    Сопоставление MAC-адреса с IP-адресом для любого пакета

    Рисунок 4: Сопоставление MAC-адреса с IP-адресом для любого пакета


    написать администратору сайта