导语:为啥要研究横向移动攻击 1.建立攻击的立足点 有时,入侵者事先知道要入侵的任务的目标用户或系统,但是,更常见的情况是,在企业中获得立足点 的攻击者必须进行发现过程以获取有关主机,用户和感兴趣数据的信息,一旦确定了目标,攻击者必须 在
为啥要研究横向移动攻击
1.建立攻击的立足点
有时,入侵者事先知道要入侵的任务的目标用户或系统,但是,更常见的情况是,在企业中获得立足点 的攻击者必须进行发现过程以获取有关主机,用户和感兴趣数据的信息,一旦确定了目标,攻击者必须 在网络中移动以获得他们在环境变得敌对之前所需的内容。
2.无法有效的区分管理员正常操作和黑客异常入侵行为
有几种方法可以对横向运动技术进行分类。
在这里我们将参考:
启用远程身份验证的协议,例如SSH,SMB和RDP
专为远程执行而设计的框架,例如WinRM,WMI和RPC
不依赖于协议或框架的技术支持远程访问或执行,例如“粘滞键”功能滥用
横向移动攻击手段
为了横向移动,入侵者通常使用内置于操作系统中的工具,例如SSH,Windows Management Instrumentation(WMI)和Windows远程管理(WinRM)。 其他时候攻击者引入了像Windows Sysinternals PsExec这样的工具。 其中一些工具可以选择指定目标用户名和密码,而其他工具则能够使用当前用户上下文并透明地向远程系统进行身份验证
Hunting 可疑PsExec的使用
PsExec是Sysinternals PsTools软件套件中的一个实用程序,是与远程执行相关的更常见的横向移动工具之一。 它在产品文献中被描述为可以使用的“telnet替换”Windows控制台或第三方软件。 PsExec已被各种组织的管理员广泛采用,并且经常在Windows系统上遇到。 但是,攻击者很快采用它的原因和管理员一样。 在管理员和攻击者都拥有相同工具的环境中,发现恶意行为可能极具挑战性。
检查事件日志
1.您可以通过检查取决于目标操作系统的多个取证数据来获取在目标系统上使用PsExec的证据。 Windows事件日志中发现的证据来源包括:
·EID 5145,包含有关访问隐藏的$ ADMIN和$ IPC共享的请求的元数据; 这些日志表明负责的过程(寻找PsExec)。
·EID 5140表示成功访问了共享,可以确认尝试成功,以及使用的帐户和其他支持证据。
·EID 4697和7045可以捕获临时PSEXESVC服务的安装
·EID 4688事件中捕获的详细流程执行可以识别源系统和目标系统上PsExec的使用,包括完整的命令行参数
·Sysmon是一个免费的日志记录实用程序,它捕获EID 1中的详细进程执行,并包括父流程,网络和用户元数据
2.建立工具使用基线
·能够访问这些证据来源的团队应首先评估PsExec在环境中的出现频率,以及是否已知其合法使用。 从那里,他们可以识别哪些系统是用于远程执行的PsExec的常见源,以及哪些帐户最常用于身份验证。
·协调IT和网络运营,以更好地确定常用工具,帐户和系统是否合法。 大多数安全团队没有必要的环境意识来了解如何使用这些资源。 在事件期间还可以利用与操作组的关系来动员响应,支持数据收集,并实施预防性控制和增强日志记录
3.你需要多少数据
·建立捕猎能力的组织可能会感到有必要通过PsExec进行过度采伐,以涵盖横向移动等技术。 保留与NTLM和KERBEROS身份验证相关的事件是一个很好的决定,但是对于系统活动的每一分钟,可能会创建许多个别记录。相反,与共享访问关联的日志会发生变化更不频繁,所以你不必搜索这么多的数据。 因此,您可以开始关注EID 5145事件并暂停其他证据来源。 在下一节中,我们将讨论此事件类型的分析选项。
* 分析元数据
* 我们知道,根据我们对PsExec内部的理解,它将检查目标系统上共享的属性。我们还知道,根据我们对Windows操作系统的理解,检查这些属性会产生EID 5145事件。
* 记录事件的时间(将有所不同)
* 请求的来源(服务控制管理器)
* 服务的名称(PSEXECSVC,但请注意这是可配置的)
* 服务可执行文件(%systemroot%\ psexecsvc.exe,也可配置)
* 在目标上创建的服务名称和可执行文件可由对手配置。 但是,在访问隐藏的股票时,这不应该是一个主要障碍。 分析人员需要了解查询共享属性并导致生成这些事件的所有有效服务。 在您的环境中,您应该记录这些有效的服务。 这样,当你看到一个名字奇怪的服务时 “WjjNnsdsd12sdkj”试图访问$ IPC共享,你可以肯定某些东西是可疑的。
* 分析进程事件
* 除了共享访问和服务创建事件的日志之外,进程执行的证据(本机或通过Sysmon)可以帮助揭示PsExec和其他恶意可执行文件的可疑使用。
* 什么是应用程序和应用程序元数据(文件名,路径,散列,大小,PE版本信息,命令行参数等)?
– 是在已知的操作期间记录的窗口?
– 是与执行相关的有效帐户,并且在正常运营期间使用此帐户窗口?
– 该过程是否与网络活动相关?
* 需要多少数据
* 捕获所有系统的详细进程执行数据是一种很好的做法。 但是,有些企业可能会发现捕获共享访问事件足以进行搜索。 通过仅将特定事件从端点转发到中心位置,您的服务器会收到海量日志。这种解决方案不可取。其实保留这个事件最重要的部分就好,同时为了调查目的在端点上保留几天的价值。 可以在Windows上启用新的进程创建审核,这会记录EID 4688个事件。 这些日志包含一个有关进程的大量有价值信息,但可以生成大量数据。 在源和目标上生成的4688事件包含:
* 记录事件的时间
* 用户上下文(帐户ID,名称,域,会话ID)
* 进程元数据(ID,可执行文件的完整路径,权限令牌,父进程ID,父进程已满路径,完整的命令行)
* 进程关联文件HASH
* 我么也可以记录进程文件的hash,到virustotal查询。
* 分析命令行
* 对于分析,有用的元数据包括与过程本身相关的详细信息。 其中,命令行参数最有用。 攻击者可以更改PsExec的某些属性来隐藏其轨道,但是它们不能改变它接受的命令行参数。
如何自动化发现横向移动攻击
结构化分析手段抽象
监控API
实现技术架构
LMAgent主要是收集数据
LMServer主要是中转数据和发现控制指令(灵活策略过滤)
kafka数据流服务,事件量太大必须要用
ES主要是做持久化,然后进入态势感知做事件关联计算。