<
  • Главная
Статьи

Автоматизація отримання прав адміністратора домену в Active Directory

  1. Автоматизація отримання прав адміністратора домену в Active Directory З моменту появи фреймворка...
  2. Автоматизація отримання прав адміністратора домену в Active Directory

Автоматизація отримання прав адміністратора домену в Active Directory

З моменту появи фреймворка Empire і додатки BloodHound пентести систем на базі Active Directory стають все простіше і прямолінійніше для 95% середовищ.

Автор: byt3bl33d3r

З моменту появи фреймворка Empire і додатки BloodHound пентести систем на базі Active Directory стають все простіше і прямолінійніше для 95% середовищ. Оскільки кожен раз виконуються одні й ті ж операції, я вирішив, що настав час автоматизувати процес. Мені здається, що скрипт, який працює за принципом «запустив і забув», який автоматично отримує права адміністратора домена, є мрією для кожного фахівця з безпеки.

До того моменту коли я вирішив реалізувати свою задумку, деякі товариші, згадані в кінці статті, вже виконали більшу частину робіт. Крім того, деякий час назад у фреймворку Empire з'явився RESTful API, який спрощує створення сторонніх скриптів.

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

Цілі проекту і практична реалізація

Спочатку я хотів створити щось, що буде брати вихідні дані утиліти BloodHounds , Виконувати парсинг і віддавати результати у фреймворк Empire з подальшим виконанням певної «ланцюжка» операцій. хоча в BloodHound , Наскільки мені відомо, не передбачено використання можливостей, які можна отримати за допомогою ескалації привілеїв домену, наприклад, GPP-паролі в сховище SYSVOL (Особисто я вважаю, що ця тема зустрічається практично всюди).

Таким чином, я хотів реалізувати більш "діячу» версію BloodHound, яка функціонувала б на зразок хробака. Слід зазначити, що в Empire Тобто більша частина базових функцій з BloodHound , Розкиданих по різних модулів, і будь-який метод, що виконується BloodHound, на який ще немає модуля в Empire, можна легко реалізувати (наприклад, схему ACL attack path update , На яку, між іншим, варто звернути увагою).

У підсумку я зупинився нафреймворкеEmpire і вирішив робити автоматизацію за допомогою RESTful API, що давало б мені свободу при парсінгу результатів роботи модулів і більший контроль над загальною логікою і призначеної для користувача зворотним зв'язком.

алгоритм роботи

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

Малюнок 1: Загальна схема автоматизованого отримання прав адміністратора домену

Якщо ви займаєтеся пентестамі систем на базі Active Directory, велика частина схеми, продемонстрованої вище, повинна бути вам знайома. В іншому випадку задавайте питання, на які я спробую відповісти.

Налаштування системи

Щоб система працювала коректно, необхідно встановити мій форк, поки не буде інтегрований цей pull-запит (І відповідні зміни) в даний сховище. Мій форк містить API і виправлення функціях, пов'язаних з роботою з базами даних, для скриптів, взаємодіючих з RESTful API.

Для початку потрібно клонувати і встановити репозиторій Empire, а потім виконати наступну команду:

python empire --rest --username username --password password

Запуститься консоль Empire і сервер RESTful API.

Для завантаження і запуску системи автоматизації DeathStar (кодова назва моєї творчості) необхідно виконати наступну послідовність команд.

git clone https://github.com/byt3bl33d3r/DeathStar # Death Star is written in Python 3 pip3 install -r requirements.txt # Supply the username and password you started Empire's RESTful API with ./DeathStar.py -u username -p password

Якщо все пройшло успішно, буде створений http-слухач, і ви побачите статус 'Polling for Agents', який означає, щоб ви авторизовані в RESTful API і DeathStar знаходиться в очікуванні першого агента.

Тепер вам потрібен агент на машині, підключеної до домену. Тема, пов'язана з отриманням агента, виходить за рамки цієї статті. Особисто я рекомендую скористатися утилітою CrackMapExec .

Схема в дії

Після отримання агента далі всю роботу буде виконувати утиліта DeathStar.

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

На першому відео привілеї підвищуються за допомогою уразливості, пов'язаної з GPP-паролями в сховище SYSVOL . Спочатку поширення починається з машин, де в групових політиках прописано використання незашіфрованих облікових записів. Потім справа доходить до системи, де авторизовані адміністратор домену. Далі відбувається пошук запущених процесів і ін'єкція (за замовчуванням в explorer.exe) в процес, запущений від імені облікового запису адміністратора домену. Таким чином, ми отримуємо агента, запущеного в цьому контексті безпеки:

У другому відео демонструється отримання облікового запису адміністратора домену за допомогою Mimikatz і зловживання взаємозв'язками в контексті локального адміністратора:

Слід згадати, що на відео вище використовуються облікові записи тим чи іншим чином. Хоча утиліта DeathStar придатна для отримання прав адміністратора домена за допомогою взаємозв'язків локального адміністратора і PSInject без використання самих облікових записів.

додатковий функціонал

Дана схема є лише першим кроком на шляху отримання дійсно корисного інструменту. Я б хотів додати більше технік, пов'язаних з розширенням привілеїв, методів поширення, і зробити тюнінг поточної логіки. Крім того, можна впровадити додаткові виверти в пост-експлуатацію, первинне ім'я сервісу (SPN) і т. Д.

Більш того, як тільки на базі фреймворка Empire буде реалізована схема, пов'язана з іменованими каналами в SMB (SMB Named Pipe pivoting), то тоді світ побачить нового хробака.

висновок

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

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

Подяки

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

Автоматизація отримання прав адміністратора домену в Active Directory

З моменту появи фреймворка Empire і додатки BloodHound пентести систем на базі Active Directory стають все простіше і прямолінійніше для 95% середовищ.

Автор: byt3bl33d3r

З моменту появи фреймворка Empire і додатки BloodHound пентести систем на базі Active Directory стають все простіше і прямолінійніше для 95% середовищ. Оскільки кожен раз виконуються одні й ті ж операції, я вирішив, що настав час автоматизувати процес. Мені здається, що скрипт, який працює за принципом «запустив і забув», який автоматично отримує права адміністратора домена, є мрією для кожного фахівця з безпеки.

До того моменту коли я вирішив реалізувати свою задумку, деякі товариші, згадані в кінці статті, вже виконали більшу частину робіт. Крім того, деякий час назад у фреймворку Empire з'явився RESTful API, який спрощує створення сторонніх скриптів.

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

Цілі проекту і практична реалізація

Спочатку я хотів створити щось, що буде брати вихідні дані утиліти BloodHounds , Виконувати парсинг і віддавати результати у фреймворк Empire з подальшим виконанням певної «ланцюжка» операцій. хоча в BloodHound , Наскільки мені відомо, не передбачено використання можливостей, які можна отримати за допомогою ескалації привілеїв домену, наприклад, GPP-паролі в сховище SYSVOL (Особисто я вважаю, що ця тема зустрічається практично всюди).

Таким чином, я хотів реалізувати більш "діячу» версію BloodHound, яка функціонувала б на зразок хробака. Слід зазначити, що в Empire Тобто більша частина базових функцій з BloodHound , Розкиданих по різних модулів, і будь-який метод, що виконується BloodHound, на який ще немає модуля в Empire, можна легко реалізувати (наприклад, схему ACL attack path update , На яку, між іншим, варто звернути увагою).

У підсумку я зупинився нафреймворкеEmpire і вирішив робити автоматизацію за допомогою RESTful API, що давало б мені свободу при парсінгу результатів роботи модулів і більший контроль над загальною логікою і призначеної для користувача зворотним зв'язком.

алгоритм роботи

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

Малюнок 1: Загальна схема автоматизованого отримання прав адміністратора домену

Якщо ви займаєтеся пентестамі систем на базі Active Directory, велика частина схеми, продемонстрованої вище, повинна бути вам знайома. В іншому випадку задавайте питання, на які я спробую відповісти.

Налаштування системи

Щоб система працювала коректно, необхідно встановити мій форк, поки не буде інтегрований цей pull-запит (І відповідні зміни) в даний сховище. Мій форк містить API і виправлення функціях, пов'язаних з роботою з базами даних, для скриптів, взаємодіючих з RESTful API.

Для початку потрібно клонувати і встановити репозиторій Empire, а потім виконати наступну команду:

python empire --rest --username username --password password

Запуститься консоль Empire і сервер RESTful API.

Для завантаження і запуску системи автоматизації DeathStar (кодова назва моєї творчості) необхідно виконати наступну послідовність команд.

git clone https://github.com/byt3bl33d3r/DeathStar # Death Star is written in Python 3 pip3 install -r requirements.txt # Supply the username and password you started Empire's RESTful API with ./DeathStar.py -u username -p password

Якщо все пройшло успішно, буде створений http-слухач, і ви побачите статус 'Polling for Agents', який означає, щоб ви авторизовані в RESTful API і DeathStar знаходиться в очікуванні першого агента.

Тепер вам потрібен агент на машині, підключеної до домену. Тема, пов'язана з отриманням агента, виходить за рамки цієї статті. Особисто я рекомендую скористатися утилітою CrackMapExec .

Схема в дії

Після отримання агента далі всю роботу буде виконувати утиліта DeathStar.

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

На першому відео привілеї підвищуються за допомогою уразливості, пов'язаної з GPP-паролями в сховище SYSVOL . Спочатку поширення починається з машин, де в групових політиках прописано використання незашіфрованих облікових записів. Потім справа доходить до системи, де авторизовані адміністратор домену. Далі відбувається пошук запущених процесів і ін'єкція (за замовчуванням в explorer.exe) в процес, запущений від імені облікового запису адміністратора домену. Таким чином, ми отримуємо агента, запущеного в цьому контексті безпеки:

У другому відео демонструється отримання облікового запису адміністратора домену за допомогою Mimikatz і зловживання взаємозв'язками в контексті локального адміністратора:

Слід згадати, що на відео вище використовуються облікові записи тим чи іншим чином. Хоча утиліта DeathStar придатна для отримання прав адміністратора домена за допомогою взаємозв'язків локального адміністратора і PSInject без використання самих облікових записів.

додатковий функціонал

Дана схема є лише першим кроком на шляху отримання дійсно корисного інструменту. Я б хотів додати більше технік, пов'язаних з розширенням привілеїв, методів поширення, і зробити тюнінг поточної логіки. Крім того, можна впровадити додаткові виверти в пост-експлуатацію, первинне ім'я сервісу (SPN) і т. Д.

Більш того, як тільки на базі фреймворка Empire буде реалізована схема, пов'язана з іменованими каналами в SMB (SMB Named Pipe pivoting), то тоді світ побачить нового хробака.

висновок

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

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

Подяки

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

Автоматизація отримання прав адміністратора домену в Active Directory

З моменту появи фреймворка Empire і додатки BloodHound пентести систем на базі Active Directory стають все простіше і прямолінійніше для 95% середовищ.

Автор: byt3bl33d3r

З моменту появи фреймворка Empire і додатки BloodHound пентести систем на базі Active Directory стають все простіше і прямолінійніше для 95% середовищ. Оскільки кожен раз виконуються одні й ті ж операції, я вирішив, що настав час автоматизувати процес. Мені здається, що скрипт, який працює за принципом «запустив і забув», який автоматично отримує права адміністратора домена, є мрією для кожного фахівця з безпеки.

До того моменту коли я вирішив реалізувати свою задумку, деякі товариші, згадані в кінці статті, вже виконали більшу частину робіт. Крім того, деякий час назад у фреймворку Empire з'явився RESTful API, який спрощує створення сторонніх скриптів.

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

Цілі проекту і практична реалізація

Спочатку я хотів створити щось, що буде брати вихідні дані утиліти BloodHounds , Виконувати парсинг і віддавати результати у фреймворк Empire з подальшим виконанням певної «ланцюжка» операцій. хоча в BloodHound , Наскільки мені відомо, не передбачено використання можливостей, які можна отримати за допомогою ескалації привілеїв домену, наприклад, GPP-паролі в сховище SYSVOL (Особисто я вважаю, що ця тема зустрічається практично всюди).

Таким чином, я хотів реалізувати більш "діячу» версію BloodHound, яка функціонувала б на зразок хробака. Слід зазначити, що в Empire Тобто більша частина базових функцій з BloodHound , Розкиданих по різних модулів, і будь-який метод, що виконується BloodHound, на який ще немає модуля в Empire, можна легко реалізувати (наприклад, схему ACL attack path update , На яку, між іншим, варто звернути увагою).

У підсумку я зупинився нафреймворкеEmpire і вирішив робити автоматизацію за допомогою RESTful API, що давало б мені свободу при парсінгу результатів роботи модулів і більший контроль над загальною логікою і призначеної для користувача зворотним зв'язком.

алгоритм роботи

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

Малюнок 1: Загальна схема автоматизованого отримання прав адміністратора домену

Якщо ви займаєтеся пентестамі систем на базі Active Directory, велика частина схеми, продемонстрованої вище, повинна бути вам знайома. В іншому випадку задавайте питання, на які я спробую відповісти.

Налаштування системи

Щоб система працювала коректно, необхідно встановити мій форк, поки не буде інтегрований цей pull-запит (І відповідні зміни) в даний сховище. Мій форк містить API і виправлення функціях, пов'язаних з роботою з базами даних, для скриптів, взаємодіючих з RESTful API.

Для початку потрібно клонувати і встановити репозиторій Empire, а потім виконати наступну команду:

python empire --rest --username username --password password

Запуститься консоль Empire і сервер RESTful API.

Для завантаження і запуску системи автоматизації DeathStar (кодова назва моєї творчості) необхідно виконати наступну послідовність команд.

git clone https://github.com/byt3bl33d3r/DeathStar # Death Star is written in Python 3 pip3 install -r requirements.txt # Supply the username and password you started Empire's RESTful API with ./DeathStar.py -u username -p password

Якщо все пройшло успішно, буде створений http-слухач, і ви побачите статус 'Polling for Agents', який означає, щоб ви авторизовані в RESTful API і DeathStar знаходиться в очікуванні першого агента.

Тепер вам потрібен агент на машині, підключеної до домену. Тема, пов'язана з отриманням агента, виходить за рамки цієї статті. Особисто я рекомендую скористатися утилітою CrackMapExec .

Схема в дії

Після отримання агента далі всю роботу буде виконувати утиліта DeathStar.

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

На першому відео привілеї підвищуються за допомогою уразливості, пов'язаної з GPP-паролями в сховище SYSVOL . Спочатку поширення починається з машин, де в групових політиках прописано використання незашіфрованих облікових записів. Потім справа доходить до системи, де авторизовані адміністратор домену. Далі відбувається пошук запущених процесів і ін'єкція (за замовчуванням в explorer.exe) в процес, запущений від імені облікового запису адміністратора домену. Таким чином, ми отримуємо агента, запущеного в цьому контексті безпеки:

У другому відео демонструється отримання облікового запису адміністратора домену за допомогою Mimikatz і зловживання взаємозв'язками в контексті локального адміністратора:

Слід згадати, що на відео вище використовуються облікові записи тим чи іншим чином. Хоча утиліта DeathStar придатна для отримання прав адміністратора домена за допомогою взаємозв'язків локального адміністратора і PSInject без використання самих облікових записів.

додатковий функціонал

Дана схема є лише першим кроком на шляху отримання дійсно корисного інструменту. Я б хотів додати більше технік, пов'язаних з розширенням привілеїв, методів поширення, і зробити тюнінг поточної логіки. Крім того, можна впровадити додаткові виверти в пост-експлуатацію, первинне ім'я сервісу (SPN) і т. Д.

Більш того, як тільки на базі фреймворка Empire буде реалізована схема, пов'язана з іменованими каналами в SMB (SMB Named Pipe pivoting), то тоді світ побачить нового хробака.

висновок

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

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

Подяки

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



Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью