it-swarm-eu.dev

Jak spustit CMD.exe pod místní systémový účet?

Já jsem v současné době běží Vista a chtěl bych ručně dokončit stejné operace jako služba Windows. Protože služba Windows je spuštěna pod účtem místního systému, chtěla bych emulovat toto stejné chování. V podstatě bych chtěl spustit CMD.EXE pod místním systémovým účtem.

Našel jsem informace on-line, která navrhuje lauching CMD.exe pomocí DOS Plánovač úloh AT příkaz, ale já jsem obdržel varování Vista, že "z důvodu vylepšení zabezpečení, tento úkol bude běžet v době vyjma, ale ne interaktivně." Zde je ukázkový příkaz:

AT 12:00 /interactive cmd.exe

Další řešení navrhlo vytvoření sekundární služby Windows prostřednictvím služby Service (sc.exe), která pouze spouští CMD.exe. 

C:\sc create RunCMDAsLSA binpath= "cmd" type=own type=interact
C:\sc start RunCMDAsLSA

V tomto případě se služba nespustí a zobrazí ji následující chybová zpráva:

FAILED 1053: The service did not respond to the start or control request in a timely fashion.

Třetí návrh byl spuštění CMD.exe prostřednictvím naplánované úlohy. I když můžete spouštět naplánované úlohy v rámci různých účtů, nevěřím, že jedním z nich je Místní systémový účet.

Snažil jsem se také použít Runas, ale myslím si, že běží na stejné omezení, jaké bylo zjištěno při spuštění naplánované úlohy.

Každý z mých pokusů tak skončil neúspěchem. Nějaké návrhy?

124
Ben Griswold

I když jsem osobně netestoval, mám dobrý důvod se domnívat, že výše uvedené řešení AT COMMAND bude fungovat pro XP, 2000 a Server 2003. Podle mého a Bryantova testování jsme zjistili, že stejný přístup dělá nepracuje s operačními systémy Vista nebo Windows Server 2008 - nejpravděpodobněji v důsledku přidaného zabezpečení a přepínače/interaktivního přepínače jsou zastaralé. 

Nicméně jsem narazil na tento článek který demonstruje použití PSTools z SysInternals (který Microsoft získal v červenci roku 2006). běžel pod lokálním administrátorským účtem jako magie:

psexec -i -s cmd.exe

PSTools funguje dobře. Je to lehká, dobře zdokumentovaná sada nástrojů, která poskytuje vhodné řešení mého problému.

Děkujeme těm, kteří nám nabídli pomoc.

196
Ben Griswold
  1. Stáhnout psexec.exe od Sysinternals .
  2. Umístěte ho do jednotky C :.
  3. Přihlaste se jako standardní nebo admin uživatel a použijte následující příkaz: cd \. To vás umístí do kořenového adresáře disku, kde se nachází psexec.
  4. Použijte následující příkaz: psexec -i -s cmd.exe kde -i je pro interaktivní a -s je pro systémový účet.
  5. Po dokončení příkazu se spustí cmd Shell. Typ whoami; bude říkat „systém“
  6. Otevřete Správce úloh. Kill Explorer.exe.
  7. Z příkazu Shell typu start Explorer.exe.
  8. Po spuštění aplikace Explorer si v pruhu nabídky Start vyberte název systému. Nyní můžete odstranit některé soubory v adresáři system32, které jako admin nemůžete smazat nebo jako admin byste se museli snažit změnit oprávnění k odstranění těchto souborů.

Uživatelé, kteří se pokoušejí přejmenovat nebo oddělit systémové soubory v jakémkoli chráněném adresáři systému Windows, by měli vědět, že všechny soubory systému Windows jsou chráněny programem DACLS při přejmenování souboru, který je třeba změnit vlastníka a nahradit soubor TrustedInstaller, který soubor vlastní, a zpřístupnit libovolného uživatele jako uživatele, který patří do skupiny administrátorů jako vlastník souboru a zkuste jej přejmenovat po změně oprávnění, bude fungovat a při běhu systému Windows Explorer s privilgery jádra budete z bezpečnostních důvodů poněkud omezeni z hlediska přístupu k síti a je to stále výzkumné téma abych získal přístup zpět

39
raven

Nalezli jste odpověď zde která zřejmě problém vyřeší přidáním/k startu do parametru binPath. Tak to by vám:

sc create testsvc binpath= "cmd /K start" type= own type= interact

Ben však řekl, že to nefunguje pro něj a když jsem to zkusil na Windows Server 2008, vytvořil proces cmd.exe v lokálním systému, ale nebyl interaktivní (okno jsem neviděl). 

Nemyslím si, že existuje snadný způsob, jak dělat to, o co se ptáte, ale přemýšlím, proč to děláte vůbec? Snažíte se zjistit, co se děje, když provozujete službu? Vypadá to, že byste mohli použít protokolování k určení toho, co se děje, místo toho, abyste museli spustit exe jako lokální systém ...

9
Bryant

Doporučil bych vám, abyste vypracovali minimální sadu oprávnění, kterou vaše služba skutečně potřebuje, a používali ji, spíše než příliš privilegovaný kontext místního systému. Například Místní služba .

Interaktivní služby již nefungují - nebo alespoň neuvádějí UI - na Windows Vista a Windows Server 2008 kvůli izolaci 0 .

6
Mike Dimmick

Používání Secure Desktop ke spuštění cmd.exe jako system

V systému Windows XP/Vista/7/8.1 můžeme získat přístup k jádru prostřednictvím CMD snadno připojením debuggeru:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
  1. Spustit CMD jako správce

  2. Potom použijte tento příkaz ve výšce:

     CMD REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
    
  3. Pak spusťte osk (onscreenkeyboard). Pokud se kontrolujete pomocí Průzkumníka procesů, stále se nespustí s úrovní integrity systému, ale pokud můžete v relaci služby používat funkci OSK, bude spuštěna jako NT Authority\SYSTEM

tak jsem měl nápad, že to musíte spustit na Secure Desktop.

Spusťte libovolný soubor jako správce. Když se zobrazí výzva UAC, stiskněte Win+U a start OSK a místo toho spustí CMD. Potom ve zvýšené výzvě zadejte whoami a dostanete NT Authority\System. Poté můžete spustit Průzkumník ze systémového příkazu Shell a použít systémový profil, ale z bezpečnostních důvodů jste poněkud omezeni tím, co můžete v síti provádět prostřednictvím oprávnění SYSTEM. Další vysvětlení přidám později, jak jsem to objevil před rokem.

Stručné vysvětlení, jak se to děje

Spuštění Cmd.exe V části Místní systémový účet bez použití PsExec. Tato metoda spustí Debugger Trap techniku, která byla objevena dříve, dobře tato technika má své vlastní výhody, které mohou být použity k pasti nějaké lstivé/škodlivý červ nebo malware v debuggeru a spustit některé další exe místo zastavení šíření nebo poškození dočasné. zde tento klíč registru zachycuje na obrazovce klávesnici v nativním debuggeru Windows a spouští místo toho cmd.exe, ale cmd bude stále fungovat s oprávněními Logged on users, ale pokud spustíme cmd v session0, můžeme získat systém Shell. přidali jsme tedy další nápad, který se týká zabezpečené pracovní plochy, která se nachází na bezpečném počítači, který běží v relaci 0 pod systémovým účtem a získáme systém Shell. Takže kdykoliv spustíte cokoliv takového, musíte odpovědět na výzvu UAC Prompt a UAC na tmavém, neinteraktivním počítači a jakmile ho uvidíte, musíte stisknout klávesu Win+U a pak vyberte OSK, který bude mít CMD.exe spuštěn pod oprávněními Local system. Existuje ještě více způsobů, jak získat přístup k lokálnímu systému pomocí CMD

3
raven

alternativou k tomuto je proces hacker, pokud jdete do běhu jako ... (Interaktivní nefunguje pro lidi s bezpečnostními vylepšeními, ale že to nezáleží) a když se otevře box, služba do zadejte pole a vložte SYSTEM do uživatelská schránka a umístěte C: Uživatelé Windows 32 cd.exe ponechte zbytek na tlačítko OK a boch máte okno s cmd na něm a spustit jako systém nyní udělat další kroky pro sebe, protože im naznačuje, že je znáte

3
James5001

Existuje jiný způsob. Existuje program s názvem PowerRun, který umožňuje spuštění zvýšeného cmd. I s právy TrustedInstaller. To umožňuje jak příkazy konzoly, tak GUI. 

2
Alexander Haakan

pokud můžete napsat dávkový soubor, který nemusí být interaktivní, zkuste spustit tento dávkový soubor jako službu, abyste mohli provést to, co je třeba udělat.

1

Používám RunAsTi utility ke spuštění jako TrustedInstaller (vysoké oprávnění). Nástroj lze použít i v režimu obnovení systému Windows (režim, který zadáte pomocí Shift + Restart), nástroj psexec tam nefunguje. Musíte však přidat C:\Windows a C:\Windows\System32 (ne X:\Windows a X:\Windows\System32) cesty do proměnné prostředí PATH, jinak RunAsTi nebude fungovat v režimu obnovy, bude pouze tisknout: AdjustTokenPrivileges pro SeImpersonateName: Ne všechna oprávnění nebo odkazované skupiny jsou přiřazeny volajícímu.

0
anton_rh