Introduzione
DarkComet è un Remote Administration Tool (RAT), ovvero uno strumento pensato essenzialmente per l'amministrazione remota di server e client, principalmente su piattaforma Microsoft. DarkComet, in realtà, possiede una miriade di funzioni che vanno ben oltre la semplice amministrazione di sistemi. Oltre alle principali funzionalità di System e Network Monitor (processi, registro, startup, DNS, file management, network scanning and monitoring, wifi viewer, etc.), DarkComet integra al proprio interno alcuni strumenti orientati al controllo remoto che ne fanno uno dei più potenti e maturi RAT in circolazione. È ad esempio in grado di scattare foto attraverso la webcam del computer controllato, catturare schermate, intercettare conversazioni attraverso il microfono, iniettare un keylogger e molto altro. Scopo del presente articolo è quello di conoscere il funzionamento di DarkComet ed essere in grado di rimuovere il relativo trojan.
Installazione e configurazione
DarkComet, giunto alla versione 5.4.1 ("legacy") è composto da due elementi: il primo è il DarkComet Module, che è un agent da installare sull'host da controllare, mentre il DarkComet Viewer è il tool di gestione e controllo remoto vero e proprio. Poichè da questa versione in poi lo sviluppatore ha deciso di eliminare alcune funzioni "underground" che consentivano proprio la creazione del trojan da iniettare nel computer della vittima, la nostra analisi si concentrerà sulla versione 5.3, non più disponibile sul sito ufficiale ma facilmente reperibile in rete.
Come accennavamo in precedenza, la versione 5.4 scaricabile dal sito Darkcomet-rat.com, è composta da due moduli software, il Viewer cioè il "controller" e il Module, ovvero l'agent da installare sull'host da controllare. Fino alla versione 5.3 invece, DarkComet era composto da un unico software che integrava al suo interno le funzioni per la costruzione e generazione del server (il trojan) da iniettare nel computer della vittima. In Fig. 1 è visibile la schermata iniziale, con le voci di menu relative alla generazione del server.
Come dicevamo in Introduzione, DarkComet offre davvero un ampio spettro di funzioni di monitoring, accessibili dal menu principale alla voce "Client Settings". Come si vede in Fig. 2, è possibile ativare tutta una serie di funzioni che vanno dalla gestione dei privilegi alla gestione del registry o addirittura all'apertura di una shell remota sul computer della vittima e molto altro.
In Fig. 3 (img3.png, "Spy e Network Functions"), invece, sono visibili le "Spy Functions", che consentono ad esempio di catturare schermate direttamente dalla webcam della vittima o suoni dal microfono, nonchè di aprire una sessione di desktop remoto o abilitare un keylogger. Sempre nella stessa figura abbiamo le "Network Functions", che consentono di monitorare le porte in ascolto, le condivisioni, ma anche di enumerare gli altri pc della LAN, i gateway e perfino gli access point.
Generazione del server
Già dall'analisi delle funzioni di monitoring disponibili si comprendono chiaramente le potenzialità di DarkComet. Quello che però più ci interessa, ai fini dell'articolo, è il suo "lato oscuro", ovvero come sia possibile utlilizzarlo per generare un modulo server da iniettare nel computer della vittima che, una volta avviato, si porrà in ascolto per eseguire i comandi del suo "padrone".
Il primo passo della procedura, quindi, consiste nel generare un server socket che si ponga in ascolto su una determinata porta, che di default è la 1604. Per far ciò, selezioniamo dal menu principale (DarkComet RAT) la voce "Listen to new port" e confermiamo la creazione del socket, come mostrato in Fig. 4 (img4.png, "Creazione del Server Socket").
Nel caso in cui il firewall di Windows intercetti la richiesta, ovviamente consentiamo l'accesso oppure mettiamo direttamente DarkComet in white list. Dopo aver creato il socket, andiamo a verificare se è effettivamente in ascolto cliccando sulla tab "Socket / Net" e dovremmo trovarlo listato tra i socket handle in ascolto, come visibile in Fig. 5.
A questo punto, sempre dal menu principale, selezioniamo la voce "Server module" --> "Full editor (expert)" e si aprirà una nuova finestra che contiene tutte le funzioni necessarie alla generazione del server, partendo da "Main settings", visibile in Fig. 6: qui si impostano i parametri iniziali del server, compresa una password di sicurezza (opzionale) e la possibilità di bypassare eventuali firewall.
Passiamo ora alla finestra "Network settings" visibile in Fig 7, nella quale andremo ad impostare l'indirizzo IP della macchina "attacker", che può essere un IP privato o un IP pubblico (statico).
Nel caso la nostra connessione "casalinga" non abbia IP statico, possiamo utilizzare uno dei tanti servizi disponibili sul Web per ottenere un nome DNS fisso, anche al variare del nostro indirizzo IP, come ad esempio No-IP. A tal proposito, DarkComet integra al proprio interno ("Client settings" --> "No-IP Updater") direttamente la funzionalità di autoupdate di No-IP.
Accedendo alla voce "Module Shield" invece, possiamo definire quelle che sono le caratteristiche "stealth" del nostro modulo server, che gli consentiranno, unba volta installato sul computer vittima, di sparire letteralmente dal registro di Windows, dal Task Manager e da Explorer. In più è possibile disabilitare direttamente il Task Manager, l'accesso al Registry, il firewall, la notifica da parte dell'antivirus (fino a Windows XP SP2) e altro. Dopo aver impostato le funzioni che ci interessano.
Adesso, attraverso il "File Binder", andiamo a generare il file in cui andremo a "nascondere" il nostro server, ad esempio selezionando un banale file .PDF ("linee_guida.pdf"), come mostrato in Fig. 9.
Il file appena generato (e contenente il trojan) dovrà poi essere inviato alla vittima, cosa che si può fare in vari modi, ad esempio utilizzando email di phishing, tecniche di social engineering, chiavette USB o altro. A questo punto non ci resta che selezionare una bella icona "credibile" dalla sezione "Choose Icon" (è possibile scegliere anche un'icona personalizzata) e poi passare alla "Stub Finalization", in cui andremo a scegliere l'estensione del file (ad es: .exe), avendo cura di salvare il profilo che viene creato di conseguenza, dopodichè clicchiamo sul pulsante "Build the Stub" come mostrato in Fig. 10.
A questo punto il processo di generazione è concluso e il nostro server è pronto, in attesa di essere inviato alla vittima, che dovrà solo aprirlo per restare infettata dal trojan. A quel punto, grazie alle opzioni "stealth" che abbiamo selezionato durante la fase di generazione, il file contenente il trojan sparirà letteralmente dalla circolazione e non sarà più possibile ritrovarlo se non attraverso tool specifici che poi vedremo. Una volta infettato il PC della vittima, cliccando sulla tab "Users" di DarkComet apparirà la nostra vittima, come mostrato in Fig. 11 e a quel punto avremo solo l'imbarazzo della scelta nel decidere quali funzioni utilizzare per il controllo remoto del suo pc.
Come prima cosa dobbiamo aprire il "Control Center" cliccando con il tasto destro sull'icona dell'utente che vogliamo "controllare". Ad esempio, in Fig. 12, abbiamo aperto una shell remota sul PC della vittima, che ci consente di fare tutto quello che vogliamo, oppure possiamo catturare schermate attraverso la webcam, attivare il keylogger catturando credenziali di accesso, cercare password salvate nel pc della vittima e molto altro ancora.
Un'ultima osservazione riguarda la necessità di dover disattivare il firewall sulla macchina attacker e riavviare DarkComet, altrimenti non vedremo gli utenti compromessi: a disattivare invece il firewall della macchina vittima ci pensa il trojan stesso, come abbiamo visto.
Contromisure
Come difendersi da DarkComet e come individuarlo ad infezione avvenuta? Il problema di DC è che se il modulo server è fatto bene, una volta installatosi, sfugge alla maggior parte degli antivirus. Qualche controllo però si può fare una volta scaricato l'allegato, che solitamente è un PDF. In sostanza DarkComet, come altri malware, utilizza la tecnica denominata Right-to-Left-Override (RLO) al fine di cercare di mascherare il vero file type del PDF trojanizzato. Tale tecnica consiste nell'aggiungere un particolare carattere Unicode (U+202e) al nome file. Dopo tale carattere, il testo successivo apparirà in ordine inverso (da destra verso sinistra): ad esempio se il carattere speciale viene piazzato davanti alla lettera "f" di fdp.scr" il nome file risultante sarà "rcs.pdf".
Questo meccanismo risulta efficace però solo da Windows 7 in poi, mentre Windows XP non interpreta la tecnica RLO, per cui il file sotto XP appare nella sua vera natura.
In ogni caso, su qualsiasi versione di Windows sono comunque visibili le descrizioni del tipo file (le c.d. "Windows tiles"), che mostrano la vera natura del file, in questo caso screen saver (SCR) e quindi eseguibile.
Un altro controllo possibile è quello di verificare le porte TCP aperte. Il comando da dare al prompt dei comandi di Windows è il seguente:
netstat -nao
Poichè DC apre un socket sulla porta TCP 778, nei risultati del netstat troveremo qualcosa del tipo:
TCP 192.168.1.3:1058 x.y.z.12:778 SYN_SENT 1688
Un ultimo controllo è sui processi ma, come si diceva prima, bisogna che chi ha generato il server non abbia impostato l'opzione per nascondere il relativo processo dal task manager. In ogni caso, la caratteristica è un processo del tipo "svchost" con la "H" maiuscola invece della minuscola, quindi: svcHost.
In ogni caso, se il vostro pc si comporta stranamente (non riuscite ad aprire il task manager, rallenta, non riuscite a far partire il firewall, etc.), effettuate una scansione con DarkComet RAT Remover della PhrozenSoft, scaricabile qui