00 背景
持久性是所有流行安全框架中包含的一个阶段(例如Cyber/Unified 杀伤链或 MITRE ATT&CK )。此阶段通常在在利用之后完成,但它取决于参与角色 (ROE) 和您的方法框架流程。
什么是持久性和后门?
持久性是一种用于维持与目标系统连接的技术,即使机器重新启动、关闭或其他任何情况,我们仍然能够访问它。
后门攻击的定义是使用任何恶意软件/病毒/技术来获得对应用程序/系统/网络的未经授权的访问,同时绕过所有已实施的安全措施。
为什么它很重要?
以下是您希望尽快建立持久性的一些原因:
1. 重新利用并不总是可能的:一些不稳定的利用可能会在利用过程中杀死易受攻击的进程,从而使您只能攻击一次。
2. 获得立足点很难重现:例如,如果您使用网络钓鱼活动获得第一次访问权限,那么重复此操作以重新获得对主机的访问权限则工作量太大。您的第二次行动也可能不会那么有效,导致您无法访问网络。
3. 蓝队正在追踪你:如果您的操作被检测到,用于获得您首次访问权限的任何漏洞都可能会被修补。您正在与时间赛跑!
首先,我将教您一些有关持久性/后门技术的理论,然后在机器上进行实际操作。这些技术对红队和蓝队都有帮助。
01 持久化:创建帐户
理论
帐户是指在操作系统上创建的用户帐户,允许个人与计算机交互和访问计算机。每个使用 Windows 计算机的人通常都有自己的用户帐户,该帐户提供个性化的环境、安全性、隐私性和用户特定的应用程序设置。
用户帐户可以有多种类型:
1. 域管理员:这通常是您在域环境中找到的最高帐户级别。具有此权限级别的帐户可以管理组织的所有用户、其访问级别以及几乎任何您能想到的内容。
2. 服务帐户:软件用来执行任务的帐户。这些服务包括本地系统帐户、网络服务帐户、本地服务帐户、特定于服务的帐户(SQLServiceAccount、ExchangeServiceAccount、www-data 或 httpd)。
3. 域帐户:这些帐户仅在集中系统上维护、管理和有效,并且可以在域使用。
4. 本地帐户:这些帐户仅在本地系统上维护、管理和有效,不能在域使用。本地帐户有两种类型:本地管理员和普通用户。
创建帐户包括创建一个新帐户,使其成为高权限组的一部分,并使用该帐户通过远程协议或与该帐户链接的任何其他持久性技术远程登录目标。
前提条件:需要管理权限。
后期条件:我们可以随时访问目标系统。
创建帐户进行权限维持的方法很简单:
1. 创建一个新帐户或用户并使该用户成为管理员或高权限成员
2. 确保新用户是远程桌面用户 (RDP P-3389 TCP) 或远程管理用户 (WinRM P-5985/5986 TCP)、SMB 等权限的用户。
3. 检查远程协议服务端口是否打开并允许通过防火墙。
4. 使用该用户的密码通过远程协议登录该用户。
隐蔽级别:此后门根本不隐蔽,网络中高权限组的帐户创建和用户受到蓝队的高度监控和关注。
实践
目标位于“WorkGroup”中,这意味着不属于任何域,因此我们首先在系统上创建一个本地用户。
如果您在域环境中,则使用以下命令创建用户。
net user <用户> <密码> /add /domain
现在让我们检查该用户属于哪些组。
只是“用户”组,默认情况下所有非特权帐户都是系统的一部分。让我们将这个新用户添加到高权限组中。注意:如果您是某个组的成员,例如在此管理员组中,那么您也会立即获得该组的权限。
好的,现在我们已经获得了我们想要的高权限,因此我们可以使用此帐户执行高权限操作,但是我们仍然需要一种简单的方法来使用一些远程协议(例如 VNC、VPN、SSH、WinRM、SMB等)获得对目标的远程访问。让我们将其添加到 RDP,因为在从网络外部对目标进行初始扫描时,我们打开了 RDP (3389 TCP) 端口并允许通过防火墙。
您还可以通过防火墙打开端口。(需要管理员权限)
New-NetFirewallRule -DisplayName “HTTP (TCP-In)” -Direction Inbound -Protocol TCP -LocalPort <PORT> -Action Allow
New-NetFirewallRule -DisplayName “HTTP (TCP-Out)” -Direction Outbound -Protocol TCP -LocalPort <PORT> -Action Allow
检查用户所属的组,我们可以看到 2 个新组。注意:当您成为管理员组的一员时,“用户”组将被取消。现在,让我们检查一下,是否能使用后门高权限帐户“hacker”通过 RDP 访问目标。
打扫干净
net user hacker /delete(从系统中删除用户)
02 持久化:已有用户
理论
这个和之前的持久化技术“创建账户”是一样的。
已有用户包括使现有用户成为某些高权限组的一部分,并使用该用户通过远程协议或与此帐户链接的任何其他持久性技术远程登录目标。
前提条件:需要管理权限并且必须知道现有用户的密码或哈希。
后期条件:我们可以随时访问目标系统。
利用已有用户进行权限维持很简单;
1. 列出目标系统上存在的所有权限较低的用户并使该用户成为高权限组的一部分。
2. 确保该用户属于远程桌面用户 (RDP P-3389 TCP) 或远程管理用户 (WinRM P-5985/5986 TCP)、SMB 等。
3. 检查远程协议服务端口是否打开并允许通过防火墙。
4. 使用密码通过远程协议登录该用户(通过凭据转储技术访问该用户的密码,或者如果您是管理员,则只需更改该用户的密码。)
隐蔽级别:与前一种技术相比,这种技术也更加隐秘,因为我们不在这里创建新帐户,而且在这里,我们将让用户成为“Backup Operators”组的一部分,而不是管理员组,该组不受蓝队的严密监控。
实践
检查系统上所有现有用户。
让我们选择权限较低的用户“thmuser1”并使其成为管理员组和某些远程协议组的一部分或成员。
这里我们将用户添加到“Backup Operators”组。注意:此“Backup Operators”组中的用户不具有管理权限,但可以读/写系统上的任何文件或注册表项,忽略任何配置的 DACL。
对于远程登录,我们将用户添加到“Remote Management Users”或 WinRM。WinRM 充当运行 PowerShell 的客户端与远程 Windows 系统之间的通信机制。它允许在远程计算机上执行 PowerShell 命令和脚本。默认情况下,防火墙允许 Windows 服务器上的 WinRM 端口,因此让我们尝试通过Evil-WinRM使用thmuser1:Password321来远程访问目标。
https://github.com/Hackplayers/evil-winrm
现在,如果您远程登录目标,您会发现,即使您的用户属于“Backup Operator”组,您也可能无法使用其权限,因为 UAC 实现的功能之一LocalAccountTokenFilterPolicy会在远程登录时取消任何本地帐户的管理权限,所以让我们在目标机器上禁用它。
再次登录,现在我们可以使用“Backup Operator”组权限。因此,攻击者可以做的是读取或写入系统上的任何文件或注册表。让我们复制 SAM 和 SYSTEM 文件。
将其传输到攻击者计算机,然后我们可以使用“SecretDump”转储系统上存在的所有用户的哈希值。
攻击者现在可以使用PTH攻击来访问任何这些帐户,即使任何用户的密码发生更改,攻击者也可以登录到他的后门“thmuser1”帐户并再次复制哈希值并提取来自 SAM 和 SYSTEM 文件的新哈希值。
参考及来源:
https://medium.com/bugbountywriteup/persistence-techniques-beginner-to-advanced-for-windows-50aca469336
免责&版权声明
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...