
Utilidad de redirección de puertos TCP
PortBender es una utilidad de redirección de puertos TCP que permite a un operador de red team redirigir el tráfico entrante destinado a un puerto TCP (por ejemplo, 445/TCP) a otro puerto TCP (por ejemplo, 8445/TCP). PortBender incluye un script aggressor que los operadores pueden usar para integrar la herramienta con Cobalt Strike. Sin embargo, dado que la herramienta se implementa como un DLL reflectante, se puede integrar con cualquier framework C2 que admita la carga de módulos a través de una interfaz "ReflectiveLoader" [1]. La herramienta también permite a los operadores simular un mecanismo de backdoor/persistencia utilizado en la capacidad "PortServ.sys" empleada por el actor de amenazas Duqu 2.0.
PortBender aprovecha la biblioteca WinDivert para interceptar el tráfico de red mediante la Plataforma de Filtrado de Windows (WFP). El diseño de PortBender está fuertemente influenciado por la utilidad DivertTCPConn, que también utiliza la biblioteca WinDivert [1].
PortBender tiene dos modos de operación. El primero es "modo redireccionador" y el segundo es "modo backdoor". En el "modo redireccionador", cualquier conexión a un puerto de destino (por ejemplo, 445/TCP) se redirige a un puerto alternativo (por ejemplo, 8445/TCP). En el "modo backdoor", solo redirigimos el tráfico si un atacante envía un paquete TCP con un formato especial a un puerto de destino (por ejemplo, 443/TCP). Luego, PortBender agrega esa dirección IP del cliente a una lista de clientes backdoor y redirige todo el tráfico a ese puerto de destino a un puerto alternativo (por ejemplo, 3389/TCP). Un operador puede utilizar este mecanismo para emular la técnica de persistencia utilizada por el actor de amenazas Duqu 2.0 al comprometer a Kaspersky.
Para ejecutar PortBender, primero debemos importar el script "PortBender.cna" en Cobalt Strike y cargar el binario WinDivert32.sys o WinDivert64.sys incluido en "PortBender.zip" en el host objetivo, dependiendo de la arquitectura del sistema operativo. El menú de ayuda de PortBender con el ejemplo de uso se muestra a continuación:
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
Por ejemplo, es posible que deseemos ejecutar PortBender en modo redireccionador para realizar un ataque de relay SMB desde un sistema Windows comprometido. Para facilitar esto, podemos indicarle a PortBender que redirija todo el tráfico hacia 445/TCP a un puerto alternativo 8445/TCP que ejecuta un servicio SMB del atacante. En este ejemplo, ejecutamos el comando "PortBender redirect 445 8445" para lograrlo. La salida esperada se muestra a continuación:
En este ejemplo, queremos desplegar el mecanismo de persistencia encubierta en un servidor web IIS comprometido con acceso a Internet. Aquí ejecutamos "PortBender backdoor 443 3389 praetorian.antihacker" para indicarle al servicio backdoor que redirija cualquier conexión a 443/TCP a 3389/TCP en el host comprometido desde cualquier dirección IP que proporcione la palabra clave especificada "praetorian.antihacker". La salida esperada se muestra a continuación:
[1] https://github.com/Arno0x/DivertTCPconn
[2] https://github.com/stephenfewer/ReflectiveDLLInjection
[3] https://github.com/basil00/Divert
[4] https://diablohorn.com/2018/08/25/remote-ntlm-relaying-through-meterpreter-on-windows-port-445