THMPrintNightmare
Introduction这个房间将从进攻和防御的角度来讨论 Printnightmare 漏洞。
根据 Microsoft 的说法,“当 Windows Print Spooler 服务不正确地执行特权文件操作时,就会存在远程代码执行漏洞。成功利用此漏洞的攻击者可以使用 SYSTEM 权限运行任意代码。攻击者随后可以安装程序;查看、更改或删除程序 数据;或创建具有完全用户权限的新帐户”。
学习目标:在这个房间中,您将了解 PrintNightmare 漏洞是什么,以及如何利用和缓解该漏洞。 您还将学习使用 Windows 事件日志和 Wireshark 的检测机制。
结果:因此,您将准备好保护您的组织免受任何潜在的 PrintNightmare 攻击。
学习先决条件:在加入此房间之前,您应该熟悉 Wireshark、Windows 事件日志、Linux 基础知识和 Meterpreter。
Windows Print Spooler ServiceMicrosoft 将打印后台处理程序服务 定义为在每个计算机系统上运行的服务 。 正如您可以从名称中猜出的那样,打印后台处理程序服务管理打 ...
打靶记录(一一三)之THMAnthem
端口扫描┌──(root㉿kali)-[~]└─# nmap --min-rate=10000 -p- anthem Starting Nmap 7.93 ( https://nmap.org ) at 2024-04-28 06:21 UTCNmap scan report for anthem (10.10.238.135)Host is up (0.0034s latency).Not shown: 65532 filtered tcp ports (no-response)PORT STATE SERVICE80/tcp open http3389/tcp open ms-wbt-server5985/tcp open wsmanMAC Address: 02:DD:10:B3:76:5D (Unknown)Nmap done: 1 IP address (1 host up) scanned in 20.23 seconds
┌──(root㉿kali)-[~]└─# nmap -sC -sT -sV -O -p80,3389,5985 anthemSta ...
THM域学习ExploitingActiveDirectory
Introduction该网络是 Breaching AD 和 Enumerate AD 网络的延续。 请确保先完成这些网络,然后再继续此操作。 另请注意,我们将广泛讨论 AD 对象。 如果您需要复习一下,请快速浏览一下这个房间。 现在我们已经突破了 AD 并枚举了域的结构,我们将探索可用于利用枚举中可能出现的错误配置的不同方法。
广告利用
现在我们已经进行了内部勘察并了解了 AD 结构和环境的情况,现在是开发阶段的时候了。 此阶段利用错误配置来执行横向移动和权限升级的组合,直到我们达到执行目标的合适位置,如下图所示。 这个阶段通常与持久性相结合,以确保我们不会失去我们获得的新位置,但这将在下一个房间中介绍。 它通常还与附加枚举相结合,因为我们的新位置可能使我们能够获取有关土地情况的附加信息。
学习目标在此网络中,我们将介绍几种可用于利用 AD 错误配置的方法。 这绝不是一个完整的列表,因为可用的方法通常是高度情境化的,并且依赖于 AD 结构和环境。 但是,我们将介绍以下利用 AD 的技术:
AD 代表团
强制身份验证中继
组策略对象
定位广告用户
域名信托
银票和金票
Explo ...
THM域学习LateralMovementandPivoting
Introduction在这个房间里,我们将研究横向移动,攻击者使用一组技术在网络中移动,同时创建尽可能少的警报。 我们将了解为此目的而使用的几种常见技术以及所涉及的工具。
建议在此之前先浏览一下破坏 AD 和枚举 AD 房间。
Moving Through the Network什么是横向运动?
简而言之,横向移动是攻击者用来在网络中移动的一组技术。 一旦攻击者获得对网络第一台计算机的访问权,出于多种原因,移动就变得至关重要,其中包括: - 实现攻击者的目标 - 绕过现有的网络限制 - 建立额外的网络入口点 - 制造混乱和 避免被发现。
虽然许多网络杀伤链将横向移动视为线性过程的附加步骤,但它实际上是循环的一部分。 在此周期中,我们使用任何可用的凭据来执行横向移动,使我们能够访问新机器,在其中我们可以提升权限并提取凭据(如果可能)。 有了新的凭证,循环又开始了。
通常,我们会重复这个循环几次,然后才能达到网络上的最终目标。 如果我们的第一个立足点是一台几乎无法访问其他网络资源的计算机,那么我们可能需要横向移动到在网络上拥有更多权限的其他主机。
一个简单的例子假设我们正在执行红队参与, ...
THM域学习EnumeratingActiveDirectory
Why AD Enumeration该网络是 Breaching AD 网络的延续。 请确保先完成此网络,然后再继续此操作。 另请注意,我们将广泛讨论 AD 对象。 如果您需要复习一下,请快速浏览一下这个房间。 现在我们有了第一组有效的 Active Directory (AD) 凭据,我们将探索可用于枚举 AD 的不同方法。
AD枚举
一旦我们拥有第一组 AD 凭据以及在网络上使用它们进行身份验证的方法,一个全新的可能性世界就会打开! 我们可以开始枚举有关经过身份验证的访问(甚至是超低权限访问)的 AD 设置和结构的各种详细信息。
在红队参与期间,这通常会导致我们能够执行某种形式的权限升级或横向移动以获得额外的访问权限,直到我们有足够的权限来执行和实现我们的目标。 在大多数情况下,枚举和利用紧密地交织在一起。 一旦利用了枚举阶段显示的攻击路径,就会从这个新的特权位置再次执行枚举,如下图所示。
学习目标在此网络中,我们将介绍几种可用于枚举 AD 的方法。 这绝不是一个完整的列表,因为可用的方法通常是高度情境化的,并且依赖于所获得的违规行为。 但是,我们将介绍以下枚举 AD 的技术:
...
THM域学习BreachingActiveDirectory
Introduction to AD Breaches全球财富 1000 强公司中约 90% 使用 Active Directory (AD)。 如果一个组织的资产使用 Microsoft Windows,那么您几乎肯定会找到 AD。 Microsoft AD 是用于管理 Windows 域网络的主导套件。 然而,由于AD用于整个产业的身份和访问管理,它掌握着王国的钥匙,使其很可能成为攻击者的目标。
破坏活动目录
在我们利用 AD 错误配置进行权限提升、横向移动和目标执行之前,您首先需要初始访问权限。 您需要获取一组初始的有效 AD 凭据。 由于 AD 服务和功能的数量众多,获取一组初始 AD 凭据的攻击面通常很大。 在这个房间里,我们将讨论几种途径,但这绝不是详尽的列表。
在查找第一组凭据时,我们不会关注与帐户关联的权限;而是关注与帐户相关的权限。 因此,即使是低权限帐户也足够了。 我们只是在寻找一种对 AD 进行身份验证的方法,使我们能够对 AD 本身进行进一步的枚举。
学习目标
在这个网络中,我们将介绍几种可用于破坏 AD 的方法。 这绝不是完整的列表,因为每天都会发现新的方法和 ...
THM域学习ActiveDirectoryBasics
IntroductionMicrosoft 的Active Directory 是企业界的支柱。 它简化了企业环境中设备和用户的管理。 在这个房间中,我们将深入探讨 Active Directory 的基本组件。
房间目标
在这个房间中,我们将了解 Active Directory 并熟悉以下主题
什么是活动目录
什么是 Active Directory 域
哪些组件进入 Active Directory 域
森林和域信任
以及更多!
Windows Domains想象一下您正在管理一个只有五台计算机和五名员工的小型企业网络。 在如此小的网络中,您可能能够毫无问题地单独配置每台计算机。 您将手动登录每台计算机,为使用它们的人员创建用户,并为每个员工的帐户进行特定配置。 如果用户的计算机停止工作,您可能会去他们的地方并现场修复计算机。
虽然这听起来像是一种非常轻松的生活方式,但让我们假设您的业务突然增长,现在拥有 157 台计算机和分布在四个不同办公室的 320 名不同用户。 您是否仍然能够将每台计算机作为单独的实体进行管理,为网络上的每个用户手动配置策略并为每个人提供现场支 ...
THM免杀学习SignatureEvasion
Introduction当面对先进的防病毒引擎或 EDR(端点检测和响应)解决方案时,对手可能很难克服特定的检测。 即使采用了混淆原则中讨论的一些最常见的混淆或规避技术,恶意文件中的签名可能仍然存在。工具箱的装饰图像
为了对抗持久签名,攻击者可以单独观察每个签名并根据需要对其进行处理。
在这个房间里,我们将了解什么是签名以及如何找到它们,然后尝试按照不可知论的思维过程来打破它们。 为了更深入地研究和对抗启发式签名,我们还将讨论更高级的代码概念和“恶意软件最佳实践”。学习目标
了解签名的起源以及如何在恶意代码中观察/检测它们
实施记录的混淆方法来破坏签名
利用基于非混淆的技术来破坏非面向功能的签名。
这个房间是混淆原则的继承者; 如果您尚未完成,我们强烈建议您在此房间之前完成。
在开始本课程之前,请先熟悉基本的编程逻辑和语法。 建议了解 C 和 PowerShell,但不是必需的。
Signature Identification在开始破解签名之前,我们需要了解并确定我们要寻找的内容。 如防病毒简介中所述,防病毒引擎使用签名来跟踪和识别可能的可疑和/或恶意程序。 在此任务中,我们 ...
THM免杀学习ObfuscationPrinciples
Introduction混淆是检测规避方法和防止恶意软件分析的重要组成部分。 混淆最初是为了保护软件和知识产权不被窃取或复制。 虽然它仍然被广泛用于其最初的目的,但对手已将其用于恶意目的。
在这个房间里,我们将从多个角度观察混淆并分解混淆方法。眼睛的装饰图像学习目标
了解如何使用与工具无关的混淆来逃避现代检测工程
从知识产权保护理解混淆原理及其渊源
实施混淆方法来隐藏恶意功能
在开始本课程之前,请先熟悉基本的编程逻辑和语法。 建议了解 C 和 PowerShell,但不是必需的。
Origins of Obfuscation混淆广泛应用于许多软件相关领域,以保护IP(Iintellectual Pproperty)和应用程序可能包含的其他专有信息。
例如,流行的游戏:Minecraft 使用混淆器 ProGuard 来混淆和最小化其 Java 类。 Minecraft 还发布了信息有限的混淆地图,作为旧的未混淆类和新的混淆类之间的转换器,以支持模组社区。
这只是公开使用混淆的多种方式的一个例子。 为了记录和整理各种混淆方法,我们可以参考分层混淆:分层安全软件混淆技术的分类。 本 ...
THM免杀学习AVEvasionShellcode
PE Structure此任务重点介绍 Windows 二进制文件的 PE 数据结构的一些高级基本元素。
什么是PE?
Windows 可执行文件格式,又名 PE(可移植可执行文件),是一种保存文件所需信息的数据结构。 它是一种在磁盘上组织可执行文件代码的方法。 Windows操作系统组件,例如Windows和DOS加载程序,可以将其加载到内存中,并根据在PE中找到的解析文件信息来执行它。
一般来说,Windows 二进制文件(例如 EXE、DLL 和目标代码文件)的默认文件结构具有相同的 PE 结构,并且适用于 Windows 操作系统(x86 和 x64)CPU 架构。
PE 结构包含保存有关二进制文件的信息的各个部分,例如元数据和指向外部库的内存地址的链接。 这些部分之一是 PE 标头,其中包含元数据信息、指针以及内存中地址部分的链接。 另一部分是数据部分,其中包含容器,其中包含 Windows 加载程序运行程序所需的信息,例如可执行代码、资源、库链接、数据变量等。
PE结构中有不同类型的数据容器,每种数据容器保存不同的数据。
.text 存放程序的实际代码
.data保存初 ...
THM免杀学习IntroductiontoAntivirus
Introduction欢迎来到 AV 简介 防病毒 (AV) 软件是基于主机的基本安全解决方案之一,可用于检测和防止最终用户计算机内的恶意软件攻击。 反病毒软件由不同的模块、功能和检测技术组成,这些将在本房间中讨论。 作为红队成员或渗透测试人员,熟悉并了解 AV 软件及其检测技术的工作原理至关重要。 一旦获得了这些知识,就可以更轻松地研究 AV 规避技术。
学习目标
什么是防病毒软件?
防病毒检测方法
枚举目标机器中安装的AV软件
在模拟环境中进行测试
房间先决条件
基于主机的检测解决方案的一般知识; 查看 The Lay of the Land 房间了解更多信息。
哈希加密的一般经验; 查看 Hashing - Crypto 101 房间以获取更多信息。
Yara规则的基础知识; 查看 THM Yara 房间了解更多信息。
Antivirus Software什么是AV软件?
防病毒 (AV) 软件是额外的安全层,旨在检测并防止目标操作系统中恶意文件的执行和传播。
它是一个基于主机的应用程序,实时(在后台)运行以监视和检查当前和新下载的文件。 反病毒软件使用不同的技术检查并 ...
CVE-2019-11043PHP-FPM远程RCE复现
使用vulhub搭建环境docker-compose up -d
前置内容PHP-FPM(PHP FastCGI Process Manager)意:PHP FastCGI 进程管理器,用于管理PHP 进程池的软件,用于接受web服务器的请求。
PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。
CGI(Common Gateway Interface)是一种通用网关接口,是 Web 服务器与外部程序(通常是脚本)之间进行交互的一种标准。它允许 Web 服务器动态生成网页内容,并将内容发送给客户端浏览器。CGI 脚本可以使用各种编程语言编写,如 Perl、Python、PHP、Ruby 等,它们被称为 CGI 脚本语言。这些脚本语言与 Web 服务器之间的交互遵循 CGI 协议的标准,以实现动态生成网页内容的功能
相较于传统的 CGI,FastCGI 提供了更高的性能和更好的扩展性
漏洞成因nginx.conf文件中的配置
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_split_p ...