# OSX 攻击框架Empyre简介

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2016-05-17T01:46:00Z
Canonical: https://wepostx.com/topics/256

> 乌云历史资料归档
>
> **原始作者：** Evi1cg
> **原始编号：** superkieran-wooyundrops:1202
> **原始发布时间：** 2016-05-17 09:46
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

# 0x00 简介

随着OSX使用者越来越多，针对OSX的攻击也越来越多。前不久，Empire团队又推出一个新的攻击框架，针对于OSX的攻击框架[Empyre](https://github.com/adaptivethreat/EmPyre)，此框架由Python建立在密码学基础上编写，使用过[Empire](https://github.com/PowerShellEmpire/Empire)的同学对此框架应该能很快上手，此文将对Empyre框架的使用方式做一下简单的的介绍。

# 0x01 安装

使用如下命令进行安装：

```text
#!bash ☁ Desktop git clone https://github.com/adaptivethreat/EmPyre ☁ Desktop cd EmPyre/setup ☁ setup [master] ./install.sh
```
安装脚本会安装一些依赖库，并且最后执行setup_database.py 进行各项设置，可以手工修改。setup目录下的reset.sh脚本可以对EmPyre进行重置。

# 0x02 使用

进入主目录，执行

```text
#!bash ☁ EmPyre [master] python empyre
```
则可进入主菜单

![原文图片](/media/2016/06/e1d31506cf898b6cb4dd6ac5369dfda8)

现在已经包含了43个可使用的模块

### Listeners
要使用此框架，首先需要创建Listeners，直接输入listeners则可进去Listeners的配置页面，输入help，可以查看帮助，info命令可以查看详细的配置信息，下面截图是一个简单的Listeners配置。

![原文图片](/media/2016/06/47ab7dde4265ebaa8a38e818f05b9045)

配置监听的ip及端口需要设置Host

```text
#!bash set Host http://192.168.74.141:8080
```
之后执行

```text
#!bash (EmPyre: listeners) > execute
```
可以开启监听，使用list可以查看开启的listener

![原文图片](/media/2016/06/c8bace3a7fbda7e83559b912f283155c)

如果需要配置HTTPS的listener，需要配置CertPath

```text
#!bash set CertPath ./data/empyre.pem
```

### Stagers
创建好Listeners之后，需要配置Stagers ，Stagers 存放在./lib/stagers 目录下，现在已有的stagers如下：

![原文图片](/media/2016/06/89dac0d1ba2faf3fe538f209f489745d)

在listeners下输入usestager+空格之后按TAB键则可看到这些可用的stagers。现在可用的stagers 分别为：

- applescript: 生成[AppleScript](http://baike.baidu.com/link?url=zsL0NIp8nLJgYPF49Fyjveo9VjaaM71GXpv-Y_hVerLyubu_5FIj8UiFnpc_sn5LXLLAoae6Mu94mFEgCuue5a)的payload。

- dylib: 生成动态库类型的payload。（怎么使用请看[这里](http://qvb3d.iteye.com/blog/1176920)）

- hop_php: 生成php类型的payload。

- launcher: 生成一行python代码作为payload。

- macho: 生成macho类型的payload(OSX可执行文件)。

- macro: 生成MAC Office宏。

- safari_launcher: 生成一个HTML文件作为payload。(诱使用户运行applescript)

- war: 生成war类型的payload。
launcher为生成一行代码，被攻击者运行代码则被攻击者控制，下面使用macro以及safari_launcher两个好玩儿的方式来做一下示例：
1、macro
使用方式如下图：

![原文图片](/media/2016/06/fd624402c084050668a7f9cc15a4bc8e)

生成宏代码，创建任意office文件。打开宏设置

![原文图片](/media/2016/06/3204ab0a4e834b7cea9917729bbdf634)

将宏代码写入：

![原文图片](/media/2016/06/1c75b54c84642ba0de3b4e2ec8bf4122)

之后再次打开此work会有如下提示：

![原文图片](/media/2016/06/5fb9e24dbb61154d05d37711a07775cf)

点击启用宏，执行代码，受害者被控制：

![原文图片](/media/2016/06/091be18821792a007b6bd546d6ca8f98)

2、safari_launcher
使用方式如下：

![原文图片](/media/2016/06/219add9db6aa58a0a416b56b6b1b597e)

将生成的html代码保存到test.html，放到web服务器上，可以看到代码中的applescript 则为要执行的applescript代码。访问此页面如下图：

![原文图片](/media/2016/06/3261e468acddc315552d17f6616ec5cc)

按Command+R键以后，弹出如下页面：

![原文图片](/media/2016/06/7dd720ed76a5b59f57c83129a00fb3ab)

点击新脚本，打开脚本编辑器，代码藏在最下面：

![原文图片](/media/2016/06/7e1cd3094188cc2f92c36af120da3751)

一旦点击三角符号的运行按钮，则受害者被控制：

![原文图片](/media/2016/06/9662aecd2febab29564853d9ede44b55)

其他的就不多介绍了，有兴趣的可以自己尝试一下

### agents
1、基础使用
获取agents怎么使用呢，首先可以查看help:

![原文图片](/media/2016/06/3de068223b459fba3f185b37ec7b7d5d)

命令比较简单，要切换到一个agent,使用如下命令即可：

```text
#!bash interact PI5M01QWZ4TJAUQA
```
如果觉得名字不好记，可以执行如下命令对agnet进行重命名：

![原文图片](/media/2016/06/3f92cfbb889c046b8ceac00553c16063)

切换到agent里面之后，可以help查看可执行的命令:

![原文图片](/media/2016/06/d545be32df3fa96b4a5bfa1fd4979151)

如果要执行系统命令，可使用shell来执行：

![原文图片](/media/2016/06/281ed3076e65a725688869ba35aeb115)

2、模块使用
Empyre提供了多个可使用模块，输入usemodule空格之后按TAB键则可列出当前可使用的模块，如下图：

![原文图片](/media/2016/06/de20d7c9cd63d221ed36acdd02f544e5)

包括信息搜集，权限提升，维持权限等多个模块，这里就不一一介绍了，介绍几个比较好玩儿的：
collection/osx/prompt:
此模块可通过社会工程学获取当前用户所用的密码。

![原文图片](/media/2016/06/5b7d285eec433be1a8c28b0f938579f5)

运行以后，会打开AppStore，并询问密码，如下图：

![原文图片](/media/2016/06/03fc2f516d8076bb53a1104345af95e2)

当用户输入密码以后，我们就获取到了他输入的密码：

![原文图片](/media/2016/06/17d8713aed706f1025313a44f5a12cff)

collection/osx/webcam:
此模块可进行摄像头拍照

![原文图片](/media/2016/06/eaaefb06c7ed9c53e6950839e37c1066)

collection/osx/browser_dum：
此模块可获取浏览器历史记录

![原文图片](/media/2016/06/eadbe1fbbdaf46f05a92791853328a58)

privesc/multi/sudo_spawn
此模块可用于权限提升

首先创建一个新的Listener：

![原文图片](/media/2016/06/d052187879b15201c8a4ee5ce3bd3850)

切换到agent以后，使用此模块：

![原文图片](/media/2016/06/c86a4fcbd01c9f99b411462bf9a28d75)

可以看到输入密码以后（密码可以通过prompt模块或者信息搜集获得），获取了一个新的agent，并且此agent获取了最高的权限，如下图：

![原文图片](/media/2016/06/cb7e6f80a9f2f0da9a1aeadc034f99d4)

其他模块，我这里就不一一介绍了，有兴趣的小伙伴可以自己去尝试一下，而且维持权限的模块已经有4个了，还是很给力的。

# 0x03 小结

看到这个工具还是挺开心的，本文仅仅是对此工具进行了一个简单的使用介绍，有兴趣的可以看一下源码然后自己编写自己所需要的模块或功能，希望此文对你能有所帮助。
本文由Evi1cg原创并首发于乌云drops，转载请注明

## Replies
