Empire 2.5:PowerShell渗透测试实战指南(上篇)
字数 1707 2025-08-18 11:37:11

Empire 2.5: PowerShell渗透测试实战指南

1. Empire框架概述

Empire是一款基于Python编写的渗透测试框架,类似于Metasploit,但专注于PowerShell代理功能。其主要特点包括:

  • 无需powershell.exe即可运行PowerShell代理
  • 内置多种后期开发模块(键盘记录器、Mimikatz等)
  • 提供适应性通信以避开网络检测
  • 采用密码安全通信和灵活架构

2. 环境搭建

2.1 推荐架构

建议使用三级跳架构确保安全性:

  1. 第一跳:代理服务器(VPS1) - 仅作端口转发
  2. 第二跳:VPN服务器(VPS2) - 连接本机与第一跳服务器
  3. 本机:安装Empire的Kali或Ubuntu虚拟机

2.2 基本安装

  1. 所需环境:Debian系统、Python
  2. 安装完成后可使用reset.sh进行框架重置或迁移

2.3 可视化框架构建

  1. 下载empire-web:

    git clone https://github.com/interference-security/empire-web.git
    service apache2 restart
    
  2. 确保PHP环境(如php7.5-curl)已安装

  3. 修改empire主文件配置:

    vim /var/www/html/Empire/empire
    
  4. 启动empire web接口:

    ./empire --headless --restport [port] --username [username_str] --password [password_str]
    
  5. 通过浏览器访问web界面

3. 基本命令

命令 功能描述
Agents 管理回连的靶机
creds 管理数据库中的凭据
interact 与现有agents交互
list 列出监听器或agents
listeners 进入监听器设置接口
load 加载自定义模块
plugin 加载自定义插件
plugins 列出所有载入的插件
preobfuscate 预混淆功能(需wine和powershell)
reload 重新加载框架
report 生成报告
reset 重置ip黑白名单、混淆项目等
resource 批量导入empire命令
searchmodule 模块关键词搜索
set 设置ip黑白名单、混淆项目等
show 查看当前框架设置
usemodule 使用特定模块
usestager 使用特定载荷

4. 渗透通道配置

4.1 监听器配置

  1. 进入listeners界面

  2. 使用uselistener命令选择监听器类型(如http)

  3. 关键配置项:

    • Name:监听器名称
    • Host:监听主机
    • Port:监听端口
    • BindIP:绑定IP(127.0.0.1或VPN网卡IP)
    • StagerURI:中转端接口路径
  4. 配置完成后使用info检查,execute执行

4.2 VPN服务器中转配置

  1. 生成中转端接口文件在/tmp/http_hop/文件夹下
  2. 将文件拷贝到VPN服务器的/var/www/html目录
  3. 重启apache2服务
  4. 在原http监听器配置StagerURI选项(包含协议和端口)
  5. 重启监听器:disableenable

5. 载荷配置

5.1 DLL载荷

  1. 使用命令:usestager windows/dll
  2. 设置Listener
  3. 执行execute生成launcher.dll
  4. 在目标主机运行launcher.dll即可上线

5.2 PowerShell载荷

  1. 在监听器菜单中键入:
    launcher <language> <listenerName>
    
  2. 生成base64编码的PowerShell代码
  3. 在目标主机执行返回shell

5.3 BAT载荷

  1. 使用launcher_bat生成bat文件
  2. 在目标主机执行返回主机标识

6. 其他注意事项

  1. 建议更改随机生成的主机名
  2. 使用help命令查看可执行的渗透和后渗透命令
  3. 预混淆功能需要系统安装wine和powershell,但稳定性较差
  4. Empire的通信流量较大,容易被流量分析工具检测

7. 安全建议

  1. 始终使用多跳架构保护真实IP
  2. 定期更新Empire框架
  3. 谨慎选择监听器和载荷类型
  4. 渗透测试前确保获得合法授权

注意:本文仅用于合法授权的渗透测试和安全研究,未经授权使用可能违反法律。

Empire 2.5: PowerShell渗透测试实战指南 1. Empire框架概述 Empire是一款基于Python编写的渗透测试框架,类似于Metasploit,但专注于PowerShell代理功能。其主要特点包括: 无需powershell.exe即可运行PowerShell代理 内置多种后期开发模块(键盘记录器、Mimikatz等) 提供适应性通信以避开网络检测 采用密码安全通信和灵活架构 2. 环境搭建 2.1 推荐架构 建议使用三级跳架构确保安全性: 第一跳:代理服务器(VPS1) - 仅作端口转发 第二跳:VPN服务器(VPS2) - 连接本机与第一跳服务器 本机:安装Empire的Kali或Ubuntu虚拟机 2.2 基本安装 所需环境:Debian系统、Python 安装完成后可使用reset.sh进行框架重置或迁移 2.3 可视化框架构建 下载empire-web: 确保PHP环境(如php7.5-curl)已安装 修改empire主文件配置: 启动empire web接口: 通过浏览器访问web界面 3. 基本命令 | 命令 | 功能描述 | |------|----------| | Agents | 管理回连的靶机 | | creds | 管理数据库中的凭据 | | interact | 与现有agents交互 | | list | 列出监听器或agents | | listeners | 进入监听器设置接口 | | load | 加载自定义模块 | | plugin | 加载自定义插件 | | plugins | 列出所有载入的插件 | | preobfuscate | 预混淆功能(需wine和powershell) | | reload | 重新加载框架 | | report | 生成报告 | | reset | 重置ip黑白名单、混淆项目等 | | resource | 批量导入empire命令 | | searchmodule | 模块关键词搜索 | | set | 设置ip黑白名单、混淆项目等 | | show | 查看当前框架设置 | | usemodule | 使用特定模块 | | usestager | 使用特定载荷 | 4. 渗透通道配置 4.1 监听器配置 进入listeners界面 使用 uselistener 命令选择监听器类型(如http) 关键配置项: Name:监听器名称 Host:监听主机 Port:监听端口 BindIP:绑定IP(127.0.0.1或VPN网卡IP) StagerURI:中转端接口路径 配置完成后使用 info 检查, execute 执行 4.2 VPN服务器中转配置 生成中转端接口文件在 /tmp/http_hop/ 文件夹下 将文件拷贝到VPN服务器的 /var/www/html 目录 重启apache2服务 在原http监听器配置StagerURI选项(包含协议和端口) 重启监听器: disable 后 enable 5. 载荷配置 5.1 DLL载荷 使用命令: usestager windows/dll 设置Listener 执行 execute 生成launcher.dll 在目标主机运行launcher.dll即可上线 5.2 PowerShell载荷 在监听器菜单中键入: 生成base64编码的PowerShell代码 在目标主机执行返回shell 5.3 BAT载荷 使用 launcher_bat 生成bat文件 在目标主机执行返回主机标识 6. 其他注意事项 建议更改随机生成的主机名 使用 help 命令查看可执行的渗透和后渗透命令 预混淆功能需要系统安装wine和powershell,但稳定性较差 Empire的通信流量较大,容易被流量分析工具检测 7. 安全建议 始终使用多跳架构保护真实IP 定期更新Empire框架 谨慎选择监听器和载荷类型 渗透测试前确保获得合法授权 注意:本文仅用于合法授权的渗透测试和安全研究,未经授权使用可能违反法律。