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

PowerShdll源码深度分析:从DLL导出到控制台劫持的完整实现原理

PowerShdll源码深度分析从DLL导出到控制台劫持的完整实现原理【免费下载链接】PowerShdllRun PowerShell with rundll32. Bypass software restrictions.项目地址: https://gitcode.com/gh_mirrors/po/PowerShdllPowerShdll是一个创新的PowerShell绕过工具它允许用户在不直接调用powershell.exe的情况下运行PowerShell脚本。这个安全研究工具通过DLL文件实现PowerShell功能能够绕过多种软件限制和应用程序白名单策略。在前100字的介绍中我们已经提到了PowerShdll的核心功能通过DLL运行PowerShell并绕过软件限制。本文将深入解析PowerShdll的源码实现原理从DLL导出函数到控制台劫持的完整技术栈。 PowerShdll项目概述PowerShdll是一个专门为安全研究人员和渗透测试人员设计的工具其主要目标是在受限制的环境中执行PowerShell命令。与传统的PowerShell执行方式不同PowerShdll不依赖powershell.exe可执行文件而是直接调用PowerShell自动化DLL实现了软件限制绕过和应用程序控制规避。 项目结构解析项目包含两个主要组件DLL模式(dll/目录) - 核心实现支持多种加载方式EXE模式(exe/目录) - 独立可执行文件版本关键文件路径核心逻辑实现dll/Common.csDLL入口点dll/Program.csEXE入口点exe/Program.cs️ DLL导出函数的巧妙设计PowerShdll的DLL模式是其最精妙的部分。通过精心设计的DLL导出函数它可以被多种系统工具加载执行主要导出函数在dll/Program.cs中定义了三个关键的导出函数[DllExport(main, CallingConvention CallingConvention.Cdecl)] public static void main(IntPtr hwnd, IntPtr hinst, string lpszCmdLine, int nCmdShow) [DllExport(DllRegisterServer, CallingConvention CallingConvention.StdCall)] public static void DllRegisterServer() [DllExport(DllUnregisterServer, CallingConvention CallingConvention.StdCall)] public static void DllUnregisterServer()多加载方式支持这种设计使得PowerShdll.dll可以通过以下方式加载rundll32.exe- 最常用的加载方式rundll32 PowerShdll,main scriptinstallutil.exe- .NET安装工具installutil.exe /logfile /LogToConsolefalse /U PowerShdll.dllregsvcs.exe- COM服务注册工具regsvcs.exe PowerShdll.dllregasm.exe- .NET程序集注册工具regasm.exe /U PowerShdll.dllregsvr32.exe- DLL注册工具regsvr32 /s PowerShdll.dll 控制台劫持技术深度解析PowerShdll的核心技术之一是控制台劫持这使得它能够在父进程的控制台中输出结果实现无缝交互。控制台管理类在dll/Common.cs中PSConsole类实现了控制台管理功能static class PSConsole { [DllImport(kernel32.dll, EntryPoint GetStdHandle, ...)] private static extern IntPtr GetStdHandle(int nStdHandle); [DllImport(kernel32.dll, EntryPoint AllocConsole, ...)] private static extern int AllocConsole(); [DllImport(kernel32, SetLastError true)] static extern bool AttachConsole(uint dwProcessId); }两种控制台获取方式创建新控制台(getNewConsole方法)使用AllocConsole()API创建全新的控制台窗口适用于rundll32等没有控制台的父进程劫持现有控制台(stealConsole方法)使用AttachConsole()API附加到父进程的控制台获取父进程的标准输出句柄重定向输出到当前进程进程挂起与恢复机制PowerShdll在交互模式下会挂起父进程防止控制台冲突pp Process.GetCurrentProcess().Parent(); pp.Suspend(); // 挂起父进程 PSConsole.stealConsole(pp); // 劫持控制台 // ... 执行PowerShell命令 ... pp.Resume(); // 恢复父进程 PowerShell执行引擎实现PowerShdll的PowerShell执行引擎封装在PS类中位于dll/Common.cs初始化PowerShell运行空间public class PS { Runspace runspace; Pipeline pipeline; public PS() { runspace RunspaceFactory.CreateRunspace(); runspace.Open(); pipeline runspace.CreatePipeline(); } }命令执行流程创建运行空间- 建立PowerShell执行环境构建管道- 设置命令执行管道添加命令- 将用户输入的命令添加到管道执行并获取结果- 异步执行并捕获输出错误处理- 捕获并处理执行错误 启动流程与参数解析PowerShdll的启动逻辑在PowerShdll类的start方法中实现支持多种运行模式参数解析逻辑public void start(string[] args) { // 支持的模式 // -h: 显示帮助信息 // -w: 在新窗口中启动交互式控制台默认 // -i: 在当前控制台中启动交互式控制台 // -f path: 运行指定文件中的脚本 // -n: 不显示输出用于无控制台环境 }交互模式实现交互模式允许用户像使用普通PowerShell一样输入命令public void interact() { while (true) { Console.Write(PS); string cmd Console.ReadLine(); if (cmd exit) break; Console.Write(ps.exe(cmd)); } }️ 安全特性与绕过机制PowerShdll的设计包含多个安全绕过特性1. 无文件执行不需要powershell.exe文件直接使用PowerShell自动化DLL绕过基于文件路径的检测2. 进程继承继承父进程的安全上下文在受信任的进程如rundll32中运行绕过进程白名单3. 内存执行脚本可以在内存中执行减少磁盘痕迹支持Base64编码的脚本4. 多种加载方式提供5种不同的DLL加载方法增加检测难度适应不同的环境限制 技术架构对比特性传统PowerShellPowerShdll执行方式powershell.exeDLL加载检测难度高低依赖项PowerShell可执行文件PowerShell自动化DLL加载方式单一5种不同方式控制台输出直接输出控制台劫持适用场景普通环境受限环境 使用场景与实战应用红队渗透测试在受限环境中执行PowerShell命令绕过应用程序白名单维持持久性访问蓝队防御研究了解攻击者可能使用的绕过技术开发相应的检测规则测试安全控制的有效性系统管理在严格策略环境下执行管理脚本兼容旧系统环境提供备用执行路径⚠️ 注意事项与限制已知限制错误显示问题- 某些错误可能不会显示在输出中空格处理- Rundll32参数中的多个空格可能导致问题控制台依赖- 需要父进程有控制台或使用-n参数使用建议权限要求- 需要适当的执行权限环境兼容性- 确保.NET框架版本兼容输出处理- 在无控制台环境中使用-n参数 总结与展望PowerShdll展示了DLL侧加载和控制台劫持技术的巧妙结合为安全研究人员提供了一个强大的PowerShell绕过工具。通过深入分析其源码我们可以了解到多加载方式设计提高了工具的适应性和隐蔽性控制台劫持技术实现了无缝的用户交互体验模块化架构使得代码易于维护和扩展安全考虑贯穿整个设计过程对于安全研究人员来说理解PowerShdll的实现原理不仅有助于更好地使用这个工具还能为开发类似的安全工具提供宝贵的技术参考。随着安全防护技术的不断演进这种绕过技术的研究将变得越来越重要。提示PowerShdll仅用于合法的安全研究和渗透测试使用时请确保获得系统所有者的明确授权。通过本文的深度分析相信您已经对PowerShdll的源码实现原理有了全面的了解。无论是作为安全研究工具还是作为技术学习案例这个项目都值得深入研究和探索。【免费下载链接】PowerShdllRun PowerShell with rundll32. Bypass software restrictions.项目地址: https://gitcode.com/gh_mirrors/po/PowerShdll创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关文章:

PowerShdll源码深度分析:从DLL导出到控制台劫持的完整实现原理

PowerShdll源码深度分析:从DLL导出到控制台劫持的完整实现原理 【免费下载链接】PowerShdll Run PowerShell with rundll32. Bypass software restrictions. 项目地址: https://gitcode.com/gh_mirrors/po/PowerShdll PowerShdll是一个创新的PowerShell绕过工…...

Python封装币安API:从零构建Binance-Claw量化数据工具

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目,叫“Binance-Claw”,作者是Scandalousnessmotley216。光看这个名字,可能有点摸不着头脑,“Claw”是爪子的意思,难道是要“抓取”币安的数据?点…...

DDrawCompat v0.6.0:终极指南,让经典游戏在现代Windows系统完美重生

DDrawCompat v0.6.0:终极指南,让经典游戏在现代Windows系统完美重生 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.…...

3分钟掌握DeepMosaics:AI智能马赛克处理与图像修复的终极指南

3分钟掌握DeepMosaics:AI智能马赛克处理与图像修复的终极指南 【免费下载链接】DeepMosaics Automatically remove the mosaics in images and videos, or add mosaics to them. 项目地址: https://gitcode.com/gh_mirrors/de/DeepMosaics 在数字时代&#x…...

深度解析Kosmosaos:定制Linux系统镜像的构建、部署与自动化实践

1. 项目概述:一个面向未来的操作系统镜像最近在开源社区里,一个名为chasefort/kosmosaos的项目镜像引起了我的注意。乍一看这个名字,可能会觉得有些陌生,甚至有点“缝合”的感觉——它似乎融合了“Kosmos”和“AOS”的概念。但当你…...

gomicro如何安装部暑

根据最新官方文档,以下是 go-micro(v5 最新版) 的完整安装与部署指南。目前最新稳定版本为 v5.16.0,推荐使用特定版本号安装以避免模块路径冲突。---一、环境准备 要求 说明 Go Go 1.21(建议最新版) …...

Obsidian笔记AI化:AnythingLLM带来的知识管理革新

Obsidian笔记AI化:AnythingLLM带来的知识管理革新 【免费下载链接】anything-llm The all-in-one AI productivity accelerator. On device and privacy first with no annoying setup or configuration. 项目地址: https://gitcode.com/GitHub_Trending/an/anyth…...

3个StreamFX插件核心功能:如何让OBS直播画面瞬间变专业?

3个StreamFX插件核心功能:如何让OBS直播画面瞬间变专业? 【免费下载链接】obs-StreamFX StreamFX is a plugin for OBS Studio which adds many new effects, filters, sources, transitions and encoders! Be it 3D Transform, Blur, complex Masking, …...

基于开源项目构建实时语音AI对话系统:从ASR、LLM到TTS的完整技术栈解析

1. 项目概述与核心价值 最近在折腾一个挺有意思的东西,一个叫 bigsk1/voice-chat-ai 的开源项目。简单来说,它让你能和一个AI进行实时的语音对话,就像打电话一样。你对着麦克风说话,AI不仅能听懂,还能思考&#xff0…...

5分钟上手biliTickerBuy:开源B站会员购抢票自动化工具终极指南

5分钟上手biliTickerBuy:开源B站会员购抢票自动化工具终极指南 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy biliTickerBuy是一款开源免费的B站会员购辅助工具,专为技…...

如何用智能标记插件3秒筛选最新招聘岗位:开源求职助手完整指南

如何用智能标记插件3秒筛选最新招聘岗位:开源求职助手完整指南 【免费下载链接】NewJob 一眼看出该职位最后修改时间,绿色为2周之内,暗橙色为1.5个月之内,红色为1.5个月以上 项目地址: https://gitcode.com/GitHub_Trending/ne/…...

Chat-with-NeRF:三维场景重建与对话式AI的融合实践

1. 项目概述:当NeRF遇见对话式AI最近在三维视觉和AIGC的交叉领域,一个名为“chat-with-nerf”的项目引起了我的注意。简单来说,它实现了一个听起来很科幻的功能:你上传一张或多张照片,系统会基于这些照片重建出一个三维…...

MASA全家桶汉化包:三步搞定Minecraft模组界面中文化的终极指南

MASA全家桶汉化包:三步搞定Minecraft模组界面中文化的终极指南 【免费下载链接】masa-mods-chinese 一个masa mods的汉化资源包 项目地址: https://gitcode.com/gh_mirrors/ma/masa-mods-chinese 还在为Masa Mods复杂的英文界面而烦恼吗?MASA全家…...

多语言支持秘籍:validatorjs国际化错误消息配置终极指南

多语言支持秘籍:validatorjs国际化错误消息配置终极指南 【免费下载链接】validatorjs A data validation library in JavaScript for the browser and Node.js, inspired by Laravels Validator. 项目地址: https://gitcode.com/gh_mirrors/va/validatorjs …...

古典戏曲研究新范式,NotebookLM+《牡丹亭》原始刻本实测:自动生成曲牌-情感-舞台调度三维映射表

更多请点击: https://intelliparadigm.com 第一章:NotebookLM戏剧研究辅助的范式革命 传统戏剧研究长期依赖人工文本细读、跨剧目比对与历史语境重建,耗时冗长且易受主观经验局限。NotebookLM 的引入,标志着从“线性阅读—笔记摘…...

wBlock Safari扩展架构详解:5个内容拦截扩展的协同工作原理

wBlock Safari扩展架构详解:5个内容拦截扩展的协同工作原理 【免费下载链接】wBlock The next-generation ad blocker for Safari. 项目地址: https://gitcode.com/gh_mirrors/wb/wBlock wBlock是一款下一代Safari广告拦截器,通过创新的多扩展架构…...

简单易学:awesome-embedding-models 中负采样技术的完整实现指南

简单易学:awesome-embedding-models 中负采样技术的完整实现指南 【免费下载链接】awesome-embedding-models A curated list of awesome embedding models tutorials, projects and communities. 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-embedding…...

KeyboardChatterBlocker:免费开源键盘防连击工具终极指南

KeyboardChatterBlocker:免费开源键盘防连击工具终极指南 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 你是否曾经遇到过键…...

‌吴哥窟水文测试:验证古代水库管理AI的智慧‌

一、从古代水利到现代AI测试的跨越吴哥窟,这座位于柬埔寨的古代都城遗址,以其宏伟的寺庙建筑群闻名于世。然而,鲜为人知的是,支撑这座城市繁荣数百年的,是一套复杂而精密的水管理系统。这套建于9至13世纪的水利工程&am…...

从零到发刊:NotebookLM在有机合成路线设计中的7步闭环工作法,北大化学院实验室内部培训材料首次公开

更多请点击: https://codechina.net 第一章:NotebookLM化学研究辅助 NotebookLM 是 Google 推出的基于 AI 的研究协作者,专为深度阅读、知识整合与推理设计。在化学研究场景中,它可高效处理文献 PDF、实验记录、光谱数据报告及教…...

在Windows 11 LTSC版本中找回微软商店的3分钟魔法

在Windows 11 LTSC版本中找回微软商店的3分钟魔法 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否正在使用Windows 11 24H2 LTSC版本&#xff0…...

EVA-7M,支持GPS/GLONASS及低功耗省电模式的超紧凑型GNSS模块

简介今天我要向大家介绍的是 u-blox 的超紧凑型独立GNSS定位模块——EVA-7M。这是一款专为对成本和空间敏感的应用而设计的独立GNSS模块。该模块基于 u-blox 7 定位引擎(接收GPS、GLONASS、QZSS和SBAS信号)设计,采用行业最小的独立GNSS封装尺…...

PyInstaller Extractor终极指南:5分钟学会提取可执行文件源码

PyInstaller Extractor终极指南:5分钟学会提取可执行文件源码 【免费下载链接】pyinstxtractor PyInstaller Extractor 项目地址: https://gitcode.com/gh_mirrors/py/pyinstxtractor 你是否曾经面对一个PyInstaller打包的可执行文件,想要查看其中…...

nvm-windows深度实战:Windows平台Node.js版本管理的系统化解决方案

nvm-windows深度实战:Windows平台Node.js版本管理的系统化解决方案 【免费下载链接】nvm-windows A node.js version management utility for Windows. Ironically written in Go. 项目地址: https://gitcode.com/gh_mirrors/nv/nvm-windows nvm-windows是一…...

手把手教你学Simulink--电动物流车预充电路控制及主继电器粘连检测电机负载仿真

目录 手把手教你学Simulink--电动物流车预充电路控制及主继电器粘连检测电机负载仿真 摘要 Abstract 1. 引言 1.1 电动物流车发展背景 1.2 研究目的与意义 1.3 研究方法与内容 2. 文献综述 2.1 电动物流车预充电路研究现状 2.2 主继电器粘连检测技术进展 2.3 Simulin…...

【MYSQL】在Centos7和ubuntu22.04环境下安装

一.MYSQL在Centos7下的安装注意:安装与卸载中,⽤⼾全部切换成为root初期练习,mysql不进⾏⽤⼾管理,全部使⽤root进⾏1.卸载内置环境1-1卸载不要的环境[rootVM-0-3-centos ~]$ ps ajx |grep mariadb # 先检查是否有mariadb存在 131…...

浏览器资源嗅探神器猫抓Cat-Catch:3分钟学会抓取网页视频音频资源

浏览器资源嗅探神器猫抓Cat-Catch:3分钟学会抓取网页视频音频资源 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过想下…...

OpCore Simplify:2024年黑苹果EFI自动化配置生成工具终极指南

OpCore Simplify:2024年黑苹果EFI自动化配置生成工具终极指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾因为OpenCore配置的…...

如何快速解决多设备滚动冲突:Scroll Reverser终极配置指南

如何快速解决多设备滚动冲突:Scroll Reverser终极配置指南 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 你是否曾经在Mac上同时使用触控板和鼠标时,被混…...

BilibiliDown:跨平台B站视频下载完整解决方案实战指南

BilibiliDown:跨平台B站视频下载完整解决方案实战指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/b…...