- Автор темы
- Добавить закладку
- #21
18. BloodHound с Kali Linux: 101
Эта лаба предназначена для того, чтобы увидеть, что нужно для установки BloodHound на Kali Linux, а также кратко изучить пользовательский интерфейс, понять, что он показывает и как он может помочь пентестеру/редтимеру повысить привилегии для достижения своих целей.
Что такое BloodHound
BloodHound — это одностраничное веб-приложение Javascript, построенно поверх http://linkurio.us/, скомпилированное с помощью http://electron.atom.io/, с базой данных https://neo4j.com/ , и использующее PowerShell
BloodHound использует теорию графов для выявления скрытых и часто непреднамеренных взаимосвязей в среде Active Directory. Злоумышленники могут использовать BloodHound, чтобы легко идентифицировать очень сложные пути атаки, которые в противном случае было бы невозможно быстро идентифицировать. Защитники могут использовать BloodHound для выявления и устранения тех же путей атаки. И синие, и красные команды могут использовать BloodHound, чтобы легко получить более глубокое понимание отношений привилегий в среде Active Directory.
Установка BloodHound
Удивительно легко установить Bloodhound в наши дни из Kali Linux:
apt-get install bloodhound
В процессе установки также будет установлено решение для управления базой данных neo4j, необходимое для BloodHound, которое необходимо будет настроить.
Настройка BloodHound
После завершения установки нам нужно настроить neo4j — в основном просто изменить пароли по умолчанию, поэтому давайте запустим:
neo4j console
и перейдите по адресу http://localhost:7474/, чтобы настроить учетную запись пользователя БД, изменив пароли по умолчанию с neo4j:neo4j на что-то другое — эти учетные данные понадобятся нам при запуске самого BloodHound.
Запуск BloodHound
bloodhound
Войдите в систему с ранее установленными учетными данными из neo4j:
Перечисление и прием данных
BloodHound — это инструмент визуализации данных, то есть без каких-либо данных он бесполезен. BloodHound очень хорошо визуализирует отношения объектов Active Directory и различные разрешения между этими отношениями.
Чтобы BloodHound творил чудеса, нам нужно перечислить домен-жертву. Процесс перечисления создает файл JSON, описывающий различные отношения и разрешения между объектами AD, как упоминалось ранее, который затем можно импортировать в BloodHound. Как только полученный файл JSON будет загружен/импортирован в BloodHound, он позволит нам визуально увидеть способы (если таковые имеются) того, как Active Directory и ее различные объекты могут (ab) использоваться для повышения привилегий, в идеале до администратора домена.
SharpHound
Инструмент, который выполняет вышеупомянутое перечисление AD, называется https://github.com/BloodHoundAD/BloodHound/tree/master/Ingestors.
Я попытался запустить SharpHound из учетной записи, которая не была членом домена, поэтому я получил следующее сообщение:
Если вы находитесь на машине, которая является членом, но вы прошли аутентификацию как локальный пользователь, но имеете учетные данные для пользователя домена, получите оболочку для этого пользователя следующим образом:
runas /user:spotless@offense powershell
// if machine is not a domain member
runas /netonly /user:spotless@offense powershell
Теперь мы можем перейти к перечислению AD:
. .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All -JSONFolder "c:\experiments\bloodhound"
Приведенная выше команда создаст ранее упомянутый файл JSON, хотя и заархивированный:
Теперь мы можем взять файл .zip, созданный Invoke-BloodHound, и просто перетащить его в интерфейс BloodHound для приема. После завершения приема мы можем поиграть с предварительно подготовленными запросами, которые фактически визуализируют предоставленные данные:
Выполнение
Как уже упоминалось, после приема данных мы можем поиграть со встроенными запросами, чтобы найти такие вещи, как All Domain Admins, Shortest Path to Domain Admins и тому подобное, которые могут помочь нам как злоумышленнику повысить привилегии и скомпрометировать все домены/ лес.
Пример #1: Пользователь для обмена доверенной подсистемой
Надуманный и, возможно, не совсем реалистичный пример, но все же - ниже показано, как злоумышленник может получить привилегии группы доверенных подсистем Exchange, находясь в сети жертвы как безупречный пользователь:
Вышеупомянутое указывает, что offense\spotless является администратором для DC01$ (можно использовать mimikatz для передачи хэша учетной записи машины для получения расширенной оболочки), где наблюдается сеанс offense\administrator (дамп lsass или олицетворение токена для администратора), и таким образом получают права группы доверенных подсистем Exchange!
Что такое доверенная подсистема Exchange?
net group "Exchange Trusted Subsystem"
Group name Exchange Trusted Subsystem
Comment This group contains Exchange servers that run Exchange cmdlets on behalf of users via the management serv
ice. Its members have permission to read and modify all Exchange configuration, as well as user accounts and groups. Thi
s group should not be deleted.
Пример № 2: Пользователь для администратора домена через AdminTo и MemberOf
Ниже показано, как пользователь spotless может получить привилегии администратора домена.
Как и в предыдущем примере, spotless является администратором DC01$, где установлен сеанс администратора. Если этот сеанс скомпрометирован (это так), он делает пользователя spotless администратором домена:
Пример № 3: Пользователь к администратору домена через Weak ACE
Ниже показано, как пользователь spotless может стать администратором домена с помощью Abusing Active Directory ACLs/ACEs https://www.ired.team/offensive-sec...ctive-directory-acls-aces#genericall-on-group указанной группы. В этом конкретном примере пользователь spotless может по существу добавить себя в группу администраторов домена с помощью net group "domain admins" spotless /add /domain , и это гейм овер:
См. мою предыдущую лабораторную работу, в которой исследуются некоторые способы ручного использования и злоупотребления неправильной настройкой Active Directory ACL/ACE привилегий, таких как AddMember, GenericWrite, GenericAll и подобных:
Эта лаба предназначена для того, чтобы увидеть, что нужно для установки BloodHound на Kali Linux, а также кратко изучить пользовательский интерфейс, понять, что он показывает и как он может помочь пентестеру/редтимеру повысить привилегии для достижения своих целей.
Что такое BloodHound
BloodHound — это одностраничное веб-приложение Javascript, построенно поверх http://linkurio.us/, скомпилированное с помощью http://electron.atom.io/, с базой данных https://neo4j.com/ , и использующее PowerShell
BloodHound использует теорию графов для выявления скрытых и часто непреднамеренных взаимосвязей в среде Active Directory. Злоумышленники могут использовать BloodHound, чтобы легко идентифицировать очень сложные пути атаки, которые в противном случае было бы невозможно быстро идентифицировать. Защитники могут использовать BloodHound для выявления и устранения тех же путей атаки. И синие, и красные команды могут использовать BloodHound, чтобы легко получить более глубокое понимание отношений привилегий в среде Active Directory.
Установка BloodHound
Удивительно легко установить Bloodhound в наши дни из Kali Linux:
apt-get install bloodhound
В процессе установки также будет установлено решение для управления базой данных neo4j, необходимое для BloodHound, которое необходимо будет настроить.
Настройка BloodHound
После завершения установки нам нужно настроить neo4j — в основном просто изменить пароли по умолчанию, поэтому давайте запустим:
neo4j console
и перейдите по адресу http://localhost:7474/, чтобы настроить учетную запись пользователя БД, изменив пароли по умолчанию с neo4j:neo4j на что-то другое — эти учетные данные понадобятся нам при запуске самого BloodHound.
Запуск BloodHound
bloodhound
Войдите в систему с ранее установленными учетными данными из neo4j:
Перечисление и прием данных
BloodHound — это инструмент визуализации данных, то есть без каких-либо данных он бесполезен. BloodHound очень хорошо визуализирует отношения объектов Active Directory и различные разрешения между этими отношениями.
Чтобы BloodHound творил чудеса, нам нужно перечислить домен-жертву. Процесс перечисления создает файл JSON, описывающий различные отношения и разрешения между объектами AD, как упоминалось ранее, который затем можно импортировать в BloodHound. Как только полученный файл JSON будет загружен/импортирован в BloodHound, он позволит нам визуально увидеть способы (если таковые имеются) того, как Active Directory и ее различные объекты могут (ab) использоваться для повышения привилегий, в идеале до администратора домена.
SharpHound
Инструмент, который выполняет вышеупомянутое перечисление AD, называется https://github.com/BloodHoundAD/BloodHound/tree/master/Ingestors.
Я попытался запустить SharpHound из учетной записи, которая не была членом домена, поэтому я получил следующее сообщение:
Если вы находитесь на машине, которая является членом, но вы прошли аутентификацию как локальный пользователь, но имеете учетные данные для пользователя домена, получите оболочку для этого пользователя следующим образом:
runas /user:spotless@offense powershell
// if machine is not a domain member
runas /netonly /user:spotless@offense powershell
Теперь мы можем перейти к перечислению AD:
. .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All -JSONFolder "c:\experiments\bloodhound"
Приведенная выше команда создаст ранее упомянутый файл JSON, хотя и заархивированный:
Теперь мы можем взять файл .zip, созданный Invoke-BloodHound, и просто перетащить его в интерфейс BloodHound для приема. После завершения приема мы можем поиграть с предварительно подготовленными запросами, которые фактически визуализируют предоставленные данные:
Выполнение
Как уже упоминалось, после приема данных мы можем поиграть со встроенными запросами, чтобы найти такие вещи, как All Domain Admins, Shortest Path to Domain Admins и тому подобное, которые могут помочь нам как злоумышленнику повысить привилегии и скомпрометировать все домены/ лес.
Пример #1: Пользователь для обмена доверенной подсистемой
Надуманный и, возможно, не совсем реалистичный пример, но все же - ниже показано, как злоумышленник может получить привилегии группы доверенных подсистем Exchange, находясь в сети жертвы как безупречный пользователь:
Вышеупомянутое указывает, что offense\spotless является администратором для DC01$ (можно использовать mimikatz для передачи хэша учетной записи машины для получения расширенной оболочки), где наблюдается сеанс offense\administrator (дамп lsass или олицетворение токена для администратора), и таким образом получают права группы доверенных подсистем Exchange!
Что такое доверенная подсистема Exchange?
net group "Exchange Trusted Subsystem"
Group name Exchange Trusted Subsystem
Comment This group contains Exchange servers that run Exchange cmdlets on behalf of users via the management serv
ice. Its members have permission to read and modify all Exchange configuration, as well as user accounts and groups. Thi
s group should not be deleted.
Пример № 2: Пользователь для администратора домена через AdminTo и MemberOf
Ниже показано, как пользователь spotless может получить привилегии администратора домена.
Как и в предыдущем примере, spotless является администратором DC01$, где установлен сеанс администратора. Если этот сеанс скомпрометирован (это так), он делает пользователя spotless администратором домена:
Пример № 3: Пользователь к администратору домена через Weak ACE
Ниже показано, как пользователь spotless может стать администратором домена с помощью Abusing Active Directory ACLs/ACEs https://www.ired.team/offensive-sec...ctive-directory-acls-aces#genericall-on-group указанной группы. В этом конкретном примере пользователь spotless может по существу добавить себя в группу администраторов домена с помощью net group "domain admins" spotless /add /domain , и это гейм овер:
См. мою предыдущую лабораторную работу, в которой исследуются некоторые способы ручного использования и злоупотребления неправильной настройкой Active Directory ACL/ACE привилегий, таких как AddMember, GenericWrite, GenericAll и подобных:
