Domov · Bezpečnost · Je vyžadováno zvýšení přístupových práv. Zvýšení uživatelských oprávnění ve Windows

Je vyžadováno zvýšení přístupových práv. Zvýšení uživatelských oprávnění ve Windows

Mnoho programů vyžaduje zvýšení práv při spuštění (ikona štítu vedle ikony), ale ve skutečnosti nejsou pro jejich normální fungování vyžadována administrátorská práva (například jste ručně udělili potřebná práva uživatelům pro adresář programu v ProgramFiles a větve registru, které program používá). V souladu s tím se při spuštění takového programu jako jednoduchý uživatel, pokud je v počítači povolena funkce Řízení uživatelských účtů, zobrazí výzva UAC a uživatel bude požádán o zadání hesla správce. Aby se tento mechanismus obešel, mnozí jednoduše zakážou UAC nebo udělují uživateli administrátorská práva v počítači přidáním do místní skupiny administrátorů. Obě tyto metody jsou přirozeně nebezpečné.

Proč může běžná aplikace potřebovat administrátorská práva

Program může potřebovat administrátorská práva k úpravě určitých souborů (protokolů, konfigurací atd.) ve své vlastní složce v C:\Program Files (x86)\SomeApp). Ve výchozím nastavení nemají uživatelé práva upravovat tento adresář, proto jsou pro normální provoz takového programu vyžadována práva správce. Chcete-li tento problém vyřešit, musíte uživateli (nebo skupině Users) ručně přiřadit práva ke změně/zápisu do složky programu jako správce na úrovni NTFS.

Poznámka. Praxe ukládání měnících se dat aplikace do vlastního adresáře pod C:\Program Files je ve skutečnosti nesprávná. Správnější je ukládat data aplikace do uživatelského profilu. To je ale otázka lenosti a neschopnosti vývojářů.

Spuštění programu, který vyžaduje administrátorská práva od standardního uživatele

Dříve jsme popsali, jak můžete použít parametr RunAsInvoker. Tato metoda však není dostatečně flexibilní. Můžete jej také použít s uložením hesla správce /SAVECRED (také nebezpečné). Zvažme jednodušší způsob, jak vynutit spuštění jakéhokoli programu bez práv správce (a bez zadání hesla správce) s povoleným UAC (4.3 nebo úroveň 2).

Vezměme si například nástroj pro úpravu registru - regedit.exe(je umístěn v adresáři C:\windows\system32). Když spustíte regedit.exe, zobrazí se okno UAC a pokud nepotvrdíte zvýšení oprávnění, Editor registru se nespustí.

Vytvoříme soubor na ploše run-as-non-admin.bat s následujícím textem:

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && začít "" %1"

Chcete-li nyní aplikaci vynutit spuštění bez práv správce a potlačit výzvu UAC, jednoduše přetáhněte požadovaný exe soubor do tohoto souboru bat na ploše.

Poté by se měl spustit Editor registru bez zobrazení výzvy UAC. Otevřete správce procesů a přidejte sloupec Zvýšená(S vyššími oprávněními) uvidíte, že systém má proces regedit.exe s nezvýšeným stavem (běží s uživatelskými právy).

Zkuste upravit libovolný parametr ve větvi HKLM. Jak vidíte, přístup k úpravám registru v této větvi je odepřen (tento uživatel nemá práva k zápisu do větví systémového registru). Klíče ale můžete přidávat a upravovat ve vlastní větvi registru uživatele – HKCU.

Stejným způsobem můžete spustit konkrétní aplikaci prostřednictvím souboru bat, stačí zadat cestu ke spustitelnému souboru.

run-app-as-non-admin.bat

Set ApplicationPath="C:\Program Files\MyApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && spustit "" %ApplicationPath%"

Můžete také přidat kontextovou nabídku, která přidává možnost spouštění všech aplikací bez nadmořské výšky. Chcete-li to provést, vytvořte následující soubor reg a importujte jej do registru.

Editor registru systému Windows verze 5.00


@="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && spustit \"\" \"%1\"\""

Poté, chcete-li spustit jakoukoli aplikaci bez práv správce, stačí vybrat položku „“ v kontextové nabídce.

Proměnná prostředí __COMPAT_LAYER a parametr RunAsInvoker

Proměnná prostředí __COMPAT_LAYER umožňuje nastavit různé úrovně kompatibility pro aplikace (tab Kompatibilita ve vlastnostech exe souboru). Pomocí této proměnné můžete určit nastavení kompatibility, se kterou má program běžet. Chcete-li například spustit aplikaci v režimu kompatibility se systémem Windows 7 a rozlišením 640 x 480, nastavte:

sada __COMPAT_LAYER=Win7RTM 640x480

Mezi možnostmi proměnné __COMPAT_LAYER, které jsou pro nás zajímavé, zdůrazňujeme následující parametry:

  • RunAsInvoker- spuštění aplikace s oprávněními nadřazeného procesu bez požadavku UAC.
  • Spustit jako nejvyšší- spuštění aplikace s maximálními právy dostupnými uživateli (požadavek UAC se objeví, pokud má uživatel administrátorská práva).
  • RunAsAdmin- spusťte aplikaci s právy správce (vždy se zobrazí výzva AUC).

Tito. Parametr RunAsInvoker neposkytuje administrátorská práva, ale pouze blokuje vzhled okna UAC.

UAC(Řízení uživatelských účtů) je technologie řízení účtu, která se poprvé objevila v Windows Vista a starší. Tato technologie zabraňuje programům provádět akce, které vyžadují práva správce. Když program takové akce provede, jeho práce je pozastavena a uživateli se na chráněné ploše zobrazí okno s požadavkem (takže není možné programově stisknout tlačítko OK). Například pokud váš program potřebuje provést změny v klíči registru HKEY_LOCAL_MACHINE, pak bude potřebovat administrátorská práva.
K vyřešení tohoto problému můžete využít implementaci souboru manifestu do projektu, který operační systém načte a automaticky určí parametry nutné pro spuštění.
Zvažme zavedení souboru manifestu do aplikace " Formulář pro Windows" Chcete-li to provést, otevřete Visual Studio (v tomto příkladu je použita verze 2012) a vytvořte projekt " Formulář pro Windows" OTEVŘENO " Průzkumník řešení(Solution Explorer), který poskytuje organizovaný pohled na projekty a jejich soubory, přejděte do nabídky Pohled» - « Průzkumník řešení" Klikněte pravým tlačítkem na " Průzkumník řešení" podle názvu projektu a vyberte z kontextové nabídky, " Přidat» - « Vytvořit prvek...».

Otevře se nové okno " Přidávání nového prvku -..."vyhledejte prvek Visual C# s názvem" Soubor manifestu aplikace“, vyberte jej a klikněte na „ Přidat».

V " Průzkumník řešení"Budete mít novou položku s názvem souboru manifestu. Automaticky se také otevře v editoru kódu.

Chcete-li nakonfigurovat práva nezbytná ke spuštění aplikace, musíte určit úroveň zabezpečení a popsat prvek „ požadovanáExecutionLevel" Tento prvek nemá žádné podřízené prvky a má následující atributy:
1) Úroveň- Požadované. Nastavuje úroveň zabezpečení vyžadovanou aplikací. Pro tento atribut jsou k dispozici následující hodnoty:
  • jako Invoker- aplikace se spustí s právy nadřazeného procesu. To znamená, že pokud spustíte program z aplikace, která již běží s právy správce, bude mít automaticky stejná práva. Tento režim ve většině případů doporučuje společnost Microsoft. Tito. Jedná se o programy, které nevyžadují práva správce;
  • nejvyšší Dostupné— aplikace se spouští s vyššími právy, než má aktuální uživatel. Regedit.exe, Mmc.exe jsou spuštěny s těmito právy;
  • vyžadovatAdministrátora- jsou vyžadována plná administrátorská práva. Tito. vyžadováno pro aplikace, které nelze spustit bez práv správce.

Instalace aplikací " Klepněte jednou" je možné pouze s hodnotou "asInvoker". Jakákoli jiná hodnota instalaci neumožní.

2) uiAccess- Volitelné. Označuje, zda aplikace vyžaduje přístup k prvkům chráněného uživatelského rozhraní k implementaci funkcí usnadnění. Dostupné hodnoty" skutečný" A " Nepravdivé", výchozí hodnota je " Nepravdivé". Význam " skutečný" musí mít pouze podepsané aplikace a být spuštěn ze složek "\Program Files\" a "\windows\system32\". Většinou to není nutné.
Aby program při spuštění vyžadoval povýšení práv na administrátorskou úroveň, nahraďte atribut „ Úroveň" výchozí hodnota " jako Invoker"zapnuto" vyžadovatAdministrátora».

Vytvořte řešení stisknutím tlačítka " F6" Pokud jste vše udělali správně, v operačních systémech Windows Vista a starších se na ikoně spustitelného souboru programu objeví ikona štítu, která značí, že tento program vyžaduje zvýšení práv.

Chcete-li zkontrolovat oprávnění vaší aplikace, můžete použít níže uvedený seznam.
string s = new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator) ? "Administrátor" : "Běžný uživatel"; Pokud máte konzolovou aplikaci, pak je princip fungování stejný.

Hmm, rozdíl mezi jedním a druhým je pouze v tom, jak jsou nastaveny parametry kompatibility, v prvním případě - ručně, ve druhém - totéž, pouze prostřednictvím průvodce. Ale i tak děkuji za podrobnou odpověď))

Díky, já vím)))))))))))))))))))

Ok, jsem admin (možná trochu negramotný, ale doufám, že to doženu...) Jak mohu povolit spouštění této aplikace (a pouze této)? Zároveň, aby neustále neutíkal na svůj stroj (pro zadání hesla místního správce, které by neměl znát), když potřebuje tuto aplikaci spustit.

Jsem vám velmi vděčný, že jste mi připomněli část přednášky na téma „Operační systémy“. Uvedu další, nyní již klasický, příklad:

Někdy uživatel potřebuje změnit své přihlašovací heslo. Sám uživatel nemá práva pro přístup k databázi hesel. Program, který používá ke změně hesla, však běží se zvýšenými právy. Což mu nakonec umožňuje změnit heslo.

Můj případ je tedy podobný. Jak "řeknu" systému, že program má běžet se zvýšenými právy? V tomto případě bude spuštěn uživatelem ze skupiny „user“/„power user“.

To lze ve skutečnosti provést spuštěním programu jako „plánované úlohy“ jako jiný uživatel. Vše by bylo v pořádku - dokonce se spustí, ale na ploše uživatele se nezobrazuje grafické rozhraní (okna programu)...

Koncepční rozpor??? Výše jsem uvedl příklad - úloha je zcela standardní pro jakýkoli OS. Jen to nechci řešit pomocí nástrojů třetích stran (nejsou součástí Windows Vista). UAC jsem již zakázal - každopádně aplikace funguje správně pouze s administrátorskými právy, tak to je - specifické.... Zařadit tohoto uživatele do místní skupiny "Administrators" se z bezpečnostních důvodů nezdá možné .

Ohledně scénáře - pro běž jako existuje příznak, který vám umožní zapamatovat si heslo, ale v tomto případě bude uživatel moci spustit žádný program s administrátorskými právy.

To znamená, že nechci spouštět software, jehož zdrojový kód nikdo neviděl, o dodavateli se nic neví a jehož web je „v rukou lidí“. Co uživatelé - eh, kdyby to stačilo, tak by se tato diskuze na fóru neobjevila..... =(

Rád bych věřil, že ne všechno je tak špatné.

Zvýšení oprávnění je možná jedním z klíčových bodů, na kterém závisí scénář dalšího pentestingu nebo útoku. Velmi často vše končí v této fázi, pokud není možné „rozšířit své síly“. Proto si dnes povíme něco málo o způsobech, které umožňují uživateli zvýšit svá oprávnění nejen správci, ale i systému.

Úvod

Eskalace oprávnění se v systémech Windows a Linux mírně liší. Ačkoli oba operační systémy nesou obvyklý počet zranitelností, výzkumníci poznamenávají, že plně opravený Windows server je mnohem běžnější než linuxový server, který byl aktualizován na nejnovější stav. Doba vydání záplat pro Windows je navíc často kratší, což dělá ze zvyšování oprávnění ve Windows poměrně zajímavý a ambiciózní úkol. Právě jí zasvětíme náš příběh.

Možnosti

Jaké příležitosti tedy máme, abychom ve světě Windows povstali? Za prvé, nedávno bylo v jádře operačního systému nalezeno dostatek zranitelností souvisejících s analýzou písem, což značně zjednodušuje proces eskalace oprávnění, pokud máte po ruce vhodný exploit. Pokud používáte Metasploit, stačí k získání systémového shellu pouze jeden příkaz. To vše však bude pravděpodobně úspěšně fungovat pouze v případě, že systém nebude kompletně opatchován. Pokud jsou na stroji nainstalovány všechny aktualizace, pak na rozdíl od Linuxu nebude možné najít binární soubory SUID a proměnné prostředí se obvykle nepředávají službám nebo procesům s vyššími oprávněními. Co nám ve výsledku zbývá?

Od admina po systém, aneb co každý zná

Obvykle, když přemýšlíte o eskalaci oprávnění, metoda, která vás okamžitě napadne, je použití plánovače úloh. Ve Windows můžete přidat úlohu pomocí dvou nástrojů: at a schtasks. Druhý spustí úlohu jménem uživatele, který úlohu přidal, zatímco první bude spuštěn jménem systému. Standardní trik, o kterém jste pravděpodobně slyšeli a který vám umožňuje spustit konzolu se systémovými právy:

Ve 13:01 /interaktivní cmd

Druhá věc, která mě napadá, je přidání služby, která spustí požadovaný soubor / provede příkaz:

@echo off @break off kořen názvu Cls echo Vytváření služby. sc create evil binpath= "cmd.exe /K start" typ= vlastní typ= interakce > nul 2>&1 echo Spouštění služby. sc start evil > nul 2>&1 echo Čeká se... ping 127.0.0.1 -n 4 > nul 2>&1 echo Odebírání služby. echo. sc smazat zlo > nul 2>&1

Třetí metodou je nahrazení systémové utility C:\windows\system32\sethc.exe například cmd. Pokud se poté odhlásíte a několikrát stisknete klávesu Shift, objeví se konzole se systémovými právy.

Co se týče automatizovaných metod, okamžitě mě napadne Metasploit a jeho getsystem. Alternativní možností je PsExec od Sysinternals (psexec -i -s -d cmd.exe).

Půjdeme jinou cestou

Všechny tyto metody mají společnou nevýhodu: jsou vyžadována oprávnění správce. To znamená, že eskalujeme oprávnění z privilegovaného účtu. Ve většině případů, když jste obdrželi administrátorská práva, máte spoustu možností, jak se posunout ještě výše. Není to tedy příliš obtížný úkol. Dnes si povíme o metodách eskalace oprávnění, které nevyužívají žádné 0day zranitelnosti, za předpokladu, že máme normální systém a účet běžného neprivilegovaného uživatele.

Honba za pověřeními

Jedním ze spolehlivých a stabilních způsobů, jak zvýšit oprávnění a prosadit se v systému, je získat hesla administrátorů nebo uživatelů s vyššími oprávněními. A nyní je čas vzpomenout si na automatickou instalaci softwaru. Pokud spravujete doménu, která zahrnuje velkou flotilu strojů, rozhodně nechcete chodit instalovat software na každý z nich ručně. A zabere to tolik času, že na žádné další úkoly nebude dost. Proto se používají bezobslužné instalace, které generují soubory obsahující administrátorská hesla v jejich nejčistší podobě. Což je prostě poklad pro pentestery i útočníky.

Bezobslužné instalace

V případě automatizované instalace zůstává na klientovi pro nás celkem zajímavý soubor Unattended.xml, který se obvykle nachází buď v %WINDIR%\Panther\Unattend\ nebo v %WINDIR%\Panther\ a může uložte heslo správce jako prostý text. Na druhou stranu, abyste získali tento soubor ze serveru, nepotřebujete ani žádné ověřování. Potřebujete pouze najít server „Windows Deployment Services“. K tomu můžete použít skript pomocný/scanner/dcerpc/windows_deployment _services z Metasploit. Přestože služba Windows Deployment Services není jediným způsobem, jak provádět automatizované instalace, soubor Unattended.xml je považován za standard, takže jeho objevení lze považovat za úspěch.

GPP

Soubory XML předvoleb zásad skupiny poměrně často obsahují sadu zašifrovaných přihlašovacích údajů, které lze použít k přidávání nových uživatelů, vytváření sdílených položek a tak dále. Naštěstí je metoda šifrování zdokumentována, takže můžete snadno získat hesla v jejich čisté podobě. Navíc tým Metasploit již udělal vše za vás – stačí použít modul /post/windows/gather/credentials/gpp.rb. Pokud vás zajímají podrobnosti, pak všechny potřebné informace najdete na tomto odkazu.

Uživatelská práva

Eskalace oprávnění je velmi často důsledkem nesprávně nakonfigurovaných uživatelských práv. Například když je uživatel domény místním správcem (nebo pokročilým uživatelem) na hostiteli. Nebo když jsou uživatelé domény (nebo členové doménových skupin) místními správci na všech hostitelích. V tomto případě opravdu nebudete muset nic dělat. Ale takové možnosti se moc často neobjevují.

AlwaysInstallElevated

Někdy správci umožňují běžným uživatelům instalovat programy sami, obvykle prostřednictvím následujících klíčů registru:

HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated

HKCU\SOFTWARE\Policies\Microsoft\Window s\Installer\AlwaysInstallElevated

Říkají systému, že jakýkoli soubor MSI musí být nainstalován se zvýšenými oprávněními (NT AUTHORITY\SYSTEM). V souladu s tím můžete pomocí speciálně vytvořeného souboru opět provádět akce jménem systému a upgradovat svá oprávnění.

Metasploit obsahuje speciální modul exploit/windows/local/always_install_elevated, který vytvoří MSI soubor se speciálním spustitelným souborem v něm vloženým, který je extrahován a spuštěn instalačním technikem se systémovými právy. Po spuštění soubor MSI přeruší instalaci (voláním speciálně vytvořeného neplatného VBS), aby se zabránilo přihlášení akce do systému. Pokud navíc spustíte instalaci přepínačem /quiet, uživatel ani neuvidí chybu.

Chybí autostart

Často se stává, že systém uchovává záznam o souboru, který je třeba automaticky spustit, i poté, co samotný soubor již upadl v zapomnění. Možná byla některá služba odebrána nesprávně - neexistuje žádný spustitelný soubor, ale položka registru zůstává a pokaždé, když se systém neúspěšně pokusí spustit, naplní protokol událostí zprávami o selháních. Tuto situaci lze také využít k rozšíření vašich pravomocí. Prvním krokem je najít všechny takové osiřelé záznamy. Například pomocí nástroje autorunsc od Sysinternals.

Autorunsc.exe -a | findstr /n /R "Soubor\ nenalezen"

Poté, jak jste uhodli, už zbývá jen nějak vklouznout vašeho kandidáta na místo chybějícího souboru.

Kouzlo citátů

Ano, ano, uvozovky mohou nejen hrát krutý vtip v dotazech SQL, což umožňuje vkládání, ale také pomáhá zvýšit oprávnění. Problém je poměrně starý a je znám již od dob NT. Jde o to, že cesty ke spustitelným souborům některých služeb nejsou ohraničeny uvozovkami (například ImagePath=C:\Program Files\Common Files\Network Associates\McShield\McShield.exe) a v poli jsou mezery. cesta. V tomto případě, pokud útočník vytvoří soubor, který do systému přidá nové správce nebo provede nějaké jiné akce, a nazve ho C:\Program Files\common.exe , bude to při příštím spuštění služby běžné. exe, který bude spuštěn, a zbývající část cesty bude brána jako argument(y). Je jasné, že neprivilegovaný uživatel nebude moci do Program Files vložit nic, ale spustitelný soubor služby může být umístěn v jiném adresáři, to znamená, že uživatel bude mít možnost vložit svůj vlastní soubor.

Abyste mohli použít tuto techniku, musíte najít zranitelnou službu (která nebude používat uvozovky v cestě ke svému binárnímu souboru). To se provádí následovně:

Služba Wmic získá jméno, zobrazované jméno, cestu, startmode |findstr /i "auto" |findstr /i /v "c: \windows\\" |findstr /i /v """

Je pravda, že na XP to bude vyžadovat oprávnění správce, takže je lepší použít následující metodu: získat seznam služeb - dotaz sc , pak se podívat na informace pro každou službu - sc qc název_služby .

Vše podle plánu

Dalším mechanismem, který může pomoci zvýšit práva a na který se obvykle zapomíná, je plánovač úloh. Nástroj schtasks vám umožňuje přiřadit úkoly konkrétním událostem. Nejzajímavější jsou pro nás ONIDLE, ONLOGON a ONSTART. Jak názvy napovídají, ONIDLE se spustí pokaždé, když je počítač nečinný, ONLOGON a ONSTART - když se uživatel přihlásí, respektive když se spustí systém. Každé z událostí tak může být přiřazen samostatný úkol. Například, když se systém spustí, zkopírujte někde škodlivý binární soubor/keylogger/… a spusťte jej. Když se uživatelé přihlásí, spusťte výpis kreditních karet. Vše je zkrátka omezeno pouze vaší představivostí a daným úkolem.

Triky s oprávněními

Oprávnění k souborům jsou obvykle první obranou, která nám brání v eskalaci našich oprávnění. Bylo by lákavé jednoduše přepsat nějaký systémový soubor (například stejný sethc.exe zmíněný na samém začátku článku) a okamžitě získat systémová oprávnění. Ale to všechno jsou ve skutečnosti jen sny, máme povolení to číst, což nám nedává absolutně nic. Neměli byste však věšet nos, protože ani s povoleními nejde všechno tak hladce – i zde, stejně jako jinde, existují úskalí, jejichž znalost vám umožní udělat z nemožného možné.

Jeden ze systémových adresářů chráněných tímto mechanismem je zajímavý zejména z pohledu eskalace oprávnění - Program Files. Neprivilegovaným uživatelům je tam odepřen přístup. Někdy se však stává, že během procesu instalace instalátoři nesprávně nastaví oprávnění k souborům, což má za následek, že všichni uživatelé získají plný přístup ke spustitelným souborům. Co z toho vyplývá - už jste uhodli.

Dalším omezením je, že běžný smrtelník nesmí zapisovat do kořenového adresáře systémového disku. Například na XP však při vytváření nového adresáře v kořenovém adresáři disku skupina BUILTIN\Users obdrží oprávnění FILE_APPEND_DATA a FILE_WRITE_DATA (i když je vlastníkem složky správce):

BUILTIN\Users:(OI)(CI)R BUILTIN\Users:(CI)(zvláštní přístup:) FILE_APPEND_DATA BUILTIN\Users:(CI)(zvláštní přístup:) FILE_WRITE_DATA

Na „sedmičce“ se stane téměř to samé, povolení dostane pouze skupina AUTENTICOVANÍ UŽIVATELÉ. Jak se toto chování může stát problémem? Některé aplikace se pouze instalují mimo chráněné adresáře, což usnadňuje nahrazení jejich spustitelných souborů. K takovému incidentu došlo například u Metasploit Framework v případě jeho víceuživatelské instalace. Tato chyba byla opravena ve verzi 3.5.2 a nástroj se přesunul do Program Files.


Jak hledat takové adresáře/soubory

Nalezení adresáře s nesprávnými oprávněními je již polovina úspěchu. Nejprve jej však musíte najít. K tomu můžete použít následující dva nástroje: AccessChk a Cacls/ICacls. Chcete-li najít „slabé“ adresáře pomocí AccessChk, budete potřebovat tyto příkazy:

Accesschk.exe -uwdqs users c:\ accesschk.exe -uwdqs “Authenticated Users” c:\

Chcete-li vyhledat soubory se „slabými“ oprávněními, použijte následující:

Accesschk.exe -uwqs users c:\*.* accesschk.exe -uwqs “Authenticated Users” c:\*.*

Totéž lze provést pomocí Cacls/ICacls:

Cacls "c:\Program Files" /T | findstr Uživatelé

Triky se službami

Další možností, jak se posunout v systému nahoru, je využít chybné konfigurace a chyb služby. Jak ukazuje praxe, nejen soubory a složky, ale také služby běžící v systému mohou mít nesprávná oprávnění. K jejich odhalení můžete použít nástroj AccessChk od známého Marka Russinoviče:

Accesschk.exe –uwcqv *

Bude velmi povzbudivé vidět oprávnění SERVICE_ALL_ACCESS pro ověřené uživatele nebo pokročilé uživatele. Za velký úspěch lze ale považovat i následující:

  • SERVICE_CHANGE_CONFIG - můžeme změnit spustitelný soubor služby;
  • WRITE_DAC - oprávnění lze změnit, což vede k získání oprávnění SERVICE_CHANGE_CONFIG;
  • WRITE_OWNER - můžete se stát vlastníkem a měnit oprávnění;
  • GENERIC_WRITE - zdědí oprávnění SERVICE_CHANGE_CONFIG ;
  • GENERIC_ALL – zdědí oprávnění SERVICE_CHANGE_CONFIG.

Pokud zjistíte, že jedno (nebo více) z těchto oprávnění je nastaveno na neprivilegované uživatele, vaše šance na eskalaci vašich oprávnění se dramaticky zvýší.

Jak zvýšit?

Řekněme, že jste našli vhodnou službu, je čas na ní zapracovat. S tím vám pomůže konzolový nástroj sc. Nejprve získáme úplné informace o službě, o kterou máme zájem, řekněme, že je to upnphost:

Sc qc upnphost

Pojďme to nakonfigurovat pomocí stejného nástroje:

Sc config vulnsrv binpath= "net user john hello /add && net localgroup Administrators john /add" type= interact sc config upnphost obj= “.\LocalSystem” password=“”

Jak vidíte, při příštím spuštění služby se místo jejího spustitelného souboru provede příkaz net user john hello /add && net localgroup Administrators john /add, čímž se do systému přidá nový uživatel john s heslem hello. Zbývá pouze ručně restartovat službu:

Net stop upnphost net start upnphost

To je celé kouzlo.

jaký je výsledek?

Kdysi dávno jsem četl článek v časopise, který nastínil základní techniky eskalace oprávnění ve Windows. Tehdy jsem tomu nepřikládal velký význam, ale teorie mi utkvěla v hlavě a kdysi mi hodně pomohla. Doufám tedy, že v tomto článku pro sebe najdete něco nového, co vám jednoho dne pomůže překonat další bariéru.

Dnes budeme hovořit o eskalaci oprávnění Windows. Dozvíte se, jak může útočník eskalovat oprávnění a jak se před tím chránit.

Veškeré informace slouží pouze pro informační účely. Redakce stránek ani autor článku nenesou odpovědnost za jeho nesprávné použití.

Zvýšení oprávnění s BeRoot

Většina metod zvyšování oprávnění je spojena s chybami v konfiguraci nainstalovaného softwaru, ať už jde o cestu ke spustitelnému souboru služby, neobklopenou uvozovkami a obsahující mezeru (tuto situaci řeší Windows docela zajímavě), nebo nesprávně nastavit práva k adresáři s aplikací.

Člověk je tvor líný a nechce tohle všechno pokaždé ručně kontrolovat. Proto se dříve nebo později musel objevit nástroj, který by tuto rutinu zautomatizoval.

Sekundární přihlašovací rukojeť

Další zajímavý trik zahrnuje použití služby Sekundární přihlášení. Tato služba vám umožňuje spouštět programy, konzoly Microsoft Management a prvky ovládacího panelu jako správce, i když aktuální uživatel patří pouze do skupiny Users nebo Power Users. Jde o to, že tato služba nečistí kliky při vytváření nových procesů.

Pro nás je důležité, že téměř všechny verze Windows (x32 a x64) jsou náchylné k této chybě zabezpečení: od Vista po Windows 2012 Server. Existují však také omezení: pro úspěšné eskalování oprávnění musí mít systém nainstalovaný PowerShell 2.0 nebo vyšší a také dvě nebo více jader CPU. Metasploit Framework má speciální modul exploit/windows/local/ms16_032_secondary_logon_handle_privesc.

Jeho použití znamená, že již máme relaci meterpreter, kterou musíme specifikovat v parametrech: nastavte SESSION 1. No, v případě úspěšného využití budeme mít další relaci se zvýšenými oprávněními.

\ pentestlab > seznam wmic qfe | najít "3139914"

Závěr

Bez ohledu na to, jak moc se snažím vměstnat všechny možné možnosti navýšení privilegií do jednoho článku, to pravděpodobně nepůjde, nebo článek naroste do obřích rozměrů a stane se pro vás nezajímavým. Takže je čas to nazvat den. O ochraně si povíme v samostatném článku.