MbrMiner è il nome dato dal Security Team di Tencent al nuovo malware che colpisce le macchine adibite a SQL Server esposte in rete. Un gruppo di hacker ha creato questo programma malevolo con lo scopo di utilizzare la potenza delle macchine SQL Server per minare cryptovalute, in particolare Monero (XMR).
Come funziona
I malintenzionati cercano macchine SQL Server esposte in internet e cominciano a provare diverse password per cercare di entrare nell'account amministratore, utilizzando in sostanza un meccanismo di tipo bruteforce.
Qualora la password di amministrazione fosse debole, il tentativo di login ha successo e grazie ad un oneliner in powershell ha inizio il processo di infezione della macchina.
Prima di tutto viene scaricato nella macchina vittima un file chiamato “assm.exe” e viene nascosto tra i files di SqlManagement:
C:/Program Files/Microsoft sql server/mssql**.mssqlserver/mssql/data/sqlmanagement/assm.exe
C:/Windows/temp/slqmanagement/assm.exe
Assm.exe è scritto in C# e possiamo quindi analizzarlo e scompattarlo senza problemi utilizzando .NET Reflector.
Inizialmente il programma controlla che non vi siano altri Miners ed in caso contrario ne forza lo spegnimento:

A questo punto procede a contattare un server all’indirizzo vihansoft.ir alla porta 3341 dove prenderà le istruzioni per scaricare l’effettivo Miner per Monero.

Contattato vihansoft.ir si procede al download di SqlServer.dll (contenente il Trojan) dal server mrbfile.xyz. Il tutto rigorosamente fatto tramite zip file.

Il Trojan viene poi scompattato ed eseguito.
Mentre è in esecuzione, il processo ha un nome comune tra i processi windows:
Microsoft Media Service.exe
Microsoft Agent System.exe
WindowsSecurityService.exe
WindowsAgentService.exe
WindowsHostService.exe
Windows Desktop Service.exe
Windows Host Management.exe
Windows Update Service.exe
SecurityService.exe
InstallWindowsHost.exe
SystemManagement.exe

Una volta in esecuzione, il programma analizza la configurazione della macchina corrente, contando il numero di CPU che possiede, e le collega singolarmente a differenti porte interne a cui si allaccia il Miner di Monero.
Per fare in modo che rimanga nascosto durante un controllo di routine è stata implementata al suo interno una funzione che ferma il processo di mining e pulisce i files incriminati quando Task Manager viene aperto.

Per creare una persistenza, anche qualora si decidesse di eliminare direttamente i files, il processo scarica due ulteriori installer chiamati installservice.exe e PowerShellInstaller.exe che scaricano a loro volta (in caso di necessità) il Trojan Miner di Monero. Anche i registri vengono modificati e viene aggiunta una voce con il nome Windows Host Service.

Infine, viene creato un account Windows con il nome di Default e con password @fg125kjnhn987 che verrà utilizzato per passaggio di informazioni tra gli attaccanti e la macchina vittima.
Come controllare se si è vittima di MbrMiner
Si può controllare velocemente la presenza dell’account “firma” di MbrMiner con una query da SQL Server:
SELECT [name] ,[type_desc] ,is_disabled ,create_date ,modify_date FROM sys.server_principals WHERE [name] = 'Default'
In caso vi sia presente un account denominato Default bisogna controllare se recentemente la password non sia stata cambiata in @fg125kjnhn987 e revisionare i logins recentemente aggiornati recuperabili con la seguente query:
SELECT [name] ,[type_desc] ,is_disabled ,create_date ,modify_date FROM sys.server_principals ORDER BY modify_date DESC
Come evitare di cadere vittima di questi attacchi
- Cercare di non esporre SQL Server su internet, cambiare la porta di ascolto di default o usare una VPN (se possibile).
- Per ogni account assicurarsi che le password siano sicure e cambiate regolarmente.
- Non inserire l’account service di SQL Server nel gruppo dei local admin.
- Non dare all'account service di SQL Server più permessi dello stretto necessario.
- Non abilitare funzioni dannose su SQL Server se non è richiesto (xp_cmdshell, Ole Automation Procedures, query distribuite ad hoc).
- Aggiornare e applicare spesso le patch alla macchina.
- Disabilitare l’account SA.
- Controllare costantemente la creazione di nuovi logins.
- Controllare spike di risorse utilizzate da SQL Server.
Monitorare l'istanza SQL Server
Oltre ad applicare i controlli e le precauzioni che abbiamo visto per evitare MbrMiner, è buona prassi, in generale, mantenere costantemente monitorata l’istanza SQL Server e l’intera macchina. In questo modo potremo evitare che segnali di allarme passino inosservati ed impedire così la proliferazione di programmi maligni.
di Matteo Lucato, pubblicato il 22 settembre 2020