红蓝对:安装包钓鱼与反钓鱼
字数 1869 2025-08-12 11:34:09
DLL劫持与安装包钓鱼技术详解
一、概述
DLL劫持与安装包钓鱼是红蓝对抗中常用的攻击手段,红队可利用该技术进行渗透,蓝队也可用于反制红队。本文将从技术原理、实现步骤、实战应用和防御措施等方面进行详细讲解。
二、DLL劫持技术
1. 基本原理
DLL劫持(DLL Hijacking)是一种利用Windows系统DLL加载机制漏洞的攻击技术。当程序运行时,系统会按照特定顺序搜索并加载所需的DLL文件。攻击者可以构造恶意DLL文件,放置在程序搜索路径中优先于合法DLL的位置,从而让程序加载恶意DLL而非合法DLL。
2. 实现步骤
(1) 准备恶意DLL文件
- 可使用Cobalt Strike(CS)或Metasploit(MSF)生成的DLL木马
- 也可自行制作免杀DLL文件
- 示例使用CS自带的DLL木马
(2) 选择目标软件
- 选择需要劫持的正常软件
- 示例选择某VPN客户端软件
(3) 实施DLL劫持
- 手动方式:需要Windows逆向基础,修改导入表
- 工具方式:使用"拿破轮胎"一键DLL注入工具
- 点击"劫持文件"
- 选择生成的DLL文件和目标EXE文件
- 将DLL注入到导入表中
- 提示导入成功后,将恶意DLL和EXE放在同一目录
(4) 验证劫持效果
- 双击运行被劫持的EXE
- 检查CS是否成功接收到会话
3. 注意事项
- 当EXE关闭后,DLL运行也会终止,需第一时间迁移会话到其他进程
- 命令示例:
inject 9268 x64
- 命令示例:
- 自动生成的DLL可能被杀软检测,需制作免杀DLL
- 可使用shellcode加载器
- 分离免杀技术
- PowerShell免杀
- 远程线程注入免杀(示例中成功绕过360)
三、安装包重打包技术
1. 工具准备
- 使用NSIS(Nullsoft Scriptable Install System)工具
- 下载地址:http://www.pc6.com/softview/SoftView_14342.html
2. 重打包步骤
(1) 创建安装脚本
- 打开NSIS工具
- 点击"可视化脚本编辑器"
- 选择"使用脚本向导创建新的脚本文件"
(2) 配置应用程序信息
- 填写应用程序基本信息
- 点击"下一步"
(3) 设置安装程序外观
- 选择安装程序图标文件
- 设置安装程序名称
- 点击"下一步"
(4) 设置安装选项
- 使用默认设置
- 连续点击"下一步"直到文件选择步骤
(5) 指定应用程序文件
- 选择被DLL劫持的应用程序文件夹
- 必须勾选"包含子目录"
(6) 设置快捷方式
- 编辑快捷方式
- 设置安装完成后自动运行
(7) 完成编译
- 使用默认设置完成向导
- 编译打包
(8) 修复快捷方式问题
- 若快捷方式未创建成功,需修改代码:
CreateShortCut "$DESKTOP\EasyConnectdll.lnk" "$INSTDIR\SangforCSClient\SangforCSClient.exe" "" "$INSTDIR\SangforCSClient\EasyConnect.ico"
- 重新编译打包
(9) 验证效果
- 运行打包后的安装程序
- 检查CS是否成功上线
- 验证快捷方式是否创建成功
四、实战应用思路
1. 红队钓鱼利用
- 以版本更新或其他合理理由下发重打包的安装包
- 利用安装过程逼真且安装后软件可正常使用的特点降低目标警觉性
2. 蓝队反钓鱼利用
- 配合蜜罐系统使用:
- 蜜罐主机
- 蜜罐内网
- 在网站目录下伪造文件:
- 如
www.rar包含软件安装包和密码 - 吸引红队人员下载安装
- 如
- 放置于可能被攻陷的服务器上:
- 一旦被点击安装即表明服务器已沦陷
- 可对攻击者进行反制
五、技术难点与解决方案
1. 进程持续性问题
- 问题:EXE关闭后DLL运行终止
- 解决方案:
- 第一时间迁移会话到其他进程
- 使用进程注入技术保持持久性
2. 免杀问题
- 问题:CS/MSF生成的DLL易被杀软检测
- 解决方案:
- 使用shellcode加载器
- 采用分离免杀技术
- PowerShell免杀
- 远程线程注入免杀(示例中成功绕过360)
六、防御措施
-
谨慎安装软件:
- 只从官方或可信来源下载安装包
- 验证安装包的数字签名
-
监控DLL加载:
- 使用安全软件监控异常DLL加载行为
- 关注DLL加载路径是否异常
-
权限控制:
- 遵循最小权限原则
- 避免使用高权限账户运行不明程序
-
安全意识:
- 对可疑的"更新"或"补丁"保持警惕
- 遇到异常情况及时报告安全团队
-
技术防护:
- 部署EDR等终端防护方案
- 启用应用程序白名单
七、总结
DLL劫持与安装包重打包是红蓝对抗中有效的攻击与反制手段。红队可利用该技术进行隐蔽渗透,蓝队也可用于反钓鱼。关键在于:
- 选择合适的劫持目标
- 制作免杀的DLL文件
- 制作逼真的安装包
- 解决进程持续性问题
- 合理部署钓鱼/反钓鱼陷阱
无论是攻击还是防御,都需要保持冷静、谨慎和多思考,才能在红蓝对抗中占据优势。