Introduction

在红队作战中,熟悉最初访问受感染机器的环境至关重要。因此,执行侦察和枚举是至关重要的,其主要目标是收集尽可能多的信息,以供下一阶段使用。

建立初步立足点后,后渗透过程就开始了!

本会议室将介绍我们需要了解的常用概念、技术和安全产品。

在本会议室中,我们假设我们已经获得了机器的访问权限,并准备通过执行以下枚举来进一步扩展我们对环境的了解:

  • 网络基础设施
  • Active Directory 环境
  • 用户和组
  • 基于主机的安全解决方案
  • 基于网络的安全解决方案
  • 应用程序和服务

Network Infrastructure

一旦进入未知网络,我们的首要目标是确定我们的位置以及可以访问哪些内容。在红队作战期间,我们需要了解我们正在处理的目标系统是什么、该机器提供什么服务以及我们处于哪种类型的网络中。因此,在获得初始访问权限后对受感染机器进行枚举是回答这些问题的关键。本任务将讨论我们在作战期间可能遇到的常见网络类型。

网络分段是一层额外的网络安全措施,它被划分为多个子网。它用于增强网络的安全性和管理。例如,它用于防止未经授权访问公司最有价值的资产,例如客户数据、财务记录等。

虚拟局域网 (VLAN) 是一种用于网络分段的网络技术,用于控制网络问题(例如本地网络中的广播问题)并提高安全性。VLAN 内的主机只能与同一 VLAN 网络中的其他主机通信。

如果您想了解更多网络基础知识,建议您尝试以下 TryHackMe 模块:网络基础知识

内部网络

内部网络是根据内部设备的重要性或其数据可访问性的重要性进行分段和分离的子网络。内部网络的主要目的是在组织内共享信息、实现更快速、更便捷的通信、协作工具、操作系统和网络服务。在企业网络中,网络管理员出于各种原因使用网络分段,包括控制网络流量、优化网络性能和改善安全态势。

img

上图展示了网络分段的简单概念,即将网络划分为两个网络。第一个网络用于员工工作站和个人设备。第二个网络用于提供内部服务(例如 DNS、内部 Web 服务、电子邮件服务等)的私有网络和内部网络设备。

非军事区 (DMZ)

DMZ 网络是一种边缘网络,它为公司内部局域网提供保护,并为之增加一层额外的安全层,以抵御不受信任的流量。DMZ 的常见设计是位于公共互联网和内部网络之间的子网。

公司内部网络的设计取决于其需求。例如,假设一家公司提供网站、DNS、FTP、代理、VPN 等公共服务。在这种情况下,他们可能会设计一个 DMZ 网络来隔离公共网络流量(不受信任的流量)并对其进行访问控制。

img

在上图中,我们用红色表示流向 DMZ 网络的网络流量,这些流量不受信任(直接来自互联网)。内部网络之间的绿色网络流量是受控流量,可能经过一个或多个网络安全设备。

枚举系统和内部网络是发现阶段,攻击者可以利用此阶段了解系统和内部网络。基于获取的信息,我们可以进行横向移动或提权,从而在系统或 AD 环境上获得更多权限。

网络枚举

需要检查与网络相关的各种事项,例如 TCP 和 UDP 端口、已建立的连接、路由表、ARP 表等。

让我们开始检查目标计算机的 TCP 和 UDP 开放端口。可以使用 netstat 命令完成此操作,如下所示。

Command Prompt

PS C:\Users\thm> netstat -na

Active Connections

Proto Local Address Foreign Address State
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:88 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:389 0.0.0.0:0 LISTENING

输出显示了开放的端口以及已建立的连接。接下来,让我们列出 ARP 表,其中包含与网络内目标计算机通信的计算机的 IP 地址和物理地址。这有助于查看网络内的通信,以便扫描其他计算机是否存在开放端口和漏洞。

Command Prompt

PS C:\Users\thm> arp -a

Interface: 10.10.141.51 --- 0xa
Internet Address Physical Address Type
10.10.0.1 02-c8-85-b5-5a-aa dynamic
10.10.255.255 ff-ff-ff-ff-ff-ff static

内部网络服务

它为内部网络设备提供私有和内部网络通信访问。网络服务的示例包括内部 DNS、Web 服务器、自定义应用程序等。需要注意的是,内部网络服务在网络外部无法访问。但是,一旦我们初始访问了访问这些网络服务的网络之一,它们就可访问并进行通信。

我们将在任务 9 中讨论更多 Windows 应用程序和服务,包括 DNS 和自定义 Web 应用程序。

Active Directory (AD) environment

什么是 Active Directory (AD) 环境?

它是一种基于 Windows 的目录服务,用于存储内部网络环境并提供数据对象。它允许集中管理身份验证和授权。AD 包含有关网络和环境的重要信息,包括用户、计算机、打印机等。例如,AD 可能包含用户的详细信息,例如职位、电话号码、地址、密码、群组、权限等。

img

该图展示了 Active Directory 的设计方式。AD 控制器位于服务器子网中(如上图所示,为服务器网络),而 AD 客户端位于单独的网络中,它们可以加入域并通过防火墙使用 AD 服务。

以下是我们需要熟悉的 Active Directory 组件列表:

  • 域控制器
  • 组织单位
  • AD 对象
  • AD 域
  • AD 服务帐户:内置本地用户、域用户、托管服务帐户
  • 域管理员

域控制器 是一台提供 Active Directory 服务并控制整个域的 Windows 服务器。它是一种集中式用户管理方式,可以加密用户数据并控制对网络的访问,包括用户、组、策略和计算机。它还支持资源访问和共享。这些都是攻击者瞄准域中域控制器的原因,因为它包含大量高价值信息。

img

组织单位 (OU) 是 AD 域内具有层级结构的容器。

Active Directory 对象 可以是单个用户、组,也可以是硬件组件,例如计算机或打印机。每个域都包含一个数据库,其中包含创建 AD 环境的对象身份信息,这些信息包括:

  • 用户 - 允许向域中的计算机进行身份验证的安全主体
  • 计算机 - 一种特殊类型的用户帐户
  • GPO - 应用于其他 AD 对象的策略集合

AD 域 是 AD 网络中 Microsoft 组件的集合。

AD 林 是相互信任的域的集合。
img

如需了解更多关于 Active Directory 基础知识的信息,我们建议您尝试以下 TryHackMe 聊天室:Active Directory 基础知识

获得初始访问权限后,在企业网络中查找 AD 环境至关重要,因为 Active Directory 环境会向已加入的用户提供大量有关该环境的信息。作为红队成员,我们会利用这一点,枚举 AD 环境并获取各种详细信息,以便在横向移动阶段使用这些信息。

Users and Groups Management

在本任务中,我们将进一步了解用户和组,尤其是在 Active Directory 中。收集有关受感染计算机的信息至关重要,这些信息可能在下一阶段派上用场。账户发现是获得受感染计算机的初始访问权限后的第一步,旨在了解我们拥有哪些账户以及系统中还有哪些其他账户。

Active Directory 环境包含各种账户,这些账户具有用于不同目的的必要权限、访问权限和角色。常见的 Active Directory 服务账户包括内置本地用户账户、域用户账户、托管服务账户和虚拟账户。

  • 内置本地用户账户用于本地管理系统,该系统不属于 AD 环境。
  • 具有 Active Directory 环境访问权限的域用户账户可以使用 AD 服务(由 AD 管理)。
  • AD 托管服务账户是具有更高权限的受限域用户账户,可以管理 AD 服务。
  • 域管理员是可以管理 Active Directory 环境中信息的用户帐户,包括 AD 配置、用户、组、权限、角色、服务等。红队的目标之一是寻找能够让域管理员完全控制 AD 环境的信息。

以下是 Active Directory 管理员帐户:

BUILTIN\Administrator 域控制器上的本地管理员访问权限
域管理员 对域中所有资源的管理访问权限
企业管理员 仅在林根目录中可用
架构管理员 能够修改域/林;对红队成员有用
服务器操作员 可以管理域服务器
帐户操作员 可以管理不属于特权组的用户

现在我们了解了 AD 环境中的各种帐户类型。让我们枚举我们在初始访问阶段可以访问的 Windows 计算机。作为当前用户,我们拥有查看或管理计算机和 AD 环境中内容的特定权限。

Active Directory (AD) 枚举

现在,在 AD 环境中进行枚举需要不同的工具和技术。一旦我们确认计算机属于 AD 环境的一部分,我们就可以开始查找任何以后可能用到的变量信息。在此阶段,我们使用 PowerShell 来枚举用户和组。

以下 PowerShell 命令用于获取所有 Active Directory 用户帐户。请注意,我们需要使用 -Filter 参数。

PowerShell

PS C:\Users\thm> Get-ADUser  -Filter *
DistinguishedName : CN=Administrator,CN=Users,DC=thmredteam,DC=com
Enabled : True
GivenName :
Name : Administrator
ObjectClass : user
ObjectGUID : 4094d220-fb71-4de1-b5b2-ba18f6583c65
SamAccountName : Administrator
SID : S-1-5-21-1966530601-3185510712-10604624-500
Surname :
UserPrincipalName :
PS C:\Users\thm>

我们还可以使用 LDAP 分层树结构 在 AD 环境中查找用户。可分辨名称 (DN) 是由逗号分隔的键值对组成的集合,用于标识目录中的唯一记录。DN 由域组件 (DC)、组织单元名称 (OU)、通用名称 (CN) 等组成。以下“CN=User1,CN=Users,DC=thmredteam,DC=com”是 DN 的一个示例,其可视化形式如下:

img

使用 SearchBase 选项,我们可以在活动目录中指定特定的 Common-Name CN。例如,我们可以指定列出属于“用户”部分的任何用户。

PowerShell

PS C:\Users\thm> Get-ADUser -Filter * -SearchBase "CN=Users,DC=THMREDTEAM,DC=COM"


DistinguishedName : CN=Administrator,CN=Users,DC=thmredteam,DC=com
Enabled : True
GivenName :
Name : Administrator
ObjectClass : user
ObjectGUID : 4094d220-fb71-4de1-b5b2-ba18f6583c65
SamAccountName : Administrator
SID : S-1-5-21-1966530601-3185510712-10604624-500
Surname :
UserPrincipalName :

请注意,根据 CN 的配置,结果可能包含多个用户。尝试使用以下命令查找 THM OU 内的所有用户,并回答下面的问题 1。

Host Security Solution #1

在采取进一步行动之前,我们需要了解现有安全解决方案的一般知识。记住,列举端点上的防病毒和安全检测方法非常重要,这样才能尽可能地不被发现,并降低被抓的风险。

本任务将讨论企业网络中常用的安全解决方案,分为主机安全解决方案和网络安全解决方案。

主机安全解决方案

它是一组用于监控和检测主机内异常和恶意活动的软件应用程序,包括:

  1. 防病毒软件
  2. Microsoft Windows Defender
  3. 基于主机的防火墙
  4. 安全事件日志记录和监控
  5. 基于主机的入侵检测系统 (HIDS)/基于主机的入侵防御系统 (HIPS)
  6. 端点检测和响应 (EDR)

让我们更详细地了解在红队演练中可能遇到的基于主机的安全解决方案。

防病毒软件 (AV)

防病毒软件,也称为反恶意软件,主要用于监控、检测和阻止恶意软件在主机内执行。大多数防病毒软件应用程序都使用一些众所周知的功能,包括后台扫描、完整系统扫描和病毒库。在后台扫描中,防病毒软件会实时运行,并在后台扫描所有打开和使用的文件。首次安装防病毒软件时,完整系统扫描至关重要。最有趣的部分是病毒库,防病毒软件会根据预定义的病毒库进行响应。因此,防病毒软件需要定期更新。

防病毒软件使用多种检测技术,包括:

  • 基于签名的检测
  • 基于启发式的检测
  • 基于行为的检测

基于签名的检测是防病毒软件中用于识别恶意文件的常用传统技术之一。研究人员或用户通常会将受感染的文件提交到防病毒引擎平台,供防病毒软件供应商进一步分析。如果确认文件为恶意文件,则该签名会被注册到他们的数据库中。杀毒软件会将扫描到的文件与已知签名数据库进行比较,以检测客户端是否存在攻击和恶意软件。如果匹配,则认为存在威胁。

启发式检测使用机器学习来判断是否存在恶意文件。它会实时扫描并进行静态分析,以查找应用程序代码中的可疑属性,或检查其是否使用了不常见的 Windows 或系统 API。它并不依赖基于签名的攻击来做出判断,有时也会依赖。这取决于杀毒软件的实现方式。

最后,基于行为的检测依赖于监控和检查应用程序的执行情况,以发现异常行为和不常见的活动,例如创建/更新注册表项的值、终止/创建进程等。

作为一名红队成员,了解是否存在杀毒软件至关重要。它会阻止我们进行我们试图做的事情。我们可以使用 Windows 内置工具(例如 wmic)枚举 AV 软件。

PowerShell

PS C:\Users\thm> wmic /namespace:\\root\securitycenter2 path antivirusproduct

这也可以使用 PowerShell 来完成,并产生相同的结果。

PowerShell

PS C:\Users\thm> Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntivirusProduct


displayName : Bitdefender Antivirus
instanceGuid : {BAF124F4-FA00-8560-3FDE-6C380446AEFB}
pathToSignedProductExe : C:\Program Files\Bitdefender\Bitdefender Security\wscfix.exe
pathToSignedReportingExe : C:\Program Files\Bitdefender\Bitdefender Security\bdservicehost.exe
productState : 266240
timestamp : Wed, 15 Dec 2021 12:40:10 GMT
PSComputerName :

displayName : Windows Defender
instanceGuid : {D58FFC3A-813B-4fae-9E44-DA132C9FAA36}
pathToSignedProductExe : windowsdefender://
pathToSignedReportingExe : %ProgramFiles%\Windows Defender\MsMpeng.exe
productState : 393472
timestamp : Fri, 15 Oct 2021 22:32:01 GMT
PSComputerName :

因此,计算机上安装了第三方防病毒软件(Bitdefender Antivirus)和 Windows Defender。注意 Windows 服务器可能没有 SecurityCenter2 命名空间,该命名空间可能无法在连接的虚拟机上运行。相反,它适用于 Windows 工作站!

Microsoft Windows Defender

Microsoft Windows Defender 是一款预装的防病毒安全工具,运行在终端上。它使用各种算法进行检测,包括机器学习、大数据分析、深入的威胁防御研究以及 Microsoft 云基础架构,以防御恶意软件和病毒。Microsoft Defender 提供三种防护模式:主动模式、被动模式和禁用模式。

主动模式是指 Microsoft Defender 作为计算机上的主要防病毒软件运行,提供保护和修复。被动模式是指安装了第三方防病毒软件时运行的模式。因此,它作为辅助防病毒软件运行,扫描文件并检测威胁,但不提供修复。最后,禁用模式是指从系统中禁用或卸载 MS Defender。

我们可以使用以下 PowerShell 命令来检查 Windows Defender 的服务状态:

PowerShell

PS C:\Users\thm> Get-Service WinDefend

Status Name DisplayName
------ ---- -----------
Running WinDefend Windows Defender Antivirus Service

接下来,我们可以开始使用 Get-MpComputerStatus cmdlet 获取当前的 Windows Defender 状态。它提供了安全解决方案元素的当前状态,包括反间谍软件、防病毒、LoavProtection、实时保护等。我们可以使用 select 来指定所需的内容,如下所示:

PowerShell

PS C:\Users\thm> Get-MpComputerStatus | select RealTimeProtectionEnabled

RealTimeProtectionEnabled
-------------------------
False

因此,MpComputerStatus 会突出显示 Windows Defender 是否已启用。

  1. 基于主机的防火墙:它是一种安装并运行在主机上的安全工具,可以阻止攻击者或红队成员的攻击尝试。因此,在我们初始访问的机器中枚举并收集有关防火墙及其规则的详细信息至关重要。

基于主机的防火墙的主要目的是控制通过设备接口的入站和出站流量。它保护主机免受同一网络上不受信任设备的攻击。现代基于主机的防火墙在建立连接时使用多层级的流量分析,包括数据包分析。

防火墙充当网络层的控制访问。它能够允许和拒绝网络数据包。例如,可以配置防火墙以阻止来自同一网络中其他机器通过 ping 命令发送的 ICMP 数据包。下一代防火墙还可以检查其他 OSI 层,例如应用层。因此,它可以检测并阻止SQL注入和其他应用层攻击。

PowerShell

PS C:\Users\thm> Get-NetFirewallProfile | Format-Table Name, Enabled

Name Enabled
---- -------
Domain True
Private True
Public True

如果我们对当前登录的用户具有管理员权限,那么我们会尝试使用 Set-NetFirewallProfile cmdlet 禁用一个或多个防火墙配置文件。

PowerShell

PS C:\Windows\system32> Set-NetFirewallProfile -Profile Domain, Public, Private -Enabled False
PS C:\Windows\system32> Get-NetFirewallProfile | Format-Table Name, Enabled
---- -------
Domain False
Private False
Public False

我们还可以了解和检查当前的防火墙规则,看看防火墙是否允许或拒绝了这些规则。

PowerShell

PS C:\Users\thm> Get-NetFirewallRule | select DisplayName, Enabled, Description

DisplayName Enabled
----------- -------
Virtual Machine Monitoring (DCOM-In) False
Virtual Machine Monitoring (Echo Request - ICMPv4-In) False
Virtual Machine Monitoring (Echo Request - ICMPv6-In) False
Virtual Machine Monitoring (NB-Session-In) False
Virtual Machine Monitoring (RPC) False
SNMP Trap Service (UDP In) False
SNMP Trap Service (UDP In) False
Connected User Experiences and Telemetry True
Delivery Optimization (TCP-In) True

在红队参与过程中,我们并不清楚防火墙会拦截哪些数据。不过,我们可以利用一些 PowerShell 命令,例如 Test-NetConnection 和 TcpClient。假设我们知道防火墙已经到位,并且需要在没有额外工具的情况下测试入站连接,那么我们可以执行以下操作:

PowerShell

PS C:\Users\thm> Test-NetConnection -ComputerName 127.0.0.1 -Port 80


ComputerName : 127.0.0.1
RemoteAddress : 127.0.0.1
RemotePort : 80
InterfaceAlias : Loopback Pseudo-Interface 1
SourceAddress : 127.0.0.1
TcpTestSucceeded : True

PS C:\Users\thm> (New-Object System.Net.Sockets.TcpClient("127.0.0.1", "80")).Connected
True

因此,我们可以确认端口 80 上的入站连接已打开并被防火墙允许。请注意,我们还可以通过在 Test-NetConnection 的 -ComputerName 参数中指定名称来测试同一网络或域名中的远程目标。

Host Security Solution #2

在本任务中,我们将继续讨论主机安全解决方案。

安全事件日志记录和监控

默认情况下,操作系统使用日志文件记录系统中的各种活动事件。事件日志记录功能可供 IT 系统和网络管理员监控和分析重要事件,无论是在主机端还是网络端。在协作网络中,安全团队利用日志记录事件技术来跟踪和调查安全事件。

Windows 操作系统记录的事件信息种类繁多,包括应用程序、系统、安全、服务等。此外,安全和网络设备将事件信息存储在日志文件中,以便系统管理员深入了解正在发生的事情。

我们可以使用 Get-EventLog 命令获取本地计算机上可用的事件日志列表。

PowerShell

PS C:\Users\thm> Get-EventLog -List

Max(K) Retain OverflowAction Entries Log
------ ------ -------------- ------- ---
512 7 OverwriteOlder 59 Active Directory Web Services
20,480 0 OverwriteAsNeeded 512 Application
512 0 OverwriteAsNeeded 170 Directory Service
102,400 0 OverwriteAsNeeded 67 DNS Server
20,480 0 OverwriteAsNeeded 4,345 System
15,360 0 OverwriteAsNeeded 1,692 Windows PowerShell

有时,可用事件日志列表可以让您深入了解计算机上安装了哪些应用程序和服务!例如,我们可以看到本地计算机上安装了 Active Directory、DNS 服务器等。有关 Get-EventLog cmdlet 的更多信息和示例,请访问 Microsoft 文档网站

在企业网络中,客户端上会安装日志代理软件,用于收集来自不同传感器的日志,从而分析和监控网络内的活动。我们将在“网络安全解决方案”任务中进一步讨论它们。

System Monitor (Sysmon)

Windows 系统监视器 sysmon 是一个服务和设备驱动程序。它是 Microsoft Sysinternals 套件之一。sysmon 工具并非必备工具(默认情况下未安装),但安装后会开始收集和记录事件。这些日志指标可以显著帮助系统管理员和蓝队成员追踪和调查恶意活动,并协助进行常规故障排除。

sysmon 工具的一大优势在于它可以记录许多重要事件,您还可以创建自己的规则和配置来监控:

  • 进程创建和终止
  • 网络连接
  • 文件修改
  • 远程威胁
  • 进程和内存访问
  • 以及其他许多事件

要了解更多关于 sysmon 的信息,请访问 Windows 文档页面 此处

作为红队成员,主要目标之一是保持不被发现,因此必须了解这些工具,并避免生成和触发警报事件。以下是一些可用于检测受害机器上 sysmon 是否可用的技巧。

我们可以在当前进程或服务中查找名为“Sysmon”的进程或服务,如下所示:

PowerShell

PS C:\Users\thm> Get-Process | Where-Object { $_.ProcessName -eq "Sysmon" }

Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
373 15 20212 31716 3316 0 Sysmon

或查找以下服务,

PowerShell

PS C:\Users\thm> Get-CimInstance win32_service -Filter "Description = 'System Monitor service'"
# or
Get-Service | where-object {$_.DisplayName -like "*sysm*"}

也可以通过检查 Windows 注册表来完成

PowerShell

PS C:\Users\thm> reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-Sysmon/Operational

所有这些命令都用于确认 sysmon 工具是否已安装。一旦检测到,我们就可以尝试查找 sysmon 配置文件(前提是我们有可读权限),以了解系统管理员正在监控哪些内容。

PowerShell

PS C:\Users\thm> findstr /si '<ProcessCreate onmatch="exclude">' C:\tools\*
C:\tools\Sysmon\sysmonconfig.xml:
C:\tools\Sysmon\sysmonconfig.xml:

有关 Windows sysmon 工具的更多详细信息以及如何在终端内使用它,我们建议您尝试 TryHackMe 聊天室:Sysmon

基于主机的入侵检测/防御系统 (HIDS/HIPS)

HIDS 代表基于主机的入侵检测系统。它是一款能够监控和检测主机中异常和恶意活动的软件。HIDS 的主要目的是检测可疑活动,而不是阻止它们。基于主机或网络的入侵检测系统有两种工作方式,包括:

  • 基于签名的入侵检测系统 - 它检查校验和和消息身份验证。
  • 基于异常的入侵检测系统查找意外活动,包括异常的带宽使用、协议和端口。

基于主机的入侵防御系统 (HIPS) 保护安装设备的操作系统活动。它是一种针对常见攻击和异常行为的检测和防御解决方案。 HIPS 可以审计主机日志文件、监控进程并保护系统资源。HIPS 集多种产品功能于一身,例如防病毒、行为分析、网络、应用程序防火墙等。

此外,HIPS 还提供基于网络的入侵检测系统 (IDS)/入侵防御系统 (IPS),我们将在下一个任务中介绍。

端点检测和响应 (EDR)

它也被称为端点检测和威胁响应 (EDTR)。EDR 是一种网络安全解决方案,可以防御恶意软件和其他威胁。EDR 可以查找恶意文件,监控端点、系统和网络事件,并将其记录到数据库中,以便进一步分析、检测和调查。EDR 是下一代防病毒软件,可以实时检测主机上的恶意活动。

EDR 分析系统数据和行为,以识别威胁,包括:

  • 恶意软件,包括病毒、木马、广告软件和键盘记录器
  • 漏洞利用链
  • 勒索软件

以下是一些常见的端点 EDR 软件:

  • Cylance
  • Crowdstrike
  • Symantec
  • SentinelOne
  • 其他

即使攻击者成功投递了有效载荷并绕过 EDR 接收反向 Shell,EDR 仍在运行并监控系统。如果它发出警报,可能会阻止我们执行其他操作。

我们可以使用脚本枚举机器内的安全产品,例如 Invoke-EDRCheckerSharpEDRChecker。它们通过检查文件元数据、进程、加载到当前进程的 DLL、服务、驱动程序和目录,来检查常用的防病毒、EDR 和日志监控产品。

Network Security Solutions

本任务将讨论企业网络中常见的网络安全解决方案。

网络安全解决方案

网络安全解决方案可以是用于监控、检测和阻止网络内恶意活动的软件或硬件设备。它专注于保护连接到协作网络的客户端和设备。网络安全解决方案包括但不限于:

  • 网络防火墙
  • 安全信息和事件管理 (SIEM)
  • 入侵检测系统/入侵防御系统 (IDS/IPS)

网络防火墙

防火墙是进入网络的不可信流量的第一个检查点。防火墙会根据规则和策略,在不可信流量进入网络之前对其进行过滤。此外,防火墙还可用于将网络与外部流量源、内部流量源甚至特定应用程序隔离。如今,防火墙产品是内置的网络路由器或其他提供各种安全功能的安全产品。以下是一些企业可能使用的防火墙类型。

  • 包过滤防火墙
  • 代理防火墙
  • NAT 防火墙
  • Web 应用防火墙

安全信息和事件管理 (SIEM)

SIEM 结合了安全信息管理 (SIM) 和安全事件管理 (SEM),用于监控和分析事件,并实时跟踪和记录数据。SIEM 帮助系统管理员和蓝队成员监控和跟踪潜在的安全威胁和漏洞,防止其对组织造成损害。

SIEM 解决方案充当日志数据聚合中心,从传感器收集日志文件,并对收集到的数据执行各种功能,以识别和检测安全威胁或攻击。以下是 SIEM 可能提供的一些功能:

  • 日志管理:实时捕获和收集整个企业网络的数据。
  • 事件分析:应用高级分析来检测异常模式或行为,并在仪表板上以图表和统计数据的形式显示。
  • 事件监控和安全警报:监控整个网络,包括连接的用户、设备、应用程序等,一旦检测到攻击,立即向管理员发出警报,以便采取适当的措施进行缓解。
  • 合规性管理和报告:随时生成实时报告。

SIEM 能够利用集成的威胁情报和人工智能技术检测高级和未知威胁,包括内部威胁、安全漏洞、网络钓鱼攻击、Web 攻击、DDoS 攻击、数据泄露等。

以下是一些企业中常见的 SIEM 产品:

  • Splunk
  • LogRhythm NextGen SIEM 平台
  • SolarWinds 安全事件管理器
  • Datadog 安全监控
  • 其他

入侵检测系统 (NIDS) 和入侵防御系统 (NIPS)

基于网络的 IDS/IPS 与基于主机的 IDS/IPS 概念相似。主要区别在于,基于网络的产品关注的是网络的安全,而不是主机的安全。基于网络的解决方案将基于分布在网络设备和主机上的传感器和代理来收集数据。入侵检测系统 (IDS) 和入侵防御系统 (IPS) 都是企业用来保护其内部系统的检测和监控网络安全解决方案。它们都读取网络数据包,查找异常行为和预先加载到先前数据库中的已知威胁。两种解决方案之间的显著区别在于,IDS 需要人工交互或第三方软件来分析数据并采取行动。IPS 是一个控制系统,它根据策略和规则接受或拒绝数据包。

以下是常见的企业 IDS/IPS 产品:

  • Palo Alto Networks
  • Cisco 的下一代
  • McAfee 网络安全平台 (NSP)
  • Trend Micro TippingPoint
  • Suricata

有关 IDS/IPS 的更多信息,请访问参考链接

Applications and Services

这项任务将扩展我们了解系统所需的知识。在之前的任务中,我们讨论了系统内的帐户发现和安全产品。我们将继续学习更多关于系统的知识,包括:

  • 已安装的应用程序
  • 服务和进程
  • 共享文件和打印机
  • 内部服务:DNS 和本地 Web 应用程序

为了充分利用这些信息,有必要了解系统提供的功能。

已安装的应用程序

首先,我们通过检查应用程序的名称和版本来枚举系统中已安装的应用程序。作为红队成员,这些信息将对我们大有裨益。我们可能会发现系统中安装了漏洞软件,这些软件会利用漏洞来提升我们的系统权限。此外,我们可能会发现一些信息(例如纯文本凭据)残留在系统中,这些信息属于其他系统或服务。

我们将使用 Windows 命令 wmic 列出所有已安装的应用程序及其版本。

PowerShell

PS C:\Users\thm> wmic product get name,version
Name Version
Microsoft Visual C++ 2019 X64 Minimum Runtime - 14.28.29910 14.28.29910
AWS Tools for Windows 3.15.1248
Amazon SSM Agent 3.0.529.0
aws-cfn-bootstrap 2.0.5
AWS PV Drivers 8.3.4
Microsoft Visual C++ 2019 X64 Additional Runtime - 14.28.29910 14.28.29910

另一个有趣的方法是查找特定的文本字符串、隐藏目录和备份文件。然后,我们可以使用 PowerShell cmdlet Get-ChildItem,如下所示:

PowerShell

PS C:\Users\thm> Get-ChildItem -Hidden -Path C:\Users\kkidd\Desktop\

服务和进程

Windows 服务使系统管理员能够在我们自己的 Windows 会话中创建长时间运行的可执行应用程序。有时,Windows 服务的权限配置错误,会导致当前用户的访问权限级别提升。因此,我们必须查看正在运行的服务并执行服务和进程侦察。更多详细信息,请参阅 Attack MITRE 上的进程发现。

进程发现是一个枚举步骤,用于了解系统提供的功能。红队应该获取有关系统上运行的服务和进程的信息和详细信息。我们需要尽可能多地了解我们的目标。这些信息可以帮助我们了解网络中其他系统上运行的常用软件。例如,受感染的系统可能包含用于内部用途的自定义客户端应用程序。自定义内部开发的软件是升级向量的最常见根本原因。因此,值得进一步挖掘以获取有关当前进程的详细信息。

想从蓝队角度了解更多 Windows 核心进程的详细信息,请访问 TryHackMe 聊天室:核心 Windows 进程

共享文件和打印机

在个人和企业环境中,共享文件和网络资源非常常见。系统管理员可能会错误配置访问权限,而他们可能掌握有关其他帐户和系统的有用信息。想了解更多关于打印机黑客攻击的信息,我们建议您尝试以下 TryHackMe 聊天室:打印机黑客攻击 101

内部服务:DNS、本地 Web 应用程序等

内部网络服务是扩展我们对其他系统和整个环境知识的另一个信息来源。想了解更多关于用于外部和内部网络服务的网络服务的详细信息,我们建议您尝试以下聊天室:网络服务网络服务 2

以下是我们感兴趣的一些常用内部服务:

  • DNS 服务
  • 电子邮件服务
  • 网络文件共享
  • Web 应用程序
  • 数据库服务

Conclusion

本课程将介绍企业环境中的客户端系统。学员应更好地理解客户端在企业网络中的使用方式,包括:

  • 网络基础设施
  • AD 环境
  • 安全措施(HIPS、AV 等)
  • 内部应用程序和服务