PsExec: cos'è e come usarlo

Sommario:

PsExec: cos'è e come usarlo
PsExec: cos'è e come usarlo
Anonim

PsExec è uno strumento portatile di Microsoft che ti consente di eseguire processi in remoto utilizzando le credenziali di qualsiasi utente. È un po' come un programma di accesso remoto, ma invece di controllare il computer con un mouse, i comandi vengono inviati tramite il prompt dei comandi.

Puoi usare PsExec non solo per gestire i processi sul computer remoto, ma anche per reindirizzare l'output della console di un'applicazione al tuo computer locale, facendo sembrare che il processo sia in esecuzione localmente.

Non è necessario alcun software sul computer remoto per far funzionare PsExec, ma ci sono alcune cose da tenere a mente se lo strumento non funziona correttamente la prima volta che lo provi.

Come configurare PsExec

Se PsExec è portatile e non ha bisogno di essere copiato sul computer remoto, di che tipo di configurazione ha davvero bisogno?

Lo strumento funziona solo in determinate condizioni. Vale a dire, quando la condivisione di file e stampanti è abilitata sia sul computer locale che su quello remoto e quando la macchina remota ha la condivisione $admin impostata correttamente per fornire l'accesso alla sua cartella \Windows\.

Puoi ricontrollare che la condivisione di file e stampe sia abilitata guardando nelle impostazioni di Windows Firewall:

  1. Inserisci firewall.cpl nella finestra di dialogo Esegui. Un modo per aprire Run è attraverso la scorciatoia da tastiera WIN+R.
  2. Seleziona Consenti un'app o una funzionalità tramite Windows Firewall dal lato sinistro della finestra.

    Image
    Image

    Questo potrebbe essere interpretato come Consenti un'app o una funzionalità tramite Windows Defender Firewall a seconda di come è configurato il tuo computer, ma è la stessa opzione.

  3. Assicurati che Condivisione di file e stampanti abbia un segno di spunta nella casella Privato alla sua destra. In caso contrario, spunta quella casella e seleziona OK.

    Image
    Image

    Se non puoi modificare le impostazioni del firewall perché sono disattivate, seleziona Modifica impostazioni nella parte superiore della finestra.

  4. Ora puoi uscire da qualsiasi impostazione di Windows Firewall aperta.

Con Windows Firewall ora configurato correttamente per PsExec, non dovresti avere problemi ad accedere alla condivisione $admin sul computer remoto, a condizione che siano veritieri:

  • Entrambi i computer appartengono allo stesso gruppo di lavoro
  • Conosci la password di un account amministratore sul computer remoto

Vedi questo tutorial su Wintips.org se hai bisogno di aiuto per fare queste cose o se le hai fatte correttamente ma in seguito, dopo aver provato a usare PsExec come descritto di seguito, ottieni un errore "accesso negato".

Come usare PsExec

Prima di utilizzare PsExec per eseguire comandi remoti, devi scaricare il programma e posizionare il prompt dei comandi in modo da poter utilizzare correttamente lo strumento.

Scarica e aprilo

  1. Scarica PsExec sul computer che eseguirà i comandi remoti. È disponibile gratuitamente da Microsoft su Sysinternals come parte di PsTools.

  2. Estrai i file dal download di PsTools.zip. Puoi farlo facendo clic con il pulsante destro del mouse sul file ZIP e selezionando Estrai tutto. Funzionerà anche qualsiasi estrattore di file di terze parti.

    Image
    Image
  3. Apri la cartella in cui si trovano i file estratti e dalla barra di navigazione nella parte superiore della cartella, cancella ciò che c'è e inserisci cmd.

    Image
    Image

    Un altro modo per farlo, almeno in alcune versioni di Windows, è Maiusc+clic destro uno spazio vuoto nella cartella PsTools e scegliere Apri finestra di comando qui.

    Questo aprirà il prompt dei comandi in quella cartella in modo da poter eseguire comandi tramite PsExec.

    Image
    Image
  4. Con il prompt dei comandi ora aperto nella cartella che contiene PsExec.exe, puoi iniziare a inserire i comandi sul computer remoto.

Capire la sintassi

Proprio come qualsiasi strumento da riga di comando, PsExec funziona solo quando la sua sintassi viene seguita esattamente. Una volta compreso come digitare i comandi nel modo in cui lo strumento li comprende, puoi controllare il programma da qualsiasi prompt dei comandi.

Ecco come devono essere inseriti i comandi di PsExec:

psexec [ computer [, computer2 [, …] | @file\][- u nome utente [- p password][- n s][- r nomeservizio][- h][- l][- s |- e][- x][- i[sessione][-c eseguibile [-f |-v ][-w directory][- d][- ][- a n, n, …] cmd [argomenti]

Può sembrare complesso e confuso, ma non preoccuparti! Ci sono alcuni esempi in fondo a questa pagina che puoi usare per esercitarti.

La sintassi sopra viene utilizzata per eseguire uno dei seguenti argomenti del comando PsExec:

Opzioni comando PsExec
Parametro Spiegazione
- a Processori separati su cui l'applicazione può essere eseguita, con virgole, dove 1 è la CPU con il numero più basso. Ad esempio, per eseguire l'applicazione su CPU 2 e CPU 4, immettere: - a 2, 4
- c Copia l'eseguibile specificato sul sistema remoto per l'esecuzione. Se omessa, l'applicazione deve trovarsi nel percorso di sistema sul sistema remoto.
- d Non aspettare che il processo termini (non interattivo).
- e Non carica il profilo dell'account specificato.
- fa Copia il programma specificato anche se il file esiste già sul sistema remoto.
- i Esegui il programma in modo che interagisca con il desktop della sessione specificata sul sistema remoto. Se non viene specificata alcuna sessione, il processo viene eseguito nella sessione della console.
- h Se il sistema di destinazione è Windows Vista o versioni successive, esegui il processo con il token elevato dell'account, se disponibile.
- l Esegui il processo come utente limitato (rimuove il gruppo Amministratori e consente solo i privilegi assegnati al gruppo Utenti). In Windows Vista, il processo viene eseguito con Bassa integrità.
- n Specifica il timeout (in secondi) per la connessione a computer remoti.
- p Specifica una password opzionale per il nome utente. Se omesso, ti verrà chiesto di inserire una password nascosta.
- r Specifica il nome del servizio remoto da creare o con cui interagire.
- s Esegue il processo remoto nell'account di sistema.
- u Specifica un nome utente opzionale per l'accesso al computer remoto.
- v Copia il file specificato solo se ha un numero di versione superiore o è più recente di quello sul sistema remoto.
- w Imposta la directory di lavoro del processo (relativa al computer remoto).
- x Visualizza l'interfaccia utente sul desktop protetto Winlogon (solo sistema locale).
- priorità Specifica -low, -belownormal, -abovenormal, -high o -re altime per eseguire il processo con una priorità diversa. Usa -background per eseguire con memoria insufficiente e priorità di I/O su Windows Vista.
computer Indirizza a PsExec l'esecuzione dell'applicazione sui computer remoti specificati. Se omesso, PsExec esegue l'applicazione sul sistema locale e se viene specificato un carattere jolly (), PsExec esegue il comando su tutti i computer nel dominio corrente.
@file PsExec eseguirà il comando su ciascuno dei computer elencati nel file.
cmd Nome dell'applicazione da eseguire.
argomenti Argomenti da superare (notare che i percorsi dei file devono essere percorsi assoluti sul sistema di destinazione).

Esempi di comando PsExec

Ecco alcuni esempi di come utilizzare PsExec per eseguire operazioni come eseguire comandi del prompt dei comandi remoti, gestire i servizi Windows e avviare o installare programmi.

Apri CMD da remoto

psexec \\192.168.86.62 cmd

Uno dei modi più semplici per utilizzare PsExec per eseguire i comandi del prompt dei comandi su un computer remoto è eseguire cmd seguendo l'indirizzo IP della macchina, 192.168.86.62 in questo esempio.

In questo modo verrà avviata una normale finestra del prompt dei comandi all'interno di quella esistente e ti consentirà di inserire ogni comando come se fossi seduto di fronte al computer remoto. Ad esempio, puoi quindi inserire ipconfig per ottenere quei risultati dall' altro computer, o mkdir per creare una nuova cartella, dir per elencare il contenuto della cartella, ecc.

Esegui un comando remoto

psexec \\mediaserver01 tracert lifewire.com

Un altro modo per usare PsExec è inserire singoli comandi ma senza avviare un prompt dei comandi completo. In questo esempio, stiamo eseguendo il comando tracert contro lifewire.com e poiché abbiamo specificato il nome del computer remoto, mediaserver01, i risultati del comando sono rilevanti per quella macchina, non per quella locale (cioè quella in cui sei acceso).

Avvia un servizio da remoto

psexec \\FRONTDESK_PC -u tomd -p 3(tom87 net start spooler

L'esempio di comando PsExec mostrato sopra avvia il servizio Spooler di stampa, spooler, in remoto sul computer FRONTDESK_PC utilizzando la password dell'utente tomd, 3(tom87.

Lo stesso comando può essere utilizzato per interrompere un servizio in remoto, ma dovresti digitare "stop" invece di "start".

Apri l'editor del registro

psexec \\mikelaptopw10 -i -s C:\Windows\regedit.exe

Qui, stiamo usando PsExec per avviare l'Editor del Registro di sistema sul computer remoto, mikelaptopw10, nell'account di sistema. Poiché viene utilizzato -i, il programma si aprirà in modalità interattiva, il che significa che verrà effettivamente avviato sullo schermo della macchina remota.

Se -i fosse omesso dal comando precedente, verrebbe eseguito in modalità nascosta per evitare di mostrare finestre di dialogo o altre finestre.

Installa programma su computer remoto

psexec \\J3BCD011 -c "Z:\files\ccleaner.exe" cmd /S

In quest'ultimo esempio di come usare PsExec, stiamo usando -c per copiare il programma ccleaner.exe sul computer remoto J3BCD011 e quindi eseguirlo con il /S parametro poiché è ciò che utilizza CCleaner per abilitare un'installazione invisibile (non richiede l'input dell'utente). L'aggiunta di un argomento del genere richiede cmd.

PsExec può essere pericoloso

È molto importante capire quanto sia potente PsExec e come potrebbe essere utilizzato per compromettere il tuo computer se utilizzato in un ambiente altrimenti non sicuro.

Ad esempio, combinando - c, - u e - p, in particolare consentire a chiunque abbia una connessione di rete al tuo computer e conosce le credenziali di amministratore di eseguire malware segreto con le credenziali di chiunque.

Anche quell'ultimo esempio perfettamente accettabile nella sezione precedente assume uno scopo completamente nuovo se si considera che invece di CCleaner, qualcuno potrebbe installare qualsiasi altra cosa desideri, in background, e nessuna finestra si apre per mostrarlo sta succedendo qualcosa.

Detto questo, considerando le modifiche al firewall richieste e la conoscenza delle credenziali di amministratore che qualcuno dovrebbe avere, non c'è motivo di preoccuparsi fintanto che la password dell'amministratore sul computer remoto è complessa e sono state adottate altre misure di sicurezza di base.

Alcuni programmi antivirus identificano erroneamente PsExec come un file pericoloso, ma questi avvisi possono essere ignorati se sai per certo che il programma che stai utilizzando proviene dalla fonte Microsoft sopra. Il motivo per cui ciò accade è perché è noto che il malware utilizza PsExec per trasferire virus.

Consigliato: