
HVNC per Cobalt Strike
Hidden Desktop (spesso chiamato HVNC) è uno strumento che consente agli operatori di interagire con una sessione desktop remota senza che l'utente lo sappia. Il protocollo VNC non è coinvolto, ma il risultato è un'esperienza simile. Questa implementazione BOF per Cobalt Strike è stata creata come alternativa a TinyNuke/forks scritti in C++.
Ci sono quattro componenti di Hidden Desktop:
Inizializzatore BOF: piccolo programma responsabile dell'iniezione del codice HVNC nel processo Beacon.
Shellcode HVNC: implementazione PIC di TinyNuke HVNC.
Server e interfaccia operatore: server che ascolta le connessioni dallo shellcode HVNC e un'interfaccia che permette all'operatore di interagire con il desktop remoto. Attualmente supporta solo Windows.
BOF per lanciare applicazioni: insieme di Beacon Object Files che eseguono applicazioni nel nuovo desktop.
Scarica l'ultima release o compila da te usando make. Avvia il server HVNC su una macchina Windows accessibile dal teamserver. Poi puoi eseguire il client con:
HiddenDesktop <server> <port>
Dovresti vedere una nuova finestra vuota sulla macchina server. Il BOF non esegue alcuna applicazione per impostazione predefinita. Puoi usare i BOF per lanciare applicazioni per eseguire programmi comuni sul nuovo desktop:
hd-launch-edge
hd-launch-explorer
hd-launch-run
hd-launch-cmd
hd-launch-chrome
Puoi anche avviare programmi tramite Esplora File usando mouse e tastiera. Altre applicazioni possono essere eseguite usando il seguente comando:
hd-launch <command> [args]
https://github.com/WKL-Sec/HiddenDesktop/assets/9327972/82f73393-ba44-42b4-8eae-b36b7181fac0
rportfwd. Gli aggiornamenti di stato vengono inviati a Beacon tramite una named pipe.InputHandler nello shellcode HVNC. Usa BeaconInjectProcess per eseguire lo shellcode, il che significa che il comportamento può essere personalizzato in un profilo Malleable C2 o con BOF di process injection. Potresti modificare Hidden Desktop per indirizzare processi remoti, ma questo non è attualmente supportato. Ciò viene fatto in modo che il BOF possa terminare e lo shellcode HVNC possa continuare a essere eseguito.InputHandler crea una nuova named pipe a cui Beacon si connette. Una volta stabilita la connessione, il desktop specificato viene aperto (OpenDesktopA) o creato (CreateDesktopA). Viene stabilita una nuova socket tramite un reverse port forward (rportfwd) verso il server HVNC. Il gestore di input crea un nuovo thread per la funzione DesktopHandler descritta di seguito. Questo thread riceverà input da mouse e tastiera dal server HVNC e li inoltrerà al desktop.Il BOF HiddenDesktop è stato testato usando example.profile sulle seguenti versioni/architetture Windows:
DesktopHandler