红蓝对:安装包钓鱼与反钓鱼
字数 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)

六、防御措施

  1. 谨慎安装软件

    • 只从官方或可信来源下载安装包
    • 验证安装包的数字签名
  2. 监控DLL加载

    • 使用安全软件监控异常DLL加载行为
    • 关注DLL加载路径是否异常
  3. 权限控制

    • 遵循最小权限原则
    • 避免使用高权限账户运行不明程序
  4. 安全意识

    • 对可疑的"更新"或"补丁"保持警惕
    • 遇到异常情况及时报告安全团队
  5. 技术防护

    • 部署EDR等终端防护方案
    • 启用应用程序白名单

七、总结

DLL劫持与安装包重打包是红蓝对抗中有效的攻击与反制手段。红队可利用该技术进行隐蔽渗透,蓝队也可用于反钓鱼。关键在于:

  1. 选择合适的劫持目标
  2. 制作免杀的DLL文件
  3. 制作逼真的安装包
  4. 解决进程持续性问题
  5. 合理部署钓鱼/反钓鱼陷阱

无论是攻击还是防御,都需要保持冷静、谨慎和多思考,才能在红蓝对抗中占据优势。

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) 修复快捷方式问题 若快捷方式未创建成功,需修改代码: 重新编译打包 (9) 验证效果 运行打包后的安装程序 检查CS是否成功上线 验证快捷方式是否创建成功 四、实战应用思路 1. 红队钓鱼利用 以版本更新或其他合理理由下发重打包的安装包 利用安装过程逼真且安装后软件可正常使用的特点降低目标警觉性 2. 蓝队反钓鱼利用 配合蜜罐系统使用: 蜜罐主机 蜜罐内网 在网站目录下伪造文件: 如 www.rar 包含软件安装包和密码 吸引红队人员下载安装 放置于可能被攻陷的服务器上: 一旦被点击安装即表明服务器已沦陷 可对攻击者进行反制 五、技术难点与解决方案 1. 进程持续性问题 问题 :EXE关闭后DLL运行终止 解决方案 : 第一时间迁移会话到其他进程 使用进程注入技术保持持久性 2. 免杀问题 问题 :CS/MSF生成的DLL易被杀软检测 解决方案 : 使用shellcode加载器 采用分离免杀技术 PowerShell免杀 远程线程注入免杀(示例中成功绕过360) 六、防御措施 谨慎安装软件 : 只从官方或可信来源下载安装包 验证安装包的数字签名 监控DLL加载 : 使用安全软件监控异常DLL加载行为 关注DLL加载路径是否异常 权限控制 : 遵循最小权限原则 避免使用高权限账户运行不明程序 安全意识 : 对可疑的"更新"或"补丁"保持警惕 遇到异常情况及时报告安全团队 技术防护 : 部署EDR等终端防护方案 启用应用程序白名单 七、总结 DLL劫持与安装包重打包是红蓝对抗中有效的攻击与反制手段。红队可利用该技术进行隐蔽渗透,蓝队也可用于反钓鱼。关键在于: 选择合适的劫持目标 制作免杀的DLL文件 制作逼真的安装包 解决进程持续性问题 合理部署钓鱼/反钓鱼陷阱 无论是攻击还是防御,都需要保持冷静、谨慎和多思考,才能在红蓝对抗中占据优势。