Използване на PowerShell за повишаване на правата на локални акаунти

Използване на PowerShell за повишаване на правата на локални акаунти

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

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

Ако сте специалист по сигурност, може да се стори очевидно, че потребителите не трябва да имат права на локален администратор, тъй като това:

  • Прави техните акаунти по-уязвими на различни атаки.
  • Прави тези атаки значително по-сериозни.

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

Стъпка 1. Обратна резолюция на DNS имена чрез PowerShell.

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

В нашия случай злонамереният субект започва да извършва мрежова рекогносцировка с помощта на PowerShell скрипт, последователно проверявайки IP адресното пространство на мрежата, опитвайки се да определи дали даден IP разрешава до възел, и ако да, какво е името на този възел.
Има много начини за изпълнение на тази задача, но използването на командлета Get-ADComputer — надежно решение, тъй като предоставя наистина богат набор от данни за всеки възел:

 import-module activedirectory Get-ADComputer -property * -filter { ipv4address -eq ‘10.10.10.10’}

Ако скоростта на работа в големи мрежи предизвиква проблеми, може да се използва обратен DNS системен повик:

[System.Net.Dns]::GetHostEntry(‘10.10.10.10’).HostName

Използване на PowerShell за повишаване на правата на локални акаунти

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

Стъпка 2: Избор на цел

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

Използване на PowerShell за повишаване на правата на локални акаунти

Съдейки по името, сървърът ‘HUB-FILER’ изглежда подходяща цел, тъй като с времето файловите сървъри обикновено натрупват голямо количество мрежови папки и ненужен достъп от твърде много лица.

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

Стъпка 3: Изучаваме ACL

Сега на нашия хост HUB-FILER и целевата споделена папка share можем да стартираме PowerShell скрипт за получаване на списък с ACL. Можем да направим това от локалната машина, тъй като вече имаме права на локален администратор:

(get-acl hub-filershare).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags –auto

Резултат от изпълнението:

Използване на PowerShell за повишаване на правата на локални акаунти

От него виждаме, че групата Потребители на Дома има достъп само за изброяване, но групата Helpdesk има и права за изменение.

Стъпка 4: Идентификация на акаунти

Стартирайки Get-ADGroupMember, можем да получим всички членове на тази група:

Get-ADGroupMember -identity Helpdesk

Използване на PowerShell за повишаване на правата на локални акаунти

В този списък виждаме компютърната сметка, която вече сме идентифицирали и до която вече имаме достъп:

Използване на PowerShell за повишаване на правата на локални акаунти

Стъпка 5: Използваме PSExec за работа от името на компютърната сметка

PsExec от Microsoft Sysinternals позволява изпълнение на команди в контекста на системната сметка SYSTEM@HUB-SHAREPOINT, която, както знаем, е член на целевата група Helpdesk. Тоест, достатъчно е да изпълним:

PsExec.exe -s -i cmd.exe

След това имате пълен достъп до целевата папка HUB-FILERshareHR, тъй като работите в контекста на компютърната сметка HUB-SHAREPOINT. С този достъп данните могат да бъдат копирани на преносно устройство за съхранение или по друг начин извлечени и предадени по мрежата.

Стъпка 6: Откриване на тази атака

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

За да открием и предотвратим тази категория атаки, можем да използваме DatAdvantage за идентифициране на групи с компютърни акаунти в тях и след това да затворим достъпа до тях. DatAlert ще продължи и ще позволи да се създаде известие специално за подобен сценарий.

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

Използване на PowerShell за повишаване на правата на локални акаунти

Следващите стъпки с помощта на PowerShell

Искате да научите повече? Използвайте кода за отключване „blog“ за безплатен достъп до целия видеокурс по PowerShell и Основи на Active Directory.

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster