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




venerdì 11 febbraio 2022

Windows 10: Tracciare gli accessi al FileSystem

In questo articolo verrà mostrato come tracciare gli accessi al FileSystem sul PC riprendendo quanto già visto negli articoli Windows 10: Visualizzare i tentativi di accesso al sistemaWindows 10: Verificare operazioni eseguite sugli account e cancellazione registri eventi  e Windows 10: Visualizzare i processi eseguiti da un utente sul PC.
Prima di procedere bisogna attivare l'audit (si veda l'articolo Windows 10: Attivazione audit) e, dato il numero elevato di eventi da tracciare, incrementare le dimensioni del registro eventi come indicato nell'articolo Windows 10: Aumentare la dimensione dei registri eventi.

Attivare l'audit su una cartella

Supponiamo di voler tracciare le operazioni che vengono eseguite su una cartella, ad es. C:\Test:
  • Cliccare, con il tasto destro del mouse, sulla cartella e selezionare, dal menu contestuale, la voce Proprietà.
  • Selezionare la scheda Sicurezza quindi cliccare su Avanzate.
    Proprietà cartella
    FIG 1 - Proprietà cartella

  • Selezionare la scheda Controllo quindi cliccare su Continua.
    Impostazioni avanzate di sicurezza
    FIG 2 - Impostazioni avanzate di sicurezza

  • A questo punto la finestra apparirà come in FIG 3 e saremo pronti a configurare l'audit sulla cartella. Windows consente di tracciare le operazioni eseguite da un singolo utente o da tutti gli utenti appartenenti ad un determinato gruppo. In questo articolo andremo a monitorare tutte le operazioni eseguite dagli utenti che appartengono ai gruppi Users e Administrators. Cliccare sul pulsante Aggiungi.
    Impostazioni avanzate di sicurezza, Voci di controllo
    FIG 3 - Impostazioni avanzate di sicurezza, Voci di controllo

  • Cliccare sul link Seleziona un'entità.
    Voci di controllo
    FIG 3 - Voci di controllo

  • Nella casella Immettere il nome dell'oggetto da selezionare, digitare users, cliccare sul pulsante Controlla nomi quindi confermare la scelta cliccando su OK.
    Seleziona Utente o Gruppo
    FIG 4 - Seleziona Utente o Gruppo

  • Una volta tornati alla finestra per l’impostazione dell’audit, selezionare la caselle di controllo relative alle attività che si intendono monitorare (Lettura ed esecuzione, Visualizzazione contenuto cartella, Lettura, Scrittura) e cliccare su OK per ritornare alla finestra principale dell'audit.
    Voci di controllo, Autorizzazioni di base
    FIG 5 - Voci di controllo, Autorizzazioni di base

  • Ripetere le stesse operazioni per il gruppo Administrators.
  • Ci ritroveremo in una situazione analoga a quella mostrata in FIG 6. Cliccare su OK per confermare le operazioni e chiudere la finestra Proprietà.
    Impostazioni avanzate di sicurezza
    FIG 6 - Impostazioni avanzate di sicurezza




Verifica operazioni eseguite su file o cartella (Evento ID 4656)

Per generare qualche evento da analizzare, eseguire qualche operazione all'interno della cartella come la creazione di un nuovo file di testo e la copia ed esecuzione di un file batch.
  • Avviare il Visualizzatore eventi (WIN+R e digitare eventvwr.msc seguito da invio).
  • Nel riquadro sinistro espandere Registri di Windows e selezionare il registro Sicurezza. Cliccare su Filtro registro corrente.
    Visualizzatore eventi
    FIG 7 - Visualizzatore eventi

  • L'evento che ci interessa è quello con ID 4656: È stato richiesto l'handle di un oggetto. L'evento viene generato ogniqualvolta un utente prova ad accedere a una risorsa (come un file oppure una directory) sottoposta ad audit. Nella casella contrassegnata dall'etichetta <Tutti gli ID evento> digitare l'ID 4656 e cliccare su OK.
    Filtro registro corrente
    FIG 8 - Filtro registro corrente

  • Se il numero dei risultati è elevato possiamo affinare ulteriormente la ricerca. Cliccare sul tasto Trova presente sul pannello destro della finestra. Inserire, nell'apposita casella, il nome della cartella (C:\Test) che si desidera controllare e cliccare su OK.
    Registro eventi, Trova
    FIG 9 - Registro eventi, Trova

  • L'evento contiene diverse informazioni suddivise per sezioni:
    Soggetto. Contiene informazioni relative all'utente che ha provato ad eseguire l'accesso. Tra i dati forniti in questa sezione troviamo ID Sicurezza, Nome Account, Dominio Account e l'ID accesso, un identificativo numerico che non viene ripetuto fino al successivo riavvio della macchina e che identifica la sessione di logon dell'utente consentendo di ricostruirne l'attività.
    Oggetto. Identifica l'oggetto del tentativo di accesso. In questa sezione vengono illustrati i campi Server dell'oggetto, il Tipo di oggetto, il Nome oggetto e il campo ID handle, un valore numerico che, come il campo ID accesso, non è ripetibile fino al successivo riavvio del sistema e che può essere utilizzato per ricostruire tutte le attività eseguite sull'oggetto nel corso di una sessione di lavoro.
    Informazioni sul processo. Identifica il processo/programma che ha effettuato, per conto dell'utente, l'accesso alla risorsa sotto audit. Viene indicato il Nome processo e l'ID processo.
    Informazioni di richiesta di accesso. In questa sezione vengono fornite informazioni aggiuntive sulla richiesta d'accesso tra cui l'ID transazione e il campo Accessi in cui vengono mostrati i permessi richiesti.
    Proprietà evento
    FIG 10 - Proprietà evento


Dalle proprietà dell'evento mostrato in FIG 11 si evince che il file c:\test\Nuovo documento di testo.txt è stato eliminato, attraverso il processo explorer.exe, dall'utente Virtual.
Evento ID 4656, File eliminato
FIG 11 - Evento ID 4656, File eliminato


L'evento mostrato in FIG 12 indica che il file batch C:\Test\fileBatch.bat è stato letto dal processo cmd.exe eseguito su richiesta dell'utente Virtual.
Evento ID 4656, File batch
FIG 12 - Evento ID 4656, File batch


Ricerca degli eventi tramite PowerShell

Vediamo come ricercare gli eventi all'interno del registro utilizzando PowerShell. Prendiamo come esempio l'evento mostrato in FIG 13 relativo ad un operazione eseguita all'interno della cartella C:\Test. L'evento ha come Handle ID 0x2fc8
Evento ID 4656, handle ID 0x2fc8
FIG 13 - Evento ID 4656, handle ID 0x2fc8

Possiamo effetture la ricera per l'Handle ID tramite il comando PowerShell
Get-WinEvent -FilterHashtable @{LogName='Security';data='0x2fc8'}| Format-List
PowerShell, Ricerca evento tramite Handle ID
FIG 14 - PowerShell, Ricerca evento tramite Handle ID

Ricostruire tutte le attività compiute su un oggetto o da un determinato utente  nell’ambito di una sessione di lavoro è complesso e leggere i risultati delle interrogazioni effettuate tramite PowerShell non è l'ideale.


Ricercare gli eventi tramite XPath

Per ricercare maggiori informazioni possiamo eseguire una query in formato XPath:
  • Da Visualizzatore eventi cliccare su Filtro registro corrente e nella casella <Tutti gli ID evento> digitare nuovamente l'ID 4656
  • Spostarsi sulla scheda XML. Verrà visualizzata la query XPath con i criteri di filtro inseriti. Per modificare la query manualmente selezionare la casella Modifica query manualmente e rispondere affermativamente alla successiva finestra di dialogo.
  • Modificare il contenuto della query come indicato di seguito sostituendo a 0x2c30 l'handle ID da ricercare.
    <QueryList>
      <Query Id="0" Path="Security">
        <Select Path="Security">*[System[(EventID>0)]]and *[EventData[Data[@Name='HandleId']='0x2c30']]
        </Select>
      </Query>
    </QueryList>
  • Cliccando su OK verrà eseguita la query con le condizioni specificate.
    Query XPath
    FIG 15 - Query XPath
  • Dai risultati della query notiamo, oltre all'evento con ID 4656, anche nuovi eventi non osservati in precedenza con i seguenti ID:
    4663 "Tentativo di accedere a un oggetto." che viene generato quando il processo o gli utenti individuati dall'evento ID 4656 accedono all'oggetto.
    4658 "L' handle di un oggetto è stato chiuso." che viene generato quando il processo o gli utenti individuati dall'evento ID 4656 hanno terminato di utilizzare l'oggetto.
    Risultato query XPath
    FIG 16 - Risultato query XPath

  • Per verificare le operazioni eseguite dall'utente possiamo modificare la query come indicato di seguito (sostituendo Virtual con il nome dell'utente da verificare)
    <QueryList>
      <Query Id="0" Path="Security">
        <Select Path="Security">*[System[(EventID>0)]]and *[EventData[Data[@Name='SubjectUserName']='Virtual']]
    	</Select>
      </Query>
    </QueryList>
  • Se vogliamo focalizzare la nostra attenzione sull'utente e sulle operazioni eseguite mediante Esplora file possiamo affinare la query in questo modo
    <QueryList>
      <Query Id="0" Path="Security">
        <Select Path="Security">*[System[(EventID>0)]]and*[EventData[Data[@Name='SubjectUserName']='Virtual']]and
    	*[EventData[Data[@Name='ProcessName']='C:\Windows\explorer.exe']]
    	</Select>
      </Query>
    </QueryList>
  • Per visualizzare le operazioni eseguite da un particolare utente su un determinato file utilizzando Esplora file, la query da utilizzare sarà simile alla seguente
    <QueryList>
      <Query Id="0" Path="Security">
    	<Select Path="Security">
    	*[System[(EventID>0)]]and*[EventData[Data[@Name='SubjectUserName']='Virtual']]and
    	*[EventData[Data[@Name='ProcessName']='C:\Windows\explorer.exe']]and
    	*[EventData[Data[@Name='ObjectName']='C:\Test\FilePassword.txt']]
    	</Select>
      </Query>
    </QueryList>





giovedì 10 febbraio 2022

PowerShell: Visualizzare l'intestazione HTTP di un sito web

Quando si naviga su un sito web il browser riceve diverse meta informazioni all'interno dell'intestazione HTTP che normalmente non vengono visualizzate all'utente. 
Per visualizzare le informazioni dell'intestazione HTTP di un sito web è possibile utilizzare il cmdlet PowerShell Invoke-WebRequest e passare al parametro -Method il valore "Head" per ottenere le informazioni dell'intestazione invece del contenuto della pagina web. Il codice da utilizzare sarà simile a questo
 # In URL inserire il sito di cui si intende visualizzare l'header HTTP  
 $url = 'www.google.com'  
 (Invoke-WebRequest -Method Head -Uri $url -UseBasicParsing).RawContent  

L'output sarà simile a quello mostrato in FIG 1.
Header HTTP
FIG 1 - Header HTTP

Le informazioni contenute nelle intestazioni HTTP restituite dalle pagine web possono variare di molto. Nell'intestazione sono presenti istruzioni inviate al browser ed è possibile verificare se la pagina web istruisce il browser ad impostare nuovi cookie.

Per visualizzare le informazioni in forma tabellare basta sostituire semplicemente RawContent con Headers all'interno del comando.
 # In URL inserire il sito di cui si intende visualizzare l'header HTTP  
 $url = 'www.google.com'  
 (Invoke-WebRequest -Method Head -Uri $url -UseBasicParsing).Headers  
L'output, in questo caso, sarà simile a come mostrato in FIG 2.
Header HTTP in formato tabella
FIG 2 - Header HTTP in formato tabella






mercoledì 9 febbraio 2022

Kali Linux: Installare TeamViewer

TeamViewer è una delle piattaforme per l'accesso ed il supporto remoto più note e utilizzate. In questo breve tutorial verrà mostrato come installarlo su Kali Linux.

Per l'installazione è possibile scaricare manualmente il pacchetto Debian (.deb) dal sito www.teamviewer.com oppure, come vedremo di seguito, installarlo tramite il repository APT di TeamViewer dopo averlo aggiunto a Kali Linux. 

Il primo passo consiste nell'aggiungere il repository di TemaViewer a Kali Linux e per farlo basta eseguire il seguente comando da Terminale
echo "deb http://linux.teamviewer.com/deb stable main" | sudo tee /etc/apt/sources.list.d/teamviewer.list

Aggiornare l'elenco dei pacchetti con il comando
sudo apt update
Configurazione repository TeamViewer e aggiornamento elenco pacchetti
FIG 1 - Configurazione repository TeamViewer e aggiornamento elenco pacchetti


Installare la chiave GPG di TeamViewer
sudo apt -y install gpg ca-certificates
wget -O - https://download.teamviewer.com/download/linux/signature/TeamViewer2017.asc | sudo apt-key add -
Chiave GPG
FIG 2 - Chiave GPG


Lanciare l'installazione di TeamViewer
sudo apt update
sudo apt install teamviewer
Avvio installazione TeamViewer
FIG 3 - Avvio installazione TeamViewer

Ricercare TeamViewer utilizzando l'apposita funzione di Desktop Launcher e avviarlo oppure eseguire il comando teamviewer da Terminale
Avvio TeamViewer
FIG 4 - Avvio TeamViewer

Accettare l'EULA e cliccare su Continue.
EULA
FIG 5 - EULA

Ci ritroveremo dinanzi ad una finestra come quella mostrata in FIG 6.
TeamViewer
FIG 6 - TeamViewer