Esiste un equivalente di SU per Windows


32

Esiste un modo (quando si accede come amministratore o come membro del gruppo amministratori) per mascherarsi come utente non privilegiato? Soprattutto in un ambiente AD.

ad esempio, nel mondo Unix potrei fare quanto segue (come root):

# whoami
root
# su johnsmith
johnsmith> whoami
johnsmith
johnsmith> exit
# exit

Devo testare / configurare qualcosa sull'account di un utente e non voglio conoscere la loro password o reimpostarla.

Modifica:
runas non lo taglierà. Idealmente , tutto il mio desktop diventerebbe l'utente, ecc. E non solo in una finestra cmd.


Solo curioso, ma perché devi accedere come utente? Di solito avrei solo bisogno di fare questo per configurare la posta elettronica. Tuttavia, ho scoperto che la maggior parte delle volte posso configurare tutto tramite Criteri di gruppo / Script / ecc.
Dayton Brown,

Risposte:


20

Sono abbastanza certo che non esiste un modo supportato per eseguire come un altro utente senza avere le credenziali di quell'utente. È una misura di non ripudio. Qualcuno non può dire: "Non l'ho fatto", perché o l'hanno fatto o qualcuno con le loro credenziali lo ha fatto. E per il secondo avrebbero dovuto dare all'altra persona le credenziali.

Normalmente come faccio quello che devo fare mentre eseguo l'accesso come un altro utente è usare l'assistenza remota per essenzialmente RDP nella sessione e farmi ottenere il controllo. Quindi faccio qualunque cosa stiano guardando (presumibilmente, comunque).

In genere è possibile eseguire qualsiasi altra operazione con oggetti Criteri di gruppo / script.


8
Credo che sia corretto. E, IMHO, questo è un miglioramento della sicurezza nel mondo UNIX. Mi piace l'idea che nemmeno un amministratore possa essere me senza la mia password.
tomjedrz,

3
Un amministratore può assumere un altro utente, reimpostando la password. Quindi possono accedere come te. Tuttavia, c'è una pista di prova se lo fai. Innanzitutto, la password dell'utente è stata modificata in modo che lo sappiano. In secondo luogo, ci saranno registri di controllo (supponendo che il controllo sia abilitato).
Erik Funkenbusch,

3
Questo è in genere anche il modo in cui opero. Tuttavia, ci sono punti che dico "Sarebbe molto più facile farlo per Bob se fossi Bob", ma Bob è tornato a casa un'ora fa.
BIBD,

1
Per quanto riguarda la "non ripudio", costringermi a reimpostare prima la password non mi impedisce di commettere atti maliziosi / stupidi come un altro utente. Significa solo che dovrei fare più lavoro per nascondere chi era responsabile.
BIBD,

9
Capisco cosa stanno cercando di fare. Penso solo che sia più un teatro della sicurezza che della sicurezza reale.
BIBD,

17

Ho notato molte altre persone che menzionano variazioni sul comando runas e su come è necessario conoscere la password degli utenti, il che è vero, ma non credo che qualcuno abbia tranquillamente risposto alla domanda. di "volere l' intero desktop diventerebbe l'utente, ecc. e non solo in una finestra cmd". Ecco come procedere:

Nota : farò riferimento a questo primo prompt dei comandi come CP1 per eliminare la confusione in seguito.

Sotto il tuo account amministratore, apri il prompt dei comandi

Per account locale

runas /profile /user:computernamehere\username cmd

Per account di dominio

runas /profile /user:domainname\username cmd

O il modo in cui lo preferisco

runas /profile /user:username@domainname cmd

Nota: Si aprirà un nuovo prompt dei comandi (CP2), questo è l'utente con cui si sta tentando di accedere.

Apri CP1 e digita:

taskkill /f /IM explorer.exe

Apri CP2 e digita:

explorer.exe

A seconda del computer, potrebbe creare un profilo per l'utente se non ha mai effettuato l'accesso prima. Puoi salvare te stesso hassel in seguito mantenendo aperte le finestre del prompt dei comandi per un uso successivo.

Quando hai finito con il tuo lavoro, fai semplicemente la stessa cosa al contrario.

Nel tipo CP2:

taskkill /f /IM explorer.exe

Apri CP1 e digita:

explorer.exe

Ora dovresti tornare nell'account amministratore originale. Puoi fare un rapido controllo toccando il tasto Windows e cercando il pannello utente corrente.

Spero che questo abbia aiutato.


3
Questa è una magia profonda.
mskfisher,

@mskfisher Haha, se pensi che sia pazzo, dovresti vedere cosa dovevo fare per capire come uccidere una sessione di psexec che si era chiusa dopo aver eseguito un cattivo comando wmic. ... Pskill da un secondo prompt dei comandi, puntato sul computer remoto, dopo aver usato psservices per rintracciare l'id di processo per psexec sul primo prompt dei comandi!
Michael H,

Bene, 4 anni dopo mi è stata ricordata questa domanda e quando ho avuto il tempo di provarlo. WOW!
BIBD,

Su Windows 10, l'utilizzo di runas richiede la password dell'utente.
Amigo,

7

Non esiste un meccanismo integrato in Windows per farlo. Può essere fatto, ma dovrai avere qualcosa di scritto per fare quello che vuoi e probabilmente dovrai fare confusione con API non documentate.

Uno dei poster qui, Grawity, ha ragione con la chiamata a CreateProcessAsUser (), ma dovrai prima creare un token con l'API nativa non documentata zwCreateToken. Se hai ucciso Explorer e hai avviato una nuova istanza di Explorer con CreateProcessAsUser () sono abbastanza certo che avresti desiderato.

Microsoft non rende facile ciò che vuoi fare perché non è il modo in cui ti vogliono usare NT. Se è necessario accedere come utente per risolvere i problemi, nella maggior parte dei casi si procede in modo non ottimale.

È possibile apportare modifiche al registro dell'utente senza effettuare l'accesso (collegando l'hive del registro e modificandolo in questo modo). È possibile apportare modifiche ai file nel loro profilo utente senza effettuare l'accesso come utente. Se devi "impostare la posta elettronica" o altre attività simili "come l'utente", dovresti scrivere script o trarre vantaggio dalla funzionalità integrata (modelli amministrativi di criteri di gruppo, preferenze, ecc.) Per fare il lavoro sporco per te.

Se si dispone di fare questo, dare un'occhiata al RunAsEx il codice di progetto. Quel codice dovrebbe darti un'idea abbastanza chiara di ciò che dovrai fare. Non ho provato il programma, ma sembra che tutto vada per il verso giusto.


5

È possibile utilizzare il seguente comando su Windows XP e versioni successive:

RunAs.exe

Le opzioni della riga di comando sono disponibili qui .

Questo non funzionerà senza conoscere la password dell'utente. Non credo che ci sia un modo in Windows di operare con un account utente senza la password a causa del modo in cui vengono caricati gli identificatori di sicurezza.


3
Credo che il programma RunAs richieda ancora che tu sappia la password degli utenti che credo non sia nota alla domanda originale
Kevin Kuphal,

Hai ragione ... me ne ero dimenticato.
Doug Luxem,

2

(Solo un'ipotesi.) Se il tuo account ha SeCreateTokenPrivilege, potresti scrivere un piccolo programma per creare un processo usando CreateProcessAsUser()o una funzione simile ... (Ma nemmeno gli amministratori hanno il privilegio di default.)


2

Anche se non ho esperienza personale con alcune delle soluzioni di sudo menzionate in questo sito, consiglio vivamente nonadmin avviato dall'eccellente Aaron Margosis . È di grande aiuto durante l'implementazione di utenti limitati. Ho saltato principalmente con qualcosa dal momento che tutti gli altri stanno dicendo di usare Runas. Tuttavia, penso che la maggior parte o tutti questi cosiddetti sudo per Windows trattino più l'elevazione piuttosto che agire come un altro utente senza password.


0

Process Explorer procexp.exe su http://live.sysinternals.com ha una corsa come utente limitato (nel menu file) che ti permetterà di eseguire un programma usando le tue credenziali attuali, ma con la tua ACL ridotta a quella di un normale utente (non amministratore) utente. Non quello che volevi esattamente, ma buono per i test.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.