
Utilità di reindirizzamento delle porte TCP
PortBender è un'utilità di reindirizzamento delle porte TCP che consente a un operatore red team di reindirizzare il traffico in entrata destinato a una porta TCP (es. 445/TCP) verso un'altra porta TCP (es. 8445/TCP). PortBender include uno script aggressor che gli operatori possono sfruttare per integrare lo strumento con Cobalt Strike. Tuttavia, poiché lo strumento è implementato come DLL riflessiva, può integrarsi con qualsiasi framework C2 che supporti il caricamento di moduli tramite un'interfaccia 'ReflectiveLoader' [1]. Lo strumento consente inoltre agli operatori di simulare un meccanismo di backdoor/persistenza sfruttato all'interno della funzionalità 'PortServ.sys' utilizzata dall'attore di minaccia Duqu 2.0.
PortBender sfrutta la libreria WinDivert per intercettare il traffico di rete utilizzando la piattaforma di filtro di Windows (WFP). La progettazione di PortBender è fortemente influenzata dall'utilità DivertTCPConn, anch'essa basata sulla libreria WinDivert [1].
PortBender ha due modalità operative. La prima è la 'modalità redirector', la seconda è la 'modalità backdoor'. In 'modalità redirector', qualsiasi connessione a una porta di destinazione target (es. 445/TCP) viene reindirizzata a una porta alternativa (es. 8445/TCP). In 'modalità backdoor', reindirizziamo il traffico solo se un attaccante invia un pacchetto TCP appositamente formattato a una porta target (es. 443/TCP). PortBender aggiunge quindi l'indirizzo IP del client a una lista di client backdoor e reindirizza tutto il traffico verso quella porta target a una porta alternativa (es. 3389/TCP). Un operatore può sfruttare questo meccanismo per emulare la tecnica di persistenza utilizzata dall'attore di minaccia Duqu 2.0 durante la compromissione di Kaspersky.
Per eseguire PortBender dobbiamo prima importare lo script 'PortBender.cna' in Cobalt Strike e caricare il binario WinDivert32.sys o WinDivert64.sys incluso in 'PortBender.zip' sul sistema target in base all'architettura del sistema operativo. Il menu di aiuto per PortBender con l'esempio di utilizzo è mostrato di seguito:
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
Ad esempio, potremmo voler eseguire PortBender in modalità redirector per effettuare un attacco SMB relay da un sistema Windows compromesso. Per facilitare ciò, possiamo istruire PortBender a reindirizzare tutto il traffico verso 445/TCP a una porta alternativa 8445/TCP su cui è in esecuzione un servizio SMB dell'attaccante. In questo esempio, eseguiamo il comando 'PortBender redirect 445 8445' per realizzarlo. L'output previsto è il seguente:
In questo esempio, vogliamo implementare il meccanismo di persistenza nascosta su un server web IIS compromesso esposto a Internet. Qui eseguiamo 'PortBender backdoor 443 3389 praetorian.antihacker' per istruire il servizio backdoor a reindirizzare qualsiasi connessione a 443/TCP verso 3389/TCP sul sistema compromesso da qualsiasi indirizzo IP che fornisca la parola chiave specificata 'praetorian.antihacker'. L'output previsto è mostrato di seguito: