Как использовать PolarProxy для расшифровки трафика без поля SNI

Обзор PolarProxy: Инструмент для расшифровки трафика

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

Установка и настройка PolarProxy

Для начала, чтобы использовать PolarProxy, вам понадобится установить его на виртуальной машине Ubuntu. В качестве примера, мы будем следовать инструкциям, изложенным в учебнике, который можно найти на сайте Netresec.

  1. Установите PolarProxy на свою виртуальную машину.
  2. Настройте iptables для перенаправления трафика. Используйте следующую команду, заменив <Ex. enp0s8> на ваш сетевой интерфейс:

    $ sudo iptables -t nat -A PREROUTING -i <Ex. enp0s8> -p tcp --dport 443 -j REDIRECT --to 10443
  3. Запустите PolarProxy с соответствующими параметрами:

    $ sudo ./PolarProxy_1-0-0_linux-x64/PolarProxy -v -p 10443,80,80 -x polarproxy.cer --certhttp 10080 --pcapoverip 57012 -o . --terminate --connect <IP for Fakenet VM> --nosni nosni.polarproxy

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

Проблемы с SNI

После успешной настройки PolarProxy возникла проблема с тем, что PolarProxy не может обрабатывать запросы, которые не указывают имя сервера (SNI). Например, при использовании следующей команды возникает ошибка:

$ curl.exe --insecure https://<IP for PolarProxy VM>

Пример ошибки:

<4>[10443] Transparent TLS proxy System.IO.IOException (0x80131620) : Cannot determine the frame size or a corrupted frame was received.
<4>[10443] Transparent TLS proxy Socket error code HostNotFound System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (0x00000005) : Name or service not known

Это указывает на то, что PolarProxy не распознает сервер, так как не получает необходимую информацию из поля SNI.

Решение проблемы с помощью обходных путей

Если вы столкнулись с подобной проблемой, есть несколько подходов, которые могут помочь вам справиться с данной ситуацией.

  1. Использование правильных параметров: Если вы используете версии PolarProxy старше 1.0.1, ошибка с обработкой --nosni в комбинации с --terminate может привести к подобным трудностям. Обновите PolarProxy до версии 1.0.2, где эта проблема была устранена.

  2. Использование набора правил: Для управления действиями PolarProxy можно использовать набор правил. Создайте JSON-файл правил, который будет выглядеть следующим образом:

    {
       "name": "TLS termination/offloading for local www",
       "version": "1.0.1",
       "rules": [
           {
               "active": true,
               "match": { "type": "nontls" },
               "action": { "type": "block" },
               "description": "Block non-TLS traffic"
           }
       ],
       "default": {
           "action": { "type": "terminate", "target": "127.0.0.1:80" },
           "description": "Terminate TLS and forward to local www"
       }
    }
  3. Запуск PolarProxy с набором правил: Используйте следующую команду для запуска PolarProxy:

    ./PolarProxy -v -p 10443,80,80 --pcapoverip 57012 -o . --ruleset tls-termination.json

Не забудьте заменить 127.0.0.1:80 на IP-адрес вашего Fakenet сервера.

Заключение

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

Если у вас есть дополнительные вопросы или вы столкнулись с другими проблемами, не стесняйтесь делиться своим опытом. Кибербезопасность требует коллективного подхода, и каждый опыт важен!

Источник

Ответить

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