Obecnie używam Vista i chciałbym ręcznie wykonać te same operacje, co moja usługa Windows. Ponieważ usługa Windows działa w ramach lokalnego konta systemowego, chciałbym emulować to samo zachowanie. Zasadniczo chciałbym uruchomić CMD.EXE z lokalnego konta systemowego.
Znalazłem informacje w Internecie, które sugerują uruchomienie CMD.exe za pomocą polecenia AT Harmonogramu zadań DOS, ale otrzymałem ostrzeżenie systemu Vista, że „ze względu na ulepszenia zabezpieczeń to zadanie będzie uruchamiane w tym czasie z wyjątkiem, ale nie w trybie interaktywnym”. Oto przykładowe polecenie:
AT 12:00 /interactive cmd.exe
Inne rozwiązanie sugerowało utworzenie dodatkowej usługi systemu Windows za pośrednictwem kontroli usług (sc.exe), która po prostu uruchamia CMD.exe.
C:\sc create RunCMDAsLSA binpath= "cmd" type=own type=interact
C:\sc start RunCMDAsLSA
W takim przypadku usługa nie uruchamia się i powoduje wyświetlenie następującego komunikatu o błędzie:
FAILED 1053: The service did not respond to the start or control request in a timely fashion.
Trzecią sugestią było uruchomienie programu CMD.exe za pośrednictwem zaplanowanego zadania. Chociaż możesz uruchamiać zaplanowane zadania na różnych kontach, nie sądzę, aby lokalne konto systemowe było jednym z nich.
Próbowałem również użyć Runas, ale myślę, że napotykam te same ograniczenia, które znalazłem podczas uruchamiania zaplanowanego zadania.
Jak dotąd każda z moich prób kończyła się niepowodzeniem. Jakieś sugestie?
źródło
-d
dodanym, dzięki czemu mogę nadal korzystać z konsoli, z której go uruchomiłem.cd \
. Spowoduje to umieszczenie Cię w katalogu głównym dysku, w którym znajduje się psexec.psexec -i -s cmd.exe
gdzie -i oznacza konto interaktywne, a -s oznacza konto systemowe.whoami
; powie „system”start explorer.exe
.Użytkownicy, którzy próbują zmienić nazwę lub usunąć pliki systemowe w jakimkolwiek chronionym katalogu systemu Windows, powinni wiedzieć, że wszystkie pliki systemu Windows są chronione przez DACLS, podczas zmiany nazwy pliku należy zmienić właściciela i zastąpić TrustedInstaller, który jest właścicielem pliku, i uczynić każdego użytkownika należy do grupy administratorów jako właściciel pliku, a następnie spróbuj zmienić jego nazwę po zmianie uprawnień, będzie działać i podczas korzystania z Eksploratora Windows z uprawnieniami jądra masz pewne ograniczenia w zakresie dostępu do sieci ze względów bezpieczeństwa i nadal jest to temat badawczy abym odzyskał dostęp
źródło
Znalazłem odpowiedź tutaj , która wydaje się rozwiązać problem poprzez dodanie / k start do parametru binPath. To dałoby ci:
sc create testsvc binpath= "cmd /K start" type= own type= interact
Jednak Ben powiedział, że to nie działa dla niego, a kiedy wypróbowałem go w systemie Windows Server 2008, utworzył proces cmd.exe w systemie lokalnym, ale nie był interaktywny (nie widziałem okna).
Nie sądzę, że jest łatwy sposób na zrobienie tego, o co prosisz, ale zastanawiam się, dlaczego w ogóle to robisz? Czy po prostu próbujesz zobaczyć, co się dzieje, gdy prowadzisz swoją usługę? Wygląda na to, że możesz po prostu użyć logowania, aby określić, co się dzieje, zamiast uruchamiać exe jako system lokalny ...
źródło
HKLM\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices
należy ustawić na 0 (domyślnie 1)Zalecałbym wypracowanie minimalnego zestawu uprawnień, którego naprawdę potrzebuje Twoja usługa, i korzystanie z niego zamiast zbyt uprzywilejowanego kontekstu systemu lokalnego. Na przykład usługa lokalna .
Usługi interaktywne już nie działają - lub przynajmniej nie wyświetlają już interfejsu użytkownika - w systemach Windows Vista i Windows Server 2008 z powodu izolacji sesji 0 .
źródło
Używanie Secure Desktop do uruchamiania
cmd.exe
jakosystem
Możemy łatwo uzyskać dostęp do jądra
CMD
w systemie Windows XP / Vista / 7 / 8.1, dołączając debugger:Uruchom
CMD
jako administratorNastępnie użyj tego polecenia w Elevated:
Następnie uruchom
osk
(onscreenkeyboard). Nadal nie działa z poziomem integralności systemu, jeśli sprawdzisz eksplorator procesów, ale jeśli możesz używać OSK w sesji serwisowej, będzie działać jakoNT Authority\SYSTEM
więc pomyślałem, że musisz go uruchomić na Bezpiecznym pulpicie.
Uruchom dowolny plik jako Administrator. Kiedy pojawią się monity UAC, po prostu naciśnij Win+ Ui uruchom,
OSK
aCMD
zamiast tego rozpocznie się . Następnie w podwyższonym wierszu wpisz,whoami
a otrzymaszNT Authority\System
. Następnie możesz uruchomić Eksploratora z powłoki poleceń systemu i użyć profilu System, ale ze względów bezpieczeństwa masz pewne ograniczenia, co możesz zrobić w sieci z uprawnieniami SYSTEM. Dodam więcej wyjaśnień później, ponieważ odkryłem to rok temu.Krótkie wyjaśnienie, jak to się dzieje
Działa na
Cmd.exe
lokalnym koncie systemowym bez użyciaPsExec
. Ta metoda uruchamia technikę Debugger Trap, która została odkryta wcześniej, cóż, ta technika ma swoje własne zalety, może być używana do przechwytywania sprytnego / złośliwego robaka lub złośliwego oprogramowania w debugerze i uruchamiania innego exe, aby zatrzymać rozprzestrzenianie się lub tymczasowo uszkodzić. tutaj ten klucz rejestru przechwytuje klawiaturę ekranową w natywnym debugerze systemu Windows i zamiast tego uruchamia cmd.exe, ale cmd będzie nadal działać z uprawnieniami zalogowanego użytkownika, jednak jeśli uruchomimy cmd w sesji0, możemy uzyskać powłokę systemową. więc dodajemy tutaj kolejny pomysł, że rozpinamy cmd na bezpiecznym pulpicie. Pamiętaj, że bezpieczny pulpit działa w sesji 0 na koncie systemowym i otrzymujemy powłokę systemową. Więc za każdym razem, gdy uruchamiasz coś tak podwyższonego, musisz odpowiedzieć na monit UAC i zachęty UAC na ciemnym, nieinteraktywnym pulpicie, a kiedy to zobaczysz, musisz nacisnąćWin +Ua następnie wybierz,OSK
będzieszCMD.exe
działać z uprawnieniami systemu lokalnego. Istnieje jeszcze więcej sposobów uzyskania dostępu do systemu lokalnego za pomocąCMD
źródło
Alternatywą dla tego jest haker procesu, jeśli uruchomisz jako ... (Interaktywny nie działa dla osób z ulepszeniami bezpieczeństwa, ale to nie ma znaczenia) i kiedy okno się otworzy, umieść usługę w polu typu i umieść SYSTEM w skrzynce użytkownika i wstaw C : \ Users \ Windows \ system32 \ cmd.exe zostaw resztę kliknij ok i boch masz okno z cmd i uruchom jako system teraz wykonaj inne kroki dla siebie, ponieważ sugeruję, że je znasz
źródło
Jest inny sposób. Istnieje program o nazwie PowerRun, który umożliwia uruchomienie podwyższonego cmd. Nawet z prawami TrustedInstaller. Pozwala zarówno na polecenia konsoli, jak i GUI.
źródło
jeśli możesz napisać plik wsadowy, który nie musi być interaktywny, spróbuj uruchomić ten plik wsadowy jako usługę, aby zrobić to, co należy zrobić.
źródło
Używam RunAsTi narzędzie do uruchamiania jako TrustedInstaller (high przywilej). Narzędzie może być używane nawet w trybie przywracania systemu Windows (tryb wprowadzany przez
Shift
+Restart
), narzędzie psexec tam nie działa. Ale musisz dodać swojeC:\Windows
iC:\Windows\System32
(nieX:\Windows
iX:\Windows\System32
ścieżki ) doPATH
zmiennej środowiskowej, w przeciwnym razie RunAsTi nie będzie działać w trybie odzyskiwania, po prostu wydrukuje: AdjustTokenPrivileges for SeImpersonateName: Nie wszystkie uprawnienia lub grupy, do których się odwołujesz, są przypisane do dzwoniącego .źródło
Korzystając z harmonogramu zadań, zaplanuj uruchomienie CMDKEY działającego w systemie z odpowiednimi argumentami / add: / user: i / pass:
Nie musisz niczego instalować.
źródło