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

Автоматизація отримання прав адміністратора домену в 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 дня. А тепер уявіть, чого може домогтися колектив людей, які набагато розумніший за мене і володіють великим часом і іншими ресурсами.

Подяки

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



Новости
    Без плагина
    На сайте WordPress имеется файл, именуемый как .htaccess. Многие пользователи не предают ему особого внимания и не используют все его возможности. На самом деле файл .htaccess – это дополнительные конфигурации

    Плагин подписки wordpress
    Очень трудно найти один плагин подписки wordpress , который объединил бы в себе все виды подписок, которые так необходимы сайту. Именно поэтому я решил сделать подборку лучших плагинов, которые смогут

    Слайд-шоу с помощью плагина для WordPress UnPointZero Slider
    Плагин для cms WordPress UnPointZero Slider – новостной слайдер. Он отражает в форме слайд-шоу изображения со ссылками на ваши статьи и краткие выдержки оттуда. Его можно установить и на новостной сайт,

    Плагины для Wordpress
    С помощью этого плагина вы легко сможете интегрировать Google диск на ваш WordPress сайт или блог . Gravity Forms — лучший плагин для создания форм на WordPress, от самых простых (например, форма

    Подписки плагином JetPack: размещение и редакция формы подписки
    Вступление Здравствуйте! В этой статье я покажу, как использовать плагин JetPack для создания пользовательской формы подписки и как эту формы подписки плагином JetPack добавлять в статьи сайта, а при

    Чистка сайта WordPress плагином WP-optimize
    От автора Со временем использования система WordPress накапливает не нужные файлы, комментарии и неиспользуемые данные в базе данных. Эти файлы и данные создаются в процессе работы и нужны для этого,

    Возможности Jetpack плагина
    Вступление Возможности Jetpack плагина это более 30 функциональных модуля плагина, делающего его универсальным плагином WordPress, заменяющего аналогичные сторонние плагины. Jetpack один заменяет десятки

    Резервное копирование WordPress сайта без плагинов
    Вступление Резервное копирование WordPress это второе, что нужно научиться делать после установки WordPress. Можно сколько угодно говорить о безопасности сайта и его защите, но лучшего варианта защиты

    Плагины на приват для Майнкрафт ПЕ
    > > Плагины на приват для Майнкрафт ПЕ Порой всем нам хочется попробовать себя в роли администратора сервера и испытать эту ответственность, но, к сожалению, вы не всегда все знаете о создании

    Плагин WordPress Database Backup. Архивация базы данных блога на WordPress
    Привет друзья! Сегодня на очереди еще один простой, НО, необходимый и полезный плагин — плагин WordPress Database Backup , который с легкостью и самостоятельно произведет процесс, который научно называется:

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

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

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

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

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

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

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

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

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

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