Visualizzazione post con etichetta task manager. Mostra tutti i post
Visualizzazione post con etichetta task manager. Mostra tutti i post

mercoledì 22 marzo 2017

Windows: Session Hijacking utilizzando un account locale con i permessi di sistema

Alexander Korznikov, un ricercatore di sicurezza israeliano, ha di recente dimostrato come un account locale con elevati privilegi può eseguire l'hijacking delle sessioni di qualsiasi utente Windows loggato sulla postazione, persino di utenti con privilegi superiori o account di dominio.
In quest'articolo mostrerò quanto scoperto da Korznikov e vedremo come un account locale di Windows, con i permessi di sistema, può prendere il controllo di altre sessioni utente attive sulla postazione senza conoscerne la password.

ATTENZIONE:
Danneggiare o violare un sistema informatico (anche da remoto) rappresenta un reato penale. Le informazioni presenti in quest'articolo vanno utilizzate solo per testare/verificare sistemi di cui si è titolari. Declino ogni responsabilità civile e penale derivante da un utilizzo non legale delle informazioni presentate in questo articolo a solo scopo didattico.

La procedura  può essere eseguita sia utilizzando il Task Manager sia utilizzando Remote Desktop Protocol (RDP) tramite TSCON. In entrambi i casi è necessario procurarsi PSEXEC. L'utility può essere scaricata sia singolarmente da QUI sia come parte integrante della Sysinternals Suite.

Supponiamo che l'utente abbia bloccato il computer con la sua utenza (ad es. utilizzando la combinazione WIN+L o premendo CTRL+ALT+CANC e selezionando Blocca) e si sia allontanato dalla postazione. Possiamo prendere il controllo della sessione utente bloccata utilizzando uno dei seguenti metodi.



Metodo 1: Prendere il controllo della sessione dell'account vittima tramite il Task Manager

  • Eseguire il logon con altro utente, amministratore locale della workstation.
    Eseguire logon con altro account amministratore locale
    FIG 1 - Eseguire logon con altro account amministratore locale
  • Avviare il Task Manager/Gestione attività e selezionare la scheda Utenti. Nella colonna ID prendere nota dell ID relativo all'account amministratore locale (in FIG 2 l'ID corrisponde ad 8).
    Gestione attività, ID sessione utente amministratore locale
    FIG 2 - Gestione attività, ID sessione utente amministratore locale
  • Avviare il prompt dei comandi come amministratore.
  • Accedere alla cartella contenente PSEXEC e utilizzarlo per lanciare il Task Manager con l'utenza System tramite il seguente comando
    psexec -s \\localhost -i 8 taskmgr
    dove 8 rappresenta l'ID recuperato nei passi precedenti. Cliccare sul pulsante Agree all'eventuale visualizzazione del messaggio relativo alle condizioni di licenza di PSEXEC.

    Avvio del Task Manager con l'utenza System tramite PSEXEC
    FIG 3 - Avvio del Task Manager con l'utenza System tramite PSEXEC
  • Nella nuova finestra del Task Manager selezionare nuovamente la scheda Utenti, cliccare con il tasto destro del mouse sulla sessione della vittima di cui si vuole prendere il controllo e selezionare Connetti. A questo punto ci ritroveremo all'interno della sessione della vittima.

    Connetti alla sessione della vittima tramite Task Manager/Gestione attività
    FIG 4 - Connetti alla sessione della vittima tramite Task Manager/Gestione attività

Metodo 2: Prendere il controllo della sessione dell'account vittima tramite TSCON

  • Aprire il prompt dei comandi come amministratore.
  • Spostarsi nella cartella contenente PSEXEC  e utilizzarlo per aprire un prompt dei comandi con l'account System eseguendo
    psexec -s \\localhost cmd
  • Per conoscere con quale utenza si sta lavorando eseguire il comando
    whoami
    Assicurarsi che in risposta si riceva nt authority\system.
  • Digitare ed eseguire il comando
    query user
    e prendere nota dell'ID relativo alla sessione della vittima (In FIG 5 l'ID della vittima corrisponde a 9).

    Recuperare l'ID della sessione della vittima
    FIG 5 - Recuperare l'ID della sessione della vittima
  • Connettersi alla sessione della vittima eseguendo
    tscon 9 /dest:console
    dove 9 rappresenta l'ID della sessione verificata nel passo precedente. 

I metodi sopra descritti funzionano con tutte le versioni di Windows comprese le versioni Server.




lunedì 8 giugno 2015

Windows Quick Tip: Elenco stampabile dei processi attivi

Per visualizzare i processi in esecuzione su un computer dotato di Windows basta eseguire, ad es. tramite la combinazione di tasti CTRL+SHIFT+ESC, Gestione Attività (Task Manager nei sistemi Windows XP e antecedenti)  e selezionare la scheda Processi (In Windows 8 e 8.1 è possibile selezionare la scheda Dettagli). Purtroppo il tool non permette facilmente di salvare l'elenco o di stamparlo. Per questo tipo di operazione possiamo affidarci al Prompt dei comandi o alla console avanzata PowerShell.


Gestione attività
FIG 1 - Gestione Attività

Prompt dei comandi
  • Avviare il prompt dei comandi: WIN+R e digitare cmd seguito da invio. 
  • Digitare il seguente comando seguito da invio per visualizzare l'elenco dei processi in esecuzione
    tasklist
  • Se i processi attivi sono numerosi e vogliamo visualizzarli in più pagine, il comando da eseguire è
    tasklist |more
  • Se intendiamo salvare l'elenco dei processi all'interno degli appunti (clipboard)
    tasklist |clip
  • Se, invece, vogliamo salvare l'output del comando in un file di testo
    tasklist > c:\processi.txt 

    in questo modo l'elenco dei processi in esecuzioni sarà salvato nel file processi.txt presente in c:\ e possiamo stamparlo facilmente.

PowerShell
  • Avviare PowerShell: WIN+R e digitare powershell seguito da invio
  • Per visualizzare l'elenco dei processi digitare il seguente comando e premere invio per eseguirlo 
    get-process
  • Per dirottare l'output del comando in un file di testo possiamo eseguire il comando
    get-process |out-file "c:\processi.txt"