MbrMiner: nuovo malware per SQL Server

Datamaze
22.09.20 02:00 PM Comment(s)

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:


SQL Server trojan monero miner

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.


SQL Server malware Monero install

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


Monero mbr miner unzip

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

Monero config.json

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.


MBR private static bool

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.


MBR Window 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 

  1.  Cercare di non esporre SQL Server su internet, cambiare la porta di ascolto di default o usare una VPN (se possibile).
  2. Per ogni account assicurarsi che le password siano sicure e cambiate regolarmente.
  3. Non inserire l’account service di SQL Server nel gruppo dei local admin.
  4. Non dare all'account service di SQL Server più permessi dello stretto necessario.
  5. Non abilitare funzioni dannose su SQL Server se non è richiesto (xp_cmdshell, Ole Automation Procedures, query distribuite ad hoc).
  6. Aggiornare e applicare spesso le patch alla macchina.
  7. Disabilitare l’account SA.
  8. Controllare costantemente la creazione di nuovi logins.
  9. 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

SQL Catcher monitoraggio e controllo SQL Server