跳转至

发现

攻击者试图了解目标环境。

技术: 46

编号 名字 描述
T1007 系统服务发现 对手可能会尝试收集有关注册的本地系统服务的信息。对手可能会使用工具以及操作系统实用程序命令(如sc querytasklist /svcsystemctl --type=servicenet start)获取有关服务的信息。 对手可能会使用系统服务发现中的信息进行自动化发现,以塑造后续行为,包括对手是否完全感染目标和/或尝试特定操作。
T1010 应用程序窗口发现 对手可能会尝试获取打开的应用程序窗口的列表。窗口列表可以传达有关系统使用方式的信息。(引用: Prevailion DarkWatchman 2021) 例如,应用程序窗口的信息可以用于识别潜在的数据收集目标以及识别安全工具(安全软件发现)以规避。(引用: ESET Grandoreiro April 2020) 对手通常滥用系统功能进行此类枚举。例如,他们可能通过本机系统功能(例如命令和脚本解释器命令和本机 API函数)收集信息。
T1012 查询注册表 对手可能会与Windows注册表交互,以收集有关系统、配置和已安装软件的信息。 注册表包含大量有关操作系统、配置、软件和安全性的信息。(引用: Wikipedia Windows Registry) 可以使用Reg实用程序轻松查询信息,尽管存在其他访问注册表的方法。一些信息可能有助于对手在网络中进一步操作。对手可能会使用查询注册表中的信息在自动发现期间塑造后续行为,包括对手是否完全感染目标和/或尝试特定操作。
T1016 系统网络配置发现 对手可能会查找有关他们访问的系统或通过远程系统信息发现的网络配置和设置的详细信息,例如 IP 和/或 MAC 地址。存在几种操作系统管理实用程序可用于收集此信息。例如包括Arpipconfig/ifconfignbtstatroute。 对手还可能利用网络设备上的网络设备 CLI来收集有关配置和设置的信息,例如配置接口的 IP 地址和静态/动态路由(例如show ip routeshow ip interface)。(引用: US-CERT-TA18-106A)(引用: Mandiant APT41 Global Intrusion) 对手可能会使用系统网络配置发现中的信息在自动化发现期间塑造后续行为,包括确定目标网络中的某些访问权限以及接下来要执行的操作。
T1016.001 互联网连接发现 对手可能会检查受感染系统上的互联网连接。这可能在自动发现期间执行,并且可以通过多种方式完成,例如使用 Pingtracert 和 GET 请求到网站。 对手可能会使用这些请求的结果和响应来确定系统是否能够与其 C2 服务器通信,然后再尝试连接它们。结果还可以用于识别路由器、重定向器和代理服务器。
T1016.002 Wi-Fi 发现 对手可能会在被破坏的系统上搜索有关 Wi-Fi 网络的信息,例如网络名称和密码。对手可能会使用 Wi-Fi 信息作为账户发现远程系统发现和其他发现或凭据访问活动的一部分,以支持正在进行和未来的活动。 对手可能会从主机收集有关 Wi-Fi 网络的各种信息。例如,在 Windows 上,设备以前连接过的所有 Wi-Fi 网络的名称和密码可能通过 netsh wlan show profiles 可用,以枚举 Wi-Fi 名称,然后 netsh wlan show profile “Wi-Fi name” key=clear 显示 Wi-Fi 网络的相应密码。(引用: BleepingComputer Agent Tesla steal wifi passwords)(引用: Malware Bytes New AgentTesla variant steals WiFi credentials)(引用: Check Point APT35 CharmPower January 2022) 此外,可以使用对 wlanAPI.dll 本机 API 函数的调用发现本地可访问的 Wi-Fi 网络的名称和其他详细信息。(引用: Binary Defense Emotes Wi-Fi Spreader) 在 Linux 上,设备以前连接过的所有 Wi-Fi 网络的名称和密码可能在 /etc/NetworkManager/system-connections/ 下的文件中可用。(引用: Wi-Fi Password of All Connected Networks in Windows/Linux) 在 macOS 上,可以使用 security find-generic-password -wa wifiname(需要管理员用户名/密码)识别已知 Wi-Fi 的密码。(引用: Find Wi-Fi Password on Mac)
T1018 远程系统发现 攻击者可能会尝试通过IP地址、主机名或其他逻辑标识符获取网络上其他系统的列表,以便从当前系统进行横向移动。远程访问工具可能具备此功能,但操作系统上的实用程序(如Ping或使用Netnet view)也可用于此目的。 攻击者还可能分析本地主机文件(如C:\Windows\System32\Drivers\etc\hosts/etc/hosts)或其他被动手段(如本地Arp缓存条目)以发现环境中远程系统的存在。 攻击者还可能针对网络基础设施的发现,并利用网络设备上的网络设备CLI命令来收集网络中系统的详细信息(如show cdp neighborsshow arp)。(引用: US-CERT-TA18-106A)(引用: CISA AR21-126A FIVEHANDS 2021年5月)
T1033 系统所有者/用户发现 对手可能会尝试识别主要用户、当前登录用户、通常使用系统的用户集或用户是否正在积极使用系统。例如,他们可以通过检索帐户用户名或使用操作系统凭证转储来实现。可以通过使用其他发现技术以多种不同方式收集信息,因为用户和用户名详细信息在整个系统中普遍存在,包括运行进程所有权、文件/目录所有权、会话信息和系统日志。对手可能会在自动发现期间使用系统所有者/用户发现中的信息来塑造后续行为,包括对手是否完全感染目标和/或尝试特定操作。 各种实用程序和命令可以获取此信息,包括whoami。在macOS和Linux中,可以使用wwho命令识别当前登录的用户。在macOS上,还可以使用dscl . list /Users
T1040 网络嗅探 对手可能会被动嗅探网络流量,以捕获有关环境的信息,包括通过网络传输的认证材料。网络嗅探是指使用系统上的网络接口监视或捕获通过有线或无线连接发送的信息。对手可能会将网络接口置于混杂模式,以被动访问网络上的数据,或使用镜像端口捕获大量数据。 通过此技术捕获的数据可能包括用户凭据,特别是通过不安全、未加密协议发送的凭据。名称服务解析中毒技术,如LLMNR/NBT-NS中毒和SMB中继,也可以用于捕获网站、代理和内部系统的凭据,通过将流量重定向到对手。 网络嗅探可能会揭示配置细节,如运行的服务、版本号和其他网络特征(例如IP地址、主机名、VLAN ID),这些信息对于后续横向移动和/或防御规避活动是必要的。对手可能还会在中间人攻击(AiTM)期间利用网络嗅探被动获取有关环境的更多知识。 在基于云的环境中,对手仍然可以使用流量镜像服务嗅探虚拟机的网络流量。例如,AWS流量镜像、GCP数据包镜像和Azure vTap允许用户定义指定的实例以收集流量,并将收集的流量发送到指定的目标。(引用: AWS Traffic Mirroring)(引用: GCP Packet Mirroring)(引用: Azure Virtual Network TAP) 通常,由于在负载均衡器级别使用TLS终止以减少加密和解密流量的负担,大部分流量将是明文的。(引用: Rhino Security Labs AWS VPC Traffic Mirroring)(引用: SpecterOps AWS Traffic Mirroring) 对手然后可以使用数据传输到云账户等外传技术访问嗅探到的流量。(引用: Rhino Security Labs AWS VPC Traffic Mirroring) 在网络设备上,对手可能会使用网络设备CLI命令(如monitor capture)执行网络捕获。(引用: US-CERT-TA18-106A)(引用: capture_embedded_packet_on_software)
T1046 网络服务发现 攻击者可能会尝试获取远程主机和本地网络基础设施设备上运行的服务的列表,包括可能易受远程软件利用的服务。获取此信息的常见方法包括使用工具进行端口和/或漏洞扫描。(引用: CISA AR21-126A FIVEHANDS 2021年5月) 在云环境中,攻击者可能会尝试发现其他云主机上运行的服务。此外,如果云环境连接到本地环境,攻击者还可能识别非云系统上运行的服务。 在macOS环境中,攻击者可能使用本地的Bonjour应用程序来发现网络中其他macOS主机上运行的服务。Bonjour的mDNSResponder守护进程会自动注册并广播主机在网络上注册的服务。例如,攻击者可以使用mDNS查询(如dns-sd -B _ssh._tcp .)来查找广播ssh服务的其他系统。(引用: Apple文档Bonjour描述)(引用: macOS APT活动Bradley)
T1049 系统网络连接发现 对手可能会尝试获取当前访问的受损系统或通过网络查询远程系统的网络连接列表。 获得云环境一部分的系统访问权限的对手可能会映射虚拟私有云或虚拟网络,以确定连接了哪些系统和服务。执行的操作可能是相同类型的发现技术,具体取决于操作系统,但结果信息可能包括有关与对手目标相关的网络云环境的详细信息。云提供商可能有不同的虚拟网络操作方式。(引用: Amazon AWS VPC Guide)(引用: Microsoft Azure Virtual Network Overview)(引用: Google VPC Overview) 同样,获得网络设备访问权限的对手也可能执行类似的发现活动,以收集有关连接系统和服务的信息。 获取此信息的实用程序和命令包括 netstat、“net use”和“net session”与 Net。在 Mac 和 Linux 中,netstatlsof 可用于列出当前连接。who -aw 可用于显示当前登录的用户,类似于“net session”。此外,网络设备本机功能和 网络设备 CLI 也可用于(例如 show ip socketsshow tcp brief)。(引用: US-CERT-TA18-106A)
T1057 进程发现 对手可能会尝试获取有关系统上运行的进程的信息。获取的信息可用于了解网络中系统上运行的常见软件/应用程序。管理员或其他提升的访问权限可能会提供更好的进程详细信息。对手可能会在自动化发现期间使用进程发现中的信息来塑造后续行为,包括对手是否完全感染目标和/或尝试特定操作。 在Windows环境中,对手可以使用Tasklist实用程序通过cmdGet-Process通过PowerShell获取运行进程的详细信息。还可以从本机API调用(如CreateToolhelp32Snapshot)的输出中提取有关进程的信息。在Mac和Linux中,这通过ps命令完成。对手还可以选择通过/proc枚举进程。 在网络设备上,可以使用网络设备CLI命令(如show processes)显示当前运行的进程。(引用: US-CERT-TA18-106A)(引用: show_processes_cisco_cmd)
T1069 权限组发现 对手可能会尝试发现组和权限设置。这些信息可以帮助对手确定哪些用户帐户和组可用,特定组中的用户成员身份,以及哪些用户和组具有提升的权限。 对手可能会尝试以多种不同方式发现组权限设置。这些数据可能为对手提供有关被破坏环境的信息,可用于后续活动和目标。(引用: CrowdStrike BloodHound April 2018)
T1069.001 本地组 对手可能会尝试查找本地系统组和权限设置。了解本地系统权限组可以帮助对手确定哪些组存在以及哪些用户属于特定组。对手可能会使用此信息来确定哪些用户具有提升的权限,例如在本地管理员组中的用户。 命令如net localgroupNet实用程序、macOS上的dscl . -list /Groups和Linux上的groups可以列出本地组。
T1069.002 域组 对手可能会尝试查找域级别的组和权限设置。域级别权限组的知识可以帮助对手确定哪些组存在以及哪些用户属于特定组。对手可能会使用此信息来确定哪些用户具有提升的权限,例如域管理员。 命令如net group /domainNet实用程序、macOS上的dscacheutil -q group和Linux上的ldapsearch可以列出域级别的组。
T1069.003 云组 对手可能会尝试查找云组和权限设置。云权限组的知识可以帮助对手确定环境中用户和组的特定角色,以及哪些用户与特定组相关联。 通过经过身份验证的访问,可以使用多种工具查找权限组。Get-MsolRole PowerShell cmdlet 可用于获取 Exchange 和 Office 365 帐户的角色和权限组 (引用: Microsoft Msolrole)(引用: GitHub Raindance)。 Azure CLI (AZ CLI) 和 Google Cloud Identity Provider API 还提供接口以获取权限组。命令 az ad user get-member-groups 将列出与 Azure 用户帐户关联的组,而 API 端点 GET https://cloudidentity.googleapis.com/v1/groups 列出用户可用的组资源 Google。(引用: Microsoft AZ CLI)(引用: Black Hills Red Teaming MS AD Azure, 2018)(引用: Google Cloud Identity API Documentation) 在 AWS 中,命令 ListRolePoliciesListAttachedRolePolicies 允许用户枚举附加到角色的策略。(引用: Palo Alto Unit 42 Compromised Cloud Compute Credentials 2022) 对手可能会尝试列出对象的 ACL 以确定所有者和其他具有访问权限的帐户,例如,通过 AWS GetBucketAcl API (引用: AWS Get Bucket ACL)。使用此信息,对手可以针对具有给定对象权限的帐户,或利用他们已经破坏的帐户访问该对象。
T1082 系统信息发现 对手可能会尝试获取有关操作系统和硬件的详细信息,包括版本、补丁、修补程序、服务包和架构。对手可能会在自动发现期间使用系统信息发现中的信息来塑造后续行为,包括对手是否完全感染目标和/或尝试特定操作。 工具如Systeminfo可以用来收集详细的系统信息。如果以特权访问运行,可以通过macOS上的systemsetup配置工具收集系统数据的细分。例如,具有用户级访问权限的对手可以执行df -aH命令,以获取当前挂载的磁盘及其相关的可用空间。对手还可能利用网络设备上的网络设备CLI来收集详细的系统信息(例如show version)。(引用: US-CERT-TA18-106A) 系统信息发现结合从其他形式的发现和侦察中收集的信息,可以推动有效负载开发和隐藏。(引用: OSX.FairyTale)(引用: 20 macOS Common Tools and Techniques) 基础设施即服务(IaaS)云提供商如AWS、GCP和Azure允许通过API访问实例和虚拟机信息。成功的认证API调用可以返回数据,如特定实例的操作系统平台和状态或虚拟机的模型视图。(引用: Amazon Describe Instance)(引用: Google Instances Resource)(引用: Microsoft Virutal Machine API)
T1083 文件和目录发现 对手可能会枚举文件和目录,或在主机或网络共享的特定位置搜索文件系统中的某些信息。对手可能会在自动化发现期间使用文件和目录发现中的信息来塑造后续行为,包括对手是否完全感染目标和/或尝试特定操作。 许多命令行实用程序可以用于获取此信息。例如包括dirtreelsfindlocate。(引用: Windows Commands JPCERT) 自定义工具也可以用于收集文件和目录信息并与本机API交互。对手还可能利用网络设备上的网络设备CLI来收集文件和目录信息(例如dirshow flash和/或nvram)。(引用: US-CERT-TA18-106A) 某些文件和目录可能需要提升或特定用户权限才能访问。
T1087 账户发现 对手可能会尝试获取系统或受损环境中的有效账户、用户名或电子邮件地址列表。这些信息可以帮助对手确定哪些账户存在,从而有助于后续行为,例如暴力破解、鱼叉式网络钓鱼攻击或账户接管(例如,有效账户)。 对手可能会使用多种方法枚举账户,包括滥用现有工具、内置命令以及可能泄露账户名称和角色或权限的配置错误。 例如,云环境通常提供易于访问的接口来获取用户列表。(引用: AWS List Users)(引用: Google Cloud - IAM Servie Accounts List API) 在主机上,对手可以使用默认的PowerShell和其他命令行功能来识别账户。有关电子邮件地址和账户的信息也可以通过搜索受感染系统的文件提取。
T1087.001 本地账户 对手可能会创建本地账户以保持对受害者系统的访问。本地账户是由组织配置供用户、远程支持、服务或单个系统或服务的管理使用的账户。 例如,具有足够访问权限的情况下,可以使用 Windows net user /add 命令创建本地账户。在 macOS 系统上,可以使用 dscl -create 命令创建本地账户。本地账户也可以添加到网络设备,通常通过常见的网络设备 CLI命令如 username,或使用 kubectl 实用程序添加到 Kubernetes 集群。(引用: cisco_username_cmd)(引用: Kubernetes Service Accounts Security) 这些账户可以用于建立不需要在系统上部署持久远程访问工具的次要凭证访问。
T1087.002 域账户 对手可能会创建域账户以保持对受害者系统的访问。域账户是由Active Directory域服务管理的账户,访问和权限配置在属于该域的系统和服务之间。域账户可以涵盖用户、管理员和服务账户。具有足够访问权限的情况下,可以使用net user /add /domain命令创建域账户。(引用: Savill 1999) 这些账户可以用于建立不需要在系统上部署持久远程访问工具的次要凭证访问。
T1087.003 电子邮件账户 对手可能会尝试获取电子邮件地址和账户的列表。对手可能会尝试转储 Exchange 地址列表,例如全局地址列表 (GAL)。(引用: Microsoft Exchange Address Lists) 在本地 Exchange 和 Exchange Online 中,可以使用 Get-GlobalAddressList PowerShell cmdlet 通过经过身份验证的会话从域中获取电子邮件地址和账户。(引用: Microsoft getglobaladdresslist)(引用: Black Hills Attacking Exchange MailSniper, 2016) 在 Google Workspace 中,GAL 通过 Google Workspace Sync for Microsoft Outlook (GWSMO) 服务与 Microsoft Outlook 用户共享。此外,Google Workspace 目录允许用户获取组织内其他用户的列表。(引用: Google Workspace Global Access List)
T1087.004 云账户 对手可能会创建云账户以保持对受害者系统的访问。具有足够访问权限的此类账户可用于建立不需要在系统上部署持久远程访问工具的次要凭据访问。(引用: Microsoft O365 Admin Roles)(引用: Microsoft Support O365 Add Another Admin, October 2019)(引用: AWS Create IAM User)(引用: GCP Create Cloud Identity Users)(引用: Microsoft Azure AD Users) 除了用户账户外,云账户还可能与服务相关联。云提供商以不同方式处理服务账户的概念。在Azure中,服务账户包括服务主体和托管身份,可以链接到各种资源,如OAuth应用程序、无服务器函数和虚拟机,以授予这些资源在环境中执行各种活动的权限。(引用: Microsoft Entra ID Service Principals) 在GCP中,服务账户也可以链接到特定资源,并且可以被其他账户模拟以进行临时提升的云访问。(引用: GCP Service Accounts) 虽然AWS没有特定的服务账户概念,但资源可以直接授予权限以承担角色。(引用: AWS Instance Profiles)(引用: AWS Lambda Execution Role) 对手可能会创建仅有权访问特定云服务的账户,从而减少被检测的机会。 一旦对手创建了云账户,他们可以操纵该账户以确保持久性并允许访问其他资源——例如,通过添加额外的云凭据或分配额外的云角色
T1120 外围设备发现 对手可能会尝试收集有关连接到计算机系统的外围设备和组件的信息。(引用: Peripheral Discovery Linux)(引用: Peripheral Discovery macOS) 外围设备可能包括支持各种功能的辅助资源,如键盘、打印机、摄像头、智能卡读卡器或可移动存储。此信息可能用于增强他们对系统和网络环境的了解,或用于进一步的操作。
T1124 系统时间发现 攻击者可能从本地或远程系统收集系统时间和/或时区设置。系统时间由服务设置和存储,例如Windows上的Windows时间服务或macOS上的systemsetup。(Citation: MSDN System Time)(Citation: Technet Windows Time Service)(Citation: systemsetup mac time) 这些时间设置也可能在企业网络中的系统和服务之间同步,通常通过域内的网络时间服务器完成。(Citation: Mac Time Sync)(Citation: linux system time) 系统时间信息可以通过多种方式收集,例如在Windows上使用Net执行net time \hostname以收集远程系统上的系统时间。受害者的时区也可以通过当前系统时间推断或使用w32tm /tz收集。(Citation: Technet Windows Time Service) 此外,攻击者可以通过GetTickCount()等函数发现设备运行时间,以确定系统启动以来的时间。(Citation: Virtualization/Sandbox Evasion) 在网络设备上,网络设备CLI命令(如show clock detail)可用于查看当前时间配置。(Citation: show_clock_detail_cisco_cmd) 此外,系统调用(如time())已用于收集Linux设备上的当前时间。(Citation: MAGNET GOBLIN) 在macOS系统上,攻击者可能使用systemsetup -gettimezonetimeIntervalSinceNow等命令收集当前时区信息或当前日期和时间。(Citation: System Information Discovery Technique)(Citation: ESET DazzleSpy Jan 2022) 此信息可能有助于执行其他技术,例如使用计划任务/作业执行文件(Citation: RSA EU12 They're Inside),或根据时区发现位置信息以协助受害者定位(即系统位置发现)。攻击者还可能使用系统时间知识作为定时炸弹的一部分,或延迟执行直到指定的日期/时间。(Citation: AnyRun TimeBomb)
T1135 网络共享发现 对手可能会查找远程系统上共享的文件夹和驱动器,以识别信息来源作为收集的前提,并识别潜在的感兴趣系统以进行横向移动。网络通常包含共享网络驱动器和文件夹,使用户能够访问网络上各种系统的文件目录。 通过Windows网络进行文件共享使用SMB协议。(引用: Wikipedia Shared Resource)(引用: TechNet Shared Folder) Net可以用来查询远程系统上的可用共享驱动器,使用net view \\remotesystem命令。它也可以用来查询本地系统上的共享驱动器,使用net share。对于macOS,sharing -l命令列出用于smb服务的所有共享点。
T1201 密码策略发现 对手可能会尝试访问有关企业网络或云环境中使用的密码策略的详细信息。密码策略是一种强制执行复杂密码的方法,这些密码难以通过暴力破解猜测或破解。此信息可能有助于对手创建常见密码列表并启动符合策略的字典和/或暴力破解攻击(例如,如果最小密码长度应为 8,则不尝试“pass123”之类的密码;如果锁定设置为 6,则每个账户不检查超过 3-4 个密码,以免锁定账户)。 可以通过各种命令 shell 实用程序在 Windows、Linux 和 macOS 系统上设置和发现密码策略,例如 net accounts (/domain)Get-ADDefaultDomainPasswordPolicychage -l cat /etc/pam.d/common-passwordpwpolicy getaccountpolicies (引用: Superuser Linux Password Policies) (引用: Jamf User Password Policies)。对手还可能利用网络设备上的网络设备 CLI发现密码策略信息(例如 show aaashow aaa common-criteria policy all)。(引用: US-CERT-TA18-106A) 可以使用可用的 API 在云环境中发现密码策略,例如 AWS 中的 GetAccountPasswordPolicy (引用: AWS GetPasswordPolicy)。
T1217 浏览器信息发现 对手可能会枚举有关浏览器的信息,以了解更多有关受损环境的信息。浏览器保存的数据(如书签、账户和浏览历史记录)可能会揭示有关用户的各种个人信息(例如,银行网站、关系/兴趣、社交媒体等)以及有关内部网络资源的详细信息,例如服务器、工具/仪表板或其他相关基础设施。(引用: Kaspersky Autofill) 浏览器信息还可能在对手访问有效凭据后突出显示其他目标,尤其是与浏览器缓存的登录相关的文件中的凭据。 具体存储位置因平台和/或应用程序而异,但浏览器信息通常存储在本地文件和数据库中(例如,%APPDATA%/Google/Chrome)。(引用: Chrome Roaming Profiles)
T1482 域信任发现 对手可能会尝试收集有关域信任关系的信息,以识别Windows多域/森林环境中的横向移动机会。域信任提供了一种机制,使一个域可以基于另一个域的身份验证过程允许访问资源。(引用: Microsoft Trusts) 域信任允许受信域的用户访问信任域中的资源。发现的信息可能有助于对手进行SID历史注入传递票证Kerberoasting。(引用: AdSecurity Forging Trust Tickets)(引用: Harmj0y Domain Trusts) 可以使用DSEnumerateDomainTrusts() Win32 API调用、.NET方法和LDAP枚举域信任。(引用: Harmj0y Domain Trusts) 已知对手使用Windows实用程序Nltest枚举域信任。(引用: Microsoft Operation Wilysupply)
T1497 虚拟化/沙箱规避 对手可能会采用各种方法检测和规避虚拟化和分析环境。这可能包括根据检查是否存在虚拟机环境 (VME) 或沙箱的工件的结果更改行为。如果对手检测到 VME,他们可能会更改其恶意软件以脱离受害者或隐藏植入物的核心功能。他们还可能在投放二级或其他有效载荷之前搜索 VME 工件。对手可能会在自动化发现期间使用从虚拟化/沙箱规避中学到的信息来塑造后续行为。(引用: Deloitte Environment Awareness) 对手可能会使用几种方法来实现虚拟化/沙箱规避,例如检查安全监控工具(例如 Sysinternals、Wireshark 等)或与分析或虚拟化相关的其他系统工件。对手还可能检查合法用户活动以帮助确定是否在分析环境中。其他方法包括在恶意软件代码中使用睡眠计时器或循环以避免在临时沙箱中运行。(引用: Unit 42 Pirpi July 2015)
T1497.001 系统检查 对手可能会进行各种系统检查,以检测和避免虚拟化和分析环境。这可能包括根据检查虚拟机环境(VME)或沙箱指示的工件的结果更改行为。如果对手检测到VME,他们可能会更改其恶意软件以脱离受害者或隐藏植入物的核心功能。他们还可能在投放二级或额外有效负载之前搜索VME工件。对手可能会利用从虚拟化/沙箱规避中学到的信息,在自动发现期间塑造后续行为。(引用: Deloitte Environment Awareness) 具体检查将根据目标和/或对手而有所不同,但可能涉及使用Windows管理规范PowerShell系统信息发现查询注册表等行为来获取系统信息并搜索VME工件。对手可能会在内存、进程、文件系统、硬件和/或注册表中搜索VME工件。对手可能会使用脚本将这些检查自动化到一个脚本中,然后如果确定系统是虚拟环境,则让程序退出。 检查可能包括通用系统属性,例如主机/域名和网络流量样本。对手还可能检查网络适配器地址、CPU核心数和可用内存/驱动器大小。一旦执行,恶意软件还可能使用文件和目录发现来检查它是否保存在具有意外或甚至与分析相关的命名工件(例如malwaresamplehash)的文件夹或文件中。 其他常见检查可能枚举这些应用程序独有的运行服务、系统上安装的程序、虚拟机应用程序的制造商/产品字段字符串以及VME特定的硬件/处理器指令。(引用: McAfee Virtual Jan 2017) 在VMWare等应用程序中,对手还可以使用特殊的I/O端口发送命令并接收输出。 硬件检查,例如风扇、温度和音频设备的存在,也可以用来收集可能表明虚拟环境的证据。对手还可能查询这些设备的特定读数。(引用: Unit 42 OilRig Sept 2018)
T1497.002 基于用户活动的检查 对手可能会采用各种用户活动检查来检测和规避虚拟化和分析环境。这可能包括根据检查是否存在虚拟机环境 (VME) 或沙箱的工件的结果更改行为。如果对手检测到 VME,他们可能会更改其恶意软件以脱离受害者或隐藏植入物的核心功能。他们还可能在投放二级或其他有效负载之前搜索 VME 工件。对手可能会在自动化发现期间使用从 虚拟化/沙箱规避 中学到的信息来塑造后续行为。(引用: Deloitte Environment Awareness) 对手可能会根据鼠标移动和点击的速度/频率(引用: Sans Virtual Jan 2016)、浏览器历史记录、缓存、书签或常见目录(如主目录或桌面)中的文件数量来搜索主机上的用户活动。其他方法可能依赖于在恶意代码激活之前与系统的特定用户交互,例如等待文档关闭后激活宏(引用: Unit 42 Sofacy Nov 2018)或等待用户双击嵌入的图像以激活。(引用: FireEye FIN7 April 2017)
T1497.003 基于时间的规避 对手可能会采用各种基于时间的方法来检测和规避虚拟化和分析环境。这可能包括枚举基于时间的属性,例如正常运行时间或系统时钟,以及使用计时器或其他触发器来规避虚拟机环境 (VME) 或沙箱,特别是那些自动化或仅运行有限时间的环境。 对手可能会采用各种基于时间的规避方法,例如使用编程睡眠命令或本机系统调度功能(例如计划任务/作业)在初始执行时延迟恶意软件功能。延迟还可能基于等待特定受害者条件满足(例如系统时间、事件等)或采用计划的多阶段通道以避免分析和审查。(引用: Deloitte Environment Awareness) 还可以使用良性命令或其他操作来延迟恶意软件执行。循环或其他不必要的命令重复,例如Ping,可能用于延迟恶意软件执行,并可能超过自动化分析环境的时间阈值。(引用: Revil Independence Day)(引用: Netskope Nitol) 另一种变体,通常称为 API 锤击,涉及对本机 API函数进行各种调用,以延迟执行(同时也可能通过垃圾数据过载分析环境)。(引用: Joe Sec Nymaim)(引用: Joe Sec Trickbot) 对手还可能使用时间作为检测沙箱和分析环境的指标,特别是那些试图操纵时间机制以模拟更长时间的环境。例如,对手可能能够通过在执行睡眠函数之前和之后采样和计算环境时间戳的预期值来识别加速时间的沙箱。(引用: ISACA Malware Tricks)
T1518 软件发现 攻击者可能会尝试获取系统或云环境中安装的软件及其版本的列表。攻击者可能在自动发现过程中使用软件发现的信息来塑造后续行为,包括是否完全感染目标或尝试特定操作。 此类软件可能广泛部署于环境中用于配置管理或安全原因,如软件部署工具,并可能允许攻击者广泛访问以感染设备或横向移动。 攻击者可能尝试枚举软件以获取各种信息,例如确定存在哪些安全措施,或受感染系统是否具有易受特权提升利用的软件版本。
T1518.001 安全软件发现 对手可能会尝试获取系统或云环境中安装的安全软件、配置、防御工具和传感器的列表。这可能包括云监控代理和防病毒软件等内容。对手可能会在自动发现期间使用安全软件发现中的信息来塑造后续行为,包括对手是否完全感染目标和/或尝试特定操作。 可以用来获取安全软件信息的示例命令有netsh、使用Regreg query、使用cmddirTasklist,但其他发现行为的指标可能更具体地指向对手正在寻找的软件或安全系统类型。越来越常见的是看到macOS恶意软件执行对LittleSnitch和KnockKnock软件的检查。 对手还可能利用云API来发现安装在计算基础设施上的云原生安全软件,例如AWS CloudWatch代理、Azure VM代理和Google Cloud Monitor代理。这些代理可能从VM中收集指标和日志,并集中聚合在云监控平台中。
T1526 云服务发现 攻击者在获得访问权限后,可能会尝试枚举系统上运行的云服务。这些方法可能因平台即服务(PaaS)、基础设施即服务(IaaS)或软件即服务(SaaS)而有所不同。各种云提供商中存在许多服务,包括持续集成和持续交付(CI/CD)、Lambda函数、Entra ID等。还可能包括安全服务,如AWS GuardDuty和Microsoft Defender for Cloud,以及日志服务,如AWS CloudTrail和Google Cloud Audit Logs。 攻击者可能会尝试发现环境中启用的服务信息。Azure工具和API,如Microsoft Graph API和Azure Resource Manager API,可以枚举资源和服务,包括应用程序、管理组、资源和策略定义,以及身份可访问的关系。(引用: Azure - Resource Manager API)(引用: Azure AD Graph API) 例如,Stormspotter是一个用于枚举和构建Azure资源和服务图的开源工具,Pacu是一个支持多种云服务发现方法的开源AWS利用框架。(引用: Azure - Stormspotter)(引用: GitHub Pacu) 攻击者可能会利用获得的信息来塑造后续行为,例如从枚举的服务中获取数据或凭据,或通过禁用或修改工具禁用或修改云日志来规避已识别的防御。
T1538 云服务仪表板 攻击者可能使用被盗凭证通过云服务仪表板GUI从操作云环境中获取有用信息,例如特定服务、资源和功能。例如,GCP Command Center可用于查看所有资产、潜在安全风险的发现,并运行其他查询,如查找公共IP地址和开放端口。(引用: Google Command Center仪表板) 根据环境的配置,攻击者可能通过图形仪表板枚举比API更多的信息。这使得攻击者无需发出任何API请求即可获取信息。
T1580 云基础设施发现 对手可能会尝试发现基础设施即服务(IaaS)环境中可用的基础设施和资源。这包括计算服务资源,如实例、虚拟机和快照,以及其他服务的资源,包括存储和数据库服务。 云提供商提供的方法,如API和通过CLI发出的命令,以提供有关基础设施的信息。例如,AWS提供了一个DescribeInstances API,它可以返回帐户中一个或多个实例的信息,ListBuckets API返回请求发送者拥有的所有存储桶的列表,HeadBucket API确定存储桶的存在以及请求发送者的访问权限,或GetPublicAccessBlock API检索存储桶的访问块配置。(引用: Amazon Describe Instance)(引用: Amazon Describe Instances API)(引用: AWS Get Public Access Block)(引用: AWS Head Bucket) 类似地,GCP的Cloud SDK CLI提供了gcloud compute instances list命令,以列出项目中的所有Google Compute Engine实例。(引用: Google Compute Instances),Azure的CLI命令az vm list列出虚拟机的详细信息。(引用: Microsoft AZ CLI) 除了API命令,对手还可以利用开源工具通过字典扫描发现云存储基础设施。(引用: Malwarebytes OSINT Leaky Buckets - Hioureas) 对手可能会使用被破坏用户的访问密钥枚举资源,以确定哪些资源对该用户可用。(引用: Expel IO Evil in AWS) 这些可用资源的发现可能会帮助对手确定他们在云环境中的下一步,例如建立持久性。(引用: Mandiant M-Trends 2020)对手还可能使用此信息更改配置,使存储桶公开访问,允许在未经身份验证的情况下访问数据。对手还可能使用基础设施发现API,如DescribeDBInstances,以确定数据库资源的大小、所有者、权限和网络ACL。(引用: AWS Describe DB Instances) 对手可以使用此信息确定数据库的潜在价值并发现访问它们的要求。与云服务发现不同,此技术侧重于发现提供的服务的组件,而不是服务本身。
T1613 容器和资源发现 对手可能会尝试发现容器和容器环境中可用的其他资源。其他资源可能包括镜像、部署、Pod、节点以及有关集群状态的其他信息。 这些资源可以在Kubernetes仪表板等Web应用程序中查看,也可以通过Docker和Kubernetes API进行查询。(引用: Docker API)(引用: Kubernetes API) 在Docker中,日志可能会泄露有关环境的信息,例如环境的配置、可用的服务以及受害者可能使用的云提供商。对这些资源的发现可能会告知对手在环境中的下一步操作,例如如何执行横向移动以及使用哪些方法进行执行。
T1614 系统位置发现 对手可能会收集信息,试图计算受害者主机的地理位置。对手可能会使用系统位置发现中的信息,在自动发现期间塑造后续行为,包括对手是否完全感染目标和/或尝试特定操作。 对手可能会尝试使用各种系统检查推断系统的位置,例如时区、键盘布局和/或语言设置。(引用: FBI Ragnar Locker 2020)(引用: Sophos Geolocation 2016)(引用: Bleepingcomputer RAT malware 2020) Windows API函数如GetLocaleInfoW也可用于确定主机的区域设置。(引用: FBI Ragnar Locker 2020) 在云环境中,还可以通过从实例访问实例元数据服务来发现实例的可用区。(引用: AWS Instance Identity Documents)(引用: Microsoft Azure Instance Metadata 2021) 对手还可能尝试使用IP地址推断受害者主机的位置,例如通过在线地理位置IP查找服务。(引用: Securelist Trasparent Tribe 2020)(引用: Sophos Geolocation 2016)
T1614.001 系统语言发现 对手可能会尝试收集有关受害者系统语言的信息,以推断该主机的地理位置。此信息可能用于塑造后续行为,包括对手是否感染目标和/或尝试特定操作。恶意软件开发人员和操作员可能会使用此决策来降低吸引特定执法机构注意或其他实体审查的风险。(引用: Malware System Language Check) 对手可以使用各种数据源来推断系统语言,例如系统默认设置和键盘布局。具体检查将根据目标和/或对手而有所不同,但可能涉及查询注册表和调用本机API函数的行为。(引用: CrowdStrike Ryuk January 2019) 例如,在Windows系统上,对手可能会尝试通过查询注册表键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language或解析Windows API函数GetUserDefaultUILanguageGetSystemDefaultUILanguageGetKeyboardLayoutListGetUserDefaultLangID的输出来推断系统的语言。(引用: Darkside Ransomware Cybereason)(引用: Securelist JSWorm)(引用: SecureList SynAck Doppelgänging May 2018) 在macOS或Linux系统上,对手可能会查询locale以检索$LANG环境变量的值。
T1615 组策略发现 对手可能会收集组策略设置的信息,以识别权限提升的路径、域内应用的安全措施,并发现可以操纵或用于在环境中混合的域对象模式。组策略允许在 Active Directory (AD) 中集中管理用户和计算机设置。组策略对象 (GPO) 是由存储在可预测网络路径 \<DOMAIN>\SYSVOL\<DOMAIN>\Policies\ 中的文件组成的组策略设置容器。(引用: TechNet Group Policy Basics)(引用: ADSecurity GPO Persistence 2016) 对手可能会使用诸如 gpresult 的命令或各种公开可用的 PowerShell 函数,如 Get-DomainGPOGet-DomainGPOLocalGroup,来收集组策略设置的信息。(引用: Microsoft gpresult)(引用: Github PowerShell Empire) 对手可能会使用此信息来塑造后续行为,包括确定目标网络中的潜在攻击路径以及操纵组策略设置(即域或租户策略修改)的机会,以使其受益。
T1619 云存储对象发现 对手可能会枚举云存储基础设施中的对象。对手可能在自动化发现期间使用此信息来塑造后续行为,包括从云存储请求所有或特定对象。类似于本地主机上的文件和目录发现,在识别可用的存储服务(即云基础设施发现)后,对手可能会访问存储在云基础设施中的内容/对象。 云服务提供商提供 API,允许用户枚举存储在云存储中的对象。示例包括 AWS 中的 ListObjectsV2 (引用: ListObjectsV2) 和 Azure 中的 List Blobs (引用: List Blobs)。
T1622 调试器规避 攻击者可能采用各种手段检测和规避调试器。调试器通常被防御者用于跟踪和/或分析潜在恶意软件负载的执行。(引用: ProcessHacker GitHub) 调试器规避可能包括根据检查调试环境存在的工件结果改变行为。类似于虚拟化/沙盒规避,如果攻击者检测到调试器,他们可能会改变其恶意软件以脱离受害者或隐藏植入物的核心功能。他们还可能在投放次要或附加负载之前搜索调试器工件。 具体检查将根据目标和/或攻击者而有所不同,但可能涉及Native API函数调用,如IsDebuggerPresent()NtQueryInformationProcess(),或手动检查进程环境块(PEB)的BeingDebugged标志。其他调试工件的检查还可能尝试枚举硬件断点、中断汇编操作码、时间检查,或测量当前进程中是否引发异常(假设存在的调试器会“吞下”或处理潜在错误)。(引用: hasherezade调试)(引用: AlKhaser调试)(引用: vxunderground调试) 攻击者可能在自动发现过程中使用从这些调试器检查中学到的信息来塑造后续行为。调试器还可以通过分离进程或通过循环Native API函数调用(如OutputDebugStringW())产生的消息用无意义的数据淹没调试日志来规避。(引用: wardle evilquest partii)(引用: Checkpoint Dridex 2021年1月)
T1652 设备驱动程序发现 对手可能会尝试枚举受害者主机上的本地设备驱动程序。有关设备驱动程序的信息可能会揭示各种洞察,塑造后续行为,例如主机的功能/用途、存在的安全工具(即安全软件发现)或其他防御(例如,虚拟化/沙箱规避),以及潜在的可利用漏洞(例如,特权提升利用)。 许多操作系统实用程序可能提供有关本地设备驱动程序的信息,例如Windows上的driverquery.exeEnumDeviceDrivers() API函数。(引用: Microsoft Driverquery)(引用: Microsoft EnumDeviceDrivers) 有关设备驱动程序的信息(以及相关服务,即系统服务发现)也可能在注册表中可用。(引用: Microsoft Registry Drivers) 在Linux/macOS上,设备驱动程序(以内核模块的形式)可能在/dev中可见,或使用lsmodmodinfo等实用程序。(引用: Linux Kernel Programming)(引用: lsmod man)(引用: modinfo man)
T1654 日志枚举 对手可能会枚举系统和服务日志以查找有用的数据。这些日志可能会为对手提供各种有价值的见解,例如用户身份验证记录(账户发现)、安全或易受攻击的软件(软件发现)或受损网络中的主机(远程系统发现)。 主机二进制文件可能会被用来收集系统日志。示例包括在 Windows 上使用 wevtutil.exePowerShell 访问和/或导出安全事件信息。(引用: WithSecure Lazarus-NoPineapple Threat Intel Report 2023)(引用: Cadet Blizzard emerges as novel threat actor) 在云环境中,对手可能会利用 Azure VM Agent 的 CollectGuestLogs.exe 实用程序从云托管基础设施中收集安全日志。(引用: SIM Swapping and Abuse of the Microsoft Azure Serial Console) 对手还可能针对集中日志基础设施,例如 SIEM。日志也可能被批量导出并发送到对手控制的基础设施进行离线分析。 除了更好地了解环境外,对手还可能实时监控日志以跟踪事件响应程序。这可能使他们能够调整其技术以保持持久性或规避防御。(引用: Permiso GUI-Vil 2023)