Використання 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

Цей метод перерахування вузлів в мережі дуже популярний, так як більшість мереж не використовує модель безпеки з нульовим довірою і не відстежує внутрішні DNS-запити на підозрілі сплески активності.

Крок 2: Вибір мети

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

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

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

Крок 3: Вивчаємо ACL

Тепер на нашому хості HUB-FILER і цільової папки share ми можемо запустити сценарій PowerShell для отримання списку ACL. Ми можемо зробити це з локальної машини, так як у нас вже є права локального адміністратора:

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

Результат виконання:

З нього ми бачимо, що група Користувачі Домену має доступ тільки на лістинг, але ось група Helpdesk має ще й права на зміну.

Крок 4: Ідентифікація Облікових Записів

Запустивши Get-ADGroupMember, ми зможемо отримати усіх членів цієї групи:

Get-ADGroupMember -identity Helpdesk

В цьому списку ми бачимо обліковий запис комп’ютера, яку ми вже ідентифікували і до якої вже отримали доступ:

Крок 5: Використовуємо PSExec для роботи від облікового запису комп’ютера

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

PsExec.exe -s -i cmd.exe

Ну а далі у вас є повний доступ до цільової папки \\HUB-FILER\share\HR, оскільки ви працюєте в контексті облікового запису комп’ютера HUB-SHAREPOINT. І з цим доступом дані можуть бути скопійовані на портативний пристрій зберігання або іншим способом вилучені і передані по мережі.

Крок 6: Виявлення даної атаки

Ця конкретна вразливість настройки прав облікових записів облікові записи комп’ютерів, які звертаються до загальних мережевих папок замість облікових записів користувачів або службових учеток) може бути виявлена. Однак без правильних інструментів зробити це дуже складно.

Щоб виявити і запобігти цю категорію атак, ми можемо використовувати DatAdvantage для ідентифікації груп з комп’ютерними обліковими записами в них, а потім закрити до них доступ. DatAlert йде далі і дозволяє створити повідомлення спеціально для подібного сценарію.

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

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

Хочете дізнатися більше? Використовуйте код розблокування «blog» для безкоштовного доступу до повної відео-курсом PowerShell і Основи Active Directory. Джерело

Поділитися
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Реклама

112

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Схожі записи

Почніть набирати текст зверху та натисніть "Enter" для пошуку. Натисніть ESC для відміни.

Повернутись вверх