当前位置: 首页 > news >正文

Empire--安装、使用

用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。

一、工具背景与发展

Empire 整合了原有的 PowerShell Empire 和 Python EmPyre 项目,由 BC Security 开发并维护。尽管官方已停止更新,但社区仍在持续贡献,截至 2025 年 7 月,其 GitHub 仓库仍有活跃提交,例如 Starkiller GUI 的整合和新模块支持。该工具最初用于红队演练,现广泛应用于渗透测试、安全研究和教育领域。

二、基本介绍

  • 定位:后渗透测试工具(区别于漏洞扫描工具,主要用于入侵后对目标系统的控制与利用)。
  • 核心功能:支持生成恶意 payload、建立加密通信通道(C2)、执行模块化攻击(如权限提升、凭证窃取、持久化等)。
  • 特点
    • 基于 PowerShell,无需额外安装程序,隐蔽性强;
    • 模块化设计,支持自定义攻击模块;
    • 支持多平台(以 Windows 为主,也可扩展至 Linux/macOS);
    • 通信加密(如 HTTPS),逃避流量检测

三、工作原理

PowerShell Empire 的核心原理是利用 PowerShell 的原生特性(系统自带、高权限)实现 “无文件攻击”,其工作流程可分为以下几步:

  1. 监听器(Listener)配置
    攻击机(控制端)设置监听器,指定通信协议(如 HTTP/HTTPS)、IP 和端口,用于接收目标主机的连接。监听器会生成一个唯一标识,用于后续与目标的通信验证。

  2. 生成 Stager(初始载荷)
    根据监听器配置,生成轻量的初始 payload(Stager),通常是一段 PowerShell 命令或小型可执行文件。Stager 的作用是在目标主机上执行后,主动连接攻击机的监听器,并下载更复杂的核心模块(Stage)。

  3. 目标执行 Stager
    通过社会工程学(如钓鱼邮件)或漏洞利用(如远程代码执行)让目标主机执行 Stager。Stager 执行后,会在目标内存中加载 Stage(避免写入磁盘,减少被检测的概率)。

  4. 建立 Agent(会话)
    Stage 加载后,目标主机与攻击机的监听器建立持久化通信通道,生成一个 “Agent”(会话)。攻击机可通过 Agent 向目标发送指令。

  5. 执行模块(Module)
    攻击机通过 Agent 调用 Empire 的内置模块(如 privilege escalation 提权、credentials 窃取密码、lateral_movement 横向移动等),实现对目标系统的深度控制。

四、核心功能与特点

  1. 跨平台支持

    • Windows:通过纯 PowerShell 2.0 代理运行,无需powershell.exe进程即可执行代码,降低被检测风险。
    • Linux/OS X:基于 Python 2.6/2.7 实现代理,支持隐蔽通信和权限提升。
  2. 模块化设计

    • 内置超过 150 个后渗透模块,覆盖信息收集(如sysinfo)、权限提升(如bypassuac)、凭证窃取(如mimikatz)、持久化(如注册表注入、计划任务)等功能。
    • 支持动态加载自定义模块,用户可根据需求扩展功能。
  3. 隐蔽通信机制

    • 采用 AES-256 和 RSA 加密通信,避免流量被拦截或分析。
    • 支持多种 C2 协议(如 HTTP、DNS),可自定义 User-Agent、证书和通信路径以绕过检测。
  4. 免杀与规避技术

    • 通过混淆 PowerShell 代码、修改invokeEmpire函数名等方式绕过防病毒软件(如 Windows Defender)。
    • 提供无文件执行能力,部分模块可在内存中运行,减少磁盘痕迹。
  5. 灵活的任务管理

    • 支持多代理并发控制,可通过控制台或 Starkiller GUI 远程操作。
    • 任务队列化设计,支持批量执行命令(如shelluploaddownload)并实时回传结果。

五、安装

这里我们使用docker直接拉取安装,更快,省去配置环境,只要配置好docker就好,docker安装这里就不再展示,安装命令如下所示

docker pull bcsecurity/empire:latest
从 Docker 仓库拉取最新版本的 Empire 镜像。docker run -it -p 1337:1337 -p 5000:5000 bcsecurity/empire:latest
启动 Empire 服务器容器,映射 1337 和 5000 端口并进入交互模式。docker run -it -p 1337:1337 -p 5000:5000 bcsecurity/empire:latest client
启动 Empire 客户端容器,映射端口并进入交互模式。docker container ls
列出当前正在运行的所有 Docker 容器。docker exec -it {container-id} ./ps-empire client
在指定运行的容器中启动 Empire 客户端。docker pull bcsecurity/empire:latest
再次拉取最新版本的 Empire 镜像以确保更新。docker create -v /empire --name data bcsecurity/empire:latest
创建名为 data 的 Empire 数据卷容器用于持久化存储。docker run -it -p 1337:1337 -p 5000:5000 --volumes-from data bcsecurity/empire:latest
启动 Empire 服务器容器,挂载 data 数据卷并映射端口。docker run -it -p 1337:1337 -p 5000:5000 --volumes-from data --entrypoint /bin/bash bcsecurity/empire:latest
启动容器并直接进入 bash 终端(而非默认服务),同时挂载 data 数据卷。

安装好使用docker ps -a来查看容器,并找到COMMAND中含有/bin/bash的命令所对应的ID

然后使用如下命令启动,进入已运行的服务器容器:

docker exec -it <服务器容器ID> /bin/bash  

然后使用如下命令启动

./empire

六、使用

先通过help查看帮助

介绍一下这些模块

1. 核心交互类
命令作用场景举例
agents进入 Agent 管理菜单(Agent 是目标机上的控制会话)。查看所有在线目标、筛选 Agent、管理会话(如休眠、删除)。
interact指定 Agent 交互(进入目标机的命令行上下文)。interact A1B2C3 → 对某台已上线的 Windows 主机执行提权、窃密等操作。
list列出活跃的 Agent 或监听器(Listener)。list agents 看哪些目标在线;list listeners 检查监听是否正常运行。
2. 监听器(Listener)管理
命令作用场景举例
listeners进入 监听器配置菜单(控制端接收 Agent 连接的入口)。创建 HTTP/HTTPS 监听(躲避防火墙)、设置反向代理、调整通信加密参数。
(可执行 uselistener http 配置协议,execute 启动监听)比如配置 https 监听,让目标机通过加密通道回连,避免流量被检测。
3. 模块与攻击
命令作用场景举例
usemodule加载并使用 攻击模块(提权、窃密、横向移动等核心功能)。usemodule privesc/powerup/allchecks:检测目标机提权漏洞(如 UAC 绕过);
usemodule credentials/mimikatz:用 Mimikatz 窃取明文密码。
searchmodule搜索模块(按名称或功能过滤,如 searchmodule lateral 找横向移动模块)。快速定位所需功能(如 lateral_movement/invoke_wmi 用于 WMI 横向渗透)。
load自定义目录加载模块(非默认路径的第三方 / 自制模块)。加载自己编写的漏洞利用模块(如针对新漏洞的提权脚本)。
4. 凭证与持久化
命令作用场景举例
creds管理 凭证数据库(存储窃取的账号、密码、哈希)。查看从目标机窃取的域管理员密码,用于后续横向移动(如 psexec 登录其他主机)。
preobfuscate预混淆 PowerShell 代码(躲避杀毒软件检测)。将攻击模块的脚本混淆(如变量名随机化、Base64 编码),降低被 EDR 拦截的概率。
5. 自动化与报告
命令作用场景举例
resource文件批量执行命令(类似脚本自动化)。编写包含 “配置监听→生成 Stager→执行攻击” 的命令文件,一键自动化测试。
report生成 测试报告(CSV 格式的会话、凭证日志,Master 操作日志)。渗透结束后导出报告,复盘攻击流程、收集的凭证等数据。
6. 扩展与配置
命令作用场景举例
plugin加载 插件(扩展 Empire 功能,如集成新 C2 协议、日志系统)。安装 “Slack 通知插件”,让 Empire 在 Agent 上线时发送消息到工作区。
plugins列出 已加载 / 可用插件,查看扩展功能状态。检查是否成功加载 “流量加密插件”,确保通信安全。
set/reset/show设置 / 重置 / 查看 全局选项(如 IP 白名单、监听端口)。set IPWhitelist 192.168.1.0/24:限制仅内网 IP 可连接监听器;
show IPWhitelist:查看当前白名单。
7. 载荷生成(Stager)
命令作用场景举例
usestager生成 初始载荷(Stager)(让目标机主动连接监听器的代码)。usestager windows/powershell:生成 PowerShell 命令,目标执行后上线;
usestager windows/hta:生成 HTA 文件(钓鱼攻击用)。

这里主要演示监听器的创建,木马的生成,其它模块的使用这里不再展示。

监听器的创建

# 进入监听器配置界面
empire > listeners# 选择监听器类型(如 http)
listeners > uselistener http
listeners > info  #查看需要配置的信息# 配置监听器参数(攻击机 IP 和端口)
http > set Host http://192.168.1.100  # 攻击机 IP(或域名)
http > set Port 8080                 # 监听端口
http > set Name mylistener           # 监听器名称(自定义)# 启动监听器
http > executehttp > back      #成功后退出
http > list      #查看监听器

生成木马(Stager(目标执行的 payload))

Stager 是让目标主动连接监听器的 “引子”,以 Windows 为例:

# 返回主界面,进入 stager 配置
empire > back
empire > usestager+空格+点击两次tab键查看能够生成哪些木马

介绍一下这些木马

1. Multi 系列(跨平台,适配 Linux/UNIX 环境)

命令攻击载体核心特点适用场景举例
multi/bashBash 脚本输出一行 bash 命令(如 `curl http://...bash`),直接在终端执行。已控 Linux 主机,快速横向移动。
multi/launcher单行命令启动器精简命令,减少字符数(适合复制粘贴攻击,如钓鱼邮件里的 “一键执行” 命令)。社工攻击(让目标复制终端命令)。
multi/macroOffice 宏代码生成 Word/Excel 宏,目标启用宏后执行。钓鱼文档(伪装成 “报表.doc”)。
multi/pyinstallerPython 打包可执行文件用 PyInstaller 打包成独立 EXE(跨平台,依赖 Python 环境)。伪装成 “数据分析工具.exe”。
multi/var环境变量注入将 Stager 嵌入环境变量,绕过命令行内容检测。目标系统对命令行内容扫描严格时。

2. OSX 系列(针对 macOS)

命令攻击载体核心特点适用场景举例
osx/applescriptAppleScript 脚本利用 macOS 原生脚本引擎,输出 .scpt 文件,双击执行。伪装成 “系统优化.scpt”。
osx/applicationmacOS 应用(.app)打包成伪应用,用户双击时触发 Stager(可自定义图标,更逼真)。钓鱼攻击(伪装成 “更新程序.app”)。
osx/duckyUSB 橡皮鸭脚本生成 USB Rubber Ducky 按键脚本,物理插入 U 盘自动执行(模拟键盘输入)。物理接触 macOS 设备(如办公电脑)。
osx/jarJava JAR 文件依赖 Java 环境,执行 java -jar xxx.jar 触发。目标机安装 Java 开发环境时。
osx/machoMach-O 二进制文件macOS 原生可执行文件,直接运行无依赖,隐蔽性高。高级渗透(避免脚本检测)。
osx/pkgmacOS 安装包(.pkg)伪装成软件安装包,安装时触发 Stager(可获取管理员权限)。诱骗用户安装 “正版软件.pkg”。
osx/safari_launcherSafari 浏览器利用针对 Safari 漏洞,访问网页时自动执行(需浏览器存在可利用漏洞)。钓鱼网站(诱骗目标访问恶意页面)。
osx/teensyTeensy 硬件脚本针对 Teensy 开发板(硬件攻击设备),模拟键盘输入执行命令。物理渗透(插入 Teensy 设备)。

3. Windows 系列(最复杂,覆盖全攻击链)

命令攻击载体核心特点适用场景举例
windows/dllDLL 文件用 rundll32.exe 加载(如 rundll32.exe xxx.dll,entry),利用系统原生工具。绕过杀软(DLL 加载行为常见)。
windows/duckyUSB 橡皮鸭脚本同 OSX,模拟键盘输入在 Windows 终端执行命令(物理攻击)。物理接触 Windows 主机(如网吧)。
windows/htaHTA 文件HTML 应用程序,双击以高权限执行(类似 EXE,可嵌入网页代码)。钓鱼邮件(“系统更新.hta”)。
windows/bunnyRabbit Hole 硬件脚本针对 Rabbit Hole 攻击设备,模拟键盘输入执行。物理渗透(专业硬件攻击)。
windows/csharp_exeC# 编译 EXE自定义图标 / 描述,伪装成正常程序(如 “工资单.exe”)。社工攻击(诱骗用户运行)。
windows/launcher_batBAT 批处理批处理文件,执行后调用 PowerShell 或命令行连接监听器。命令行环境渗透(如服务器远程管理)。
windows/launcher_lnk快捷方式(.lnk)伪装成程序快捷方式,点击时触发 Stager(可修改图标,更逼真)。桌面快捷方式替换攻击。
windows/launcher_scfSCF 文件Windows 资源管理器脚本,双击时自动执行(利用系统特性,隐蔽性极高)。共享文件夹投毒(如局域网共享文件)。
windows/launcher_vbsVBS 脚本用 wscript.exe 执行,老旧系统默认启用,防护少。针对未打补丁的 Windows XP 等。
windows/macroOffice 宏Word/Excel 宏,目标启用宏后执行(经典钓鱼手段)。钓鱼文档(“财务报表.doc”)。
windows/macroless_msword无宏 Word 漏洞利用利用 Word 漏洞(如 CVE-2017-11882),无需启用宏,直接触发(bypass 宏警告)。高级钓鱼(绕过敏感用户对宏的警惕)。
windows/shellcodeShellcode 机器码原始机器码,配合漏洞利用(如缓冲区溢出)注入进程执行(无文件落地)。0day 漏洞攻击(内存中执行)。
windows/teensyTeensy 硬件脚本同 OSX,针对 Windows 模拟键盘输入。物理渗透(插入 Teensy 设备)。
windows/wmicWMIC 命令通过 Windows 管理工具 wmic 执行,权限高且原生支持(适合横向移动)。

这里我们生成一个dll文件,命令如下

(Empire: listeners) > usestager windows/dll
(Empire: stager/windows/dll) > info  #查看需要的条件
(Empire: stager/windows/dll) > set Listener jieyu  #配置监听器
(Empire: stager/windows/dll) > execute  #生成

使用如下命令将文件输出到服务器,然后将其放到目标机运行即可

# 格式:docker cp 容器ID:容器内文件路径 宿主机目标路径
docker cp abc123:/app/output/result.txt /data/from_container/

然后监听器就会自动上线主机,这里不再展示。

empire是一款强大的后渗透工具,比如横向移动,Hash抓取,域控渗透等,在这些方面功能尤为强大,这里就不再展示了。

http://www.dtcms.com/a/326773.html

相关文章:

  • 集团型企业如何统一管控子公司权限?
  • 奈飞工厂:算法优化实战​
  • 视频播放器哪个好用?视频播放器PotPlayer,KMP Player
  • 多轮会话记忆的核心挑战
  • 8.11下一代防火墙组网方案笔记
  • 使用MAS(Microsoft Activation Scripts)永久获得win10专业版和office全套
  • C++算法·前缀和
  • DCN之AP IGMP Snooping 原理与配置
  • P3917 异或序列 题解
  • Day01_QT编程20250811
  • while循环结合列表或字典
  • 二叉搜索树解析与实现
  • 快速设计简单嵌入式操作系统(3):动手实操,基于STC8编写单任务执行程序,感悟MCU指令的执行过程
  • USB 标准请求
  • 机器学习——KMeans聚类实战案例解析
  • git配置proxy
  • Docker-09.Docker基础-Dockerfile语法
  • Docker中部署安装MySQL 5.7.32的详细过程
  • Rust面试题及详细答案120道(19-26)-- 所有权与借用
  • PTE之路--04文
  • java面试题准备
  • 【k近邻】Kd树的构造与最近邻搜索算法
  • 线程池知识点总结
  • Spring Cloud Gateway 路由与过滤器实战:转发请求并添加自定义请求头(最新版本)
  • 【QT】UI 开发全攻略:打造专业级跨平台界面
  • Android14 QS编辑页面面板的加载解析
  • 梯度裁剪总结
  • Python Day27 HTML 核心知识笔记及例题分析
  • 09-docker镜像手动制作
  • PG靶机 - Flu