lunedì 28 febbraio 2022

PowerShell: Abilitare un account disabilitato in AD

Nell'articolo PowerShell: Disabilitare un account in AD è stato mostrato come disabilitare un account in Active Directory mediante l'utilizzo del cmdlet Disable-ADAccount. In quest'articolo vedremo l'operazione opposta: come abilitare un account disabilitato. L'abilitazione viene effettuata mediante l'utilizzo del cmdlet Enable-ADAccount che consente di abilitare un account utente, computer o servizio di Active Directory.

Sintassi

Enable-ADAccount
      [-WhatIf]
      [-Confirm]
      [-AuthType <ADAuthType>]
      [-Credential <PSCredential>]
      [-Identity] <ADAccount>
      [-Partition <String>]
      [-PassThru]
      [-Server <String>]
      [<CommonParameters>]

Parametri

-AuthType 
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1
-Confirm 
Chiede conferma prima di eseguire il cmdlet.

-Credential
Specifica le credenziali dell'account utente con cui eseguire il comando. Se omesso viene considerato l'utente corrente che sta eseguendo il comando. Al parametro può essere passato il nome dell'account, come ad es. "utente01" o "Dominio\utente01" oppure può essere passato un'oggetto PSCredential generato dal cmdlet Get-Credential. Se viene specificato un'account utente verrà richiesto di inserire la password all'esecuzione del comando.

-Identity
Tale parametro specifica l'oggetto gruppo Active Directory su cui si desidera intervenire. Al parametro può essere passato un qualsiasi valore che identifica il gruppo in maniera univoca come:
Distinguished name
GUID (objectGUID)
Security identifier (objectSid)
Security Account Manager account name (SAMAccountName) 

-Partition
A tale parametro va passato il Distinguished Name (DN) di una partizione di Active Directory. Il cmdlet utilizzerà tale partizione per ricercare l'oggetto specificato dal parametro Identity.

-PassThru
Restituisce un oggetto che rappresenta l'item su cui si sta lavorando. Per impostazione predefinita, il cmdlet non genera alcun output.

-Server
Permette di specificare l'istanza di Active Directory Domain Services a cui connettersi per eseguire l'operazione.

-WhatIf
Mostra cosa accadrebbe se venisse eseguito il cmdlet. Il cmdlet non viene eseguito.


Esempi

Esempio 1
Enable-ADAccount -Identity Giovanni.Lubrano
Questo comando abilita l'account con identità SAMAccountName Giovanni.Lubrano
Abilita account in AD
FIG 1 - Abilita account in AD


Esempio 2
Enable-ADAccount -Identity "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"
Abilita l'account con DistinguishedName "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"

Esempio 3
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Utenti,OU=Direzione,DC=mycompany,DC=local" | Enable-ADAccount
Questo comando abilita tutti gli account nell'unità organizzativa "OU=Utenti,OU=Direzione,DC=mycompany,DC=local".








PowerShell: Disabilitare un account in AD

In questo articolo tratteremo il cmdlet Disable-ADAccount utilizzato disabilitare un account utente, computer o servizio di Active Directory.

Sintassi

Disable-ADAccount
       [-WhatIf]
       [-Confirm]
       [-AuthType <ADAuthType>]
       [-Credential <PSCredential>]
       [-Identity] <ADAccount>
       [-Partition <String>]
       [-PassThru]
       [-Server <String>]
       [<CommonParameters>]

Parametri

-AuthType 
Specifica il metodo di autenticazione. I valori accettati dal parametro sono:
  • Negotiate oppure 0 (default)
  • Basic oppure 1
-Confirm 
Chiede conferma prima di eseguire il cmdlet.

-Credential
Specifica le credenziali dell'account utente con cui eseguire il comando. Se omesso viene considerato l'utente corrente che sta eseguendo il comando. Al parametro può essere passato il nome dell'account, come ad es. "utente01" o "Dominio\utente01" oppure può essere passato un'oggetto PSCredential generato dal cmdlet Get-Credential. Se viene specificato un'account utente verrà richiesto di inserire la password all'esecuzione del comando.

-Identity
Tale parametro specifica l'oggetto gruppo Active Directory su cui si desidera intervenire. Al parametro può essere passato un qualsiasi valore che identifica il gruppo in maniera univoca come:
Distinguished name
GUID (objectGUID)
Security identifier (objectSid)
Security Account Manager account name (SAMAccountName) 

-Partition
A tale parametro va passato il Distinguished Name (DN) di una partizione di Active Directory. Il cmdlet utilizzerà tale partizione per ricercare l'oggetto specificato dal parametro Identity.

-PassThru
Restituisce un oggetto che rappresenta l'item su cui si sta lavorando. Per impostazione predefinita, il cmdlet non genera alcun output.

-Server
Permette di specificare l'istanza di Active Directory Domain Services a cui connettersi per eseguire l'operazione.

-WhatIf
Mostra cosa accadrebbe se venisse eseguito il cmdlet. Il cmdlet non viene eseguito.


Esempi

Esempio 1
Disable-ADAccount -Identity Giovanni.Lubrano
Questo comando disabilita l'account con identità SAMAccountName Giovanni.Lubrano
Disabilita account
FIG 1 - Disabilita account

Esempio 2
Disable-ADAccount -Identity "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"
Disabilita l'account con DistinguishedName "CN=Giovanni Lubrano Lavadera,OU=Utenti,OU=Direzione,DC=mycompany,DC=local"

Esempio 3
Get-ADUser -Filter 'Name -like "*"' -SearchBase "OU=Utenti,OU=Direzione,DC=mycompany,DC=local" | Disable-ADAccount
Questo comando disabilita tutti gli account nell'unità organizzativa "OU=Utenti,OU=Direzione,DC=mycompany,DC=local".

Account disabilitato
FIG 2 - Account disabilitato





martedì 22 febbraio 2022

PowerShell: Modificare la descrizione del computer

Nei sistemi operativi Windows è possibile aggiungere una descrizione al computer. Eseguendo il comando
Control sysdm.cpl
verrà visualizzata la finestra di dialogo Proprietà del sistema dove sarà possibile visualizzare e modificare la descrizione del computer.
Descrizione computer
FIG 1 - Descrizione computer


Nel seguente script, viene mostrato come modificare il campo Descrizione computer da PowerShell e mediante l'utilizzo della classe Win32_OperatingSystem di WMI. Lo script va lanciato in una finestra PowerShell eseguita come amministratore

 #Modifica la Descrizione del computer (Richiede privilegi di amministratore)  
 #Richiede all'utente di inserire la nuova descrizione  
 $desc = Read-Host -Prompt 'Inserisci nuova descrizione'   
   
 $values = @{  
   Description = $desc  
 }  
 #Imposta la nuova descrizione  
 Set-CimInstance -Query 'Select * from Win32_OperatingSystem' -Property $values  
   
 #legge la nuova descrizione  
 $description = Get-CimInstance -ClassName Win32_OperatingSystem |   
  Select-Object -ExpandProperty Description  
   
 #Visualizza la nuova descrizione settata  
 Write-Host "Descrizione computer: $description" -ForegroundColor Green  
Script PowerShell Descrizione computer
FIG 2 - Script PowerShell Descrizione computer

Dal seguente link è possibile scaricare il file PS1








venerdì 18 febbraio 2022

PowerShell: Disattivare la protezione in tempo reale dell'Antivirus Microsoft Defender

La protezione in tempo reale dell'antivirus è fondamentale per la sicurezza del sistema e dovrebbe essere disabilitata solo per una buona ragione. Ad esempio, in alcune occasioni, potrebbe rivelarsi utile disabilitare temporaneamente la protezione in tempo reale per eseguire script legittimi che altrimenti verrebbero bloccati.

Per disattivare la protezione in tempo reale dell'antivirus Microsoft Defender si può avviare PowerShell come amministratore ed eseguire il comando
Set-MpPreference -DisableRealtimeMonitoring $true

Per riattivare la protezione in tempo reale basta eseguire il comando sostituendo $true con $false.
Disattivazione-Attivazione protezione in tempo reale di Microsoft Defender
FIG 1 - Disattivazione-Attivazione protezione in tempo reale di Microsoft Defender





martedì 15 febbraio 2022

Ransomware: Recuperare i file cifrati dai ransomware Maze, Egregor e Sekhmet

I ransomware Maze, Sekhmet ed Egregor criptano i file della vittima usando ChaCha8 e aggiungendo un'estensione casuale. Alle vittime viene fornita una nota su come pagare il riscatto simile a quella mostrata di seguito:
 Attention!  
   
 ----------------------------  
 | What happened?  
 ----------------------------  
   
 We hacked your network and now all your files, documents, photos, databases, and other important data are safely encrypted with reliable algorithms.  
 You cannot access the files right now. But do not worry. You can get it back! It is easy to recover in a few steps.  
   
 We have also downloaded a lot of private data from your network, so in case of not contacting us as soon as possible this data will be released.  
 If you do not contact us in a 3 days we will post information about your breach on our public news website and after 7 days the whole downloaded info.  
   
 To see what happens to those who don't contact us, google:  
 * Southwire Maze Ransomware  
 * MDLab Maze Ransomware  
 * City of Pensacola Maze Ransomware  
   
 After the payment the data will be removed from our disks and decryptor will be given to you, so you can restore all your files.  
   
 ----------------------------  
 | How to contact us and get my files back?  
 ----------------------------  
   
 The only method to restore your files and be safe from data leakage is to purchase a unique for you private key which is securely stored on our servers.   
 To contact us and purchase the key you have to visit our website in a hidden TOR network.  
   
 There are general 2 ways to reach us:  
   
 1) [Recommended] Using hidden TOR network.  
   
  a) Download a special TOR browser: https://www.torproject.org/  
  b) Install the TOR Browser.  
  c) Open the TOR Browser.  
  d) Open our website in the TOR browser: http://aoacugmutagkwctu.onion/[modificato]  
  e) Follow the instructions on this page.   
   
 2) If you have any problems connecting or using TOR network  
   
  a) Open our website: https://mazedecrypt.top/[modificato]  
  b) Follow the instructions on this page.  
   
 Warning: the second (2) method can be blocked in some countries. That is why the first (1) method is recommended to use.   
   
 On this page, you will see instructions on how to make a free decryption test and how to pay.  
 Also it has a live chat with our operators and support team.  
   
 ----------------------------  
 | What about guarantees?  
 ----------------------------  
   
 We understand your stress and worry.  
 So you have a FREE opportunity to test a service by instantly decrypting for free three files from every system in your network.  
 If you have any problems our friendly support team is always here to assist you in a live chat!  
   
 P.S. Dear system administrators, do not think you can handle it by yourself. Inform leadership as soon as possible.  
 By hiding the fact of the breach you will be eventually fired and sometimes even sued.  
 -------------------------------------------------------------------------------  
 THIS IS A SPECIAL BLOCK WITH A PERSONAL AND CONFIDENTIAL INFORMATION! DO NOT TOUCH IT WE NEED IT TO IDENTIFY AND AUTHORIZE YOU  
 ---BEGIN MAZE KEY---  
 [modificato]  
 ---END MAZE KEY---  
Da quando i server del ransomware Maze sono stati spenti nell'ottobre 2020, le vittime hanno sperato nel rilascio delle chiavi di crittazione per il recupero dei dati. Il rilascio è avvenuto questa settimana, dopo quasi 14 mesi. Gli sviluppatori dei ransomware (nel 2020 il gruppo di pirati Maze si è unito ad altri gruppi criminali esperti di ransomware come Egregor), infatti, hanno rilasciato le master key dei ransomware Maze, Egregor e Sekhmet in un post sul forum di BleepingComputer.
La società di sicurezza Emsisoft ha sviluppato e rilasciato in tempi brevi un tool per la decrittazione dei file. Il tool può essere scaricato dal seguente link

Recupero dei file

  • Il tool va eseguito come amministratore. Una volta avviato bisogna accettare i termini di licenza cliccando sul pulsante "I Agree" per proseguire.
    Emsisoft Termini di licenza
    FIG 1 - Emsisoft Termini di licenza

  • Cliccare sul pulsante "Browse" e selezionare la nota di riscatto (generalmente un file di testo con il nome del tipo DECRYPT-FILES.txt) quindi cliccare su "Start".
    Emsisoft Decryptor, selezione della nota di riscatto
    FIG 2 - Emsisoft Decryptor, selezione della nota di riscatto

  • Verrà mostrato un messaggio informativo sui dettagli della crittografia recuperati dalle informazioni contenute all'interno delle note di riscatto. Cliccare su OK.
    Decryptor Key Found
    FIG 3 - Decryptor Key Found

  • La scansione e il recupero dei file cifrati viene, di default, effettuata su tutti i dischi e drive removibili connessi al sistema. Tramite il pulsante "Add folder" è possibile aggiungere nuovi percorsi o rimuoverli utilizzando i pulsanti "Remove object(s)", per eliminare quelli selezionati, o "Clear object list" per azzerare l'elenco. All'interno della scheda Options è possibile indicare se mantenere o eliminare i file cifrati una volta decrittati. Dopo aver effettuato le personalizzazioni desiderate è possibile cliccare su "Decrypt" per avviare il processo.
    Emsisoft Decryptor for MazeSehkmetEgregor
    FIG 4 - Emsisoft Decryptor for MazeSehkmetEgregor

  • Nella scheda Results verranno mostrati i progressi nel recupero dei file cifrati. Al termine del recupero è possibile salvare il log cliccando sul pulsante "Save log" oppure copiarlo negli appunti cliccando su "Copy log to clipboard".

    Emsisoft Decryptor Results
    FIG 5 - Emsisoft Decryptor Results


 


lunedì 14 febbraio 2022

PowerShell: Determinare la piattaforma su cui è in esecuzione PowerShell

PowerShell è una soluzione di automazione delle attività multipiattaforma che può essere eseguito in ambiente Windows, Linux e macOS. Se si vuole verificare la piattaforma su cui è in esecuzione PowerShell o un nostro script è possibile utilizzare le seguenti righe:
 $OSWindows = (-not (Get-Variable -Name IsWindows -ErrorAction Ignore)) -or $IsWindows  
 $OSMacOS = (Get-Variable -Name IsMacOS -ErrorAction Ignore) -and $IsMacOS  
 $OSLinux = (Get-Variable -Name IsLinux -ErrorAction Ignore) -and $IsLinux  
   
 Get-Variable -Name OS*  

Su un sistema Windows, il risultato apparirà come mostrato in FIG 1
Piattaforma su cui è in esecuzione PowerShell
FIG 1 - Piattaforma su cui è in esecuzione PowerShell





domenica 13 febbraio 2022

MS Outlook: Determinare il percorso della cartella di un'e-mail trovata nei risultati della ricerca

Ottenere il nome della cartella in cui si trova un messaggio non è molto ovvio in Outlook e ancora più difficile è determinare il percorso esatto della cartella. Nei risultati della ricerca Outlook può visualizzare il nome della cartella in cui è stata trovata l'e-mail ma se più cartelle hanno lo stesso nome o se, nel caso di un numero elevato di cartelle, non ricordiamo la sua posizione tale informazione può rivelarsi inutile.

In questo articolo verranno illustrati 2 metodi per individuare l'intero percorso della cartella contenente l'e-mail di nostro interesse.

Metodo 1
Il primo metodo consiste in un piccolo trucco che sfrutta lo strumento di ricerca avanzata:
  • Effettuare la ricerca, quindi eseguire un doppio clic sul messaggio di proprio interesse per aprirlo nella sua finestra.
  • Premere la combinazione di tasti CTRL+SHIFT+F per aprire la funzione di ricerca avanzata.
  • Nel campo "In" viene mostrato il nome della cartella che contiene l'e-mail.
    Ricerca avanzata
    FIG 1 - Ricerca avanzata

  • Cliccando sul pulsante "Sfoglia" verrà mostrata dove si trova esattamente nella gerarchia di cartelle.
    Percorso completo cartella
    FIG 2 - Percorso completo cartella


Metodo 2
Il secondo metodo prevede l'utilizzo di VBA.
  • Avviare Microsoft Visual Basic, Application Edition tramite la combinazione di tasti ALT+F11.
  • Nella visualizzazione ad albero del progetto, sul lato sinistro della finestra, selezionare ThisOutlookSession.
  • Copiare e incollare il seguente codice.
     Public Sub GetEmailFolderPath()  
      Dim obj As Object  
      Dim Msg$  
      Dim Path As Outlook.MAPIFolder  
      Set obj = Application.ActiveWindow  
      'verifica se l'e-mail è aperta in una finestra o è stata selezionata dall'elenco messaggi  
      If TypeOf obj Is Outlook.Inspector Then  
       Set obj = obj.CurrentItem  
      Else  
       Set obj = obj.Selection(1)  
      End If  
      'Recupera il path completo dell'email  
      Set Path = obj.Parent  
      Msg = "La posizione è: " & Path.FolderPath & vbCrLf & "Passare alla cartella?"  
      'Chiede se si intende accedere alla cartella contenente l'e-mail  
      If MsgBox(Msg, vbYesNo) = vbYes Then  
       'Seleziona la cartella contenente l'e-mail  
       Set Application.ActiveExplorer.CurrentFolder = Path  
      End If  
     End Sub  
       
    
  • Salvare il codice cliccando sull'apposita icona e ritornare alla finestra di Outlook.
    Microsoft Visual Basic, Application Edition
    FIG 3 - Microsoft Visual Basic, Application Edition

  • Dal menu File->Opzioni selezionare Personalizzazione barra multifunzione.
  • Nell'elenco Schede principali (sulla destra) aggiungere il segno di spunta alla voce Sviluppo e cliccare su OK.
    Attivazione scheda Sviluppo
    FIG 4 - Attivazione scheda Sviluppo

  • A questo punto effettuare la ricerca, quindi selezionare l'e-mail dall'elenco messaggi o aprirla in una nuova finestra.
  • Dalla scheda Sviluppo cliccare su Macro (o premere la combinazione ALT+F8) e selezionare la macro creata precedentemente che avrà un nome simile a Progetto1.ThisOutlookSession.GetEmailFolderPath.
    Macro GetEmailFolderPath
    FIG 5 - Macro GetEmailFolderPath

  • Verrà visualizzato il path completo dell'e-mail. Cliccando su Si, si verrà posizionati sulla cartella contenente l'email.
    Path completo e-mail
    FIG 6 - Path completo e-mail