跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

使用xwizard.exe加载DLL


风尘剑心

推荐的帖子

0x00 前言

上一篇文章介绍了使用Excel的技巧。应用程序对象的注册XLL()来加载dll。本文继续介绍一个更通用的方法3354,这是最近才学会的,由xwizard.exe加载dll。

这种方式最大的特点是xwizard.exe自带微软签名,一定程度上可以绕过应用白名单的拦截。

参考链接:

http://www . hexa corn . com/blog/2017/07/31/the-wizard-of-x-oppa-plugx-style/

0x01 简介

本文将介绍以下内容:

xwizard.exe简介

利用理念

实物试验

0x02 xwizard.exe简介

应该是可扩展向导的缩写。中文翻译可以扩展到向导主机进程,官方信息暂时不提供。

支持Win7及以上操作系统

在%windir%\system32\下。

双击运行,弹出操作说明,如下图所示。

2-1.png

支持参数如下:

xwizard processXMLFile

xwizard运行向导

xwizard运行PropertySheet

示例:

xwizard processXMLFile 1.txt

xwizard run wizard/u { 11111111-1111-1111-1111111111 }

xwizard run property sheet/u { 111111111-1111-1111-111111111 }

注:

参数中的GUID长度是固定的,否则弹出框会给出错误,如下图所示

2-2.png

0x03 利用思路

这部分验证了Adam@Hexacorn的想法。文章的地址是:

http://www . hexa corn . com/blog/2017/07/31/the-wizard-of-x-oppa-plugx-style/

在xwizard.exe的同级目录中有一个专门的文件xwizards.dll。

使用IDA查看xwizards.dll的导出功能,如下图所示

3-1.png

我们可以看到,xwizards.dll的导出函数名称与xwizard.exe支持的参数名称非常接近。

猜想xwizard.exe的功能是通过调用xwizards.dll来实现的。

使用IDA反向xwizard.exe来验证我们的判断,如下所示。

3-2.png

对于LoadLibraryEx函数,因为没有指定dll的绝对路径,所以使用相对路径,所以搜索顺序是:

当前进程目录

SetDllDirectory设置的路径

Windows系统目录路径,即c:\windows\system32

16位系统目录,即c:\windows\system

Windows目录,即c:\windows

PATH环境变量中列出的目录

也就是说,如果将xwizard.exe复制到另一个任意目录,并在同级目录中保存一个自己编写的xwizards.dll,则xwizard.exe执行时会先调用同级目录中的xwizards.dll,而不会加载%windir%\system32\下的xwizards.dll。

这实现了使用xwizard.exe来加载我们自己的dll。

0x04 实际测试

测试系统:Win7 x86

1、复制xwizard.exe至新目录C:\x

2、编写dll

使用vc 6.0创建一个新的dll项目,并在case DLL_PROCESS_ATTACH下添加项目符号框代码

并且将不详细描述工艺优化方法。请参考文章《Use Office to maintain persistence》。

编译后的dll下载地址如下:

https://github.com/3gstudent/test/blob/master/msg.dll

dll加载成功后,会弹出。

3、测试

直接执行xwizard.exe,不弹出帮助对话框。

使用进程监视器监控系统,检查xwizard.exe是否正常运行。

如下图

4-1.png

Xwizard.exe正常执行,但没有试图加载xwizards.dll。

同样,通过命令行使用以下参数执行测试:

xwizard processXMLFile 1.txt

检查过程监视器输出结果。

如下图

4-2.png

xwizards.dll先尝试加载C:\x\xwizards.dll,加载失败后再尝试加载C:\ windows \ system32 \ xwizards.dll(再次确认了dll加载顺序的判断)。

接下来,将msg.dll重命名为xwizards.dll,并保存在C:\x中

命令行执行:

xwizard processXMLFile 1.txt

C:\x\xwizards.dll加载成功,弹出对话框。

如下图

4-3.png

测试成功。

0x05 补充

64位系统:

%windir%\system32\对应于64位xwizard.exe,只能加载64位xwizards.dll。

测试下图

5-1.png

%windir%\SysWOW64\对应于32位xwizard.exe,只能加载32位xwizards.dll。

测试下图

5-2.png

0x06 小结

介绍了利用xwizard.exe加载动态链接库的技术。特别的一点是,xwizard.exe含有微软签名,所以在一定程度上可以绕过应用白名单的拦截。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...