Windows Security Controls
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Use Trickest to easily build and automate workflows powered by the world's most advanced community tools. Get Access Today:
Список дозволених програм - це список затверджених програм або виконуваних файлів, які можуть бути присутніми та виконуватись на системі. Мета полягає в захисті середовища від шкідливого програмного забезпечення та незатверджених програм, які не відповідають конкретним бізнес-потребам організації.
AppLocker - це рішення Microsoft для білого списку програм, яке надає адміністраторам системи контроль над тим, які програми та файли можуть виконувати користувачі. Воно забезпечує досить детальний контроль над виконуваними файлами, скриптами, файлами установників Windows, DLL, упакованими додатками та установниками упакованих додатків. Зазвичай організації блокують cmd.exe та PowerShell.exe та запис у певні каталоги, але це все можна обійти.
Перевірте, які файли/розширення знаходяться в чорному/білому списках:
Цей шлях реєстру містить конфігурації та політики, застосовані AppLocker, що забезпечує спосіб перегляду поточного набору правил, що застосовуються в системі:
HKLM\Software\Policies\Microsoft\Windows\SrpV2
Корисні записувані папки для обходу політики AppLocker: Якщо AppLocker дозволяє виконувати будь-що всередині C:\Windows\System32
або C:\Windows
, є записувані папки, які ви можете використовувати для обходу цього.
Загально достовірні "LOLBAS's" двійкові файли також можуть бути корисними для обходу AppLocker.
Погано написані правила також можуть бути обійдені
Наприклад, <FilePathCondition Path="%OSDRIVE%*\allowed*"/>
, ви можете створити папку під назвою allowed
будь-де, і вона буде дозволена.
Організації також часто зосереджуються на блокуванні виконуваного файлу %System32%\WindowsPowerShell\v1.0\powershell.exe
, але забувають про інші місця виконуваних файлів PowerShell такі як %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe
або PowerShell_ISE.exe
.
Примус DLL дуже рідко активується через додаткове навантаження, яке він може створити на системі, і кількість тестування, необхідного для забезпечення того, щоб нічого не зламалося. Тому використання DLL як бекдорів допоможе обійти AppLocker.
Ви можете використовувати ReflectivePick або SharpPick для виконання коду Powershell в будь-якому процесі та обходу AppLocker. Для отримання додаткової інформації перегляньте: https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode.
Локальні облікові дані присутні в цьому файлі, паролі хешуються.
Облікові дані (хешовані) зберігаються в пам'яті цього підсистеми з причин єдиного входу. LSA адмініструє локальну політику безпеки (політика паролів, дозволи користувачів...), аутентифікацію, токени доступу... LSA буде тим, хто перевірить надані облікові дані в файлі SAM (для локального входу) і спілкуватиметься з контролером домену для аутентифікації користувача домену.
Облікові дані зберігаються всередині процесу LSASS: квитки Kerberos, хеші NT і LM, легко розшифровані паролі.
LSA може зберігати на диску деякі облікові дані:
Пароль облікового запису комп'ютера Active Directory (недоступний контролер домену).
Паролі облікових записів служб Windows
Паролі для запланованих завдань
Більше (пароль додатків IIS...)
Це база даних Active Directory. Вона присутня лише в контролерах домену.
Microsoft Defender - це антивірус, доступний у Windows 10 і Windows 11, а також у версіях Windows Server. Він блокує загальні інструменти для пентестингу, такі як WinPEAS
. Однак є способи обійти ці захисти.
Щоб перевірити статус Defender, ви можете виконати командлет PS Get-MpComputerStatus
(перевірте значення RealTimeProtectionEnabled
, щоб дізнатися, чи активний він):
Щоб перерахувати його, ви також можете запустити:
EFS захищає файли через шифрування, використовуючи симетричний ключ, відомий як Ключ шифрування файлів (FEK). Цей ключ шифрується за допомогою публічного ключа користувача і зберігається в альтернативному потоці даних $EFS зашифрованого файлу. Коли потрібно розшифрування, використовується відповідний приватний ключ цифрового сертифіката користувача для розшифрування FEK з потоку $EFS. Більше деталей можна знайти тут.
Сценарії розшифрування без ініціації користувача включають:
Коли файли або папки переміщуються на файлову систему, що не підтримує EFS, наприклад, FAT32, вони автоматично розшифровуються.
Зашифровані файли, надіслані через мережу за протоколом SMB/CIFS, розшифровуються перед передачею.
Цей метод шифрування дозволяє прозорий доступ до зашифрованих файлів для власника. Однак просте зміна пароля власника та вхід не дозволить розшифрування.
Основні висновки:
EFS використовує симетричний FEK, зашифрований за допомогою публічного ключа користувача.
Розшифрування використовує приватний ключ користувача для доступу до FEK.
Автоматичне розшифрування відбувається за певних умов, таких як копіювання на FAT32 або передача по мережі.
Зашифровані файли доступні власнику без додаткових кроків.
Перевірте, чи користувач використовував цю послугу, перевіривши, чи існує цей шлях: C:\users\<username>\appdata\roaming\Microsoft\Protect
Перевірте, хто має доступ до файлу, використовуючи cipher /c <file>
Ви також можете використовувати cipher /e
та cipher /d
всередині папки для шифрування та розшифрування всіх файлів
Цей спосіб вимагає, щоб жертва виконувала процес всередині хоста. Якщо це так, використовуючи сесії meterpreter
, ви можете видати токен процесу користувача (impersonate_token
з incognito
). Або ви можете просто migrate
до процесу користувача.
Microsoft розробила Групові керовані облікові записи служб (gMSA) для спрощення управління обліковими записами служб в ІТ-інфраструктурах. На відміну від традиційних облікових записів служб, які часто мають налаштування "Пароль ніколи не закінчується", gMSA пропонують більш безпечне та кероване рішення:
Автоматичне управління паролями: gMSA використовують складний, 240-символьний пароль, який автоматично змінюється відповідно до політики домену або комп'ютера. Цей процес обробляється службою розподілу ключів Microsoft (KDC), що усуває необхідність ручного оновлення паролів.
Покращена безпека: Ці облікові записи не підлягають блокуванню і не можуть використовуватися для інтерактивних входів, що підвищує їх безпеку.
Підтримка кількох хостів: gMSA можуть бути спільними між кількома хостами, що робить їх ідеальними для служб, що працюють на кількох серверах.
Можливість запланованих завдань: На відміну від керованих облікових записів служб, gMSA підтримують виконання запланованих завдань.
Спрощене управління SPN: Система автоматично оновлює ім'я службового принципала (SPN) при змінах у деталях sAMaccount комп'ютера або DNS-імені, спрощуючи управління SPN.
Паролі для gMSA зберігаються в властивості LDAP msDS-ManagedPassword і автоматично скидаються кожні 30 днів контролерами домену (DC). Цей пароль, зашифрований об'єкт даних, відомий як MSDS-MANAGEDPASSWORD_BLOB, може бути отриманий лише авторизованими адміністраторами та серверами, на яких встановлені gMSA, що забезпечує безпечне середовище. Для доступу до цієї інформації потрібне захищене з'єднання, таке як LDAPS, або з'єднання повинно бути автентифіковане з 'Sealing & Secure'.
Ви можете прочитати цей пароль за допомогою GMSAPasswordReader:
Знайдіть більше інформації в цьому пості
Також перегляньте цю веб-сторінку про те, як виконати атаку NTLM реле для читання пароля gMSA.
Рішення для паролів локального адміністратора (LAPS), доступне для завантаження з Microsoft, дозволяє керувати паролями локальних адміністраторів. Ці паролі, які є випадковими, унікальними та регулярно змінюються, зберігаються централізовано в Active Directory. Доступ до цих паролів обмежується через ACL для авторизованих користувачів. При наданні достатніх дозволів надається можливість читати паролі локальних адміністраторів.
LAPSPowerShell Режим обмеженої мови блокує багато функцій, необхідних для ефективного використання PowerShell, таких як блокування COM-об'єктів, дозволяючи лише затверджені типи .NET, XAML-робочі процеси, класи PowerShell та інше.
В поточному Windows цей обхід не спрацює, але ви можете використовувати PSByPassCLM.
Щоб скомпілювати, вам може знадобитися додати Посилання -> Перегляд -> Перегляд -> додати C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0\31bf3856ad364e35\System.Management.Automation.dll
і змінити проект на .Net4.5.
Ви можете використовувати ReflectivePick або SharpPick, щоб виконати код Powershell в будь-якому процесі та обійти обмежений режим. Для отримання додаткової інформації перегляньте: https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode.
За замовчуванням вона встановлена на обмежену. Основні способи обійти цю політику:
Більше можна знайти тут
Це API, яке можна використовувати для автентифікації користувачів.
SSPI буде відповідати за пошук адекватного протоколу для двох машин, які хочуть спілкуватися. Переважним методом для цього є Kerberos. Потім SSPI буде вести переговори про те, який протокол автентифікації буде використовуватися, ці протоколи автентифікації називаються постачальниками підтримки безпеки (SSP), розташовані всередині кожної машини Windows у формі DLL, і обидві машини повинні підтримувати один і той же, щоб мати можливість спілкуватися.
Kerberos: Переважний
%windir%\Windows\System32\kerberos.dll
NTLMv1 та NTLMv2: З причин сумісності
%windir%\Windows\System32\msv1_0.dll
Digest: Веб-сервери та LDAP, пароль у формі MD5 хешу
%windir%\Windows\System32\Wdigest.dll
Schannel: SSL та TLS
%windir%\Windows\System32\Schannel.dll
Negotiate: Використовується для переговорів про протокол, який буде використовуватися (Kerberos або NTLM, при цьому Kerberos є за замовчуванням)
%windir%\Windows\System32\lsasrv.dll
Контроль облікових записів користувачів (UAC) - це функція, яка дозволяє запит на згоду для підвищених дій.
UAC - User Account ControlВикористовуйте Trickest, щоб легко створювати та автоматизувати робочі процеси, підтримувані найсучаснішими інструментами спільноти. Отримайте доступ сьогодні:
Вчіться та практикуйте хакінг AWS:HackTricks Training AWS Red Team Expert (ARTE) Вчіться та практикуйте хакінг GCP: HackTricks Training GCP Red Team Expert (GRTE)