taibeihacker
Moderator
Falconhound是一支蓝色团队的多工具。它使您能够以更自动化的方式利用和增强猎犬的力量。它被设计为与SIEM或其他日志聚合工具一起使用。
血腥猎犬的挑战性方面之一是,它是及时的快照。 Falconhound包含可用于保持最新环境图表的功能。这使您可以看到现在的环境。这对于不断变化的环境特别有用。
当地小组成员和会议信息是最难聚集的猎犬的最难的回忆之一。作为蓝色团队人员,我们在日志中很容易获得此信息。 Falconhound可用于收集此信息并将其添加到图表中,从而使其被Blood Hund使用。
这只是如何使用Falonconhound的一个例子。它可用于收集您在日志或安全工具中拥有的任何信息,并将其添加到猎犬图中。
此外,该图可用于触发警报或生成富集列表。例如,如果将用户添加到某个组中,则可以使用falconhound来查询图形数据库,以找到敏感或高特你组的最短路径。如果有路径,则可以将其记录到SIEM或用于触发警报。
其他可以使用Falconhound的示例:
基于登录事件和记录事件,在图中添加,删除或定时会话。在Sentinel或MDE中有事件时,将用户和计算机标记为图表中的损害。添加CVE信息以及图形是否有公共利用。各种Azure活动。当将用户添加到组或具有新角色时,重新计算敏感组的最短路径。将新用户,组和计算机添加到图表中。生成哨兵和splunk的丰富列表,例如,Kerberoable的用户或具有某些实体所有权的用户。这里的可能性是无尽的。请在问题跟踪器中添加更多想法或提交公关。
一个博客详细介绍了我们为什么开发它,可以在此处找到一些用例示例
index:
支持的数据源和目标安装使用操作操作扩展到图形凭据管理部署许可证
Supported data sources and targets
Falconhound设计用于与血腥猎犬一起使用。这不是替代血腥猎犬的。它旨在利用以自动化方式支持的血腥猎犬及其支持的所有其他数据平台的力量。目前,Falconhound支持以下数据源和/或Targets:
Azure Sentinel Azure Sentinel监视列表Splunk Microsoft Defender for Endpoint Neo4J MS Graph API(早期)CSV文件计划将来其他数据源和目标。
目前,Falconhound仅支持HEE4J数据库进行血腥猎犬。对BH CE和BHE的API的支持正在积极发展。
Installation
由于Falconhound是在Go中写的,因此不需要安装。只需从发布部分下载二进制文件并运行它。有适用于Windows,Linux和MacOS的编译二进制文件。您可以在“版本”部分中找到它们。在运行它之前,您需要创建一个配置文件。您可以在根文件夹中找到一个示例配置文件。有关如何创建所有信誉的说明,请参见此处。
推荐的运行Falconhound的方法是作为计划的任务或CRON作业运行。这将使您可以定期运行它,并保持图形,警报和充实。
Requirements
Bloodhound,或至少现在是NEO4J数据库。 SIEM或其他日志聚合工具。目前,支持Azure Sentinel和Splunk。所需的权限,您要与您交谈的每个端点的凭据。Configuration
使用YAML文件配置Falconhound。您可以在根文件夹中找到一个示例配置文件。配置文件的每个部分将在下面说明。Usage
Default run
要运行falconhound,只需运行二进制文件并添加-go参数以使其在操作文件夹中运行所有查询。./falconhound -GO
List all enabled actions
要列出所有已启用操作,请使用-ActionList参数。这将列出“操作”文件夹中的配置文件中启用的所有操作。应将其与-GO参数结合使用。./falconhound -ActionList -GO
Run with a select set of actions
要运行一组选项,使用-IDS参数,然后使用一个或逗号分隔的操作ID列表。这将运行参数中指定的操作,测试,故障排除或需要更频繁的更新时,该操作非常方便。应将其与-GO参数结合使用。./falconhound -IDS Action1,Action2,Action3 -GO
Run with a different config file
默认情况下,Falconhound将在当前目录中寻找配置文件。您还可以使用-Config标志指定配置文件。这可以使您能够在不同的环境下运行具有不同配置的Falconhound实例。./falconhound -go -go -config/path/to/config.yml
Run with a different actions folder
默认情况下,Falconhound将在当前目录中寻找操作文件夹。您还可以使用-actions -dir标志指定其他文件夹。这使得测试和故障排除更加容易,但也使您可以在不同的环境或不同时间间隔内运行具有不同配置的多个实例。./falconhound -go -go -actions -dir/path/to/action
Run with credentials from a keyvault
默认情况下,falconhound将在config.yml中使用凭据(或自定义加载的凭据)。通过设置-Keyvault Flag falconhound将从配置中获取钥匙扣,并从那里检索所有秘密。如果密钥维护中缺少项目,它将落后于配置文件。./falconhound -go -ekeyvault
Actions
动作是Falconhound的核心。它们是Falconhound将运行的疑问。它们是用源和目标的母语编写的,并存储在操作文件夹中。每个操作都是一个单独的文件,并存储在信息源的目录中,即查询目标。文件名用作操作的名称。Action folder structure
每个查询源将动作文件夹分为子目录。所有文件夹将递归处理,所有YAML文件将按字母顺序执行。NEO4J操作should将最后处理,因为它们的输出依赖于其他数据源首先更新图形数据库,以获得最新的结果。
Action files
所有文件都是yaml文件。 YAML文件包含查询信息的查询,一些元数据和目标。根文件夹中有一个模板文件。您可以使用它来创建自己的动作。查看动作文件夹中的操作以获取更多示例。
虽然大多数项目都是相当自我的解释,但有关Actions的一些重要事情需要注意:
Enabled
顾名思义,这用于启用或禁用操作。如果将其设置为false,则该操作将不会进行。启用: True
Debug
这用于启用或禁用操作的调试模式。如果将其设置为true,则该操作将在调试模式下进行。这将向控制台输出查询结果。这对于测试和故障排除很有用,但不建议在生产中使用。根据结果数量,它将减慢操作的处理。debug: false
Query
查询字段是将针对源运行的查询。这可以是KQL查询,SPL查询或Cypher查询,具体取决于您的SourcePlatform。重要:尝试尽可能地保持查询,并仅返回所需的字段。这将使结果的处理更快,更有效。此外,在运行Cypher查询时,请确保作为结果返回JSON对象,否则处理将失败。例如,这将返回Azure订阅的名称,计数,角色和所有者:
匹配p=(n) - [r:azowns | azuseraccessadministrator] - (g:azsubscription)
返回{name:g.name,count:count(g.name),角色3:Type(r),所有者:Collect(n.name)}
Targets
每个目标每个目标都有几个可以配置的选项。根据目标的不同,有些可能需要比其他目标更多的配置。所有目标都有名称和启用字段。名称字段用于识别目标。启用字段用于启用或禁用目标。如果将其设置为false,则目标将被忽略。CSV
-名称: CSV启用: True
PATH: PATH/TO/FILENAME.CSV
Neo4j
NEO4J目标将将查询结果写入NEO4J数据库。此输出是每行,因此需要一些其他配置。由于我们可以在各个方向传输各种数据,因此Falconhound需要了解如何处理数据。这是通过在Cypher查询的第一行中使用替换变量来完成的。这些作为参数传递给neo4j,可以在查询中使用。替换场字段在下面配置。-NAME: NEO4J
启用: True
query: |
匹配(x: