注入技术系列:一个批量验证DLL劫持的工具

作者:anhkgg
日期:2019年11月3日

很多时候,可能会对某个软件进行DLL劫持。

而这个软件是否存在DLL劫持漏洞,需要去分析验证。

比如通过IDA查看导入的DLL,或者LoadLibrary的DLL,然后慢慢排除某些KnownDlls,排除某些绝对路径加载的DLL…

或者通过Windbg分析。

虽然技术难度不高,但是挺费事的。

本篇文章分享我找DLL劫持的方法,不一定是最佳,不过很方便。

1

首先,通过windbg启动软件,设置(默认开启的):

Debug->Event Filters->Load module,勾选Output

然后go运行。这样我们可以看到运行后,软件导入表导入的DLL,以及LoadLibrary加载的DLL的所有文件,如下所示:

ModLoad: 75090000 750cb000   C:\Windows\system32\rsaenh.dll
ModLoad: 757c0000 757cc000   C:\Windows\system32\CRYPTBASE.dll
ModLoad: 778b0000 778da000   C:\Windows\system32\imagehlp.dll
ModLoad: 77860000 778a5000   C:\Windows\system32\WLDAP32.dll

2

写一个测试的DLL,只用下面的代码:

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    char path[MAX_PATH] = { 0 };
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
        OutputDebugStringA(path);
        OutputDebugStringA("success!");
        MessageBoxA(NULL, "success!", "Tips", MB_OK);
        ExitProcess(0);
        break;
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

然后讲DLL改名成劫持目标DLL,放到软件目录下,运行验证即可。

如果出现提示success则表示该目标DLL劫持成功。

3

如果DLL太多了,一一验证排除肯定很麻烦,所以程序员又要写代码了。

写一个自动批量验证的工具,基本思路如下:

  • 把windbg拿到的dll列表保存下来
  • 准备好测试DLL,DLL中加入写log功能
  • 分析dll列表,一一把测试DLL拷贝为目标dll,启动软件
  • 然后把log提取出来,可以看到成功劫持的dll

在这里插入图片描述

工具界面如上,一键验证所有DLL,分分钟拿到结果。

工具会分享到https://github.com/anhkgg/anhkgg-tools下,欢迎使用,如有bug,请联系我。

QQ交流群:753894145

如果觉得内容还不错,欢迎关注公众号:汉客儿

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
易游网络验证插件是为软件作者设计的一套完整免费的用户登录权限网络验证体系。可以为开发的软件增加收费授权的功能,让作者开发的软件可以进行登陆验证、销售、充值等操作,并且提供防破解验证功能,可以更好的保护您的作品。同时增加了一系列代理管理机制,让您更好的管理代理售卡、换卡、结算等操作。支持的程序语言有:C#、c++、VB、VC、易语言、按键精灵等能调用dll的相关开发语言。 使用易游网络验证插件的特点: 1、完全免费使用 使用易游网络验证服务,完全免费使用:用户登录、代理管理、卡密管理等基本功能,无需担心收费功能影响软件使用! 2、节省软件成本 使用易游网络验证服务,不需要购置服务器,登录易游后台配置自己的应用程序相关设置,客户端直接调用COM组件就能实现网络验证! 3、缩短开发周期 不需要过多的繁琐操作,调用易游网络验证COM组件或者webservice就可以实现验证机制,无需再书写验证用户登录,用户管理,卡密管理等繁琐的代码,开发软件只要专注程序代码即可! 4、安全防破解 将重要数据存放在服务器中,只有当客户登陆成功后才会返回相应的重要数据,就算被破解的,没有这些重要数据,破解出来的也是无法使用!同时,使用易游提供的COM组件,内置安全的传输加密机制,让软件重要数据在传输过程中更安全! 5、代理管理更简单 使用易游网络验证服务后台管理,可以对各个程序的每个代理单独进行管理。同时增加了一系列代理管理机制,让您跟更好的管理代理售卡、换卡、结算等操作!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值