
Utilitaire de redirection de port TCP
PortBender est un utilitaire de redirection de ports TCP qui permet à un opérateur d'équipe rouge de rediriger le trafic entrant destiné à un port TCP (par exemple, 445/TCP) vers un autre port TCP (par exemple, 8445/TCP). PortBender comprend un script d'agresseur que les opérateurs peuvent utiliser pour intégrer l'outil avec Cobalt Strike. Cependant, comme l'outil est implémenté en tant que DLL réfléchissante, il peut s'intégrer à n'importe quel framework C2 prenant en charge le chargement de modules via une interface "ReflectiveLoader" [1]. L'outil permet également aux opérateurs de simuler un mécanisme de backdoor/persistance utilisé dans la capacité "PortServ.sys" employée par l'acteur malveillant Duqu 2.0.
PortBender exploite la bibliothèque WinDivert pour intercepter le trafic réseau à l'aide de la plateforme de filtrage Windows (WFP). La conception de PortBender est fortement influencée par l'utilitaire DivertTCPConn qui exploite également la bibliothèque WinDivert [1].
PortBender dispose de deux modes de fonctionnement. Le premier est le « mode redirecteur » et le second est le « mode backdoor ». En « mode redirecteur », toute connexion vers un port de destination ciblé (par exemple, 445/TCP) est redirigée vers un port alternatif (par exemple, 8445/TCP). En « mode backdoor », nous ne redirigeons le trafic que si un attaquant envoie un paquet TCP spécialement formaté à un port cible (par exemple, 443/TCP). PortBender ajoute alors cette adresse IP client à une liste de clients backdoor et redirige tout le trafic vers ce port cible vers un port alternatif (par exemple, 3389/TCP). Un opérateur peut utiliser ce mécanisme pour émuler la technique de persistance utilisée par l'acteur malveillant Duqu 2.0 lors de la compromission de Kaspersky.
Pour exécuter PortBender, nous devons d'abord importer le script "PortBender.cna" dans Cobalt Strike et télécharger le binaire WinDivert32.sys ou WinDivert64.sys inclus dans "PortBender.zip" sur l'hôte cible selon l'architecture du système d'exploitation. Le menu d'aide de PortBender avec un exemple d'utilisation est présenté ci-dessous :
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
Par exemple, nous pouvons souhaiter exécuter PortBender en mode redirecteur pour effectuer une attaque de relais SMB à partir d'un système Windows compromis. Pour ce faire, nous pouvons demander à PortBender de rediriger tout le trafic vers 445/TCP vers un port alternatif 8445/TCP exécutant un service SMB attaquant. Dans cet exemple, nous exécutons la commande « PortBender redirect 445 8445 » pour y parvenir. Le résultat attendu est ci-dessous :
Dans cet exemple, nous voulons déployer le mécanisme de persistance dissimulé sur un serveur web IIS compromis exposé à Internet. Ici, nous exécutons la commande « PortBender backdoor 443 3389 praetorian.antihacker » pour demander au service backdoor de rediriger toutes les connexions vers 443/TCP vers 3389/TCP sur l'hôte compromis depuis toute adresse IP fournissant le mot-clé « praetorian.antihacker » spécifié. Le résultat attendu est présenté ci-dessous :
[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