
Утилита перенаправления TCP-портов
PortBender — это утилита перенаправления TCP-портов, которая позволяет оператору red team перенаправлять входящий трафик, предназначенный для одного TCP-порта (например, 445/TCP), на другой TCP-порт (например, 8445/TCP). PortBender включает aggressor-скрипт, который операторы могут использовать для интеграции инструмента с Cobalt Strike. Однако, поскольку инструмент реализован в виде рефлективной DLL, он может интегрироваться с любой C2-платформой, поддерживающей загрузку модулей через интерфейс "ReflectiveLoader" [1]. Инструмент также позволяет операторам симулировать механизм бэкдора/персистентности, используемый в возможности "PortServ.sys" угрозы Duqu 2.0.
PortBender использует библиотеку WinDivert для перехвата сетевого трафика с помощью Windows Filtering Platform (WFP). Дизайн PortBender во многом основан на утилите DivertTCPConn, которая также использует библиотеку WinDivert [1].
PortBender имеет два режима работы. Первый — «режим редиректора», второй — «режим бэкдора». В «режиме редиректора» любое подключение к целевому порту назначения (например, 445/TCP) перенаправляется на альтернативный порт (например, 8445/TCP). В «режиме бэкдора» трафик перенаправляется только в том случае, если атакующий отправляет специально сформированный TCP-пакет на целевой порт (например, 443/TCP). Затем PortBender добавляет IP-адрес этого клиента в список клиентов бэкдора и перенаправляет весь трафик на этот целевой порт на альтернативный порт (например, 3389/TCP). Оператор может использовать этот механизм для эмуляции техники персистентности, использованной угрозой Duqu 2.0 при компрометации Kaspersky.
Чтобы выполнить PortBender, мы должны сначала импортировать скрипт "PortBender.cna" в Cobalt Strike и загрузить бинарный файл WinDivert32.sys или WinDivert64.sys, включенный в "PortBender.zip", на целевой хост в зависимости от архитектуры операционной системы. Меню помощи PortBender с примером использования показано ниже:
beacon> help PortBender
Redirect Usage: PortBender redirect FakeDstPort RedirectedPort
Backdoor Usage: PortBender backdoor FakeDstPort RedirectedPort Password
Examples:
PortBender redirect 445 8445
PortBender backdoor 443 3389 praetorian.antihacker
Например, мы можем захотеть выполнить PortBender в режиме редиректора для проведения атаки SMB relay из скомпрометированной системы Windows. Для этого мы можем указать PortBender перенаправлять весь трафик на порт 445/TCP на альтернативный порт 8445/TCP, на котором запущен атакующий SMB-сервис. В этом примере мы запускаем команду "PortBender redirect 445 8445" для достижения этой цели. Ожидаемый вывод показан ниже:
В этом примере мы хотим развернуть скрытый механизм персистентности на скомпрометированном IIS-веб-сервере, доступном из интернета. Здесь мы запускаем "PortBender backdoor 443 3389 praetorian.antihacker", чтобы указать сервису бэкдора перенаправлять любые подключения к порту 443/TCP на порт 3389/TCP на скомпрометированном хосте с любого IP-адреса, который предоставляет указанное ключевое слово "praetorian.antihacker". Ожидаемый вывод показан ниже: