Nemesis提供了一个Dashboard页面来呈现和共享数据,具有多账号同时登陆的能力。
在Nemesis首页可以很明显看到当前收集和处理的数量和类型,在左侧的侧边栏中不同的条目提供了不同类型数据详细信息的浏览。大致分为文档类型、浏览器数据、DPAPI数据、密码凭据信息等,具体信息见文末附录的展示。
Nemesis是一个非常符合现代化设计的平台,充分发挥了现有云计算成熟的基础设施优势,利用微服务架构将整个平台解耦,从Nemesis的架构图可以看出各个模块之间的组织关系。
连接器与各个数据收集端点相连,负责常规的信息收集。数据收集端点包括C2工具、浏览器等,根据不同的端点编写不同的连接器(如应用于CS的cna插件),实现数据手动或自动上传,目前项目中内置了一些常用工具的连接器。Nemesis的亮点之一就在于其通过不同的连接器,将不同来源、不同形式的数据通过结构化处理转化为统一的内部数据格式,同时保持了数据一致性。
扩充模块负责对原始来源的数据进行更深层次的信息提取。扩充模块包括多个提取组件并具备很强的扩展性,用户可以自己添加相应数据格式的提取器来增强其能力。在连接器收到数据后,Nemesis首先利用tika、yara规则和一些开源格式解析器从数据格式、文件类型方面对数据的进行分类,如浏览器存储、文档、图片、配置文件、DPAPI数据、二进制程序以及进程数据等,进而传递给不同的数据解析器来进一步处理。例如对于doc、excel等文档类型数据通过Gutenberg进行文档内容解析,对于图片类型则通过OCR等方式对图片中文本进行提取。特别的对于某些加密文件格式如加密PDF、Word文档以及压缩文件,具备云端Crack能力。可以看出Nemesis的目标是从非文本格式的数据中挖掘更多有效信息,未来可能向全格式数据类型数据挖掘方向发展。
数据分析模块负责数据分析以及提取信息结果的可视化呈现。在这个模块中,Nemesis充分利用了结构化数据的优点,使用Elasticsearch、PostgreSQL等结构化数据存储和分析工具,使其具备出色的信息搜索和复杂数据关联和分析能力。下图展示了其结构化存储的一个示例。
- 支持多收集端点的数据自动化收集;
- 支持多种格式的文件类型解析;
- 支持多种类型文件的敏感信息发现与提取;
- 结构化数据存储。
介绍完Nemesis的主要工作后,我们更需要关注于其对数据处理相关的设计思想:离线化处理、结构化处理。
离线化处理指收集数据过程中尽量保留完整原始未处理数据,再经由平台分析。数据离线处理带来一些好处:一是我们拥有对历史数据进行回溯分析的可能,尤其是在新加分析方式时;二是避免数据信息压缩,攻击方在获取大量数据时通常会对数据信息进行人为抽取,这个过程中存在信息丢失的可能,而使用原始数据则将信息抽取放在自动化流程中,最大可能避免数据信息丢失。
结构化处理指处理过程中使用内部数据结构来进行归一化处理。我们可能从后渗透阶段工具、人工提交等来源获取数据,通过将其处理为统一的形式,在持续对某个目标收集数据后,可以建立起跨越时间、范围的数据连接,提供非常强大的关联性分析能力,例如Chrome文件与DPAPI数据之间关联。在后面会详细的对结构化数据进行说明。
在Nemesis的介绍中,我们多次提到“结构化数据”。通俗来说,结构化数据是按照一定数据结构规范的数据类型。我们在以往的蓝军工具中鲜有出现结构化数据,大多工具只具备基础的日志记录。尤其在后渗透领域而言,负责后渗透领域的蓝军队员往往处于攻击活动的一线,我们的工具输出往往为了方便“人”的分析而忽视了“计算机”的分析,大部分工具只有操作记录,只有少数类型的工具会遵循特定的格式输出。这与防御性项目存在很大的差异:防御性项目往往会收集大量的结构化数据来进行威胁分析,例如安全信息和事件管理(SIEM)即通过对标准的日志进行整合,从而自动化的进行威胁检测和事件响应。
更加现代化的利用方式案例是Nemesis同团队主导的BloodHound项目。作为一款域渗透分析工具,其可以便捷的将收集到的数据导入到Neo4j数据库中,同时提供了高级查询命令,借助Neo4j构建知识图谱,实现资产拓扑展示、攻击路径的查询等可视化,大大减少了蓝军队员的工作量。按照结构化数据思想,将不同阶段工具进行有机结合,使得传统工具有机会与新兴技术进行整合,探索出新的利用方式。
可以看出,结构化数据给这些工具带来了数据多阶段使用和关联性分析上的便利,在后面我们会进一步说明蓝军应该怎样使用结构化数据来下手“数据战场”。
回顾一下我们以往在蓝军行动中数据协同的做法,可能更准确的说法叫做数据共享。在行动过程中,一个蓝军队伍会有明确分工,可能会对同一目标或者不同目标进行不同角度的尝试。当一个攻击队员发现有价值的敏感数据后,我们会通过一些自建或公用的IM即时通讯软件以文本、图片和文档等形式将数据同步给其他队员。这种方式无疑是一种低成本、便捷的沟通方式,但是如果场景再大一点、团队在大一点呢?传统数据共享方式的弱点很容易被发现:一是文本、图片等原始数据往往只能直观的传递信息,缺少深入的内容挖掘和历史数据的关联性分析;二是缺少数据的有效对接能力,这个问题在规模越大的团队中会更加突出,例如一个负责打点队员对于二进制文件不会很敏感,很容易造成价值判断失误。
攻击数据协同平台的目标十分明确:
- 攻击数据同步:在大规模的蓝军行动中进行数据汇总,快速进行有效数据传递同步,将凭据、攻陷节点信息、敏感文件等有效数据快速对接响应成员。
- 攻击数据分析:对部分格式数据进行解析并加以分析,通过可视化的方式呈现攻击链路和目标拓扑,并提供便捷的关联搜索能力。
现阶段工作已经初步表现出攻击“数据协同+结构化数据”处理带来的优势。我们团队也早已入局“数据战场”,结合了M01N、猎鹰等多个战队、攻防专家、一线安服队员的宝贵需求,开发了数据协同平台——“破军”,提供红蓝对抗所需的包括C2日志整合、节点链式展示、密码本等多项能力,在多次竞赛中均有出色的表现。
- 基于云平台使单兵具有更强大的分析算力:在云计算领域,算力是可以通过堆积来实现的,放在蓝军攻击场景中也十分适用。一个很简单的例子,对于一个56位密钥长度的DES加密文档而言,每纳秒执行一万次解密所需的时间大约为1小时,这个对于普通终端来说是很有挑战性的,如果我们通过算力的堆叠来解决,问题将迎刃而解。这个例子可能不准确,但是也表明了基于云平台的设计,单兵拥有的能力将会提高到一个新的层面上。
- 自动化攻击决策:自动化数据处理分析将带来总体层面上的态势感知,通过对目标信息的持续提取,AI能够对攻击的不同阶段提出可行攻击决策,进行自动化攻击路径生成等一系列充当安全专家角色的行为。
[2] https://posts.specterops.io/hacking-with-your-nemesis-7861f75fcab4
原文始发于微信公众号(M01N Team):Nemesis:蓝军攻击数据协同平台化实践
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论