Cypher: Добавление и изменение свойства объекта
При использовании BloodHound, возможно, нет необходимости менять свойства объекта, но если расширять возможности
Для изменения свойства объекта используется оператор
SET
. Самым простым примером является изменения свойства
Compromised
в базе neo4j это свойство называется
owned
, оно определяется булевым значением
false
или
true
. Чтобы изменить это свойство нужно выполнить запрос Cypher:
MATCH (u:User) WHERE u.name = "USER@DOMAIN.LOCAL" SET u.owned = TRUE RETURN u.name,u.owned
Новое свойство также добавляется оператором
SET
, например при выполнении Kerberoasting был пароль был успешно подобран и эту информацию можно добавить в базу neo4j, запрос Cypher буде следующим:
MATCH (u:User) WHERE u.name = "SVC_SQL@DOMAIN.LOCAL" SET u.password = "Qwerty123" RETURN u.name,u.password
Интерфейс BloodHound новые свойства отображает в разделе
EXTRA PROPERTIES
поэтому изменять код для отображения новых свойств не требуется. Однако, новые свойства отображаются при повторном запросе объекта.
Если свойство объекта больше не требуется его можно удалить. Например, был обнаружен пароль от учетной записи, мы добавили его в базу, но через какое-то время пользователь изменил свой пароль, и информация стала неактуальной. Поэтому стоит удалить свойство
password
для удаления свойства в Cypher используется оператор
REMOVE
:
MATCH (u:User) WHERE u.name = "USER@DOMAIN.LOCAL" REMOVE u.password RETURN u.name,u.password
Вместо удаления свойства можно установить для него нулевое значение:
MATCH (u:User) WHERE u.name = "USER@DOMAIN.LOCAL" SET u.password = NULL RETURN u.name,u.password
#BloodHound #Cypher