У дома · Безопасност · Изисква се повишаване на правата за достъп. Повишаване на потребителските привилегии в Windows

Изисква се повишаване на правата за достъп. Повишаване на потребителските привилегии в Windows

Много програми изискват повишаване на правата при стартиране (икона на щит до иконата), но всъщност те не изискват администраторски права за нормалната си работа (например вие ръчно сте предоставили необходимите права на потребителите за програмната директория в ProgramFiles и клоновете на регистъра, които се използват от програмата). Съответно, когато стартирате такава програма като обикновен потребител, ако контролът на потребителските акаунти е активиран на компютъра, ще се появи UAC подкана и потребителят ще трябва да въведе администраторската парола. За да заобиколят този механизъм, много просто деактивират UAC или предоставят на потребителя администраторски права на компютъра, като го добавят към групата на локалните администратори. Естествено, и двата метода не са безопасни.

Защо едно обикновено приложение може да се нуждае от администраторски права

Програмата може да се нуждае от администраторски права, за да променя определени файлове (регистрационни файлове, конфигурации и т.н.) в собствената си папка в C:\Program Files (x86)\SomeApp). По подразбиране потребителите нямат права да редактират тази директория, следователно за нормална работа на такава програма са необходими администраторски права. За да разрешите този проблем, трябва ръчно да присвоите права за промяна/запис на потребителя (или групата потребители) на програмната папка като администратор на ниво NTFS.

Забележка. Всъщност практиката за съхраняване на променящите се данни на приложението в собствената му директория под C:\Program Files е неправилна. По-правилно е данните за приложението да се съхраняват в потребителския профил. Но това е въпрос на мързел и некомпетентност на разработчиците.

Стартиране на програма, която изисква администраторски права от стандартен потребител

По-рано сме описали как можете да използвате параметъра RunAsInvoker. Този метод обаче не е достатъчно гъвкав. Можете също да го използвате със запазване на администраторската парола /SAVECRED (също небезопасно). Нека разгледаме по-прост начин да принудите всяка програма да стартира без администраторски права (и без въвеждане на администраторска парола) с активиран UAC (4.3 или ниво 2).

Например, нека вземем помощната програма за редактиране на системния регистър - regedit.exe(намира се в директорията C:\windows\system32). Когато стартирате regedit.exe, се появява UAC прозорец и, освен ако не потвърдите повишаването на привилегиите, редакторът на системния регистър не се стартира.

Нека създадем файл на работния плот стартирайте като не-admin.batсъс следния текст:

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"

Сега, за да принудите приложението да работи без администраторски права и да потиснете UAC подканата, просто плъзнете желания exe файл върху този bat файл на работния плот.

След това редакторът на системния регистър трябва да стартира, без да се появява подканата за UAC. Отворете мениджъра на процеси и добавете колона Повишени(С по-високо ниво на разрешение) ще видите, че системата има процес regedit.exe с неповдигнат статус (работи с потребителски права).

Опитайте да редактирате всеки параметър в клона HKLM. Както можете да видите, достъпът за редактиране на регистъра в този клон е отказан (този потребител няма права да пише в клоновете на системния регистър). Но можете да добавяте и редактирате ключове в собствения клон на регистъра на потребителя - HKCU.

По същия начин можете да стартирате конкретно приложение чрез bat файл, просто посочете пътя до изпълнимия файл.

run-app-as-non-admin.bat

Задайте ApplicationPath="C:\Program Files\MyApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

Можете също така да добавите контекстно меню, което добавя възможност всички приложения да се стартират без повдигане. За да направите това, създайте следния reg файл и го импортирайте в системния регистър.

Windows Registry Editor версия 5.00


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

След това, за да стартирате всяко приложение без администраторски права, просто изберете елемента "" в контекстното меню.

__COMPAT_LAYER променлива на средата и параметър RunAsInvoker

Променливата на средата __COMPAT_LAYER ви позволява да зададете различни нива на съвместимост за приложения (таб Съвместимоств свойствата на exe файла). С помощта на тази променлива можете да зададете настройките за съвместимост, с които програмата да работи. Например, за да стартирате приложението в режим на съвместимост с Windows 7 и резолюция 640x480, задайте:

задайте __COMPAT_LAYER=Win7RTM 640x480

Сред опциите на променливата __COMPAT_LAYER, които са интересни за нас, подчертаваме следните параметри:

  • RunAsInvoker- стартиране на приложение с привилегиите на родителския процес без UAC заявка.
  • RunAsHighest- стартиране на приложението с максимални права, достъпни за потребителя (заявката UAC се появява, ако потребителят има администраторски права).
  • RunAsAdmin- стартирайте приложението с администраторски права (подканата AUC винаги се появява).

Тези. Параметърът RunAsInvoker не предоставя администраторски права, а само блокира появата на UAC прозореца.

UAC(User Account Control) е технология за контрол на акаунти, която се появява за първи път в Windows Vistaи по-стари. Тази технология не позволява на програмите да извършват действия, които изискват администраторски права. Когато програмата извършва такива действия, работата й се спира и на потребителя се показва прозорец за заявка на защитения работен плот (така че е невъзможно програмно да натисне бутона OK). Например, ако вашата програма трябва да направи промени в ключа на системния регистър HKEY_LOCAL_MACHINE, тогава тя ще се нуждае от администраторски права.
За да разрешите този проблем, можете да използвате внедряването на манифестен файл в проекта, който операционната система ще прочете и автоматично ще определи параметрите, необходими за стартиране.
Нека обмислим въвеждането на манифестен файл в приложението " Windows формуляр" За да направите това, отворете Visual Studio (версия 2012 се използва в този пример) и създайте проект " Windows формуляр" Отворете " Изследовател на решения(Solution Explorer), който предоставя организиран изглед на проекти и техните файлове, отидете в менюто Преглед» - « Изследовател на решения" Щракнете с десния бутон върху " Изследовател на решения" по името на проекта и изберете от контекстното меню, " Добавете» - « Създаване на елемент...».

Ще се отвори нов прозорец " Добавяне на нов елемент -..." потърсете елемента на Visual C# с име " Файл с манифест на приложението", изберете го и щракнете върху " Добавете».

В " Изследовател на решения„Ще имате нов елемент с името на манифестния файл. Освен това ще се отвори автоматично в редактора на кодове.

За да конфигурирате правата, необходими за стартиране на приложението, трябва да определите нивото на защита и да опишете елемента „ requestedExecutionLevel" Този елемент няма дъщерни елементи и има следните атрибути:
1) Ниво- Задължително. Задава нивото на сигурност, изисквано от приложението. За този атрибут са налични следните стойности:
  • asInvoker- приложението започва с правата на родителския процес. Това означава, че ако стартирате програма от приложение, което вече работи с администраторски права, то автоматично ще има същите права. Този режим се препоръчва от Microsoft в повечето случаи. Тези. Това са онези програми, които не изискват администраторски права;
  • най-високодостъпно— приложението се стартира с по-високи права, отколкото има текущият потребител. Regedit.exe, Mmc.exe се стартират с тези права;
  • изискват администратор- изискват се пълни администраторски права. Тези. изисква се за приложения, които не могат да работят без администраторски права.

Инсталиране на приложения" Кликнете Веднъж" е възможно само със стойността "asInvoker". Всяка друга стойност няма да позволи инсталиране.

2) uiAccess- По желание. Показва дали приложението изисква достъп до защитени елементи на потребителския интерфейс, за да реализира функции за достъпност. Налични стойности " вярно" И " невярно", стойността по подразбиране е " невярно". Значение " вярно" трябва да има само подписани приложения и да се стартира от папките "\Program Files\" и "\windows\system32\". Най-често това не е необходимо.
За да може програмата да изисква повишаване на правата до ниво администратор при стартиране, заменете атрибута „ Ниво" стойност по подразбиране " asInvoker" На " изискват администратор».

Конструирайте решение, като натиснете " F6" Ако сте направили всичко правилно, тогава в операционните системи Windows Vista и по-стари ще се появи икона на щит върху иконата на изпълнимия файл на програмата, което показва, че тази програма изисква повишаване на правата.

За да проверите разрешенията на вашето приложение, можете да използвате списъка по-долу.
низ s = нов WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator)? "Администратор" : "Редовен потребител"; Ако имате конзолно приложение, тогава принципът на работа е същият.

Хм, разликата между едното и другото е само в това как се задават параметрите за съвместимост, в първия случай - ръчно, във втория - същото, само чрез съветника. Но все пак благодаря за подробния отговор))

Благодаря, знам))))))))))))))))))

Добре, аз съм администратор (може би малко неграмотен, но се надявам да наваксам...) Как може да ми бъде разрешено да стартирам това приложение (и само това)? В същото време, за да не тича непрекъснато до машината си (да въвежда паролата на локалния администратор, която не трябва да знае), когато трябва да стартира това приложение.

Много съм ви благодарен, че ми припомнихте част от лекцията по темата „Операционни системи“. Нека ви дам друг, вече класически пример:

Понякога потребителят трябва да промени паролата си за вход. Самият потребител няма права за достъп до базата данни с пароли. Въпреки това, програмата, която той използва за промяна на паролата, работи с повишени права. Което му позволява в крайна сметка да промени паролата си.

И така, моят случай е подобен. Как да "кажа" на системата, че дадена програма трябва да работи с повишени права? В този случай той ще бъде стартиран от потребител от групата „потребител”/„усъвършенстван потребител”.

Това всъщност може да се направи чрез стартиране на програмата като "планирана задача" като различен потребител. Всичко би било наред - дори стартира, но графичният интерфейс (прозорците на програмата) не се показва на работния плот на потребителя...

Концептуално противоречие??? По-горе дадох пример - задачата е съвсем стандартна за всяка ОС. Просто не искам да го решавам с инструменти на трети страни (които не са включени в Windows Vista). Вече деактивирах UAC - във всеки случай приложението работи правилно само с администраторски права, така е - специфично.... Не изглежда възможно да включите този потребител в локалната група "Администратори" от съображения за сигурност .

Относно сценария - за руниима флаг, който ви позволява да запомните паролата, но в този случай потребителят ще може да стартира всякаквипрограма с администраторски права.

Това означава, че не искам да стартирам софтуер, чийто изходен код никой не е виждал, нищо не се знае за доставчика и чийто уебсайт е „в ръцете на хората“. Ами юзърите - ех, ако това беше достатъчно, тази дискусия нямаше да се появи във форума..... =(

Бих искал да вярвам, че не всичко е толкова лошо.

Повишаването на привилегиите е може би една от ключовите точки, от които зависи сценарият за по-нататъшно пентестиране или атака. Много често всичко свършва на този етап, ако не е възможно да „разширите силите си“. Затова днес ще поговорим малко за начините, които позволяват на потребителя да увеличи привилегиите си не само на администратора, но и на системата.

Въведение

Ескалацията на привилегиите е малко по-различна в Windows и Linux. Въпреки че и двете операционни системи носят обичайния брой уязвимости, изследователите отбелязват, че напълно закърпен Windows сървър е много по-често срещан от Linux сървър, който е актуализиран до последното състояние. В допълнение, времето за пускане на корекциите на Windows често е по-кратко, което прави увеличаването на привилегиите в Windows доста интересна и амбициозна задача. Именно на нея ще посветим нашата история.

Настроики

И така, какви възможности имаме да се издигнем в света на Windows? Първо, наскоро бяха открити достатъчно уязвимости, свързани с анализирането на шрифтове в ядрото на ОС, което прави процеса на ескалиране на привилегиите доста прост, ако имате подходящ експлойт под ръка. Ако използвате Metasploit, тогава само една команда е достатъчна, за да получите системна обвивка. Всичко това обаче вероятно ще работи успешно само ако системата не е напълно закърпена. Ако всички актуализации са инсталирани на машината, тогава, за разлика от Linux, няма да е възможно да се намерят двоични файлове на SUID и променливите на средата обикновено не се предават на услуги или процеси с по-високи привилегии. Какво ни остава като резултат?

От администратора до системата или това, което всеки знае

Обикновено, когато мислите за ескалиране на привилегии, методът, който веднага идва на ум, е използването на планировчика на задачи. В Windows можете да добавите задача с помощта на две помощни програми: at и schtasks. Вторият ще изпълни задачата от името на потребителя, който е добавил задачата, докато първият ще се изпълни от името на системата. Стандартен трик, за който вероятно сте чували, който ви позволява да стартирате конзолата със системни права:

В 13:01 /interactive cmd

Второто нещо, което идва на ум, е добавянето на услуга, която ще стартира необходимия файл / ще изпълни командата:

@echo off @break off title root Cls echo Създаване на услуга. sc create evil binpath= "cmd.exe /K start" type= own type= interact > nul 2>&1 echo Стартиране на услуга. sc start evil > nul 2>&1 echo Standing by... ping 127.0.0.1 -n 4 > nul 2>&1 echo Услуга за премахване. ехо. sc изтриване на зло > нула 2>&1

Третият метод е да замените системната помощна програма C:\windows\system32\sethc.exe с, например, cmd. Ако след това излезете и натиснете клавиша Shift няколко пъти, ще се появи конзола със системни права.

Що се отнася до автоматизираните методи, Metasploit и неговата getsystem веднага идват на ум. Алтернативен вариант е PsExec от Sysinternals (psexec -i -s -d cmd.exe).

Ще тръгнем по друг път

Всички тези методи имат общ недостатък: изискват се администраторски права. Това означава, че ескалираме привилегии от привилегирован акаунт. В повечето случаи, когато сте получили администраторски права, имате куп опции как да се издигнете още по-високо. Така че не е много трудна задача. Днес ще говорим за методи за ескалиране на привилегии, които не използват никакви 0day уязвимости, ако приемем, че имаме нормална система и акаунт на обикновен непривилегирован потребител.

Търсете пълномощия

Един от надеждните и стабилни начини за увеличаване на привилегиите и закрепване в системата е получаването на пароли на администратори или потребители с по-високи привилегии. И сега е време да си спомним за автоматизираната инсталация на софтуер. Ако управлявате домейн, който включва голям парк от машини, определено не искате да отидете и да инсталирате софтуер на всяка от тях ръчно. И ще отнеме толкова много време, че няма да стигне за никакви други задачи. Затова се използват Unattended инсталации, които генерират файлове, съдържащи администраторски пароли в най-чистата им форма. Което е просто съкровище както за пентестърите, така и за нападателите.

Необслужвани инсталации

В случай на автоматизирана инсталация, файлът Unattended.xml, който е доста интересен за нас, остава на клиента, който обикновено се намира или в %WINDIR%\Panther\Unattend\ или в %WINDIR%\Panther\ и може съхранява паролата на администратора в ясен текст. От друга страна, за да получите този файл от сървъра, дори не се нуждаете от удостоверяване. Трябва само да намерите сървъра „Услуги за разполагане на Windows“. За да направите това, можете да използвате скрипта auxiliary/scanner/dcerpc/windows_deployment _services от Metasploit. Въпреки че Windows Deployment Services не е единственият начин за извършване на автоматизирани инсталации, файлът Unattended.xml се счита за стандарт, така че откриването му може да се счита за успешно.

GPP

XML файловете с предпочитания за групови правила доста често съдържат набор от криптирани идентификационни данни, които могат да се използват за добавяне на нови потребители, създаване на споделяния и т.н. За щастие, методът на криптиране е документиран, така че можете лесно да получите пароли в тяхната чиста форма. Освен това екипът на Metasploit вече е направил всичко вместо вас - просто използвайте модула /post/windows/gather/credentials/gpp.rb. Ако се интересувате от подробности, цялата необходима информация е достъпна на тази връзка.

Права на потребителя

Много често повишаването на привилегиите е следствие от неправилно конфигурирани потребителски права. Например, когато потребител на домейн е локален администратор (или Power User) на хоста. Или когато потребителите на домейн (или членове на домейн групи) са локални администратори на всички хостове. В този случай наистина няма да се налага да правите нищо. Но такива опции не се появяват много често.

AlwaysInstallElevated

Понякога администраторите позволяват на обикновените потребители сами да инсталират програми, обикновено чрез следните ключове в системния регистър:

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

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

Те казват на системата, че всеки MSI файл трябва да бъде инсталиран с повишени привилегии (NT AUTHORITY\SYSTEM). Съответно, като използвате специално създаден файл, можете отново да извършвате действия от името на системата и да надграждате вашите привилегии.

Metasploit включва специален модул exploit/windows/local/always_install_elevated, който създава MSI файл със специален изпълним файл, вграден в него, който се извлича и изпълнява от инсталатора със системни привилегии. Веднъж изпълнен, MSI файлът прекъсва инсталацията (чрез извикване на специално създаден невалиден VBS), за да предотврати записването на действието в системата. Освен това, ако стартирате инсталацията с ключа /quiet, потребителят дори няма да види грешка.

Липсва автоматично стартиране

Често се случва системата да поддържа запис на файл, който трябва да се стартира автоматично, дори след като самият файл вече е потънал в забрава. Може би някоя услуга е премахната неправилно - няма изпълним файл, но записът в системния регистър остава и всеки път, когато стартирате, системата неуспешно се опитва да я стартира, запълвайки регистъра на събитията със съобщения за повреди. Тази ситуация може да се използва и за разширяване на правомощията ви. Първата стъпка е да намерите всички такива осиротели записи. Например, като използвате помощната програма autorunsc от Sysinternals.

Autorunsc.exe -a | findstr /n /R "Файлът\ не\ е открит"

След което, както се досещате, всичко, което остава, е по някакъв начин да подхлъзнете вашия кандидат на мястото на липсващия файл.

Магията на цитатите

Да, да, кавичките могат не само да изиграят жестока шега в SQL заявките, позволявайки инжектиране, но и да помогнат за повишаване на привилегиите. Проблемът е доста стар и е известен още от времето на NT. Въпросът е, че пътищата до изпълнимите файлове на някои услуги не са заобиколени от кавички (например ImagePath=C:\Program Files\Common Files\Network Associates\McShield\McShield.exe) и има интервали в път. В този случай, ако атакуващият създаде файл, който ще добави нови администратори към системата или ще извърши някои други действия, и го нарече C:\Program Files\common.exe, тогава при следващото стартиране на услугата, той ще бъде общ. exe, който ще бъде стартиран, а останалата част от пътя ще бъде взета като аргумент(и). Ясно е, че непривилегирован потребител няма да може да постави нищо в Program Files, но изпълнимият файл на услугата може да се намира в друга директория, тоест потребителят ще има възможност да плъзне своя собствен файл.

За да използвате тази техника, трябва да намерите уязвима услуга (която няма да използва кавички в пътя към своя двоичен файл). Това се прави по следния начин:

Услугата Wmic получава име, показвано име, пътека, начален режим |findstr /i "auto" |findstr /i /v "c: \windows\\" |findstr /i /v """

Вярно е, че на XP това ще изисква администраторски права, така че е по-добре да използвате следния метод там: вземете списък с услуги - sc query, след това погледнете информацията за всяка услуга - sc qc име на услугата.

Всичко по план

Друг механизъм, който може да помогне за повишаване на правата и обикновено се забравя, е планировчикът на задачи. Помощната програма schtasks ви позволява да присвоявате задачи на конкретни събития. Най-интересните за нас са ONIDLE, ONLOGON и ONSTART. Както подсказват имената, ONIDLE ще се изпълнява всеки път, когато компютърът е неактивен, ONLOGON и ONSTART - съответно когато потребителят влезе и когато системата стартира. Така на всяко от събитията може да се постави отделна задача. Например, когато системата стартира, копирайте някъде злонамерен двоичен файл/keylogger/... и го стартирайте. Когато потребителите влязат, стартирайте програма за разтоварване на кредитни карти. Накратко, всичко е ограничено само от вашето въображение и поставената задача.

Трикове с разрешения

Разрешенията за файлове обикновено са първата защита, която ни пречи да ескалираме нашите привилегии. Би било изкушаващо просто да презапишете някой системен файл (например същия sethc.exe, споменат в самото начало на статията) и веднага да получите системни привилегии. Но всичко това са само мечти; всъщност имаме разрешение само да го четем, което не ни дава абсолютно нищо. Не бива обаче да висите носа си, защото с разрешителните също не всичко е толкова гладко - тук, както и навсякъде другаде, има клопки, познаването на които ви позволява да направите невъзможното възможно.

Една от системните директории, защитени с този механизъм, е особено интересна от гледна точка на повишаване на привилегиите - Program Files. На непривилегировани потребители е отказан достъп там. Въпреки това понякога се случва по време на инсталационния процес инсталаторите да задават неправилно разрешения за файлове, което води до предоставяне на пълен достъп на всички потребители до изпълними файлове. Какво следва от това - вече се досетихте.

Друго ограничение е, че обикновен смъртен няма право да записва в корена на системния диск. Въпреки това, например при XP, когато създавате нова директория в основата на диска, групата BUILTIN\Users получава разрешения FILE_APPEND_DATA и FILE_WRITE_DATA (дори ако собственикът на папката е администратор):

BUILTIN\Users:(OI)(CI)R BUILTIN\Users:(CI)(специален достъп:) FILE_APPEND_DATA BUILTIN\Users:(CI)(специален достъп:) FILE_WRITE_DATA

На „седемте“ се случва почти същото, само групата AUTHENTICATED USERS получава разрешение. Как това поведение може да се превърне в проблем? Просто някои приложения се инсталират извън защитени директории, което улеснява подмяната на техните изпълними файлове. Например, такъв инцидент се случи с Metasploit Framework в случай на неговата многопотребителска инсталация. Тази грешка беше коригирана във версия 3.5.2 и помощната програма се премести в Program Files.


Как да търсите такива директории/файлове

Намирането на директория с неправилни разрешения вече е половината от битката. Първо обаче трябва да го намерите. За да направите това, можете да използвате следните два инструмента: AccessChk и Cacls/ICacls. За да намерите „слаби“ директории с помощта на AccessChk, ще ви трябват следните команди:

Accesschk.exe -uwdqs потребители c:\ accesschk.exe -uwdqs „Удостоверени потребители“ c:\

За да търсите файлове със „слаби“ разрешения, използвайте следното:

Accesschk.exe -uwqs потребители c:\*.* accesschk.exe -uwqs „Удостоверени потребители“ c:\*.*

Същото може да се направи с помощта на Cacls/ICacls:

Cacls "c:\Program Files" /T | findstr потребители

Трикове с услуги

Друг вариант за придвижване нагоре в системата е да се възползвате от неправилни конфигурации и грешки в обслужването. Както показва практиката, не само файлове и папки, но и услуги, работещи в системата, могат да имат неправилни разрешения. За да ги откриете, можете да използвате помощната програма AccessChk от добре познатия Марк Русинович:

Accesschk.exe –uwcqv *

Ще бъде много насърчително да видите разрешението SERVICE_ALL_ACCESS за удостоверени потребители или опитни потребители. Но следното също може да се счита за голям успех:

  • SERVICE_CHANGE_CONFIG - можем да променим изпълнимия файл на услугата;
  • WRITE_DAC - разрешенията могат да се променят, което води до получаване на разрешението SERVICE_CHANGE_CONFIG;
  • WRITE_OWNER - можете да станете собственик и да промените разрешенията;
  • GENERIC_WRITE - наследява разрешенията SERVICE_CHANGE_CONFIG ;
  • GENERIC_ALL - наследява SERVICE_CHANGE_CONFIG разрешения.

Ако откриете, че едно (или повече) от тези разрешения са зададени за непривилегировани потребители, шансовете ви да ескалирате привилегиите си се увеличават драстично.

Как да увеличим?

Да приемем, че сте намерили подходяща услуга, време е да поработите върху нея. Конзолната помощна програма sc ще ви помогне с това. Първо, получаваме пълна информация за услугата, която ни интересува, да кажем, че е upnphost:

Sc qc upnphost

Нека го конфигурираме с помощта на същата помощна програма:

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

Както можете да видите, следващия път, когато услугата стартира, вместо нейния изпълним файл, ще бъде изпълнена командата net user john hello /add && net localgroup Administrators john /add, добавяйки нов потребител john с парола hello към системата. Всичко, което остава, е ръчно да рестартирате услугата:

Net stop upnphost net start upnphost

Това е цялата магия.

какъв е резултатът

Имало едно време прочетох статия в списание, която очертаваше основни техники за повишаване на привилегиите в Windows. Тогава не придавах голямо значение на това, но теорията се заби в главата ми и веднъж ми помогна много. Така че, надявам се, че ще намерите нещо ново за себе си в тази статия, което един ден ще ви помогне да преодолеете друга бариера.

Днес ще говорим за повишаване на привилегиите на Windows. Ще научите как нападател може да ескалира привилегии и как да се предпазите от това.

Цялата информация е само за информационни цели. Нито редакторите на сайта, нито авторът на статията носят отговорност за неправилното й използване.

Повишаване на привилегиите с BeRoot

Повечето методи за повишаване на привилегиите са свързани с грешки в конфигурацията на инсталирания софтуер, било то пътят до изпълнимия файл на услугата, който не е ограден с кавички и съдържа интервал (тази ситуация се обработва доста интересно от Windows), или неправилно задайте права върху директорията с приложението.

Човекът е мързеливо същество и не иска да проверява всичко това ръчно всеки път. Следователно рано или късно трябваше да се появи инструмент, който да автоматизира тази рутина.

Вторичен манипулатор за влизане

Друг интересен трик включва използването на услугата за вторично влизане. Тази услуга ви позволява да стартирате програми, конзоли за управление на Microsoft и елементи на контролния панел като администратор, дори ако текущият потребител принадлежи само към групата Users или Power Users. Въпросът е, че тази услуга не изчиства дръжките при създаване на нови процеси.

Това, което е важно за нас е, че почти всички версии на Windows (x32 и x64) са податливи на тази уязвимост: от Vista до Windows 2012 Server. Но има и ограничения: за да ескалира успешно привилегиите, системата трябва да има инсталиран PowerShell 2.0 или по-нова версия, както и две или повече процесорни ядра. Metasploit Framework има специален модул exploit/windows/local/ms16_032_secondary_logon_handle_privesc.

Използването му предполага, че вече имаме сесия на meterpreter, която трябва да посочим в параметрите: set SESSION 1. Е, в случай на успешна експлоатация, ще имаме друга сесия с повишени привилегии.

\ pentestlab > wmic qfe списък | намери "3139914"

Заключение

Колкото и да се опитвам да събера всички възможни опции за увеличаване на привилегиите в една статия, това едва ли ще успее или статията ще нарасне до гигантски размери и ще стане безинтересна за вас. Така че е време да приключим. За защитата ще говорим в отделна статия.