View in Telegram
Cypher: Условия фильтрации запроса. Часть первая Пост получился большой поэтому разбит на две части. В предыдущих постах уже использовалась фильтрация по меткам User и Computer и только в некоторых случаях этого будет достаточно. Для указания более точных критериев поиска используется ключевое слово WHERE. Ключевое слово WHERE может использоваться для всех свойств объекта. Рассмотрим синтаксис условий на простых примерах. Для точного вхождения используется оператор равно =. Могут приниматься булевы значения false и true. Например, найти всех членов группы администраторов домена:
MATCH (u:User)-[r:MemberOf*0..]->(g:Group) g.name = "DOMAIN ADMINS@DOMAIN.LOCAL" RETURN u.name
Оператор «не равно» <> - противоположен предыдущему оператору. Например, найти все компьютеры, которые не являются контроллерами домена:
MATCH (c:Computer)-[r:MemberOf]->(g:Group) WHERE g.name <> "DOMAIN CONTROLLERS@DOMAIN.LOCAL" RETURN c.name
Операторы «больше чем» >, «больше или равно» >=, «меньше чем» < и «меньше или равно» <= используются для сравнения чисел. В BloodHound, наверно, нет числовых значение, кроме результатов работы с датами или сложные запросы с использованием, но об этом в отдельной теме. Оператор «не нулевое значение» IS NOT NULL проверяет наличие значения в свойстве. В качестве примера известная проверка непустого атрибута Description:
MATCH (u:User) WHERE u.description IS NOT NULL RETURN u.name
Оператор «нулевое значение» IS NULL – является противоположным предыдущему оператору. В качестве примера выполнить поиск потенциальных пресозданных машин, часто такие машины имеют пустой атрибут operatingsystem:
MATCH (c:Computer) WHERE c.operatingsystem IS NULL RETURN c.name
Оператор «содержит» CONTAINS проверяет наличие передаваемого значения в свойстве. Например, найти доменные группы в имени, которых встречается слово «DBA» (администраторы баз данных):
MATCH (g:Group) WHERE g.name CONTAINS "DBA" RETURN g.name
Оператор «начинается с» STARTS WITH позволяет указывать префикс для значения свойства. Имеет смысл использовать для свойств имени, например, найти все учетные записи с префиксом ADM:
MATCH (u:User) WHERE u.name STARTS WITH "ADM" RETURN u.name
Оператор «заканчивается на» ENDS WITH аналогичен предыдущему, но с указанием постфикса. Этот оператор удобно использовать для указания RID, например, вместо имени группы или если в базе есть результаты из нескольких доменов и нужны данные только из определенного. В качестве примера требуется подсчитать столько учетных записей пользователей есть в домене «CHILD.DOMAIN.LOCAL». Запрос в Cypher будет следующим:
MATCH (u:User) WHERE u.name ENDS WITH "CHILD.DOMAIN.LOCAL" RETURN count(u)
Продолжение следует… #BloodHound #Cypher
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily