• windows 通过AppInit加载任意dll


    windows操作系统允许将用户提供的dll加载到所有的进程的内存空间中。该功能可以用来做后门持久化。有点类似于linux的ld_preload环境变量。在进程启动的时候,操作系统会将用户提供的dll加载。在设置该功能时,需要administrator权限。设置方法为修改注册表中两个选项

    
    HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindows
    
    HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftWindows NTCurrentVersionWindows
    

    微软默认阻止用户通过appinit功能去加载未知的dll。不过,可以通过修改注册表键值LoadAppInit_DLLs为1去关闭该功能。将待加载的dll保存在Program Files文件夹,并且将AppInit_DLLs键值修改为待加载dll的路径,即可让所有windows进程都加载该dll。
    这是因为在“ AppInit_DLLs”注册表项中指定的DLL是由user32.dll加载的,几乎所有应用程序都使用该user32.dll。

    Enable LoadAppInit_DLLs - 32bit and 64bit
     
    HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindowsLoadAppInit_DLLs - 0x1
    HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftWindows NTCurrentVersionWindowsLoadAppInit_DLLs - 0x1
     
    Registry Key for Arbitrary DLL via AppInit - 32bit and 64bit
     
    HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLs
    HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLs
    
    

    当然,每个进程都加载dll,并反弹shell的话,会很杂乱。所以,有人开发了一个dll工具https://www.didierstevens.com/files/software/LoadDLLViaAppInit_V0_0_0_1.zip,通过
    LoadDLLViaAppInit.bl.txt文件来决定哪些应用程序去加载用户指定的appinit dll。
    f69c84a4edaa8eb3c6030f24039a7bca.png

    67266a2fa0222941dd92245048ca1159.png

  • 相关阅读:
    Python 内置函数
    Python OS 文件/目录方法
    python import导入模块
    Python 变量、作用域、闭包
    Python3 迭代器(generate)与生成器(yield) 装饰器(decorator) 上下文管理器(context manager)
    SpringBoot Admin的简单使用
    java学习网址
    idea的破解码
    Jmeter响应内容显示乱码问题的解决办法
    ClickHouse 库引擎
  • 原文地址:https://www.cnblogs.com/potatsoSec/p/12171642.html
Copyright © 2020-2023  润新知