Spuštění aplikace jako správce bez zadání hesla

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #15 kdy: 09. 04. 2013, 08:56:10 »
Asi by stálo za to se zamyslet, co to je za pošahanou aplikaci, když ji zřejmě má chuť spouštět obyčejný user a ona chce kvůli něčemu práva admina.
Já například takhle musím spouštět aplikaci pro n2n (n2ngui). Jelikož sahá po síťovém adaptéru tak admina asi opravdu potřebuje.


Cek

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #16 kdy: 09. 04. 2013, 10:05:34 »
pouzivame RunAsSpc

http://www.robotronic.de/runasspcEn.html

ale moc jsem neoveroval moznost zpetneho ziskani hesla ze zakodovaneho konfiguraku.

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #17 kdy: 09. 04. 2013, 10:28:53 »
Asi by stálo za to se zamyslet, co to je za pošahanou aplikaci, když ji zřejmě má chuť spouštět obyčejný user a ona chce kvůli něčemu práva admina.
Není to třeba jen blbě nainstalované?
Ne, to je naprosto běžné a vyžaduje to každá druhá aplikace. Např. pro automatickou instalaci updatů. Řeším to pořád. A dodavatelé softů se na mě dívají jako na nějakého divného nerda, když jim řeknu, že uživatelé mnou spravovaných sítí nikdy admin práva nemají. Jednou jsem to řešil dokonce s hlavounem jedné známé firmy vyvýjející účetnictví a bylo mi řečeno, že se mnou plně souhlasí, mám pravdu, nicméně takový setup mají tak u 1% zákazníků a proto to nemají moc odladěné. A to prý mají spoustu instalací ve státní správě. Tak mi z toho bylo nějak těžko...

Ve Windows světě je prostě bezpečnost něco, čím se začali zabývat tak před pěti lety :)

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #18 kdy: 09. 04. 2013, 10:46:59 »
Asi by stálo za to se zamyslet, co to je za pošahanou aplikaci, když ji zřejmě má chuť spouštět obyčejný user a ona chce kvůli něčemu práva admina.
Není to třeba jen blbě nainstalované?
Ne, to je naprosto běžné a vyžaduje to každá druhá aplikace. ...

Ve Windows světě je prostě bezpečnost něco, čím se začali zabývat tak před pěti lety :)

Mno, že je to běžné ještě neznamená, že to je v pořádku.
(ale v tom určitě nejsme vepři)

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #19 kdy: 09. 04. 2013, 11:07:05 »
Mno, že je to běžné ještě neznamená, že to je v pořádku.
(ale v tom určitě nejsme vepři)
Jasně, určitě to není v pořádku. Však já taky když se s další takovou aplikací setkám, tak vždycky vidím rudě.


Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #20 kdy: 12. 04. 2013, 15:16:34 »
Namátkou... jednou z aplikací, kterou potřebuje uživatel spouštět a která vyžaduje práva admina je např. OpenVPN.

jfeg

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #21 kdy: 12. 04. 2013, 17:32:35 »
no, OpenVPN lze pustit samozrejmne s pravy uzivatele a funguje to
nicmene, je tam problem na nastavenim routovani, kde prava admina jsou treba

Winař

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #22 kdy: 24. 04. 2013, 10:48:01 »
ja to vyresil tak, ze jsem si vytvoril Naplanovanou ulohu s pravy Administratora (pod uctem Admina) a tuto Naplanovanou ulohu jsem spoustel v davce pomoci prikazu:
C:\Windows\System32\runas.exe /noprofile /savecred /user:uzivatelXY "C:\Windows\System32\schtasks.exe /run /tn RouteADD"

Zadani hesla je pouze pri prvnim spusteni, vystraha od UAC (nebo jak se to jmenuje) se neobjevuje.

Ahoj. Tohle řešení se celkem často uvádí, ale je zde několik ALE. Trochu to celé rezeberu... Ale ne úplně, možností (a jejich vzájemných kombinací) je vícero a na delší debatu.

1. RunAs a Credentials
- Pověření se automaticky uloží (nebo neuloží ale zůstane jen do odhlášení) po spuštění úlohy s požadovanými právy.
- Pověření lze zadat i ručně pomocí "CMDKey", nebo vytvořit přímo správcem pověření (Credentials Manager - Správce hesel v nastavení uživatelského profilu.
- Jednoduchý ekvivalent pro PowerShell zatím neznám (s PowerShellem jsem teprve teď začal zlehka koketovat), se složitým (pro mne) zápasím. Pravděpodobně existují oba (viz. get-help credentials nebo runas).
- Je pravda, že pověření se udělí všem příkazům RunAs (spuštěné uživatelem, kterému byla práva již jednou udělena). Naštěstí na většině systémů Windows nejde o trvale uložené pověření, ale jen dočasné pověření s platností do okamžiku odhlášení uživatele. Přesto po testech doporučuji zkontrolovat záznamy v Credentials Manageru jak "správce" tak "uživatele" a pro jistotu i jejich složky "Credentials".

2. Použití plánovače (TaskSchd)
- Pokud vytvoříte úlohu (ať již pomocí uživateského rozhraní TaskSched, nebo příkazového řádku SchTasks) jako "správce" (vlastník úlohy), nebude ji moci "uživatel" spustit pomocí SchTasks (například pomocí zástupce, či BAT/CMD/VBS...), pokud mu opět nedáte pověření - tedy opět buďto pomocí RunAs, umožní-li to vůbec daná verze Windows, nebo například pro zástupce/LNK. S variantou zástupce by problém v bezpečnosti snad být neměl (nemám to ale kvůli stále aktivnímu UACu odzkoušené), ale podmínkou je že bude deaktivovaný UAC, jinak to nebude proveditelné ani pro účet správce (pro ostatní účty zástupce ani běh aplikace nedokáže zajistit, u WindowsXP to myslím ještě šlo).
- Aby bylo možné úlohu spustit ručně, musí to být úloze povoleno.
- To že se při spuštění aplikace nezobrazí UAC je jen důsledek toho že jste při tvorbě úlohy zadal volbu "Spustit s nejvyšší oprávněním", což způsobí že úloha bude spuštěna s tokenem zvýšeného oprávnění (bez UAC) a ne jen s tokenem nutného oprávnění (UAC). Dávkové úlohy a shell (příkazový řádek) v tomto režimu pracují standardně.
- "Uživatel" nemůže vytvořit úlohu (svoji vlastní úlohu, je jedno pod jakým uživatelským účtem bude spouštěna), která poběží s tokenem zvýšeného oprávnění. Úloha musí být spuštěna pod uživatelským účtem, nemůže být spuštěna pod účtem systému nebo služeb (LOCALSERVICE, NETWORKSERVICE). Příkazový řádek sice tuto možnost připouští, ale vždy jsem skončil na tom, že pověření uživatele nejsou v místním počítači povolena.
- "Uživatel" však může vytvořit úlohu, která nebude spouštěna s nejvyšším oprávněním a která bude spuštěna s právy správce, nebo jakéhokoli jiného požadovaného uživatele. Patřičné pověření bude uloženo v uživatelově správci pověření. Bohužel, poběží taková úloha jen v profilu/kontextu uživatele "jako který byla spuštěna", takže pod účtem z kterého byla úloha skutečně spuštěna (díky uloženým pověřením) bude vnímána spíše jako služba/aplikace běžící na pozadí, ke které právě přihlášený uživatel nemá přístup.

3.Součástí Sysinternals Suite/Tool je aplikace ShellRunas, která si zachovává funkcionalitu RunAs z WindowsXP/Server 2003. To znamená že lze příkaz zadat jak s uvedením uživatele, tak jeho hesla. Od Windows Vista již heslo nemůže být zadáno přímo/dopředu, ale systém/program se na něj vždy zeptá. Za jistých okolností to může být použitelné, třeba ve spojení s překladačem BAT -> EXE. Ale je to jen taková nouzová berlička. V zásadě tu stejnou práci odvede jakýkoli VBScript, například:

set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.run "runas /user:nejaky_uzivatel notepad.exe"
WScript.Sleep 1000
WshShell.SendKeys "heslo_nejakeho_uzivatele"
WshShell.SendKeys "{ENTER}"

set WshShell = Nothing

Skript lze nechat i enkódovat. Ve spojení s ShellRunas (Sysinternals) by vznikla náhrada za BAT2EXE.

Vše jsou to ale pouhé berličky a v zásadě nepoužitelné blbosti...

Práce se zpětnou analýzou by se také dala ztížit například rozkopírováním standardního systémového RunAs (což je EXE soubor) pod jedinečnými názvy, s využítím funkce ukládání pověření (umožňuje-li to daný systém) a okamžitém mazání úlohy po dokončení.

Pokud by byl v systému vypnutý UAC a úloha by měla běžet se právy správce, za situace kdy nebude použit vše komplikující
RunAs, je po problému, protože si můžete uložit pověření k jakémukoli zástupci, naplánované úloze,...

4. Dál to zatím rezebírat nechci. Jen vás vyzívám abyste ověřil že právě váš systém (účet uživatele) si neuložil pověření použitelné pro jakýkoli příkaz "RunAs /savecred". Pokud jste tedy nepoužil fígl, že v účtu uživatele je uloženo pověření ke spuštění naplánované úlohy jako jiný uživatel (třeba s právy správce) a teprve v pověřeních tohoto uživatele existuje pověření pro RunAs (netestováno!)

Ještě zmíním řešení, které ale nemám vyzkoušené, právě ho studuji. Je jím nasazení/aktivace Správce Autorizací (Authorization Manager). Můžete ho vyvolat příkazem AZMan.msc (nebo spustit přes konzoli MMC), ale dále vás zatím musím odkázat na nápovědu a web Microsoftu.

Pochopitelně, vždy je možnost spolehnout se na šifrování hesel v aplikacích třetích stran, nebo například na gallerii Technetu, kde je pár více či méně předpřipravených skriptů pro PowerShell (ten bude muset být pro běh skriptu, tedy ne jen jednoduchého příkazu, v systému povolen) které by měli přímo používat správu pověření v systému Windows.

Winař pochopitel

Re:Úloha běžící pod systémovým účtem
« Odpověď #23 kdy: 24. 04. 2013, 18:14:44 »
Jen aby nedošlo k mýlce. Správce může vytvořit úlohu běžící jako SYSTEM buďto pomocí TaskSchd nebo pomocí AT (je-li tak nakonfigurován). Všechny ostatní možnosti (SchTasks) vždy skončí oznámením, že požadavek není podporován.

Bohužel ani staré dobré AT už nefunguje jako dříve (díky nějakému zasranému rozšíření zabezpečení). Přepínač INTERACTIVE prostě nefunguje. Zejména o onu interaktivitu (komunikaci úlohy s plochou právě přihlášeného uživatele) mi šlo zejména, pokud to náhodou z předchozího nebylo zřejmé. V původním dotazu nešlo o spouštění aplikací na pozadí... Jinak považujte poznámku o systémovém účtu jen jako doplňkovou informaci.

Winař

Re:Služba běžící pod systémovým účtem & "interactivita"
« Odpověď #24 kdy: 24. 04. 2013, 22:23:16 »
Stále lze vytvořit službu, která když běží pod systémovým účtem "podporuje" interaktivitu. Výsledek je ale tak otřesný, že se je třeba podělit o zkušenost!

Službu TEST lze vytvořit takto: "SC Create TEST binPath= "cmd /c Notepad" type= own type= interact"
Spustit ji lze, kromě jiného způsobu, takto "SC Start TEST", odstranit ji pak ze systému takto "SC Delete TEST".

Již při vytvoření se zjeví "UPOZORNĚNÍ: Služba TEST je nakonfigurována jako interaktivní služba, jejíž podpora je ukončena. Služba nemusí správně fungovat."
V uživatelském rozhraní správce služeb (Services.msc) vše vypadá jak má (je povoleno používání plochy při běhu pod systémovým účtem), tak zkouším test. Šlo by takhle případně spustit aplikaci hned při startu počítače, eventelně dál zkušet laborovat s pověřeními pro start služby...

Start služby vyvolá "Zjištění dialogových oken interaktivních služeb"
***
Program nemůže zobrazit zprávu na ploše.
Program pravděpodobně potřebuje k dokončení úlohy informace nebo oprávnění.
Proč k této situaci dochází?

->Zobrazit zprávu
->Zobrazit upozornění za několik minut

K tomuto problému dochází z důvodu částečné nekompatibility se systémem Windows. Další informace vám poskytne výrobce programu nebo zaří
***

To co uzříte pokud si zprávu zobrazíte je děs, bída a utrpení - rozhodně ne uživatelské prostředí. Už jsem se s tímto prostředím setkal, ale šlo o historickou aplikaci (kterou jsem ihned zavrhl používat)... a tehdy jsem nepochopil, že to je standardní chování systému.

Závěr je, tudy cesta nevede! Na systémech Windows Vista/7/Server 2008 a zřejmě i následujících. Microsoft je trubka, nejtrubkovatější, zpět k Windows XP!

Jen pro jistotu, kdyby linuxáři (čtou-li toto téma) něco nechápali. Microsoft dodrbal bezpečnost u RunAs (správu pověření) a dále nám znemožnil spouštět aplikace v interaktivním režimu (pokud není uživatel v jehož kontextu aplikace běží přihlášený). Ve spojení s UAC (což je ale jinak dobrá věc) se stala Windows pro špatně napsané aplikace (ve firemním prostředí jich je stále dost) prakticky nepoužitelná. Staré postupy přestaly fungovat, nové neexistují nebo nefungují jak je třeba. Myslím, že většina správců sáhne klidně i po neznámé aplikaci třetí strany, nebo prostě povolí administrátorský přístup. (Asi ono zmiňované rozšíření zabezpečení ke kterému Misrosoft uživatele nutí. Stále nechápu to nebezpečí v interaktivitě, když ji správce chce povolit má mu to být umožněno).

Withy14

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #25 kdy: 06. 06. 2013, 09:47:36 »
Ahoj, na pár takových programů sem narazil. Vyřešil sem to následovně:

Nainstaloval sem aplikaci mimo Program Files, většinou dokonce na odlišný disk nebo aspoň jinou partitionu. Do té složky se dal uživateli plná práva (respektive se většinou zdědila z oprávnění danéo disku-partitiony), pak sem spustil program a otestoval, zda jede korektně pod daným uživatelem (první spuštění sem provedl samozřejmě jako správce - v případě že potřeboval vytvořit někde nějake konfigurační soubory a registry). Pokud korektně nejel, kontaktoval jsem dodavatele softwaru, aby k tomu poskytl bližší informace. Je to sice občas na dlouhe lokte, ale ve firemním prostředí není možné, aby měl standardní uživatel práva správce (existují sice výjimky, například u mzdové účetní  a nebo ekonoma je to většinou nezbytné, protože studovat takto rozsáhlé aplikace, které se aktualizují s každou novelou zákona nebo změnou ve finančním sektoru, je pro správce celé infrstruktury nereálné, na druhou stranu tito lidé bývají i zodpovědní - přece jen držet v rukách platy všech zaměstnanců  a výdaje dané firmy je samo o sobě velká zodpovědnost, ale jinak donoce ani můj "boss" tato oprávnění neměl).

Jimm

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #26 kdy: 06. 06. 2013, 10:07:31 »
Chyba není v OS, chyba je vždy ve vývojářích softwaru. Ideální je MSI balíček k instalaci a přidělení práv přes AD, v tomto případě bych si dovolil tvrdit že to jde asi vždy, ale nejsem si úplně jist. Ale s jistotou mohu dodat ukázky softwaru kde bude mít uživatel při konfiguraci přes AD práva pro instalaci updatu. S vývojáři tohoto softwaru jsme to řešili cca 3 měsíce, ale nakonec to šlo...

Pavel 'TIGER' Růžička

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #27 kdy: 06. 06. 2013, 10:36:46 »
Nejhorší na tom je, že tyto zvyky tlačí i do linuxu, nedávno jsem jednu takovou řešil. Zadavatelem byl stát. Jelikož aplikace byla hotová pro Windows v NETu, tak ji převedli do MONa. No a asi jsem nebyl jedinej, kdo je prudil, protože konečná podoba byla úplně jiná, než ta, kterou chtěli vnutit. Je to jako dát dítěti do ruky klíčky od Ferrari, nevíš,  jak to dopadne.

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #28 kdy: 06. 06. 2013, 11:14:46 »
Ahoj, kdysi hodně dávno jsem řešil podobnou věc a osvědčil se http://www.joeware.net/freetools/tools/cpau/
Doporučuji vytvořit zašifrovaný soubor s jménem/heslem a cestou pro spuštění programu.

Re:Spuštění aplikace jako správce bez zadání hesla
« Odpověď #29 kdy: 10. 06. 2013, 22:05:39 »
Nainstaloval sem aplikaci mimo Program Files, většinou dokonce na odlišný disk nebo aspoň jinou partitionu.
Ja som sa pri vyvoji inspiroval google-om, a program sa instaluje do %localappdata% - funguje mi tam aj automaticky update, bez nejakych nastavovani. Update je formou msi - vtedy si ziada povolenie uzivatela spustit, ale nevyzaduje admin. ucet.