Використання PowerShell для підвищення привілеїв локальних облікових записів

Використання PowerShell для підвищення привілеїв локальних облікових записів

Підвищення привілеїв – це використання зловмисником поточних прав облікового запису для отримання додаткового, як правило, більш високого рівня доступу в системі. Незважаючи на те, що підвищення привілеїв може бути результатом експлуатації вразливостей нульового дня, або роботи першокласних хакерів, що проводять цілеспрямовану атаку, або грамотно замаскованої шкідливою програмою, але все ж таки найчастіше це відбувається через неправильне налаштування комп'ютера або облікового запису. Розвиваючи атаку далі, зловмисники використовують низку окремих уразливостей, що в сукупності може призвести до катастрофічного витоку даних.

Чому користувачі не повинні мати права локального адміністратора?

Якщо ви є фахівцем з безпеки, це може здатися очевидним, що користувачі не повинні мати права локального адміністратора, так як це:

  • Робить їхні облікові записи більш уразливими до різних атак
  • Робить ці самі атаки набагато серйознішими

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

Крок 1. Зворотна роздільна здатність DNS імен через PowerShell

За промовчанням PowerShell встановлюється на багатьох локальних робочих станціях і більшості серверів Windows. І хоча не без перебільшення він вважається неймовірно корисним інструментом автоматизації та управління, однаково він здатний перетворюватися на майже невидиму. fileless-молвар (Програма для злому, що не залишає слідів атаки).

У нашому випадку зловмисник починає виконувати мережну рекогносцировку за допомогою сценарію PowerShell, послідовно перебираючи простір IP-адрес мережі, намагаючись визначити, чи дозволяється даний IP до вузла, і якщо так, то яке ім'я цього вузла.
Існує безліч способів виконання цього завдання, але використання командлета Отримати-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 дозволяє нам визначити наявність відкритої спільної папки, але наш поточний обліковий запис не може отримати доступ до неї (ймовірно, у нас є права тільки на листинг).

Крок 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 для ідентифікації груп з обліковими записами в них, а потім закрити до них доступ. DataAlert йде далі і дозволяє створити повідомлення спеціально для такого сценарію.

На скріншоті нижче показано сповіщення користувача, яке буде спрацьовувати при кожному доступі облікового запису комп'ютера до даних на відстежуваному сервері.

Використання PowerShell для підвищення привілеїв локальних облікових записів

Наступні кроки за допомогою PowerShell

Бажаєте дізнатися більше? Використовуйте код розблокування blog для безкоштовного доступу до повного відео-курсу PowerShell та Основи Active Directory.

Джерело: habr.com

Додати коментар або відгук