安全随笔之dll劫持
安全测试笔记之一
环境篇
以下是我的原生环境
- macOS Big Sur
- 16G+512G
环境准备
- 虚拟机(Big Sur使用PD16正版,其他Mac版本VM,PD随意,毕竟省钱...)
- Windows7或者Windows10 iso镜像(msdn下载即可)
- phpstudy
- Dvwa
- ChkDllHiJack工具:输入exe位置以及dll列表,检测程序是否有dll注入漏洞
- processexplorer工具:微软官方工具,可以查看exe运行时调用了哪些dll文件
- 处理dll文件脚本
正式内容
1 虚拟机安装
https://msdn.itellyou.cn/ 下载需要的镜像
-
macOS>11,使用 PD16(Parallels Desktop)
-
macOs<11,VM,PD各个版本都可以
-
Windows,VM
注意:如果最新版MAC系统使用VM老版本,会直接无法使用;使用VM最新版本,vm tools可能会无法安装;使用PD老版本,无法使用
小知识点,虚拟机网络连接模式有三种:
- 桥接模式:跟宿主机是兄弟,同属于一个局域网
- NAT模式:跟宿主机是父子,处于宿主机的局域网下
- 仅主机模式:仅主机模式下的虚拟机同处一个局域网,无法访问宿主机
2 phpstudy+dvwa
- 虚拟机中window系统安装好之后,将phpstudy文件解压,安装;
- 运行phpstudy,将dvwa文件夹放在WWW文件夹下;
- 浏览器进127.0.0.1/dvwa,发现报错;
- 根据报错提示将dvwa文件下config文件备份并修改;
- 再次进入127.0.0.1/dvwa,发现OK
- 没有安装数据库的话提前安装数据库,反正我不安装,后期用docker
3 dll文件漏洞
这个就直接附上操作步骤好了,按照这个步骤去找对应的exe文件测试吧,cnvd我已经提了2个了,大佬们加油!
- 打开待测exe文件
- 用Process Explorer查看待测exe打开调用的dll
- ctrl+s保存文件,使用脚本文件处理,得到一个新的纯dll列表的文件
- 关闭待测软件,找到exe文件路径
- 打开chkDllhiJack,将待测exe文件路径以及dll列表填入相对应的位置,点击检测or运行
- 如果存在dll劫持漏洞,则输出框内出现对应的dll文件名;如果不存在,则提示no valid xxx;
- 复制payload.dll文件(打开计算器),改名为对应的dll文件名,放在exe文件同一路径下,双击exe文件,查看打开exe文件的同时是否开启了计算器。