Jak korzystać z psexec bez uprawnień administratora na maszynie docelowej?


27

Czy można psexecwykonać polecenie na komputerze zdalnym bez uprawnień administratora na komputerze zdalnym?

Próbowałem uruchomić psexec \\<machine> -u <username> -p <password>, gdzie <username>i gdzie <password>nie ma poświadczeń administratora, ale pojawia się błąd „odmowa dostępu”

Mogę zdalnie podłączyć pulpit do zdalnego komputera z tymi samymi poświadczeniami bez żadnych problemów.

Na moim komputerze lokalnym działa system Windows 7 Enterprise w wersji 64-bitowej, a na komputerze zdalnym działa system Windows Server 2008 64-bit. Mam uprawnienia administratora na komputerze lokalnym.

EDYCJA : Wszystkim osobom, które dyskutują nad tym pytaniem: nie próbuję obchodzić żadnego środka bezpieczeństwa. Mogę już uruchomić proces na zdalnej maszynie, zdalnie uruchamiając pulpit na zdalnej maszynie i uruchamiając ją. Po prostu szukam wiersza polecenia do zrobienia czegoś, co mogę już zrobić za pomocą GUI.


To kiepskie pytanie, ponieważ na tej stronie sprzeciwiamy się, aby użytkownicy końcowi pytali nas, jak obchodzić systemy bezpieczeństwa. Może powinieneś przeczytać ten: meta.serverfault.com/questions/1659/… , a następnie przeczytać FAQ.
John Gardeniers,

7
Ja nie próbuje obejść każdy system zabezpieczeń. Próbuję zrobić coś, co mogę już zrobić za pomocą GUI, zamiast tego za pomocą wiersza polecenia, co uważam za wygodniejsze. Proszę wyjaśnić mi, jak to obchodzi system bezpieczeństwa.
HC4

4
Wiele razy osoba będąca administratorem ma uzasadnione powody, aby znaleźć sposób na uruchomienie procesu bez korzystania z pełnych uprawnień administracyjnych. Czasami, oczywiście, nie jest to możliwe lub niepraktyczne, ale jeśli kilka poprawek w systemie może zrobić różnicę między pełnym otwarciem systemu a konfiguracją dostępu do niego przy użyciu bardziej ograniczonego konta, wtedy często dobrze jest zrobić praca wymagana do uruchomienia w ramach bardziej ograniczonego konta.
Shannon Wagner

8
Administruję hostami Windows, Linux i UNIX w mojej roli i jeśli miałbym odpowiedzieć na pytanie użytkownika, atakując go za zadawanie pytań, wkrótce nie miałbym pracy. Ta osoba nie prosi o metodę obchodzenia praw administracyjnych. Prosi o metodę użycia PSEXEC z ograniczonymi uprawnieniami do uruchomienia procesu, który ma już uprawnienia do uruchomienia przez GUI.
Robert Ebers

Odpowiedzi:


26

Znalezione na: /programming/534426/psexec-help-needed

Musisz mieć uprawnienia administratora do celu, ponieważ część psexec uruchamia usługę Windows na celu i potrzebujesz uprawnień administratora, aby móc to zrobić.

psexec kopiuje plik psexecsvc do udziału administratora, a następnie za pomocą zdalnego zarządzania uruchamia usługę z tego pliku. Otwiera nazwane potoki i wykorzystuje je do dalszej komunikacji. Po zakończeniu porządkuje się po sobie.

Chociaż nie mogę znaleźć OFICJALNEJ dokumentacji, która mówi to samo.


5

Poproś o lokalnego administratora na komputerze.

Edytuj: lub uruchom polecenie jako zaplanowane zadanie. Lub użyj przełącznika -l w PsExec: Uruchom proces jako ograniczony użytkownik (usuwa grupę Administratorzy i zezwala tylko na uprawnienia przypisane do grupy Użytkownicy). W systemie Windows Vista proces działa z niską integralnością. Zobacz tutaj: http://technet.microsoft.com/en-us/sysinternals/bb897553 . Przykro mi to mówić, ale RTFM!

Na przykład: Aby uruchomić program Internet Explorer z uprawnieniami ograniczonego użytkownika, użyj tego polecenia:

psexec -l -d "c: \ program files \ internet explorer \ iexplore.exe"

Pamiętaj, że hasło jest przesyłane jawnym tekstem do zdalnego systemu.


1
Administratorzy systemu na to nie pozwolą i nie powinno to być konieczne. W Linuksie nie jest to konieczne.
HC4 - przywrócenie Moniki

4
@ HighCommander4, jaką różnicę ma znaczenie, czy jest to konieczne w systemie Linux? To jest środowisko Windows. Przestań porównywać jabłka z pomarańczami.
John Gardeniers,

2
@John: Właśnie wyjaśniłem, że nie próbuję robić niczego, co wymagałoby uprawnień administratora. Mam dwa komputery z kontem na każdym i próbuję zdalnie uruchomić proces na jednym komputerze z drugiego. Wydaje mi się to bardzo naturalne i absurdem jest wymagać do tego uprawnień administratora.
HC4

@ HighCommander4, co próbujesz zrobić, czyli uzyskać dostęp administracyjny do komputera zdalnego, NIE wymaga dostępu administratora w systemie Windows. Chociaż może się to wydawać absurdalne, ma sens dla tych, którzy muszą administrować siecią Windows.
John Gardeniers,

4
@John: Co to jest „administracyjne” w uruchamianiu programu na własnym koncie?
HC4

2

Nie, nie w użyteczny sposób. Dlaczego chcesz to zrobić, a nie być administratorem?


2
Poproś administratora domeny, aby zrobił to za Ciebie. To nie powinno stanowić problemu, chyba że to, co robisz, jest podejrzane, prawda?
Safado

2
Poproś mojego administratora domeny, aby zrobił to, co dla mnie? Mogę już uruchomić proces, zdalnie uruchamiając pulpit na maszynie przy użyciu konta innego niż admin i uruchamiając proces na tym koncie, tzn. Sam proces nie wymaga uprawnień administratora do uruchomienia. Chcę po prostu móc to zrobić z wiersza polecenia, zamiast zdalnie uruchamiać pulpit na komputerze.
HC4

1
Czy można zainstalować ssh na Windows Server bez uprawnień administratora? Jeśli tak, czy możesz wskazać mi link? Próbowałem OpenSSH, ale wydaje się, że wymaga to uprawnień administratora.
HC4

1
@ Tony Roth: Nie potrzebujesz podwyższonych perms, aby uruchomić demona SSH w systemie Linux. Potrzebujesz tylko podwyższonych perms, aby uruchomić go na uprzywilejowanym porcie (0-1023). Możesz skonfigurować zarówno klienta, jak i serwer, tak aby korzystały z portu nieuprzywilejowanego, bez potrzeby podwyższonych uprawnień na obu komputerach.
HC4 - przywrócenie Moniki

2
W rzeczywistości udało mi się skonfigurować OpenSSH na serwerze Windows bez żadnych uprawnień administratora, uruchamiając demona SSH na nieuprzywilejowanym porcie. Śmiało i oddajcie mi głos za odważne podjęcie inicjatywy zwiększenia wydajności w pracy bez uprzedniej konsultacji z Holy Sysadmins.
HC4


0

Rozwiązaniem byłoby użycie skryptu AutoIT do zalogowania się na pulpicie zdalnym zgodnie z harmonogramem ze stacji roboczej. Poproś folder „startowy” o wykonanie procesu za pomocą skryptu wsadowego lub innego skryptu AutoIT (abyś mógł anulować, jeśli wykonujesz inną pracę). To nie jest linia poleceń, ale automatyzuje twoją pracę w zakresie parametrów, które podał ci sysadmin. Mam nadzieję, że to pomoże.


-1

Prawdopodobnie jest na to sposób. Prawdopodobnie jest to tak proste, jak edycja uprawnień WMI na komputerze. Jeśli nie jest to możliwe, użycie czegoś takiego jak WinRM na pewno zadziałałoby.

Wszystko to jest jednak dla ciebie sporne. W ogóle nie masz dostępu administratora do komputera. W związku z tym nie można wprowadzić żadnych zmian niezbędnych do uruchomienia tego. Musisz to uzgodnić ze swoim administratorem systemu zamiast poprosić nas o pomoc w obejściu go. Pamiętaj o jednej rzeczy bardzo wyraźnie, większość z nas to sysadmini i nie lubimy użytkowników próbujących obejść nas. To nie sprawia, że ​​bardzo prawdopodobne jest, że pomożemy ci ominąć swoich administratorów.


2
Nie rozumiem, jak próbuję coś „obejść”. Administratorzy sysadminów chcą, żebym mógł uruchamiać procesy na tym komputerze, w przeciwnym razie nie byłbym w stanie zdalnie uruchomić na nim pulpitu. Wszystko, czego chcę, to sposób, aby uruchomić proces przy użyciu wiersza polecenia zamiast graficznego interfejsu użytkownika pulpitu zdalnego. Teraz mogłem zepsuć o tym administratorom lub po prostu sam znaleźć sposób, aby to zrobić. Myślałem, że społeczność profesjonalnych sysadminów będzie próbowała mi pomóc, a nie pouczać mnie.
HC4 - przywrócenie Moniki

@HighCommander - Odpowiedzią jest, że sysadmins muszą zapewnić ci tę zdolność. Nie możesz tego zrobić sam, ponieważ nie masz uprawnień administracyjnych na komputerze. Jeśli naprawdę to zaakceptują, poproś ich o przyznanie praw, których potrzebujesz, aby móc robić to, co musisz.
Jason Berg

-1

`const string subkey =" Software \ Sysinternals \ PsExec ";

        if (Environment.Is64BitOperatingSystem)
        {
            // For 64 Bit PC
            RegistryKey registryKey64 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64);
            RegistryKey NDPKey64 = registryKey64.OpenSubKey(subkey);
            if (NDPKey64 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey64 = registryKey64.OpenSubKey("Software", true);
                regKey64.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }
        else
        {
            //For 32 bit PC
            RegistryKey registryKey32 = Registry.CurrentUser.OpenSubKey(subkey);
            if (registryKey32 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey32 = Registry.CurrentUser.OpenSubKey("Software", true);
                regKey32.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }`

4
Jednym z niezawodnych sposobów na zwrócenie uwagi systemu jest zamieszczenie identycznych odpowiedzi na stare pytania. Sam zrzut kodu bez wyjaśnienia również nie jest świetny. Zaktualizuj swoje odpowiedzi, wyjaśniając, co robi kod i jak rozwiązuje problem PO.
user9517 obsługuje GoFundMonica

1
Ok, czasami psExec, mimo że jest zainstalowany, nie wywoła innych ex na żądanie. Problem polega na ustawieniu wartości DWORD EulaAccepted na 1. Nie mogłem znaleźć strony omawiającej ten problem, więc tutaj dodałem.
Shyam,

-1

Dlaczego ktoś nie mówi po prostu, że to niemożliwe? Muszę zrobić coś podobnego (Remote Exec a SAS Program), do którego mam dostęp, jeśli mam RDP na tym serwerze (tj. Mam dostęp do logowania do serwera. Mam dostęp do systemu plików do folderu kodu źródłowego i mam dostęp do uruchomienia SAS).

Żaden sysadmin nie ma racji, aby przyznać mi pełne uprawnienia administratora w tym polu tylko po to, aby wykonać zdalnie. Zasadniczo PSTools to narzędzie sysadmin, nieprzeznaczone do wdrażania rzeczywistych rozwiązań systemowych IT.


1
Ta reguła w ogóle nie odpowiada na pytanie.
Flup

Właściwie to robi. +1
Amit Naidu
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.