PsExec er et bærbart verktøy fra Microsoft som lar deg kjøre prosesser eksternt ved å bruke en hvilken som helst brukers legitimasjon. Det er litt som et fjerntilgangsprogram, men i stedet for å kontrollere datamaskinen med en mus, sendes kommandoer via kommandoprompt.
Du kan bruke PsExec til ikke bare å administrere prosesser på den eksterne datamaskinen, men også omdirigere en applikasjons konsollutdata til din lokale datamaskin, slik at det ser ut som om prosessen kjører lok alt.
Ingen programvare er nødvendig på den eksterne datamaskinen for å få PsExec til å fungere, men det er et par ting du må huske på hvis verktøyet ikke kjører riktig første gang du prøver det.
Hvordan sette opp PsExec
Hvis PsExec er bærbar og ikke trenger å kopieres til den eksterne datamaskinen, hvilken type oppsett trenger den egentlig?
Verktøyet fungerer kun under visse forhold. Nemlig når fil- og skriverdeling er aktivert på både den lokale og den eksterne datamaskinen, og når den eksterne maskinen har $admin-delingen satt opp riktig for å gi tilgang til \Windows\-mappen.
Du kan dobbeltsjekke at fil- og utskriftsdeling er aktivert ved å se i Windows-brannmurinnstillingene:
-
Skriv inn firewall.cpl i Kjør-dialogboksen. En måte å åpne Run på er gjennom WIN+R hurtigtast.
-
Velg Tillat en app eller funksjon gjennom Windows-brannmur fra venstre side av vinduet.
Dette kan leses som Tillat en app eller funksjon gjennom Windows Defender-brannmur avhengig av hvordan datamaskinen er konfigurert, men det er det samme alternativet.
-
Pass på at Fil- og skriverdeling har en hake i Privat-boksen til høyre. Hvis den ikke gjør det, sett en hake i den boksen og velg OK.
Hvis du ikke kan endre brannmurinnstillingene fordi de er nedtonet, velg Endre innstillinger øverst i vinduet.
- Du kan nå avslutte alle åpne Windows-brannmurinnstillinger.
Med Windows-brannmuren nå satt opp riktig for PsExec, bør du ikke ha noen problemer med å få tilgang til $admin-andelen på den eksterne maskinen så lenge følgende er sant:
- Begge datamaskiner tilhører samme arbeidsgruppe
- Du vet passordet til en administratorkonto på den eksterne datamaskinen
Se denne opplæringen på Wintips.org hvis du trenger hjelp til å gjøre disse tingene eller hvis du har gjort dem riktig, men senere, etter å ha prøvd å bruke PsExec som beskrevet nedenfor, får du en "tilgang nektet"-feil.
Hvordan bruke PsExec
Før du bruker PsExec til å utføre eksterne kommandoer, må du laste ned programmet og plassere ledeteksten på en måte der du kan bruke verktøyet riktig.
Last ned og åpne det
- Last ned PsExec på datamaskinen som skal kjøre fjernkommandoene. Den er tilgjengelig gratis fra Microsoft på Sysinternals som en del av PsTools.
-
Pakk ut filene fra PsTools.zip-nedlastingen. Du kan gjøre det ved å høyreklikke på ZIP-filen og velge Extract All. Enhver tredjeparts filutpakning fungerer også.
-
Åpne mappen der de utpakkede filene er plassert, og fra navigasjonslinjen øverst i mappen, slett det som er der og skriv inn cmd.
En annen måte å gjøre dette på, i det minste i noen versjoner av Windows, er å Shift+Høyreklikk en tom plass i PsTools-mappen og velge Open kommandovindu her.
Dette vil åpne ledeteksten i den mappen slik at du kan kjøre kommandoer gjennom PsExec.
- Med kommandoprompt nå åpen for mappen som inneholder PsExec.exe, kan du begynne å legge inn kommandoer på den eksterne maskinen.
Forstå syntaksen
På samme måte som et hvilket som helst kommandolinjeverktøy, fungerer PsExec bare når syntaksen følges nøyaktig. Når du forstår hvordan du skriver kommandoer slik verktøyet forstår dem, kan du kontrollere programmet fra en hvilken som helst ledetekst.
Slik må PsExec-kommandoer legges inn:
psexec [ datamaskin [, datamaskin2 [, …] | @file\][- u brukernavn [- p passord][- n s][- r tjenestenavn][- h][- l][- s |- e][- x][- i[økt][-c kjørbar [-f |-v ][-w katalog][- d][- ][- a n, n
Dette kan se komplisert og forvirrende ut, men ikke bekymre deg! Det er noen eksempler nederst på denne siden som du kan bruke for å øve.
Syntaksen ovenfor brukes til å utføre et av følgende PsExec-kommandoer:
PsExec-kommando alternativer | |
---|---|
Parameter | Forklaring |
- a | Separate prosessorer som applikasjonen kan kjøre på, med kommaer, der 1 er den lavest nummererte CPU. For å kjøre applikasjonen på CPU 2 og CPU 4 for eksempel, skriver du inn: - a 2, 4 |
- c | Kopier den angitte kjørbare filen til det eksterne systemet for kjøring. Hvis den utelates, må applikasjonen være i systembanen på det eksterne systemet. |
- d | Ikke vent til prosessen avsluttes (ikke-interaktiv). |
- e | Laster ikke den angitte kontoens profil. |
- f | Kopier det angitte programmet selv om filen allerede finnes på det eksterne systemet. |
- i | Kjør programmet slik at det samhandler med skrivebordet til den angitte økten på det eksterne systemet. Hvis ingen økt er spesifisert, kjører prosessen i konsolløkten. |
- h | Hvis målsystemet er Windows Vista eller høyere, kjør prosessen med kontoens forhøyede token, hvis tilgjengelig. |
- l | Kjør prosessen som en begrenset bruker (fjerner administratorgruppen og tillater kun privilegier som er tildelt brukergruppen). I Windows Vista kjører prosessen med lav integritet. |
- n | Spesifiserer tidsavbrudd (i sekunder) for tilkobling til eksterne datamaskiner. |
- p | Spesifiserer valgfritt passord for brukernavnet. Hvis det utelates, blir du bedt om å angi et skjult passord. |
- r | Spesifiserer navnet på den eksterne tjenesten som skal opprettes eller samhandles med. |
- s | Kjører den eksterne prosessen i systemkontoen. |
- u | Spesifiserer valgfritt brukernavn for pålogging til ekstern datamaskin. |
- v | Kopierer den angitte filen bare hvis den har et høyere versjonsnummer eller er nyere enn den på det eksterne systemet. |
- w | Angi arbeidskatalogen for prosessen (i forhold til ekstern datamaskin). |
- x | Viser brukergrensesnittet på Winlogon sikre skrivebord (kun lok alt system). |
- prioritet | Spesifiserer -lav, -undernormal, -overnormal, -høy eller -sanntid for å kjøre prosessen med en annen prioritet. Bruk -bakgrunn for å kjøre med lite minne og I/O-prioritet på Windows Vista. |
datamaskin | Beordrer PsExec til å kjøre applikasjonen på de angitte eksterne datamaskinene. Hvis utelatt, kjører PsExec applikasjonen på det lokale systemet, og hvis et jokertegn () er spesifisert, kjører PsExec kommandoen på alle datamaskiner i gjeldende domene. |
@file | PsExec vil utføre kommandoen på hver av datamaskinene som er oppført i filen. |
cmd | Navn på programmet som skal kjøres. |
arguments | Argumenter som skal sendes (merk at filstier må være absolutte baner på målsystemet). |
PsExec-kommandoeksempler
Her er noen eksempler på hvordan du bruker PsExec til å gjøre ting som å kjøre eksterne kommandoprompt-kommandoer, administrere Windows-tjenester og starte eller installere programmer.
Åpne CMD eksternt
psexec \\192.168.86.62 cmd
En av de enkleste måtene å bruke PsExec til å kjøre ledetekstkommandoer på en ekstern datamaskin er å kjøre cmd etter maskinens IP-adresse, 192.168.86.62 i dette eksemplet.
Hvis du gjør dette, åpnes et vanlig ledetekstvindu i det eksisterende, og lar deg skrive inn hver kommando som om du satt foran den eksterne datamaskinen. For eksempel kan du deretter skrive inn ipconfig for å hente disse resultatene fra den andre datamaskinen, eller mkdir for å opprette en ny mappe, dir for å liste mappens innhold, osv.
Kjør en fjernkommando
psexec \\mediaserver01 tracert lifewire.com
En annen måte å bruke PsExec på er å legge inn individuelle kommandoer, men uten å starte en fullstendig ledetekst. I dette eksemplet utfører vi tracert-kommandoen mot lifewire.com, og fordi vi har spesifisert den eksterne datamaskinens navn, mediaserver01, er kommandoresultatene relevante for den maskinen, ikke den lokale (dvs. den du er på).
Start en tjeneste eksternt
psexec \\FRONTDESK_PC -u tomd -p 3(tom87 net start spooler
PsExec-kommandoeksemplet vist ovenfor starter Print Spooler-tjenesten, spooler, eksternt på FRONTDESK_PC-datamaskinen ved å bruke tomd-brukerens passord, 3(tom87.
Den samme kommandoen kan brukes til å stoppe en tjeneste eksternt, men du skriver "stopp" i stedet for "start."
Åpne Registerredigering
psexec \\mikelaptopw10 -i -s C:\Windows\regedit.exe
Her bruker vi PsExec til å starte Registerredigering på den eksterne maskinen, mikelaptopw10, i systemkontoen. Fordi -i brukes, vil programmet åpnes i interaktiv modus, noe som betyr at det faktisk vil starte på den eksterne maskinens skjerm.
Hvis -i ble utelatt fra kommandoen ovenfor, ville den kjøre i skjult modus for å unngå å vise dialogbokser eller andre vinduer.
Installer program på ekstern datamaskin
psexec \\J3BCD011 -c "Z:\files\ccleaner.exe" cmd /S
I dette siste eksempelet på hvordan man bruker PsExec, bruker vi -c for å kopiere ccleaner.exe-programmet til den eksterne datamaskinen J3BCD011, og deretter kjøre det med /S-parameter siden det er det CCleaner bruker for å aktivere en stille installasjon (krever ingen brukerinndata). Å legge til et argument som dette krever cmd.
PsExec kan være farlig
Det er veldig viktig å forstå hvor kraftig PsExec er og hvordan den kan brukes til å kompromittere datamaskinen når den brukes i et ellers usikkert miljø.
Hvis du for eksempel kombinerer - c, - u og - p, vil spesifikt la alle som har en nettverkstilkobling til datamaskinen din og kunnskap om administratorlegitimasjonen, utføre hemmelig skadelig programvare med noens legitimasjon.
Selv det siste, helt akseptable eksemplet i forrige seksjon får en helt ny hensikt når du tenker på at i stedet for CCleaner, kan noen installere alt annet de ønsker, i bakgrunnen, og ingen vinduer dukker opp for å vise at alt skjer.
Alt som sagt, tatt i betraktning brannmurendringene som kreves og administratorlegitimasjonskunnskapen noen må ha, er det liten grunn til bekymring så lenge administratorpassordet på den eksterne datamaskinen er komplekst og andre grunnleggende sikkerhetstiltak er tatt.
Noen antivirusprogrammer identifiserer feilaktig PsExec som en farlig fil, men disse advarslene kan ignoreres hvis du vet sikkert at programmet du bruker er fra Microsoft-kilden ovenfor. Grunnen til at dette skjer er fordi skadelig programvare har vært kjent for å bruke PsExec til å overføre virus.