Czy istnieje odpowiednik SU dla Windows

32

Czy istnieje sposób (po zalogowaniu się jako administrator lub członek grupy administratorów) na maskowanie się jako użytkownik nieuprzywilejowany? Zwłaszcza w środowisku AD.

np. w świecie Unixa mógłbym wykonać następujące czynności (jako root):

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

Muszę przetestować / skonfigurować coś na koncie użytkownika i nie chcę znać hasła ani go resetować.

Edycja:
runas nie da się tego wyciąć. Idealnie , cały mój pulpit stałby się użytkownikiem itp., A nie tylko w oknie cmd.

BIBD
źródło
Ciekawe, ale dlaczego musisz się zalogować jako użytkownik? Zwykle musiałbym to zrobić, aby skonfigurować pocztę e-mail. Przekonałem się jednak, że przez większość czasu wszystko mogę skonfigurować za pomocą zasad grupy / skryptów / etc.
Dayton Brown

Odpowiedzi:

20

Jestem pewien, że nie ma obsługiwanego sposobu działania jako inny użytkownik bez posiadania poświadczeń tego użytkownika. Jest to środek niezaprzeczalności. Ktoś nie może powiedzieć: „Nie zrobiłem tego”, ponieważ albo to zrobił, albo ktoś z ich poświadczeniami to zrobił. I po drugie, musieliby podać drugiej osobie poświadczenia.

Zwykle sposób, w jaki robię to, co muszę zrobić, gdy jestem zalogowany jako inny użytkownik, polega na użyciu pomocy zdalnej do zasadniczo RDP w sesji i umożliwieniu mi kontroli. Potem robię wszystko, co oglądają (prawdopodobnie w każdym razie).

Wszystko inne zwykle można zrobić za pomocą GPO / skryptów.

Orihara
źródło
8
Uważam, że to prawda. I IMHO jest to poprawa bezpieczeństwa w świecie UNIX. Podoba mi się pomysł, że nawet administrator nie może być mną bez mojego hasła.
tomjedrz
3
Administrator może przejąć innego użytkownika, resetując hasło. Następnie mogą się zalogować jako Ty. Jednak jeśli to zrobisz, istnieje ślad dowodowy. Po pierwsze, hasło użytkowników zostało zmienione, aby się dowiedzieli. Po drugie, pojawią się dzienniki kontroli (przy założeniu, że kontrola jest włączona).
Erik Funkenbusch
3
Tak zazwyczaj też działam. Są jednak kwestie, które mówię: „Byłbym o wiele łatwiej to zrobić dla Boba, gdybym był Bobem”, ale Bob wrócił do domu godzinę temu.
BIBD
1
Jeśli chodzi o „niezaprzeczalność”, zmuszenie mnie do zresetowania hasła w pierwszej kolejności nie powstrzymuje mnie od popełniania złośliwych / głupich działań jako inny użytkownik. To po prostu oznacza, że ​​będę musiał wykonać więcej pracy, aby ukryć, kto był odpowiedzialny.
BIBD
9
Rozumiem, co oni próbują zrobić. Myślę, że to bardziej teatr bezpieczeństwa niż rzeczywiste bezpieczeństwo.
BIBD
17

Zauważyłem wiele innych osób wspominających o odmianach polecenia runas i o tym, jak musisz znać hasło użytkownika, co jest prawdą, ale nie sądzę, aby ktokolwiek cicho odpowiedział na pytanie. „chcąc cały pulpit stałby się użytkownikiem itp., a nie tylko w oknie cmd”. Oto jak to robię:

Uwaga : ten pierwszy wiersz polecenia będę odnosić do CP1, aby później wyeliminować zamieszanie.

Na koncie administratora otwórz wiersz polecenia

Dla konta lokalnego

runas /profile /user:computernamehere\username cmd

Dla konta domeny

runas /profile /user:domainname\username cmd

LUB sposób, w jaki wolę

runas /profile /user:username@domainname cmd

Uwaga: otworzy się nowy wiersz polecenia (CP2), to jest użytkownik, którego próbujesz się zalogować.

Otwórz CP1 i wpisz:

taskkill /f /IM explorer.exe

Otwórz CP2 i wpisz:

explorer.exe

W zależności od komputera może utworzyć profil dla użytkownika, jeśli nigdy wcześniej się tam nie logował. Możesz zaoszczędzić sobie później, pozostawiając otwarte okna wiersza polecenia do późniejszego użycia.

Kiedy skończysz swoją pracę, po prostu zrób to samo w odwrotnej kolejności.

W typie CP2:

taskkill /f /IM explorer.exe

Otwórz CP1 i wpisz:

explorer.exe

Powinieneś teraz wrócić do konta administratora orginal. Możesz to zrobić szybko, dotykając klawisza Windows i szukając bieżącego panelu użytkownika.

Mam nadzieję, że to pomogło.

Michael H.
źródło
3
To jakaś głęboka magia.
mskfisher 17.04.15
@mskfisher Haha, jeśli uważasz, że to wariactwo, powinieneś zobaczyć, co musiałem zrobić, aby dowiedzieć się, jak zabić sesję psexec, która została zamknięta po uruchomieniu złego polecenia WMIC. ... Pskill z drugiego wiersza polecenia, wskazanego na maszynę zdalną, po użyciu psservices do śledzenia identyfikatora procesu dla psexec w pierwszym wierszu polecenia!
Michael H
4 lata później przypomniałem sobie o tym pytaniu i kiedy miałem czas to przetestować. ŁAŁ!
BIBD,
W systemie Windows 10 za pomocą runas monituje o hasło użytkownika.
TheAmigo
7

Nie ma w tym systemie wbudowanego mechanizmu. Można to zrobić, ale będziesz musiał napisać coś, aby zrobić to, co chcesz, i prawdopodobnie będziesz musiał zmarnować nieudokumentowane interfejsy API.

Jeden z plakatów, grawitacja, ma rację, wywołując funkcję CreateProcessAsUser (), ale najpierw musisz utworzyć token z nieudokumentowanym natywnym API zwCreateToken. Jeśli zabiłeś Explorer i uruchomiłeś nową instancję Explorer w / CreateProcessAsUser (), jestem całkiem pewien, że dostaniesz to, czego chcesz.

Microsoft nie ułatwia tego, co chcesz zrobić, ponieważ nie jest to sposób, w jaki chcą, abyś używał NT. Jeśli musisz być zalogowany jako użytkownik, aby rozwiązać problemy, w większości przypadków robisz to w nieoptymalny sposób.

Możesz dokonać zmian w rejestrze użytkownika bez logowania się jako on (dołączając gałąź rejestru i manipulując nią w ten sposób). Możesz dokonać zmian w plikach w ich profilu użytkownika bez zalogowania jako użytkownik. Jeśli potrzebujesz „skonfigurować e-mail” lub inne tego typu czynności „jako użytkownik”, powinieneś pisać skrypty lub korzystać z wbudowanych funkcji (szablonów administracyjnych zasad grupy, preferencji itp.), Aby wykonać swoją brudną robotę za Ciebie.

Jeśli mają to zrobić, zajrzyj na RunAsEx Code Project. Ten kod powinien dać ci dość dobry pomysł na to, co musisz zrobić. Nie próbowałem programu, ale wygląda na to, że chodzi o wszystko we właściwy sposób.

Evan Anderson
źródło
5

Możesz użyć następującego polecenia w systemie Windows XP i nowszych:

RunAs.exe

Opcje wiersza poleceń są dostępne tutaj .

To nie zadziała bez znajomości hasła użytkownika. Nie sądzę, aby w systemie Windows istniał sposób działania na koncie użytkownika bez hasła ze względu na sposób ładowania identyfikatorów zabezpieczeń.

Doug Luxem
źródło
3
Wierzę, że program RunAs nadal wymaga znajomości hasła użytkownika, które według mnie nie jest znane
Kevin Kuphal
Masz rację ... Zapomniałem o tym.
Doug Luxem
2

(Tylko przypuszczenie.) Jeśli twoje konto ma SeCreateTokenPrivilege, możesz napisać mały program do stworzenia procesu przy użyciu CreateProcessAsUser()lub podobnej funkcji ... (Ale nawet administratorzy domyślnie nie mają tego uprawnienia).

grawitacja
źródło
2

Chociaż nie mam osobistego doświadczenia z niektórymi rozwiązaniami sudo wymienionymi na tej stronie, gorąco polecam nonadmin, którego autorem jest znakomity Aaron Margosis . Jest to ogromna pomoc przy wdrażaniu ograniczonej liczby użytkowników. Głównie skoczyłem z czymś, ponieważ wszyscy mówią, że używaj Run. Myślę jednak, że większość lub wszystkie tak zwane sudo dla systemu Windows zajmują się bardziej podniesieniem uprawnień niż działaniem jako inny użytkownik bez hasła.

Knox
źródło
0

Process Explorer procexp.exe na stronie http://live.sysinternals.com działa jako ograniczony użytkownik (w menu plików), co pozwoli ci uruchomić program przy użyciu twoich aktualnych danych uwierzytelniających, ale z listą ACL zredukowaną do normalnej użytkownik (nie administrator). Nie to, czego dokładnie chciałeś, ale dobre do testowania.

Booji Boy
źródło