接上一课的枚举AD域信息后(就是域的信息收集) 开始进行横向移动和翻转了

网络移动 (横向移动)

简而言之,横向移动是攻击者用来在网络中移动的一组技术。一旦攻击者获得对网络第一台计算机的访问权,出于多种原因,移动就变得至关重要,其中包括: - 实现攻击者的目标 - 绕过现有的网络限制 - 建立额外的网络入口点 - 制造混乱和避免被发现。

虽然许多网络杀伤链将横向移动视为线性过程的附加步骤,但它实际上是循环的一部分。在此周期中,我们使用任何可用的凭据来执行横向移动,使我们能够访问新机器,在其中我们可以提升权限并提取凭据(如果可能)。有了新的凭证,循环又开始了。

img

通常,我们会重复这个循环几次,然后才能达到网络上的最终目标。如果我们的第一个立足点是一台几乎无法访问其他网络资源的计算机,那么我们可能需要横向移动到在网络上拥有更多权限的其他主机。

A Quick Example 一个简单的例子

假设我们正在执行红队参与,我们的最终目标是到达内部代码存储库,我们通过网络钓鱼活动在目标网络上获得了第一次妥协。通常,网络钓鱼活动对非技术用户更有效,因此我们的第一次访问可能是通过营销部门的机器进行的。

营销工作站通常会受到防火墙策略的限制,无法访问网络上的任何关键服务,包括管理协议、数据库端口、监控服务或日常工作不需要的任何其他服务,包括代码存储库。

为了到达敏感的主机和服务,我们需要转移到其他主机并从那里转向我们的最终目标。为此,我们可以尝试提升营销工作站的权限并提取本地用户的密码哈希值。如果我们找到本地管理员,则其他主机上可能存在相同的帐户。经过一番侦察,我们发现了一个名为 DEV-001-PC 的工作站。我们使用本地管理员的密码哈希来访问 DEV-001-PC,并确认它属于公司的一位开发人员所有。从那里,可以访问我们的目标代码存储库。

Simple Lateral Movement

请注意,虽然可能需要使用横向移动来规避防火墙限制,但它也有助于逃避检测。在我们的示例中,即使营销工作站可以直接访问代码存储库,也可能需要通过开发人员的 PC 进行连接。从检查登录审核日志的蓝队分析师的角度来看,这种行为的可疑性较小。

攻击者的视角

攻击者可以通过多种方式进行横向移动。最简单的方法是使用标准管理协议(例如 WinRM、RDP、VNC 或 SSH)连接到网络上的其他计算机。只要在规划与哪个帐户连接的位置时保持一定的一致性,这种方法就可以在某种程度上模拟常规用户的行为。虽然 IT 部门的用户通过 RDP 连接到 Web 服务器可能很常见并且不会受到关注,但必须注意不要尝试可疑的连接(例如,为什么本地管理员用户从营销部门连接到 DEV-001-PC)个人电脑?)

如今,攻击者还可以使用其他横向移动方法,同时使蓝队有效检测正在发生的情况变得更具挑战性。虽然没有任何技术应该被认为是万无一失的,但我们至少可以尝试尽可能保持沉默。在接下来的任务中,我们将了解一些最常见的横向运动技术。

Administrators and UAC

在执行整个房间中介绍的大部分横向移动技术时,我们将主要使用管理员凭据。虽然人们可能期望每个管理员帐户都具有相同的目的,但必须区分两种类型的管理员:

  • Local accounts part of the local Administrators group
    本地帐户属于本地管理员组
  • Domain accounts part of the local Administrators group
    域帐户属于本地管理员组

远程生成进程

这一共是有三种方法可以来进行

  • Psexec 执行程序

  • 使用 WinRM 远程创建进程

  • 使用 sc 远程创建服务

服务的概念

在Windows操作系统中,服务(Service)是一种在后台运行的程序或进程,它可以执行各种系统任务、管理资源、提供功能或服务。服务通常在系统启动时自动启动,并在后台持续运行,不需要用户干预。

服务可以是操作系统自带的,也可以是第三方软件安装时创建的。它们可以执行各种任务,例如网络连接、打印机管理、安全性控制、文件共享等。服务通常以独立的进程运行,拥有自己的权限和配置设置。

你可以通过服务管理器(Services Manager)来查看、启动、停止、暂停或更改服务的配置。在Windows操作系统中,你可以通过服务来管理系统的各种功能和任务,确保系统的正常运行和提供所需的服务。

请注意,对于一些高级或敏感的服务,修改或停止它们可能需要管理员权限或特殊的访问权限。

这里的话我主要总结一下这个thm的操作流程 是怎么一步一步横向移动到管理员iis这个域的

首先了 我们通过各种各样的方法 获取到了两个凭证

  • 一个是别的域的普通用户
  • 一个是IIS域的管理用户

我们这里使用的sc.exe来在管理用户的电脑下创建一个恶意服务 以下是过程

首先我们现在自己的linux机器上使用msfvenom创建一个恶意服务exe文件

然后使用smb协议使其传送到 THMIIS 域的 ADMIN$ 共享(就是管理员账户下的)

然后监听这个恶意服务的端口

因为使用这个sc.exe来创建服务的需要管理员权限 我们目前只能ssh普通用户

因为我们有了这个管理员的凭证 所以可以使用之前学到的runas这个工具 来使用这个管理员账户的权限 并且使用的一些指令就不用继续验证凭证了(说明只有管理员能执行的指令我们也能了)

那么我们就进行nc命令 在自己的linux主机下进行监听

那么这个反弹shell的话就能反弹到管理员权限的shell了

(这里收到)

那么我们就能执行sc.exe来创建服务了 然后在运行 之前监听恶意服务的linux主机就会收到 然后就能访问管理员账户的主机里的任何内容了

(这里使用这个反弹shell来获取管理员账户是因为这个nc命令的话执行需要管理员权限)

使用 WMI 横向移动

这个的话我觉得比上面的那个sc.exe方法更加方便

使用条件和上面的那个sc.exe方法差不多

  • 都是得获取到两个账户 一个是管理员一个是普通用户
  • 但是这里少了一步就是需要弹shell获取到这个system32
  • 所以就方便在了这里

使用替代认证材料

这个的话主要讲的就是这个AD域的两种身份验证登录协议

  • NTLM
  • Kerberos

一共就是这两种协议

先是了解一下这两种协议的认证过程

  • NTLM是拿NTLM—hash值来进行认证登录
  • Kerberos是拿票据来进行认证登录

在这两者之间就是如果获取到了 hash值 就是不用使用密码就可以进行登录了

(就是从普通用户 直接登录到管理员用户)

滥用用户行为

这里主要讲的就是三种方法

  • 就是在网络共享下 可能管理员会共享一些脚本或者exe文件
  • rdp劫持

端口转发

  • ssh远程端口代理

  • ssh本地端口代理

  • socks端口代理
  • socat端口代理
  • 隧道复杂漏洞(把上面的各种代理方法拿出来组合起来用)