【DFIR报告翻译】攻击者是如何发现共享文件的——ShareFinder
2023-1-25 22:39:48 Author: Desync InfoSec(查看原文) 阅读量:99 收藏

摘要

    我们的许多报告都专注于攻击者使用的技术、战术、流程(TTPs)和攻击者使用的工具。当攻击者突破网络边界获取到失陷主机的控制权后,首要的工作就是进行信息收集和内网探测。网络共享便是信息收集和网络探测的目标之一,入侵目的是窃取数据或投递勒索软件的攻击组织普遍将文件共享作为攻击目标。

    由于上述原因,作为防守方我们必须能够主动检测未授权网络共享探测行为,这样才能减轻数据泄漏和其他由未授权网络共享导致的其他风险,例如勒索软件。在本报告中,我们将分析一个常见的用于发现网络共享的工具——PowerShell脚本Invoke-ShareFinder,下文统称为“ShareFinder”。我们将深入讨论Invoke-ShareFinder探测网络共享的行为特征,帮助防守方在网络环境中检测Invoke-ShareFinder和与其功能相似的其他工具。

什么是ShareFinder?

ShareFinder是我们这篇报告讨论的中心主题,在我们处理40%的入侵案例(https://thedfirreport.com/?s=sharefinder)中攻击者都使用了ShareFinder。

ShareFinder最初是PowerSploit框架

https://github.com/PowerShellMafia/PowerSploit中PowerView模块

https://powersploit.readthedocs.io/en/stable/Recon/README/)的一部分。如今ShareFinder已经被包含在许多的开源项目中,并且被越来越多的攻击组织广泛用于入侵活动中。在2022年中我们在如下案例中发现攻击者使用了ShareFinder:

  • https://thedfirreport.com/2022/11/28/emotet-strikes-again-lnk-file-leads-to-domain-wide-ransomware/

  • https://thedfirreport.com/2022/11/14/bumblebee-zeros-in-on-meterpreter/

  • https://thedfirreport.com/2022/09/26/bumblebee-round-two/

  • https://thedfirreport.com/2022/08/08/bumblebee-roasts-its-way-to-domain-admin/

  • https://thedfirreport.com/2022/04/04/stolen-images-campaign-ends-in-conti-ransomware/

在这些案例中,攻击者直接在失陷主机中使用PowerShell执行ShareFinder,例如下面的例子,攻击者意图执行ShareFinder -CheckShareAccess 并将执行结果保存在shares.txt中:

Invoke-ShareFinder -CheckShareAccess -Verbose | Out-File -Encoding ascii C:\ProgramData\shares.txt"

我们在Conti泄漏资料

https://twitter.com/TheDFIRReport/status/1498642505646149634)中也看到Conti攻击组织使用了以上命令,只不过最终输出的文件名有所区别。

在“快捷指南”

https://twitter.com/thedfirreport/status/1498651797249998854)中也有关于ShareFinder的类似信息:

另一种执行ShareFinder方法是使用Cobalt Strike内置工具执行。

IEX (New-Object Net.Webclient).DownloadString('http://127.0.0.1:10966/'); Invoke-ShareFinder -CheckShareAccess
标准的ShareFinder工具支持以下参数:

参数

描述

HostList

目标主机名和IP列表

ExcludeStandard

排除标准文件共享路径例如:(C$, IPC$, print$等)

ExcludePrint

排除自定义的共享文件路径

ExcludeIPC

排除 IPC$ 共享路径

CheckShareAccess

只显示当前用户可以访问的共享文件

CheckAdmin

只显示当前用户可以访问的ADMIN$共享

Ping

枚举共享前使用Ping进行存活探测

NoPing

枚举共享前不使用Ping进行存活探测

Delay

枚举各个主机时的延迟时间

Jitter

主机延迟时间之间的抖动值,默认0.3左右

Domain

请求指定域内的主机

分析师注释:本文只讨论ShareFinder核心功能的默认特征,不会包括其他人修改过的ShareFinder行为特征。
PART 01
网络侧检测
01
SMB流量

    如果不了解现网中正常的SMB流量,则通过网络流量检测ShareFinder将产生大量的误报。我们建议针对正常的SMB通信活动建立行为基线。用于区分正常和异常的SMB活动。总的来说,使用多个不同属性默认配置下的ShareFinder的流量是比较独特的,下表展示了当执行ShareFinder时产生的SMB通信行为:

从上表中我们可以总结出以下几个特征进行检测:

  • 探测每个主机时都会请求 IPC$, C$, ADMIN$ 共享

  • 在域环境中除了请求三个常用共享路径,还会请求域控服务器默认共享路径SYSVOL,在文件服务器上会请求名为“Files”的共享路径

  • 每个请求之前的延迟较短,大约2秒(不同的网络环境可能存在差异)

  • SMB请求是一对多的访问方向,从单一的源IP到多个目的服务器IP

    将以上行为特征进行组合,就可以很好地在网络中检测扫描共享资源的行为。

    Sigma规则:

https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/network/zeek/zeek_smb_mapping_invoke-sharefinder_discovery.yml

非预期情况下,攻击者可能使用ShareFinder的ExcludeStandard等参数禁止请求默认的IPC$, C$, ADMIN$共享。或者使用延迟和抖动在时间上让SMB通信行为看上去不像恶意行为。尽管如此,但我们以往的案例中显示攻击者依然会使用默认参数运行ShareFinder。
在攻击者使用参数隐藏ShareFinder默认特征时,依然会产生TCP连接和SMB 445端口的会话用于主机探测等。下表简单描述了TCP流量层面一对多的访问行为。

如果只依赖TCP连接上的行为特征,可能会检测到其他的异常行为,例如端口扫描。使用基于TCP连接会话的方法进行分析,可能会存在误报的情况,例如网络中的漏洞扫描平台发出的流量,或者网络中的统一管理运维审计等平台发出的流量。

02
ICMP流量

ShareFinder支持使用-Ping参数,对多个目标进行存活探测。与上述SMB流量一致,ICMP存活扫描也是一对多的访问行为。

ICMP 回显请求并不能作为文件共享扫描行为特征的单一检测特征。但是出现ICMP扫描行为时,说明网络中源IP存在主机探测的扫描行为。

03
LDAP主机探测

ShareFinder支持针对给定的主机列表进行扫描。但默认不指定目标的情况下,会使用LDAP协议获取网络中的计算机列表。在下面的例子中,通过发送CN类查询请求,使用通配符设置多个属性例如:dnshostanme、operatingsystem和servicePrincipalName,从域中查询出所有计算机列表。

(&(&(&(objectClass=Computer)(dnshostname=*))(operatingsystem=*))(servicePrincipalName=*))

分析师注释:如以上范围较广的LDAP查询,并不能说明这是一个网络共享扫描行为。而只是表示网络上的某些内容正在尝试查找计算机列表。像这样的事件应该与上面讨论的其他活动相关联,以便最终确定它是否是网络共享扫描行为。

PART 02
日志检测
01
PowerShell日志

在我们过去一年的报告中有五个案例都是使用Cobalt Strike会话启动的 ShareFinder。虽然在极少数情况下我们可以通过命令行调用检测脚本执行,但更好的检测方法是检测 PowerShell 日志(https://www.mandiant.com/resources/blog/greater-visibility)。下面为攻击者的调用示例,该示例是在来自 Microsoft-Windows-PowerShell/Operational 事件 ID 4103(模块日志记录)事件中捕获的。

常用的检测位置是在4103日志中检测ShareFinder模块的加载,例如以下Sigma规则:

https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/windows/powershell/powershell_module/posh_pm_invoke-sharefinder_discovery.yml

这个数据也可以在4104日志中获取。

如果攻击者重命名函数以试图逃避检测,我们可以尝试通过以下Sigma规则进行检测:

https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/windows/powershell/powershell_script/posh_ps_invoke_sharefinder_discovery.yml

与网络侧检测方法相比,通过PowerShell日志进行检测极大的规避了产生误报的可能性。

02
LDAP日志

像网络侧检测那样,特殊的枚举域计算机和域用户检测行为在事件ID:1644中。事件 ID 1644 (https://www.manageengine.com/products/active-directory-audit/kb/system-events/event-id-1644.html)能够为针对域控制器进行的每个 LDAP 搜索记录一个条目,但是,这也会对检测产生大量噪音(无用日志)。默认情况下,事件ID:1644处于禁用状态,需要管理员手动启用(https://ramblingcookiemonster.github.io/Evil-LDAP-Queries/)。启用后可以在日志中看到请求源主机和查询响应结果。

需要注意的是,LDAP查询可以通过查询其他属性的方式实现。例如:上面的例子中我们查询请求中属性设置为objectClass=computer,这可以通过设置samAccountType=805306369进行等价替换。

( & (objectClass=computer) (dNSHostName=*) (operatingSystem=*) (servicePrincipalName=*))
03
对象访问日志

与网络侧一样,网络共享访问也可以通过主机上的网络共享审计日志检测。来自安全事件 ID 5145(https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/event.aspx?eventid=5145) 能够记录对象对文件共享的访问以及源。

我们需要收集所有服务器上的对象访问日志进行分析,以上例子中我们可以发现与网络侧相同的特征:

  • 探测每个主机时都会请求 IPC$, C$, ADMIN$ 共享

  • 在域环境中除了请求三个常用共享路径,还会请求域控服务器默认共享路径SYSVOL,在文件服务器上会请求名为“Files”的共享路径

  • 每个请求之前的延迟较短,大约2秒(不同的网络环境可能存在差异)

  • SMB请求是一对多的访问方向,从单一的源IP到多个目的服务器IP

因此网络侧的检测逻辑可以同样适用于Windows 对象访问日志事件ID 5145。从源地址字段可以检测一对多的访问行为。但我们可能需要关联更多信息才能确定这是网络共享扫描行为。

以下是针对这一日志的Sigma检测规则:

https://github.com/The-DFIR-Report/Sigma-Rules/blob/main/rules/windows/builtin/win_security_invoke_sharefinder_discovery.yml

PART 03
检测其他工具

有许多工具可能与本文讨论的检测重叠,例如,PowerView 中的 Find-LocalAdmin 脚本能够枚举本地管理员用户,并且具有与上述类似的一对多 ICMP通信特征。尽管本文主要介绍ShareFinder的常见特征,但还有很多其他的工具也相对应的实现了一样的功能,例如:

Python 实现的共享扫描工具: https://github.com/p0dalirius/FindUncommonShares

.NET 实现的PowerView: https://github.com/tevora-threat/SharpView/

这些工具仍然可以通过基于网络或对象访问行为的类似活动进行检测。此外,如果攻击者试图混淆正在使用的脚本或程序,则通过关键字检测命令行日志或PowerShell日志会产生漏报。通常,负责资产清点、漏洞扫描的合法行为也会触发检测规则。

PART 04
ShareFinder的未来

ShareFinder PowerShell 脚本可能会继续成为攻击者工具箱中的最爱。通过将该工具集成到广泛分布于地下论坛的各种框架和指南中,该工具为攻击者提供了一种简单易用的选择。

一般来说,发现网络共享资源并快速移动以从网络中窃取数据的能力对于许多攻击组织至关重要。这一攻击目标将确保这项技术,无论是以 ShareFinder 的形式还是以其他实现的形式执行,都将继续流行。


文章来源: http://mp.weixin.qq.com/s?__biz=MzkzMDE3ODc1Mw==&mid=2247485442&idx=1&sn=eaa6bd726dbb383f0be2e7403d68fedb&chksm=c27f7bacf508f2ba0a59be70ba76a651e761c53090d23e350c3b8ee0aa0ed5bcc457735f0e27#rd
如有侵权请联系:admin#unsafe.sh