Обзор PolarProxy: Инструмент для расшифровки трафика
PolarProxy — это мощный инструмент, который позволяет исследователям безопасности и специалистам по кибербезопасности расшифровывать трафик, передаваемый через протокол TLS. В данной статье мы рассмотрим, как использовать PolarProxy для передачи трафика вредоносного ПО на фальшивый сервер, а также обсудим возможные проблемы и их решения.
Установка и настройка PolarProxy
Для начала, чтобы использовать PolarProxy, вам понадобится установить его на виртуальной машине Ubuntu. В качестве примера, мы будем следовать инструкциям, изложенным в учебнике, который можно найти на сайте Netresec.
- Установите PolarProxy на свою виртуальную машину.
-
Настройте iptables для перенаправления трафика. Используйте следующую команду, заменив
<Ex. enp0s8>
на ваш сетевой интерфейс:$ sudo iptables -t nat -A PREROUTING -i <Ex. enp0s8> -p tcp --dport 443 -j REDIRECT --to 10443
-
Запустите 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.
Решение проблемы с помощью обходных путей
Если вы столкнулись с подобной проблемой, есть несколько подходов, которые могут помочь вам справиться с данной ситуацией.
-
Использование правильных параметров: Если вы используете версии PolarProxy старше 1.0.1, ошибка с обработкой
--nosni
в комбинации с--terminate
может привести к подобным трудностям. Обновите PolarProxy до версии 1.0.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" } }
-
Запуск PolarProxy с набором правил: Используйте следующую команду для запуска PolarProxy:
./PolarProxy -v -p 10443,80,80 --pcapoverip 57012 -o . --ruleset tls-termination.json
Не забудьте заменить 127.0.0.1:80
на IP-адрес вашего Fakenet сервера.
Заключение
PolarProxy — это исключительно полезный инструмент для расшифровки трафика и анализа вредоносного ПО. Однако работа с ним может быть усложнена из-за особенностей обработки SNI. Следуя описанным выше рекомендациям и обновляя ваше ПО, вы сможете оптимизировать свою работу и избавиться от проблем, связанных с этой функциональностью.
Если у вас есть дополнительные вопросы или вы столкнулись с другими проблемами, не стесняйтесь делиться своим опытом. Кибербезопасность требует коллективного подхода, и каждый опыт важен!